Decompiled source of GlovesTan3 v1.1.1

GlovesTan3.dll

Decompiled 2 days ago
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using FistVR;
using HarmonyLib;
using JerryHand;
using OtherLoader;
using Sodalite;
using Sodalite.Api;
using UnityEngine;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryGloves
{
	public class AutoHandPoseApplyAKS74n : MonoBehaviour
	{
		public GameObject HandsIndicator_AKBolt;

		public GameObject HandsIndicator_AKBoltComponent;

		public GameObject HandsIndicator_AKBoltHead;

		public GameObject HandsIndicator_AKDustCover;

		public GameObject HandsIndicator_AKFireSelectorComponent;

		public GameObject HandsIndicator_AKForeGripComponent;

		public GameObject HandsIndicator_AKGasBlock;

		public GameObject HandsIndicator_AKRecoilSpring;

		public GameObject HandsIndicator_AKS74EFT3;

		public GameObject HandsIndicator_AKS74MagEFT2;

		public GameObject HandsIndicator_AKSightComponent;

		public GameObject HandsIndicator_AKStockComponent;

		public GameObject HandsIndicator_AKBolt_L;

		public GameObject HandsIndicator_AKBoltComponent_L;

		public GameObject HandsIndicator_AKBoltHead_L;

		public GameObject HandsIndicator_AKDustCover_L;

		public GameObject HandsIndicator_AKFireSelectorComponent_L;

		public GameObject HandsIndicator_AKForeGripComponent_L;

		public GameObject HandsIndicator_AKGasBlock_L;

		public GameObject HandsIndicator_AKRecoilSpring_L;

		public GameObject HandsIndicator_AKS74EFT3_L;

		public GameObject HandsIndicator_AKS74MagEFT2_L;

		public GameObject HandsIndicator_AKSightComponent_L;

		public GameObject HandsIndicator_AKStockComponent_L;

		public GameObject HandsIndicator_AKBolt_R;

		public GameObject HandsIndicator_AKBoltComponent_R;

		public GameObject HandsIndicator_AKBoltHead_R;

		public GameObject HandsIndicator_AKDustCover_R;

		public GameObject HandsIndicator_AKFireSelectorComponent_R;

		public GameObject HandsIndicator_AKForeGripComponent_R;

		public GameObject HandsIndicator_AKGasBlock_R;

		public GameObject HandsIndicator_AKRecoilSpring_R;

		public GameObject HandsIndicator_AKS74EFT3_R;

		public GameObject HandsIndicator_AKS74MagEFT2_R;

		public GameObject HandsIndicator_AKSightComponent_R;

		public GameObject HandsIndicator_AKStockComponent_R;

		public FVRInteractiveObject cachedL;

		public FVRInteractiveObject cachedR;

		public float cdL1 = 0.25f;

		public float cdL2 = 0.25f;

		public float cdR1 = 0.25f;

		public float cdR2 = 0.25f;

		private void FixedUpdate()
		{
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_19c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_19e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a37: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ae1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b01: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b55: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b79: Unknown result type (might be due to invalid IL or missing references)
			//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_035f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bff: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c73: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0409: Unknown result type (might be due to invalid IL or missing references)
			//IL_0429: Unknown result type (might be due to invalid IL or missing references)
			//IL_047d: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d91: Unknown result type (might be due to invalid IL or missing references)
			//IL_1db5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_0547: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1eaf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ed3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0645: Unknown result type (might be due to invalid IL or missing references)
			//IL_0665: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f59: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f79: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fcd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ff1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0838: Unknown result type (might be due to invalid IL or missing references)
			//IL_085c: Unknown result type (might be due to invalid IL or missing references)
			//IL_20d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_20f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_214c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0945: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_2259: Unknown result type (might be due to invalid IL or missing references)
			//IL_2279: Unknown result type (might be due to invalid IL or missing references)
			//IL_22cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_22f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5e: Unknown result type (might be due to invalid IL or missing references)
			//IL_23da: Unknown result type (might be due to invalid IL or missing references)
			//IL_23fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_244e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2472: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c47: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_27fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_281c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2870: Unknown result type (might be due to invalid IL or missing references)
			//IL_2894: Unknown result type (might be due to invalid IL or missing references)
			//IL_255b: Unknown result type (might be due to invalid IL or missing references)
			//IL_257b: Unknown result type (might be due to invalid IL or missing references)
			//IL_25cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_25f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e60: Unknown result type (might be due to invalid IL or missing references)
			//IL_26dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_26fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_2750: Unknown result type (might be due to invalid IL or missing references)
			//IL_2774: Unknown result type (might be due to invalid IL or missing references)
			//IL_1067: Unknown result type (might be due to invalid IL or missing references)
			//IL_1087: Unknown result type (might be due to invalid IL or missing references)
			//IL_10db: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_297b: Unknown result type (might be due to invalid IL or missing references)
			//IL_299b: Unknown result type (might be due to invalid IL or missing references)
			//IL_29ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1208: Unknown result type (might be due to invalid IL or missing references)
			//IL_125c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1280: Unknown result type (might be due to invalid IL or missing references)
			//IL_2afc: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b70: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b94: Unknown result type (might be due to invalid IL or missing references)
			//IL_13a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_13c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_141d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1441: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cdd: Unknown result type (might be due to invalid IL or missing references)
			//IL_2d31: Unknown result type (might be due to invalid IL or missing references)
			//IL_2d55: Unknown result type (might be due to invalid IL or missing references)
			//IL_1609: Unknown result type (might be due to invalid IL or missing references)
			//IL_1629: Unknown result type (might be due to invalid IL or missing references)
			//IL_167d: Unknown result type (might be due to invalid IL or missing references)
			//IL_16a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f91: Unknown result type (might be due to invalid IL or missing references)
			//IL_2fb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_186b: Unknown result type (might be due to invalid IL or missing references)
			//IL_188b: Unknown result type (might be due to invalid IL or missing references)
			//IL_18df: Unknown result type (might be due to invalid IL or missing references)
			//IL_1903: Unknown result type (might be due to invalid IL or missing references)
			//IL_317f: Unknown result type (might be due to invalid IL or missing references)
			//IL_319f: Unknown result type (might be due to invalid IL or missing references)
			//IL_31f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_3217: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
			{
				cachedL = GM.CurrentMovementManager.Hands[0].m_currentInteractable;
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKS74EFT3_L = Object.Instantiate<GameObject>(HandsIndicator_AKS74EFT3, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKS74EFT3_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKS74EFT3_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKS74EFT3_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKBolt(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBolt_L = Object.Instantiate<GameObject>(HandsIndicator_AKBolt, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBolt_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBolt_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBolt_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKBoltHead(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltHead_L = Object.Instantiate<GameObject>(HandsIndicator_AKBoltHead, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltHead_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltHead_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltHead_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKDustCover(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKDustCover_L = Object.Instantiate<GameObject>(HandsIndicator_AKDustCover, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKDustCover_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKDustCover_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKDustCover_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKGasBlock(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKGasBlock_L = Object.Instantiate<GameObject>(HandsIndicator_AKGasBlock, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKGasBlock_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKGasBlock_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKGasBlock_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKRecoilSpring(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKRecoilSpring_L = Object.Instantiate<GameObject>(HandsIndicator_AKRecoilSpring, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKRecoilSpring_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKRecoilSpring_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKRecoilSpring_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKBolt(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBolt_L = Object.Instantiate<GameObject>(HandsIndicator_AKBolt, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBolt_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBolt_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBolt_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKBoltHead(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltHead_L = Object.Instantiate<GameObject>(HandsIndicator_AKBoltHead, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltHead_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltHead_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltHead_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "interface (1)" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKDustCover(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKDustCover_L = Object.Instantiate<GameObject>(HandsIndicator_AKDustCover, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKDustCover_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKDustCover_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKDustCover_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKGasBlock(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKGasBlock_L = Object.Instantiate<GameObject>(HandsIndicator_AKGasBlock, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKGasBlock_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKGasBlock_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKGasBlock_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKRecoilSpring(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKRecoilSpring_L = Object.Instantiate<GameObject>(HandsIndicator_AKRecoilSpring, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKRecoilSpring_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKRecoilSpring_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKRecoilSpring_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "AKS74MagEFT2(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKS74MagEFT2_L = Object.Instantiate<GameObject>(HandsIndicator_AKS74MagEFT2, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKS74MagEFT2_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKS74MagEFT2_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKS74MagEFT2_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "_Trigger_Foregrip" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKForeGripComponent_L = Object.Instantiate<GameObject>(HandsIndicator_AKForeGripComponent, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKForeGripComponent_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKForeGripComponent_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKForeGripComponent_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "_Bolt" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltComponent_L = Object.Instantiate<GameObject>(HandsIndicator_AKBoltComponent, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltComponent_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltComponent_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltComponent_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "Selector" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKFireSelectorComponent_L = Object.Instantiate<GameObject>(HandsIndicator_AKFireSelectorComponent, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKFireSelectorComponent_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKFireSelectorComponent_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKFireSelectorComponent_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "GrabPoint" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKStockComponent_L = Object.Instantiate<GameObject>(HandsIndicator_AKStockComponent, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKStockComponent_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKStockComponent_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKStockComponent_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject).name == "SightGrab" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKSightComponent_L = Object.Instantiate<GameObject>(HandsIndicator_AKSightComponent, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKSightComponent_L.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKSightComponent_L.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKSightComponent_L.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
			}
			if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
			{
				cachedR = GM.CurrentMovementManager.Hands[1].m_currentInteractable;
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKS74EFT3_R = Object.Instantiate<GameObject>(HandsIndicator_AKS74EFT3, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKS74EFT3_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKS74EFT3_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKS74EFT3_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKBolt(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBolt_R = Object.Instantiate<GameObject>(HandsIndicator_AKBolt, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBolt_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBolt_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBolt_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKBoltHead(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltHead_R = Object.Instantiate<GameObject>(HandsIndicator_AKBoltHead, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltHead_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltHead_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltHead_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKDustCover(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKDustCover_R = Object.Instantiate<GameObject>(HandsIndicator_AKDustCover, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKDustCover_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKDustCover_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKDustCover_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKGasBlock(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKGasBlock_R = Object.Instantiate<GameObject>(HandsIndicator_AKGasBlock, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKGasBlock_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKGasBlock_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKGasBlock_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKRecoilSpring(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKRecoilSpring_R = Object.Instantiate<GameObject>(HandsIndicator_AKRecoilSpring, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKRecoilSpring_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKRecoilSpring_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKRecoilSpring_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKBolt(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBolt_R = Object.Instantiate<GameObject>(HandsIndicator_AKBolt, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBolt_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBolt_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBolt_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKBoltHead(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltHead_R = Object.Instantiate<GameObject>(HandsIndicator_AKBoltHead, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltHead_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltHead_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltHead_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "interface (1)" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKDustCover(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKDustCover_R = Object.Instantiate<GameObject>(HandsIndicator_AKDustCover, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKDustCover_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKDustCover_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKDustCover_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKGasBlock(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKGasBlock_R = Object.Instantiate<GameObject>(HandsIndicator_AKGasBlock, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKGasBlock_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKGasBlock_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKGasBlock_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "interface" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKRecoilSpring(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKRecoilSpring_R = Object.Instantiate<GameObject>(HandsIndicator_AKRecoilSpring, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKRecoilSpring_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKRecoilSpring_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKRecoilSpring_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "AKS74MagEFT2(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKS74MagEFT2_R = Object.Instantiate<GameObject>(HandsIndicator_AKS74MagEFT2, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKS74MagEFT2_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKS74MagEFT2_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKS74MagEFT2_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "_Trigger_Foregrip" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKForeGripComponent_R = Object.Instantiate<GameObject>(HandsIndicator_AKForeGripComponent, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKForeGripComponent_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKForeGripComponent_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKForeGripComponent_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "_Bolt" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && ((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKBoltComponent_R = Object.Instantiate<GameObject>(HandsIndicator_AKBoltComponent, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKBoltComponent_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKBoltComponent_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKBoltComponent_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "Selector" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKFireSelectorComponent_R = Object.Instantiate<GameObject>(HandsIndicator_AKFireSelectorComponent, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKFireSelectorComponent_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKFireSelectorComponent_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKFireSelectorComponent_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "GrabPoint" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKStockComponent_R = Object.Instantiate<GameObject>(HandsIndicator_AKStockComponent, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKStockComponent_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKStockComponent_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKStockComponent_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (((Object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject).name == "SightGrab" && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent != (Object)null && (Object)(object)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent != (Object)null && (Object)(object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent != (Object)null && ((Object)((Component)((Component)((Component)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.parent).transform.parent).transform.parent).transform.parent).name == "AKS74EFT3(Clone)" && (Object)(object)this.GetComponentInDirectChildren<HandPoseItem>(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform) == (Object)null)
				{
					HandsIndicator_AKSightComponent_R = Object.Instantiate<GameObject>(HandsIndicator_AKSightComponent, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform.rotation);
					HandsIndicator_AKSightComponent_R.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.transform);
					HandsIndicator_AKSightComponent_R.transform.localPosition = new Vector3(0f, 0f, 0f);
					HandsIndicator_AKSightComponent_R.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
			}
		}

		public T GetComponentInDirectChildren<T>(Transform transformtarg) where T : Component
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			foreach (Transform item in transformtarg)
			{
				Transform val = item;
				T component = ((Component)val).GetComponent<T>();
				if ((Object)(object)component != (Object)null)
				{
					return component;
				}
			}
			return (T)(object)null;
		}
	}
	public class HandPose : MonoBehaviour
	{
		public GameObject[] Fingers;
	}
	public class HandPoseItem : MonoBehaviour
	{
		public FVRViveHand cacheHand;

		private FVRViveHand cacheHandL;

		private FVRViveHand cacheHandR;

		private bool _leftOnForegrip;

		private bool _rightOnForegrip;

		private float _leftForeBlend = 0f;

		private float _rightForeBlend = 0f;

		[Tooltip("护木姿势与主握把姿势之间的过渡速度(越大越快)")]
		public float foreBlendSpeed = 8f;

		public FVRFireArm allguns;

		public Handgun pistol;

		public TubeFedShotgun shotguntubefed;

		public RevolvingShotgun shotgunrevolving;

		public BoltActionRifle boltaction;

		public ClosedBoltWeapon gunclosedbolt;

		public OpenBoltReceiver gunopenbolt;

		public BreakActionWeapon gunbreakaction;

		public CarlGustaf carlgustaf;

		public SingleActionRevolver revolversa;

		public Revolver revolverda;

		public M72 m72;

		public RPG7 rpg7;

		public FVRInteractiveObject Obj;

		public HandPose CurPoseL;

		public HandPose IdleL;

		public HandPose CurPoseR;

		public HandPose IdleR;

		public HandPose ForeL;

		public HandPose ForeR;

		public bool hasTrigger;

		public HandPose FireStartL;

		public HandPose FireEndL;

		public HandPose FireStartR;

		public HandPose FireEndR;

		public bool TriggerPressed;

		public bool TriggerReached;

		public bool canTriggerPull;

		public bool hasSlideRelease;

		public HandPose SlideReleaseStart;

		public HandPose SlideReleaseEnd;

		public bool SlideReleasePressed;

		public bool SlideReleaseReached;

		public bool canSlideLockToggle;

		public bool hasMagRelease;

		public HandPose MagReleaseStart;

		public HandPose MagReleaseEnd;

		public bool MagReleasePressed;

		public bool MagReleaseReached;

		public bool hasSafety;

		public HandPose[] Safetys;

		public bool SafetyPressed;

		public bool SafetyReached;

		public bool canSafetyToggle;

		public bool hasSelector;

		public HandPose Selector;

		public bool SelectorPressed;

		public bool SelectorReached;

		public bool hasHammer;

		public HandPose HammerStart;

		public HandPose HammerEnd;

		public bool HammerPressed;

		public bool HammerReached;

		public GameObject grabpos;

		public bool isAltHold;

		private void Start()
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)((Component)this).GetComponentInParent<FVRInteractiveObject>() != (Object)null)
			{
				Obj = ((Component)this).GetComponentInParent<FVRInteractiveObject>();
			}
			CopyPose(CurPoseL, IdleL);
			CopyPose(CurPoseR, IdleR);
			if ((Object)(object)Obj != (Object)null && (Object)(object)grabpos != (Object)null)
			{
				((Component)Obj.PoseOverride).transform.position = grabpos.transform.position;
				((Component)Obj.PoseOverride).transform.rotation = grabpos.transform.rotation;
			}
		}

		public void RefreshPoseNow(bool isLeft, FVRViveHand hand, bool onFore)
		{
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_017b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)hand == (Object)null)
			{
				return;
			}
			HandPose handPose = (isLeft ? CurPoseL : CurPoseR);
			HandPose src = (isLeft ? IdleL : IdleR);
			HandPose handPose2 = (isLeft ? ForeL : ForeR);
			HandPose handPose3 = (isLeft ? FireStartL : FireStartR);
			HandPose handPose4 = (isLeft ? FireEndL : FireEndR);
			if ((Object)(object)handPose == (Object)null)
			{
				return;
			}
			if (onFore && (Object)(object)handPose2 != (Object)null)
			{
				CopyPose(handPose, handPose2);
			}
			else if (hasTrigger && (Object)(object)handPose3 != (Object)null && (Object)(object)handPose4 != (Object)null)
			{
				float triggerFloat = hand.Input.TriggerFloat;
				int num = Mathf.Min(handPose.Fingers.Length, handPose3.Fingers.Length);
				for (int i = 0; i < num; i++)
				{
					if (!((Object)(object)handPose.Fingers[i] == (Object)null) && !((Object)(object)handPose3.Fingers[i] == (Object)null) && !((Object)(object)handPose4.Fingers[i] == (Object)null))
					{
						handPose.Fingers[i].transform.rotation = EulerLerp(handPose3.Fingers[i].transform.eulerAngles, handPose4.Fingers[i].transform.eulerAngles, triggerFloat);
						handPose.Fingers[i].transform.position = Vector3.Lerp(handPose3.Fingers[i].transform.position, handPose4.Fingers[i].transform.position, triggerFloat);
					}
				}
			}
			else
			{
				CopyPose(handPose, src);
			}
		}

		private void Update()
		{
			if ((Object)(object)Obj == (Object)null)
			{
				return;
			}
			FVRViveHand[] hands = GM.CurrentMovementManager.Hands;
			FVRViveHand val = hands[0];
			FVRViveHand val2 = hands[1];
			UpdateForegripSticky(val, ref _leftOnForegrip);
			UpdateForegripSticky(val2, ref _rightOnForegrip);
			bool flag = HandBelongsToThis(val) || ((Object)(object)val != (Object)null && val.Input.GripPressed && _leftOnForegrip);
			bool flag2 = HandBelongsToThis(val2) || ((Object)(object)val2 != (Object)null && val2.Input.GripPressed && _rightOnForegrip);
			if (!flag)
			{
				CopyPose(CurPoseL, IdleL);
			}
			if (!flag2)
			{
				CopyPose(CurPoseR, IdleR);
			}
			if (!flag && !flag2)
			{
				isAltHold = false;
				return;
			}
			FVRFireArm component = ((Component)Obj).gameObject.GetComponent<FVRFireArm>();
			isAltHold = (Object)(object)component != (Object)null && ((FVRPhysicalObject)component).IsAltHeld;
			FVRAlternateGrip component2 = ((Component)Obj).gameObject.GetComponent<FVRAlternateGrip>();
			if ((Object)(object)component2 != (Object)null && ((FVRInteractiveObject)component2).m_isHeld && !((FVRInteractiveObject)component2.PrimaryObject).m_isHeld && (Object)(object)((Component)component2.PrimaryObject).gameObject.GetComponentInChildren<HandPoseItem>() != (Object)null)
			{
				if (flag)
				{
					CopyPose(((Component)component2.PrimaryObject).gameObject.GetComponentInChildren<HandPoseItem>().CurPoseL, ((Component)component2.PrimaryObject).gameObject.GetComponentInChildren<HandPoseItem>().ForeL);
				}
				if (flag2)
				{
					CopyPose(((Component)component2.PrimaryObject).gameObject.GetComponentInChildren<HandPoseItem>().CurPoseR, ((Component)component2.PrimaryObject).gameObject.GetComponentInChildren<HandPoseItem>().ForeR);
				}
			}
			if (flag)
			{
				UpdateOneHand(CurPoseL, IdleL, ForeL, FireStartL, FireEndL, val, isAltHold);
			}
			if (flag2)
			{
				UpdateOneHand(CurPoseR, IdleR, ForeR, FireStartR, FireEndR, val2, isAltHold);
			}
		}

		private bool IsHandOnForegrip(FVRViveHand hand)
		{
			if ((Object)(object)hand == (Object)null || (Object)(object)hand.m_currentInteractable == (Object)null)
			{
				return false;
			}
			FVRAlternateGrip component = ((Component)hand.m_currentInteractable).gameObject.GetComponent<FVRAlternateGrip>();
			if ((Object)(object)component == (Object)null)
			{
				return false;
			}
			FVRFireArm componentInParent = ((Component)this).GetComponentInParent<FVRFireArm>();
			return (Object)(object)componentInParent != (Object)null && ((Component)component).transform.IsChildOf(((Component)componentInParent).transform);
		}

		private void ApplyHandPoseBlended(HandPose cur, HandPose idle, HandPose fore, HandPose fireStart, HandPose fireEnd, FVRViveHand hand, float foreBlend)
		{
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)cur == (Object)null || cur.Fingers == null)
			{
				return;
			}
			int num = cur.Fingers.Length;
			for (int i = 0; i < num; i++)
			{
				if ((Object)(object)cur.Fingers[i] == (Object)null)
				{
					continue;
				}
				Quaternion val;
				Vector3 val2;
				if (hasTrigger && (Object)(object)fireStart != (Object)null && (Object)(object)fireEnd != (Object)null && fireStart.Fingers != null && i < fireStart.Fingers.Length && fireEnd.Fingers != null && i < fireEnd.Fingers.Length && (Object)(object)fireStart.Fingers[i] != (Object)null && (Object)(object)fireEnd.Fingers[i] != (Object)null)
				{
					float triggerFloat = hand.Input.TriggerFloat;
					val = EulerLerp(fireStart.Fingers[i].transform.eulerAngles, fireEnd.Fingers[i].transform.eulerAngles, triggerFloat);
					val2 = Vector3.Lerp(fireStart.Fingers[i].transform.position, fireEnd.Fingers[i].transform.position, triggerFloat);
				}
				else
				{
					if (!((Object)(object)idle != (Object)null) || idle.Fingers == null || i >= idle.Fingers.Length || !((Object)(object)idle.Fingers[i] != (Object)null))
					{
						continue;
					}
					val = idle.Fingers[i].transform.rotation;
					val2 = idle.Fingers[i].transform.position;
				}
				if (foreBlend > 0f && (Object)(object)fore != (Object)null && fore.Fingers != null && i < fore.Fingers.Length && (Object)(object)fore.Fingers[i] != (Object)null)
				{
					val = Quaternion.Slerp(val, fore.Fingers[i].transform.rotation, foreBlend);
					val2 = Vector3.Lerp(val2, fore.Fingers[i].transform.position, foreBlend);
				}
				cur.Fingers[i].transform.rotation = val;
				cur.Fingers[i].transform.position = val2;
			}
		}

		private static void CopyPose(HandPose dst, HandPose src)
		{
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)dst == (Object)null || (Object)(object)src == (Object)null)
			{
				return;
			}
			int num = Mathf.Min(dst.Fingers.Length, src.Fingers.Length);
			for (int i = 0; i < num; i++)
			{
				if (!((Object)(object)dst.Fingers[i] == (Object)null) && !((Object)(object)src.Fingers[i] == (Object)null))
				{
					dst.Fingers[i].transform.rotation = src.Fingers[i].transform.rotation;
					dst.Fingers[i].transform.position = src.Fingers[i].transform.position;
				}
			}
		}

		private void UpdateForegripSticky(FVRViveHand hand, ref bool sticky)
		{
			if ((Object)(object)hand == (Object)null || !hand.Input.GripPressed)
			{
				sticky = false;
			}
			else if (!((Object)(object)hand.m_currentInteractable == (Object)null) && (Object)(object)((Component)hand.m_currentInteractable).gameObject.GetComponent<FVRAlternateGrip>() != (Object)null)
			{
				sticky = true;
			}
		}

		private bool HandBelongsToThis(FVRViveHand hand)
		{
			if ((Object)(object)hand == (Object)null || (Object)(object)hand.m_currentInteractable == (Object)null)
			{
				return false;
			}
			if ((Object)(object)hand.m_currentInteractable == (Object)(object)Obj)
			{
				return true;
			}
			HandPoseItem componentInDirectChildren = this.GetComponentInDirectChildren<HandPoseItem>(hand.m_currentInteractable.GameObject.transform);
			return (Object)(object)componentInDirectChildren == (Object)(object)this;
		}

		private void UpdateOneHand(HandPose cur, HandPose idle, HandPose fore, HandPose fireStart, HandPose fireEnd, FVRViveHand hand, bool onForegrip)
		{
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			if (onForegrip && (Object)(object)fore != (Object)null)
			{
				CopyPose(cur, fore);
			}
			else if (hasTrigger && (Object)(object)fireStart != (Object)null && (Object)(object)fireEnd != (Object)null)
			{
				float triggerFloat = hand.Input.TriggerFloat;
				int num = Mathf.Min(cur.Fingers.Length, fireStart.Fingers.Length);
				for (int i = 0; i < num; i++)
				{
					if (!((Object)(object)cur.Fingers[i] == (Object)null) && !((Object)(object)fireStart.Fingers[i] == (Object)null) && !((Object)(object)fireEnd.Fingers[i] == (Object)null))
					{
						cur.Fingers[i].transform.rotation = EulerLerp(fireStart.Fingers[i].transform.eulerAngles, fireEnd.Fingers[i].transform.eulerAngles, triggerFloat);
						cur.Fingers[i].transform.position = Vector3.Lerp(fireStart.Fingers[i].transform.position, fireEnd.Fingers[i].transform.position, triggerFloat);
					}
				}
			}
			else
			{
				CopyPose(cur, idle);
			}
		}

		private bool IsHandHoldingThis(FVRViveHand hand)
		{
			if ((Object)(object)hand == (Object)null || (Object)(object)hand.m_currentInteractable == (Object)null)
			{
				return false;
			}
			HandPoseItem componentInDirectChildren = this.GetComponentInDirectChildren<HandPoseItem>(hand.m_currentInteractable.GameObject.transform);
			return (Object)(object)componentInDirectChildren == (Object)(object)this;
		}

		public static Quaternion EulerLerp(Vector3 fromEuler, Vector3 toEuler, float t)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			Quaternion val = Quaternion.Euler(fromEuler);
			Quaternion val2 = Quaternion.Euler(toEuler);
			if (Quaternion.Dot(val, val2) < 0f)
			{
				((Quaternion)(ref val2))..ctor(0f - val2.x, 0f - val2.y, 0f - val2.z, 0f - val2.w);
			}
			return Quaternion.Slerp(val, val2, Mathf.Clamp01(t));
		}

		public static Vector3 EulerLerpAngles(Vector3 fromEuler, Vector3 toEuler, float t)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0004: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			Quaternion val = EulerLerp(fromEuler, toEuler, t);
			return ((Quaternion)(ref val)).eulerAngles;
		}

		public static Quaternion EulerLerpUnclamped(Vector3 fromEuler, Vector3 toEuler, float t)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			Quaternion val = Quaternion.Euler(fromEuler);
			Quaternion val2 = Quaternion.Euler(toEuler);
			if (Quaternion.Dot(val, val2) < 0f)
			{
				((Quaternion)(ref val2))..ctor(0f - val2.x, 0f - val2.y, 0f - val2.z, 0f - val2.w);
			}
			return Quaternion.SlerpUnclamped(val, val2, t);
		}

		public T GetComponentInDirectChildren<T>(Transform transformtarg) where T : Component
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			foreach (Transform item in transformtarg)
			{
				Transform val = item;
				T component = ((Component)val).GetComponent<T>();
				if ((Object)(object)component != (Object)null)
				{
					return component;
				}
			}
			return (T)(object)null;
		}
	}
}
namespace JerryHand
{
	public class HandsFingerCol : MonoBehaviour
	{
		public HandsPalm HP;

		public Collider col;

		public bool isIndex;

		public bool isLeft;

		public bool isCol;

		public HingeJoint HJ;

		public JointMotor JMClose;

		public JointMotor JMOpen;

		public JointMotor JMIdle;

		public Vector3 startpos;

		public float motorSpeed;

		public float motorForce;

		public Collider[] cols;

		public Rigidbody thisRig;

		public HandsFingerCol nextfinger;

		public HandsFingerCol prevfinger;

		public bool isX;

		private void Start()
		{
		}

		private void Update()
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0478: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f66: Unknown result type (might be due to invalid IL or missing references)
			//IL_1236: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c28: Unknown result type (might be due to invalid IL or missing references)
			//IL_1566: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e74: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0584: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bfa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1962: Unknown result type (might be due to invalid IL or missing references)
			//IL_1882: Unknown result type (might be due to invalid IL or missing references)
			//IL_144c: Unknown result type (might be due to invalid IL or missing references)
			//IL_113d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05be: Unknown result type (might be due to invalid IL or missing references)
			//IL_043a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02af: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ac2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1608: Unknown result type (might be due to invalid IL or missing references)
			//IL_1326: Unknown result type (might be due to invalid IL or missing references)
			//IL_11a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a00: Unknown result type (might be due to invalid IL or missing references)
			//IL_075b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_199c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1768: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_107c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08da: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0635: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b39: Unknown result type (might be due to invalid IL or missing references)
			//IL_1642: Unknown result type (might be due to invalid IL or missing references)
			//IL_1528: Unknown result type (might be due to invalid IL or missing references)
			//IL_139d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a77: Unknown result type (might be due to invalid IL or missing references)
			//IL_069a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_17df: Unknown result type (might be due to invalid IL or missing references)
			//IL_1402: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0adc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0951: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a78: Unknown result type (might be due to invalid IL or missing references)
			//IL_1844: Unknown result type (might be due to invalid IL or missing references)
			//IL_16b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_171e: Unknown result type (might be due to invalid IL or missing references)
			if (isX)
			{
				((Component)this).gameObject.transform.localEulerAngles = new Vector3(((Component)this).gameObject.transform.localEulerAngles.x, 0f, 0f);
			}
			else if (!isX)
			{
				((Component)this).gameObject.transform.localEulerAngles = new Vector3(0f, 0f, ((Component)this).gameObject.transform.localEulerAngles.z);
			}
			((Component)this).gameObject.transform.localPosition = new Vector3(0f, 0f, 0f);
			((JointMotor)(ref JMClose)).force = motorForce;
			((JointMotor)(ref JMOpen)).force = motorForce;
			((JointMotor)(ref JMClose)).targetVelocity = motorSpeed;
			((JointMotor)(ref JMOpen)).targetVelocity = 0f - motorSpeed;
			((JointMotor)(ref JMIdle)).targetVelocity = 0f;
			((JointMotor)(ref JMIdle)).force = motorForce;
			thisRig.centerOfMass = new Vector3(0f, 0f, 0f);
			for (int i = 0; i < cols.Length; i++)
			{
				Physics.IgnoreCollision(col, cols[i], true);
			}
			if (isLeft)
			{
				if (!isIndex)
				{
					if (GM.CurrentMovementManager.Hands[0].Input.GripPressed || GM.CurrentMovementManager.Hands[0].Input.IsGrabbing)
					{
						if (!isCol)
						{
							if ((Object)(object)nextfinger != (Object)null)
							{
								if (nextfinger.isCol)
								{
									isCol = true;
									col.enabled = false;
									HJ.motor = JMIdle;
								}
								else if (!nextfinger.isCol)
								{
									if ((Object)(object)prevfinger == (Object)null)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if ((Object)(object)prevfinger != (Object)null)
									{
										if (prevfinger.isCol)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if (!prevfinger.isCol)
										{
											HJ.motor = JMIdle;
											col.enabled = false;
										}
									}
								}
							}
							else if ((Object)(object)nextfinger == (Object)null)
							{
								if ((Object)(object)prevfinger == (Object)null)
								{
									HJ.motor = JMClose;
									if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
									{
										col.enabled = true;
									}
									else
									{
										col.enabled = false;
									}
								}
								else if ((Object)(object)prevfinger != (Object)null)
								{
									if (prevfinger.isCol)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if (!prevfinger.isCol)
									{
										HJ.motor = JMIdle;
										col.enabled = false;
									}
								}
							}
						}
						else if (isCol)
						{
							col.enabled = false;
							HJ.motor = JMIdle;
						}
					}
					else if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed && !GM.CurrentMovementManager.Hands[0].Input.IsGrabbing)
					{
						isCol = false;
						HJ.motor = JMOpen;
						col.enabled = false;
					}
				}
				else if (isIndex)
				{
					if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
					{
						if ((Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<FVRFireArm>() == (Object)null)
						{
							if (!isCol)
							{
								if ((Object)(object)nextfinger != (Object)null)
								{
									if (nextfinger.isCol)
									{
										isCol = true;
										col.enabled = false;
										HJ.motor = JMIdle;
									}
									else if (!nextfinger.isCol)
									{
										if ((Object)(object)prevfinger == (Object)null)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if ((Object)(object)prevfinger != (Object)null)
										{
											if (prevfinger.isCol)
											{
												HJ.motor = JMClose;
												if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
												{
													col.enabled = true;
												}
												else
												{
													col.enabled = false;
												}
											}
											else if (!prevfinger.isCol)
											{
												HJ.motor = JMIdle;
												col.enabled = false;
											}
										}
									}
								}
								else if ((Object)(object)nextfinger == (Object)null)
								{
									if ((Object)(object)prevfinger == (Object)null)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if ((Object)(object)prevfinger != (Object)null)
									{
										if (prevfinger.isCol)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if (!prevfinger.isCol)
										{
											HJ.motor = JMIdle;
											col.enabled = false;
										}
									}
								}
							}
							else if (isCol)
							{
								col.enabled = false;
								HJ.motor = JMIdle;
							}
						}
						else if ((Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<FVRFireArm>() != (Object)null)
						{
							if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat >= 0.25f)
							{
								if (!isCol)
								{
									if ((Object)(object)nextfinger != (Object)null)
									{
										if (nextfinger.isCol)
										{
											isCol = true;
											col.enabled = false;
											HJ.motor = JMIdle;
										}
										else if (!nextfinger.isCol)
										{
											if ((Object)(object)prevfinger == (Object)null)
											{
												HJ.motor = JMClose;
												if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
												{
													col.enabled = true;
												}
												else
												{
													col.enabled = false;
												}
											}
											else if ((Object)(object)prevfinger != (Object)null)
											{
												if (prevfinger.isCol)
												{
													HJ.motor = JMClose;
													if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
													{
														col.enabled = true;
													}
													else
													{
														col.enabled = false;
													}
												}
												else if (!prevfinger.isCol)
												{
													HJ.motor = JMIdle;
													col.enabled = false;
												}
											}
										}
									}
									else if ((Object)(object)nextfinger == (Object)null)
									{
										if ((Object)(object)prevfinger == (Object)null)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if ((Object)(object)prevfinger != (Object)null)
										{
											if (prevfinger.isCol)
											{
												HJ.motor = JMClose;
												if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
												{
													col.enabled = true;
												}
												else
												{
													col.enabled = false;
												}
											}
											else if (!prevfinger.isCol)
											{
												HJ.motor = JMIdle;
												col.enabled = false;
											}
										}
									}
								}
								else if (isCol)
								{
									col.enabled = false;
									HJ.motor = JMIdle;
								}
							}
							else if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat < 0.25f)
							{
								col.enabled = false;
								isCol = false;
								HJ.motor = JMOpen;
							}
						}
					}
					if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable == (Object)null)
					{
						if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat >= 0.25f)
						{
							if (!isCol)
							{
								if ((Object)(object)nextfinger != (Object)null)
								{
									if (nextfinger.isCol)
									{
										isCol = true;
										col.enabled = false;
										HJ.motor = JMIdle;
									}
									else if (!nextfinger.isCol)
									{
										if ((Object)(object)prevfinger == (Object)null)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if ((Object)(object)prevfinger != (Object)null)
										{
											if (prevfinger.isCol)
											{
												HJ.motor = JMClose;
												if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
												{
													col.enabled = true;
												}
												else
												{
													col.enabled = false;
												}
											}
											else if (!prevfinger.isCol)
											{
												HJ.motor = JMIdle;
												col.enabled = false;
											}
										}
									}
								}
								else if ((Object)(object)nextfinger == (Object)null)
								{
									if ((Object)(object)prevfinger == (Object)null)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if ((Object)(object)prevfinger != (Object)null)
									{
										if (prevfinger.isCol)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if (!prevfinger.isCol)
										{
											HJ.motor = JMIdle;
											col.enabled = false;
										}
									}
								}
							}
							else if (isCol)
							{
								col.enabled = false;
								HJ.motor = JMIdle;
							}
						}
						else if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat < 0.25f)
						{
							col.enabled = false;
							isCol = false;
							HJ.motor = JMOpen;
						}
					}
				}
			}
			if (isLeft)
			{
				return;
			}
			if (!isIndex)
			{
				if (GM.CurrentMovementManager.Hands[1].Input.GripPressed || GM.CurrentMovementManager.Hands[1].Input.IsGrabbing)
				{
					if (!isCol)
					{
						if ((Object)(object)nextfinger != (Object)null)
						{
							if (nextfinger.isCol)
							{
								isCol = true;
								col.enabled = false;
								HJ.motor = JMIdle;
							}
							else
							{
								if (nextfinger.isCol)
								{
									return;
								}
								if ((Object)(object)prevfinger == (Object)null)
								{
									HJ.motor = JMClose;
									if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
									{
										col.enabled = true;
									}
									else
									{
										col.enabled = false;
									}
								}
								else
								{
									if (!((Object)(object)prevfinger != (Object)null))
									{
										return;
									}
									if (prevfinger.isCol)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if (!prevfinger.isCol)
									{
										HJ.motor = JMIdle;
										col.enabled = false;
									}
								}
							}
						}
						else
						{
							if (!((Object)(object)nextfinger == (Object)null))
							{
								return;
							}
							if ((Object)(object)prevfinger == (Object)null)
							{
								HJ.motor = JMClose;
								if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
								{
									col.enabled = true;
								}
								else
								{
									col.enabled = false;
								}
							}
							else
							{
								if (!((Object)(object)prevfinger != (Object)null))
								{
									return;
								}
								if (prevfinger.isCol)
								{
									HJ.motor = JMClose;
									if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
									{
										col.enabled = true;
									}
									else
									{
										col.enabled = false;
									}
								}
								else if (!prevfinger.isCol)
								{
									HJ.motor = JMIdle;
									col.enabled = false;
								}
							}
						}
					}
					else if (isCol)
					{
						col.enabled = false;
						HJ.motor = JMIdle;
					}
				}
				else if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed && !GM.CurrentMovementManager.Hands[1].Input.IsGrabbing)
				{
					isCol = false;
					HJ.motor = JMOpen;
					col.enabled = false;
				}
			}
			else
			{
				if (!isIndex)
				{
					return;
				}
				if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
				{
					if ((Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<FVRFireArm>() == (Object)null)
					{
						if (!isCol)
						{
							if ((Object)(object)nextfinger != (Object)null)
							{
								if (nextfinger.isCol)
								{
									isCol = true;
									col.enabled = false;
									HJ.motor = JMIdle;
								}
								else if (!nextfinger.isCol)
								{
									if ((Object)(object)prevfinger == (Object)null)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if ((Object)(object)prevfinger != (Object)null)
									{
										if (prevfinger.isCol)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if (!prevfinger.isCol)
										{
											HJ.motor = JMIdle;
											col.enabled = false;
										}
									}
								}
							}
							else if ((Object)(object)nextfinger == (Object)null)
							{
								if ((Object)(object)prevfinger == (Object)null)
								{
									HJ.motor = JMClose;
									if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
									{
										col.enabled = true;
									}
									else
									{
										col.enabled = false;
									}
								}
								else if ((Object)(object)prevfinger != (Object)null)
								{
									if (prevfinger.isCol)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if (!prevfinger.isCol)
									{
										HJ.motor = JMIdle;
										col.enabled = false;
									}
								}
							}
						}
						else if (isCol)
						{
							col.enabled = false;
							HJ.motor = JMIdle;
						}
					}
					else if ((Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<FVRFireArm>() != (Object)null)
					{
						if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat >= 0.25f)
						{
							if (!isCol)
							{
								if ((Object)(object)nextfinger != (Object)null)
								{
									if (nextfinger.isCol)
									{
										isCol = true;
										col.enabled = false;
										HJ.motor = JMIdle;
									}
									else if (!nextfinger.isCol)
									{
										if ((Object)(object)prevfinger == (Object)null)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if ((Object)(object)prevfinger != (Object)null)
										{
											if (prevfinger.isCol)
											{
												HJ.motor = JMClose;
												if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
												{
													col.enabled = true;
												}
												else
												{
													col.enabled = false;
												}
											}
											else if (!prevfinger.isCol)
											{
												HJ.motor = JMIdle;
												col.enabled = false;
											}
										}
									}
								}
								else if ((Object)(object)nextfinger == (Object)null)
								{
									if ((Object)(object)prevfinger == (Object)null)
									{
										HJ.motor = JMClose;
										if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
										{
											col.enabled = true;
										}
										else
										{
											col.enabled = false;
										}
									}
									else if ((Object)(object)prevfinger != (Object)null)
									{
										if (prevfinger.isCol)
										{
											HJ.motor = JMClose;
											if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
											{
												col.enabled = true;
											}
											else
											{
												col.enabled = false;
											}
										}
										else if (!prevfinger.isCol)
										{
											HJ.motor = JMIdle;
											col.enabled = false;
										}
									}
								}
							}
							else if (isCol)
							{
								col.enabled = false;
								HJ.motor = JMIdle;
							}
						}
						else if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat < 0.25f)
						{
							col.enabled = false;
							isCol = false;
							HJ.motor = JMOpen;
						}
					}
				}
				if (!((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable == (Object)null))
				{
					return;
				}
				if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat >= 0.25f)
				{
					if (!isCol)
					{
						if ((Object)(object)nextfinger != (Object)null)
						{
							if (nextfinger.isCol)
							{
								isCol = true;
								col.enabled = false;
								HJ.motor = JMIdle;
							}
							else
							{
								if (nextfinger.isCol)
								{
									return;
								}
								if ((Object)(object)prevfinger == (Object)null)
								{
									HJ.motor = JMClose;
									if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
									{
										col.enabled = true;
									}
									else
									{
										col.enabled = false;
									}
								}
								else
								{
									if (!((Object)(object)prevfinger != (Object)null))
									{
										return;
									}
									if (prevfinger.isCol)
									{
										HJ.motor = JMClose;
										if ((Obj