local N=math.rad(-80)local e=math.rad(80)local M=math.rad(30)local K=math.rad(-15)local s=2.1 local V=.5 local d=math.rad(15)local n=Vector2.new(math.rad(15),0)local F=Vector2.new(math.rad(45),0)local H=.1 local c=.4 local v=Vector2.new(0,0)local i=Vector3.new(0,0,0)local A=Vector2.new(.00945*math.pi,.003375*math.pi)local a=Vector2.new(.002*math.pi,.0015*math.pi)local W=Vector3.new(0,5,0)local y=Vector3.new(0,4,0)local b=Vector3.new(0,1.5,0)local q=Vector3.new(0,1.5,0)local Z=Vector3.new(0,2,0)local m=Vector3.new(2,2,1)local B=0 local D=10 local J=20 local I=20 local G=.5 local l=math.abs local f=math.sign local g do local N,e=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\067\097\109\101\114\097\084\111\103\103\108\101")end)g=N and e end local Q do local N,e=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\068\111\110\116\065\100\106\117\115\116\083\101\110\115\105\116\118\105\116\121\070\111\114\080\111\114\116\114\097\105\116")end)Q=N and e end local r=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\116\105\108\115"))local X=require(script.Parent:WaitForChild("\090\111\111\109\067\111\110\116\114\111\108\108\101\114"))local U=require(script.Parent:WaitForChild("\067\097\109\101\114\097\084\111\103\103\108\101\083\116\097\116\101\067\111\110\116\114\111\108\108\101\114"))local R=require(script.Parent:WaitForChild("\067\097\109\101\114\097\073\110\112\117\116"))local o=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\073"))

local MIN_Y = math.rad(-80)
local MAX_Y = math.rad(80)

local TOUCH_ADJUST_AREA_UP = math.rad(30)
local TOUCH_ADJUST_AREA_DOWN = math.rad(-15)

local TOUCH_SENSITIVTY_ADJUST_MAX_Y = 2.1
local TOUCH_SENSITIVTY_ADJUST_MIN_Y = 0.5

local VR_ANGLE = math.rad(15)
local VR_LOW_INTENSITY_ROTATION = Vector2.new(math.rad(15), 0)
local VR_HIGH_INTENSITY_ROTATION = Vector2.new(math.rad(45), 0)
local VR_LOW_INTENSITY_REPEAT = 0.1
local VR_HIGH_INTENSITY_REPEAT = 0.4

local ZERO_VECTOR2 = Vector2.new(0,0)
local ZERO_VECTOR3 = Vector3.new(0,0,0)

local TOUCH_SENSITIVTY = Vector2.new(0.00945 * math.pi, 0.003375 * math.pi)
local MOUSE_SENSITIVITY = Vector2.new( 0.002 * math.pi, 0.0015 * math.pi )

local SEAT_OFFSET = Vector3.new(0,5,0)
local VR_SEAT_OFFSET = Vector3.new(0,4,0)
local HEAD_OFFSET = Vector3.new(0,1.5,0)
local R15_HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET_NO_SCALING = Vector3.new(0, 2, 0)
local HUMANOID_ROOT_PART_SIZE = Vector3.new(2, 2, 1)

local GAMEPAD_ZOOM_STEP_1 = 0
local GAMEPAD_ZOOM_STEP_2 = 10
local GAMEPAD_ZOOM_STEP_3 = 20

local PAN_SENSITIVITY = 20
local ZOOM_SENSITIVITY_CURVATURE = 0.5

local abs = math.abs
local sign = math.sign

local FFlagUserCameraToggle do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
	end)
	FFlagUserCameraToggle = success and result
end

local FFlagUserDontAdjustSensitvityForPortrait do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserDontAdjustSensitvityForPortrait")
	end)
	FFlagUserDontAdjustSensitvityForPortrait = success and result
end

local Util = require(script.Parent:WaitForChild("CameraUtils"))
local ZoomController = require(script.Parent:WaitForChild("ZoomController"))
local CameraToggleStateController = require(script.Parent:WaitForChild("CameraToggleStateController"))
local CameraInput = require(script.Parent:WaitForChild("CameraInput"))
local CameraUI = require(script.Parent:WaitForChild("CameraUI"))
