namespace TeslaConsole;

public static class Tuple
{
	public static Tuple<T1, T2> Create<T1, T2>(T1 a, T2 b)
	{
		return new Tuple<T1, T2>(a, b);
	}

	public static Tuple<T1, T2, T3> Create<T1, T2, T3>(T1 a, T2 b, T3 c)
	{
		return new Tuple<T1, T2, T3>(a, b, c);
	}

	public static Tuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 a, T2 b, T3 c, T4 d)
	{
		return new Tuple<T1, T2, T3, T4>(a, b, c, d);
	}
}
public class Tuple<T1, T2>
{
	private T1 mA;

	private T2 mB;

	public T1 A
	{
		get
		{
			return mA;
		}
		set
		{
			mA = value;
		}
	}

	public T2 B
	{
		get
		{
			return mB;
		}
		set
		{
			mB = value;
		}
	}

	public Tuple(T1 a, T2 b)
	{
		mA = a;
		mB = b;
	}
}
public class Tuple<T1, T2, T3>
{
	private T1 mA;

	private T2 mB;

	private T3 mC;

	public T1 A
	{
		get
		{
			return mA;
		}
		set
		{
			mA = value;
		}
	}

	public T2 B
	{
		get
		{
			return mB;
		}
		set
		{
			mB = value;
		}
	}

	public T3 C
	{
		get
		{
			return mC;
		}
		set
		{
			mC = value;
		}
	}

	public Tuple(T1 a, T2 b, T3 c)
	{
		mA = a;
		mB = b;
		mC = c;
	}
}
public class Tuple<T1, T2, T3, T4>
{
	private T1 mA;

	private T2 mB;

	private T3 mC;

	private T4 mD;

	public T1 A
	{
		get
		{
			return mA;
		}
		set
		{
			mA = value;
		}
	}

	public T2 B
	{
		get
		{
			return mB;
		}
		set
		{
			mB = value;
		}
	}

	public T3 C
	{
		get
		{
			return mC;
		}
		set
		{
			mC = value;
		}
	}

	public T4 D
	{
		get
		{
			return mD;
		}
		set
		{
			mD = value;
		}
	}

	public Tuple(T1 a, T2 b, T3 c, T4 d)
	{
		mA = a;
		mB = b;
		mC = c;
		mD = d;
	}
}
