using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion
{
	// Token: 0x020003F8 RID: 1016
	[Token(Token = "0x20003F8")]
	public abstract class Singleton<T> : MonoBehaviour where T : Singleton<T>
	{
		// Token: 0x17000218 RID: 536
		// (get) Token: 0x0600259B RID: 9627 RVA: 0x000574B4 File Offset: 0x000556B4
		[Token(Token = "0x17000218")]
		public static T instance
		{
			[Token(Token = "0x600259B")]
			[Address(RVA = "0xA217E0", Offset = "0xA207E0", VA = "0x180A217E0")]
			get
			{
				return Singleton.sInstance;
			}
		}

		// Token: 0x0600259C RID: 9628 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600259C")]
		[Address(RVA = "0xA21560", Offset = "0xA20560", VA = "0x180A21560", Slot = "4")]
		protected virtual void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600259D RID: 9629 RVA: 0x000574C8 File Offset: 0x000556C8
		[Token(Token = "0x600259D")]
		[Address(RVA = "0x836FE0", Offset = "0x835FE0", VA = "0x180836FE0")]
		protected Singleton()
		{
		}

		// Token: 0x0600259E RID: 9630 RVA: 0x000020D3 File Offset: 0x000002D3
		// Note: this type is marked as 'beforefieldinit'.
		[Token(Token = "0x600259E")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0")]
		static Singleton()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04002EF5 RID: 12021
		[Token(Token = "0x4002EF5")]
		private static T sInstance;
	}
}
