Загрузка данных




slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
slot_0_2_0 = {}
slot_0_3_0 = 0
slot_0_4_0 = 1

function slot_0_5_0()
	local var_1_0 = gui.input:cursor()
	local var_1_1 = draw.scale or 1

	if var_1_1 == 0 then
		var_1_1 = 1
	end

	return {
		x = var_1_0.x / var_1_1,
		y = var_1_0.y / var_1_1
	}
end

function slot_0_6_0()
	local var_2_0 = gui.input:cursor()

	return {
		x = var_2_0.x,
		y = var_2_0.y
	}
end

function slot_0_7_0()
	local var_3_0 = gui.input:cursor()

	return {
		x = var_3_0.x * slot_0_4_0,
		y = var_3_0.y * slot_0_4_0
	}
end

wnd = gui.GetMainWindow()

tab = wnd:AddTab(
    "quantum_lua",
    draw.textures.gui_icon_bug,
    "Quantum.lua",
    gui.TabLayoutMode.SUBTABS
)

subtab_visuals = tab:AddTab(
    "quantum_visuals",
    "Visuals",
    gui.TabLayoutMode.DEFAULT,
    true
)

subtab_misc = tab:AddTab(
    "quantum_misc",
    "Misc",
    gui.TabLayoutMode.DEFAULT,
    false
)

subtab_rage = tab:AddTab(
    "quantum_rage",
    "Rage",
    gui.TabLayoutMode.DEFAULT,
    false
)

subtab_configs = tab:AddTab(
    "quantum_configs",
    "Configs",
    gui.TabLayoutMode.DEFAULT,
    false
)

visuals_group = gui.Group(
    "quantum_visuals_group",
    "Visuals",
    250,
    gui.GroupWidthMode.REDUCED
)

misc_group = gui.Group(
    "quantum_misc_group",
    "Misc",
    250,
    gui.GroupWidthMode.REDUCED
)

subtab_visuals:Add(visuals_group)
subtab_misc:Add(misc_group)

slot_0_8_0 = visuals_group
slot_0_9_0 = misc_group
slot_0_10_0 = gui.checkbox(gui.control_id("Enable Indicators"))
slot_0_11_0 = gui.combo_box(gui.control_id("indicator_controls"))
slot_0_11_0.allow_multiple = true
slot_0_12_0 = {
	{
		"Min Damage",
		"rage>aimbot>general>min damage",
		true
	},
	{
		"Hit Chance",
		"rage>aimbot>general>hitchance",
		true
	},
	{
		"Pointscale",
		"rage>aimbot>general>pointscale",
		true
	},
	{
		"BAIM",
		"rage>aimbot>general>force bodyaim"
	},
	{
		"HEAD",
		"rage>aimbot>general>headshot only"
	},
	{
		"NS",
		"rage>aimbot>nospread"
	},
	{
		"HIDE",
		"rage>anti-aim>angles>hide shot"
	},
	{
		"DT",
		"rage>aimbot>doubletap"
	},
	{
		"JB",
		"misc>movement>jumpbug"
	},
	{
		"FORCE",
		"rage>aimbot>general>force shoot"
	},
	{
		"Air",
		"air_custom"
	},
	{
		"WALK",
		"slowwalk_custom"
	},
	{
		"Slow",
		"slow_custom"
	},
	{
		"Bomb",
		"bomb_custom"
	},
	{
		"Duck Peek",
		"misc>movement>duck peek assist"
	}
}

for iter_0_0, iter_0_1 in ipairs(slot_0_12_0) do
	slot_0_11_0:add(gui.selectable(gui.control_id(iter_0_1[1] .. "_list_select"), iter_0_1[1]))
end

slot_0_13_0 = gui.checkbox(gui.control_id("Enable Watermark"))
slot_0_14_0 = gui.checkbox(gui.control_id("Enable Spectator List"))
slot_0_15_0 = gui.checkbox(gui.control_id("Enable Hitmarker"))
slot_0_16_0 = gui.checkbox(gui.control_id("Enable DT Knife Bot"))
slot_0_17_0 = gui.combo_box(gui.control_id("watermark_elements"))
slot_0_17_0.allow_multiple = true
slot_0_18_0 = {
	{
		"Logo",
		true
	},
	{
		"FPS",
		true
	},
	{
		"Ping",
		true
	},
	{
		"Network Lag",
		true
	},
	{
		"Clock",
		true
	}
}
slot_0_19_0 = 0

for iter_0_2, iter_0_3 in ipairs(slot_0_18_0) do
	slot_0_25_2 = gui.selectable(gui.control_id(iter_0_3[1] .. "_watermark_select"), iter_0_3[1])

	slot_0_17_0:add(slot_0_25_2)

	if iter_0_3[2] then
		slot_0_19_0 = slot_0_19_0 + 2^(iter_0_2 - 1)
	end
end

slot_0_20_0 = {}

for iter_0_4, iter_0_5 in ipairs(slot_0_18_0) do
	slot_0_20_0[iter_0_5[1]] = 2^(iter_0_4 - 1)
end

slot_0_21_0 = gui.combo_box(gui.control_id("Clock Timezone"))
slot_0_21_0.allow_multiple = false
slot_0_22_0 = {}
slot_0_23_0 = {}
slot_0_24_0 = {}

for iter_0_6 = -12, 14 do
	slot_0_29_2 = iter_0_6 == 0 and "UTC+0" or iter_0_6 > 0 and "UTC+" .. iter_0_6 or "UTC" .. iter_0_6

	table.insert(slot_0_22_0, slot_0_29_2)
	table.insert(slot_0_23_0, iter_0_6 * 60)
end

for iter_0_7, iter_0_8 in ipairs(slot_0_22_0) do
	slot_0_30_1 = gui.selectable(gui.control_id("clock_tz_" .. iter_0_8), iter_0_8)

	slot_0_21_0:add(slot_0_30_1)

	slot_0_24_0[iter_0_8] = 2^(iter_0_7 - 1)
end

slot_0_25_0 = slot_0_24_0["UTC+3"] or 1
slot_0_26_0 = gui.combo_box(gui.control_id("DPI Scale"))
slot_0_26_0.allow_multiple = false
slot_0_27_0 = {
	"Automatic",
	50,
	75,
	100,
	125,
	150,
	200
}
slot_0_28_0 = {}

for iter_0_9, iter_0_10 in ipairs(slot_0_27_0) do
	slot_0_34_1 = tostring(iter_0_10)
	slot_0_35_1 = gui.selectable(gui.control_id("dpi_scale_" .. slot_0_34_1), slot_0_34_1)

	slot_0_26_0:add(slot_0_35_1)

	slot_0_28_0[iter_0_10] = 2^(iter_0_9 - 1)
end

slot_0_29_0 = slot_0_28_0.Automatic or 1
slot_0_30_0 = {}
slot_0_31_0 = {}
slot_0_32_0 = nil
slot_0_33_0 = nil
slot_0_34_0 = nil
slot_0_35_0 = nil
slot_0_36_0 = nil
slot_0_37_0 = nil
slot_0_38_0 = 270
slot_0_39_0 = 20

function slot_0_40_0()
	local var_4_0 = slot_0_26_0:get_value()
	local var_4_1 = var_4_0 and var_4_0:get()

	if var_4_1 and var_4_1.get_raw then
		var_4_1 = var_4_1:get_raw()
	end

	if type(var_4_1) ~= "number" then
		var_4_1 = slot_0_29_0
	end

	local function var_4_2()
		local var_5_0, var_5_1 = game.engine:get_screen_size()
		local var_5_2 = math.max(var_5_0, var_5_1)

		if var_5_2 >= 3840 then
			return 2
		elseif var_5_2 >= 2560 then
			return 1.5
		elseif var_5_2 >= 2048 then
			return 1.25
		elseif var_5_2 >= 1600 then
			return 1
		else
			return 0.75
		end
	end

	for iter_4_0, iter_4_1 in ipairs(slot_0_27_0) do
		if bit.band(var_4_1, 2^(iter_4_0 - 1)) ~= 0 then
			if type(iter_4_1) == "string" then
				return var_4_2()
			else
				return iter_4_1 / 100
			end
		end
	end

	return 1
end

function slot_0_41_0(arg_6_0)
	return arg_6_0 * slot_0_4_0
end

function slot_0_42_0()
	local var_7_0 = slot_0_40_0()

	if var_7_0 ~= slot_0_4_0 then
		slot_0_4_0 = var_7_0

		if slot_0_32_0 then
			slot_0_32_0()
		end

		if slot_0_33_0 then
			slot_0_33_0()
		end

		slot_0_30_0 = {}
		slot_0_31_0 = {}

		if slot_0_34_0 then
			slot_0_34_0.thickness = slot_0_41_0(3)
		end

		if slot_0_35_0 then
			slot_0_35_0.thickness = slot_0_34_0.thickness
		end

		if slot_0_36_0 then
			slot_0_36_0.thickness = slot_0_34_0.thickness
		end

		if slot_0_37_0 then
			slot_0_37_0.thickness = slot_0_34_0.thickness
		end
	end
end

slot_0_43_0 = gui.checkbox(gui.control_id("Enable Hitlogs"))
slot_0_44_0 = gui.color_picker(gui.control_id("Accent Color"))
slot_0_45_0 = gui.color_picker(gui.control_id("Indicator Text Color"))
slot_0_46_0 = gui.color_picker(gui.control_id("Indicator Background Color"))
slot_0_47_0 = gui.checkbox(gui.control_id("MOLLYTIME"))
slot_0_48_0 = gui.checkbox(gui.control_id("SMOKETIME"))
slot_0_49_0 = gui.checkbox(gui.control_id("HEGRENADETIME"))
slot_0_50_0 = gui.slider(gui.control_id("TIMEOPACITY"), 50, 255, 1)
slot_0_51_0 = gui.slider(gui.control_id("HITMARKERDURATION"), 1, 10)
slot_0_52_0 = 0

slot_0_47_0:set_value(true)
slot_0_48_0:set_value(true)
slot_0_49_0:set_value(true)
slot_0_14_0:set_value(true)
slot_0_15_0:set_value(true)
slot_0_50_0:get_value():set(255)
slot_0_51_0:get_value():set(1)
slot_0_44_0:get_value():set(draw.color(195, 240, 29))
slot_0_45_0:get_value():set(draw.color(255, 255, 255, 255))
slot_0_46_0:get_value():set(draw.color(25, 25, 25, 120))

slot_0_53_0 = gui.MakeControl("Molotov/Smoke/HE Time", slot_0_48_0)
slot_0_54_0 = gui.MakeControl("Timer Max. Opacity", slot_0_50_0)

slot_0_53_0:add(slot_0_47_0)
slot_0_53_0:add(slot_0_49_0)
misc_group:Add(slot_0_53_0)
misc_group:Add(slot_0_54_0)
misc_group:Add(gui.MakeControl("Spectator List", slot_0_14_0))
misc_group:Add(gui.MakeControl("Hitmarker", slot_0_15_0))
misc_group:Add(gui.MakeControl("Hitmarker Duration", slot_0_51_0))
misc_group:Add(gui.MakeControl("DT Knife Bot", slot_0_16_0))
-- misc_group:Reset()
slot_0_8_0:add(gui.MakeControl("DPI Scale", slot_0_26_0))
slot_0_8_0:add(gui.MakeControl("Override Color", slot_0_44_0))

slot_0_55_0 = gui.MakeControl("Indicator", slot_0_10_0)
cbx_clantag = gui.ComboBox("quantum_clantag")

cbx_clantag:Add(gui.Selectable("off", "Off"))
cbx_clantag:Add(gui.Selectable("pnd", "PND"))

misc_group:Add(
    gui.MakeControl(
        "Clantag",
        cbx_clantag
    )
)	

slot_0_55_0:add(slot_0_11_0)
slot_0_8_0:add(slot_0_55_0)

slot_0_56_0 = gui.MakeControl("Indicator Color", slot_0_46_0)

slot_0_56_0:add(slot_0_45_0)
slot_0_8_0:add(slot_0_56_0)

slot_0_57_0 = gui.MakeControl("Watermark", slot_0_13_0)

slot_0_57_0:add(slot_0_17_0)
slot_0_8_0:add(slot_0_57_0)
slot_0_8_0:add(gui.MakeControl("Clock Timezone", slot_0_21_0))
slot_0_8_0:add(gui.MakeControl("Hitlog", slot_0_43_0))
-- visuals_group:Reset()

slot_0_58_0 = {
	GENERAL = "rage>weapon>general>weapon>mindamage",
	[weapon_id.deagle] = "rage>weapon>Desert Eagle>weapon>mindamage",
	[weapon_id.elite] = "rage>weapon>Dual Berettas>weapon>mindamage",
	[weapon_id.fiveseven] = "rage>weapon>Five-SeveN>weapon>mindamage",
	[weapon_id.glock] = "rage>weapon>Glock-18>weapon>mindamage",
	[weapon_id.ak47] = "rage>weapon>AK-47>weapon>mindamage",
	[weapon_id.aug] = "rage>weapon>AUG>weapon>mindamage",
	[weapon_id.awp] = "rage>weapon>AWP>weapon>mindamage",
	[weapon_id.famas] = "rage>weapon>FAMAS>weapon>mindamage",
	[weapon_id.g3sg1] = "rage>weapon>G3SG1>weapon>mindamage",
	[weapon_id.galilar] = "rage>weapon>Galil AR>weapon>mindamage",
	[weapon_id.m249] = "rage>weapon>M249>weapon>mindamage",
	[weapon_id.m4a1] = "rage>weapon>M4A4>weapon>mindamage",
	[weapon_id.mac10] = "rage>weapon>MAC-10>weapon>mindamage",
	[weapon_id.p90] = "rage>weapon>P90>weapon>mindamage",
	[weapon_id.mp5sd] = "rage>weapon>MP5-SD>weapon>mindamage",
	[weapon_id.ump45] = "rage>weapon>UMP-45>weapon>mindamage",
	[weapon_id.xm1014] = "rage>weapon>XM1014>weapon>mindamage",
	[weapon_id.bizon] = "rage>weapon>PP Bizon>weapon>mindamage",
	[weapon_id.mag7] = "rage>weapon>MAG-7>weapon>mindamage",
	[weapon_id.negev] = "rage>weapon>Negev>weapon>mindamage",
	[weapon_id.sawedoff] = "rage>weapon>Sawed Off>weapon>mindamage",
	[weapon_id.tec9] = "rage>weapon>Tec-9>weapon>mindamage",
	[weapon_id.hkp2000] = "rage>weapon>P2000>weapon>mindamage",
	[weapon_id.mp7] = "rage>weapon>MP7>weapon>mindamage",
	[weapon_id.mp9] = "rage>weapon>MP9>weapon>mindamage",
	[weapon_id.nova] = "rage>weapon>Nova>weapon>mindamage",
	[weapon_id.p250] = "rage>weapon>P250>weapon>mindamage",
	[weapon_id.scar20] = "rage>weapon>SCAR-20>weapon>mindamage",
	[weapon_id.sg556] = "rage>weapon>SG 553>weapon>mindamage",
	[weapon_id.ssg08] = "rage>weapon>SSG-08>weapon>mindamage",
	[weapon_id.m4a1_silencer] = "rage>weapon>M4A1-S>weapon>mindamage",
	[weapon_id.usp_silencer] = "rage>weapon>USP-S>weapon>mindamage",
	[weapon_id.cz75a] = "rage>weapon>CZ-75 Auto>weapon>mindamage",
	[weapon_id.revolver] = "rage>weapon>R8 Revolver>weapon>mindamage",
	GROUPS = {
		PISTOLS = {
			path = "rage>weapon>Pistols>weapon>mindamage",
			weapons = {
				[weapon_id.glock] = true,
				[weapon_id.p250] = true,
				[weapon_id.fiveseven] = true,
				[weapon_id.tec9] = true,
				[weapon_id.hkp2000] = true,
				[weapon_id.usp_silencer] = true,
				[weapon_id.cz75a] = true
			}
		},
		HEAVY_PISTOLS = {
			path = "rage>weapon>Heavy Pistols>weapon>mindamage",
			weapons = {
				[weapon_id.deagle] = true,
				[weapon_id.revolver] = true
			}
		},
		SMGS = {
			path = "rage>weapon>SMGs>weapon>mindamage",
			weapons = {
				[weapon_id.mac10] = true,
				[weapon_id.mp7] = true,
				[weapon_id.mp9] = true,
				[weapon_id.mp5sd] = true,
				[weapon_id.ump45] = true,
				[weapon_id.p90] = true,
				[weapon_id.bizon] = true
			}
		},
		RIFLES = {
			path = "rage>weapon>Rifles>weapon>mindamage",
			weapons = {
				[weapon_id.ak47] = true,
				[weapon_id.m4a1] = true,
				[weapon_id.m4a1_silencer] = true,
				[weapon_id.famas] = true,
				[weapon_id.galilar] = true,
				[weapon_id.aug] = true,
				[weapon_id.sg556] = true
			}
		},
		HEAVY = {
			path = "rage>weapon>Heavy>weapon>mindamage",
			weapons = {
				[weapon_id.nova] = true,
				[weapon_id.xm1014] = true,
				[weapon_id.sawedoff] = true,
				[weapon_id.mag7] = true,
				[weapon_id.m249] = true,
				[weapon_id.negev] = true
			}
		},
		AUTO_SNIPERS = {
			path = "rage>weapon>Auto Snipers>weapon>mindamage",
			weapons = {
				[weapon_id.g3sg1] = true,
				[weapon_id.scar20] = true
			}
		},
		BOLT_SNIPERS = {
			path = "rage>weapon>Bolt Snipers>weapon>mindamage",
			weapons = {
				[weapon_id.awp] = true,
				[weapon_id.ssg08] = true
			}
		}
	}
}
slot_0_59_0 = {
	[weapon_id.knife] = true,
	[weapon_id.knife_t] = true,
	[weapon_id.knife_bayonet] = true,
	[weapon_id.knife_css] = true,
	[weapon_id.knife_flip] = true,
	[weapon_id.knife_gut] = true,
	[weapon_id.knife_karambit] = true,
	[weapon_id.knife_m9bayonet] = true,
	[weapon_id.knife_tactical] = true,
	[weapon_id.knife_falchion] = true,
	[weapon_id.knife_survival_bowie] = true,
	[weapon_id.knife_butterfly] = true,
	[weapon_id.knife_push] = true,
	[weapon_id.knife_cord] = true,
	[weapon_id.knife_canis] = true,
	[weapon_id.knife_ursus] = true,
	[weapon_id.knife_gypsy_jackknife] = true,
	[weapon_id.knife_outdoor] = true,
	[weapon_id.knife_stiletto] = true,
	[weapon_id.knife_widowmaker] = true,
	[weapon_id.knife_skeleton] = true,
	[weapon_id.knife_kukri] = true
}
slot_0_60_0 = {
	[weapon_id.taser] = true,
	[weapon_id.hegrenade] = true,
	[weapon_id.flashbang] = true,
	[weapon_id.smokegrenade] = true,
	[weapon_id.molotov] = true,
	[weapon_id.incgrenade] = true,
	[weapon_id.decoy] = true,
	[weapon_id.c4] = true
}

for iter_0_11, iter_0_12 in pairs(slot_0_59_0) do
	slot_0_60_0[iter_0_11] = true
end

function slot_0_61_0(arg_8_0)
	return slot_0_60_0[arg_8_0] or false
end

function slot_0_62_0(arg_9_0)
	return slot_0_59_0[arg_9_0] or false
end

function slot_0_63_0(arg_10_0)
	local var_10_0 = slot_0_58_0[arg_10_0]

	if var_10_0 and gui.ctx:find(var_10_0) then
		return var_10_0
	end

	for iter_10_0, iter_10_1 in pairs(slot_0_58_0.GROUPS or {}) do
		if iter_10_1.weapons and iter_10_1.weapons[arg_10_0] and gui.ctx:find(iter_10_1.path) then
			return iter_10_1.path
		end
	end

	return slot_0_58_0.GENERAL
end

function slot_0_64_0(arg_11_0)
	return arg_11_0:gsub("mindamage", "hitchance")
end

function slot_0_65_0(arg_12_0)
	return arg_12_0:gsub("mindamage", "pointscale")
end

function slot_0_66_0(arg_13_0)
	if not arg_13_0 or not arg_13_0.get_value then
		return false
	end

	local var_13_0 = arg_13_0:get_value()

	if not var_13_0 then
		return false
	end

	if var_13_0.get_hotkey_state then
		return var_13_0:get_hotkey_state()
	end

	if var_13_0.get then
		local var_13_1 = var_13_0:get()

		if type(var_13_1) == "boolean" then
			return var_13_1
		end
	end

	return false
end

slot_0_67_0 = {}

for iter_0_13, iter_0_14 in ipairs(slot_0_12_0) do
	slot_0_67_0[iter_0_14[1]] = {
		y_offset = 20,
		alpha = 0,
		time = 0,
		active = false
	}
end

slot_0_68_0 = {}
slot_0_69_0 = {}
slot_0_70_0 = {}
slot_0_71_0 = {}

for iter_0_15, iter_0_16 in ipairs(slot_0_12_0) do
	slot_0_68_0[iter_0_16[1]] = 2^(iter_0_15 - 1)
end

for iter_0_17, iter_0_18 in ipairs(slot_0_12_0) do
	slot_0_68_0[iter_0_18[1]] = 2^(iter_0_17 - 1)
	slot_0_69_0[iter_0_18[1]] = iter_0_18[2]
end

function slot_0_72_0(arg_14_0)
	if not arg_14_0 or arg_14_0 == "" then
		return nil
	end

	local var_14_0 = slot_0_70_0[arg_14_0]

	if var_14_0 then
		return var_14_0
	end

	local var_14_1 = game.global_vars.real_time
	local var_14_2 = slot_0_71_0[arg_14_0]

	if not var_14_2 or var_14_1 - var_14_2 >= 1 then
		slot_0_71_0[arg_14_0] = var_14_1

		local var_14_3 = gui.ctx:find(arg_14_0)

		if var_14_3 then
			slot_0_70_0[arg_14_0] = var_14_3

			return var_14_3
		end
	end

	return nil
end

slot_0_34_0 = {
	radius = 10,
	thickness = 3,
	segments = 36,
	grow_duration = 0.7,
	color = draw.color(255, 255, 255, 255),
	start_angle = -math.pi / 2
}
slot_0_35_0 = {
	completed_once = false,
	last_active_state = false,
	radius = slot_0_34_0.radius,
	thickness = slot_0_34_0.thickness,
	color = slot_0_34_0.color,
	segments = slot_0_34_0.segments,
	grow_duration = slot_0_34_0.grow_duration,
	start_angle = slot_0_34_0.start_angle
}
slot_0_36_0 = {
	completed_once = false,
	last_active_state = false,
	radius = slot_0_34_0.radius,
	thickness = slot_0_34_0.thickness,
	color = slot_0_34_0.color,
	segments = slot_0_34_0.segments,
	grow_duration = slot_0_34_0.grow_duration,
	start_angle = slot_0_34_0.start_angle
}
slot_0_37_0 = {
	completed_once = false,
	last_active_state = false,
	radius = slot_0_34_0.radius,
	thickness = slot_0_34_0.thickness,
	color = slot_0_34_0.color,
	segments = slot_0_34_0.segments,
	grow_duration = slot_0_34_0.grow_duration,
	start_angle = slot_0_34_0.start_angle
}

function slot_0_73_0(arg_15_0, arg_15_1, arg_15_2, arg_15_3, arg_15_4, arg_15_5, arg_15_6)
	local var_15_0 = arg_15_1 + arg_15_3 / 2
	local var_15_1 = arg_15_2 + arg_15_3 / 2
	local var_15_2 = arg_15_3 / 2 - 1
	local var_15_3 = arg_15_0.color:get_r()
	local var_15_4 = arg_15_0.color:get_g()
	local var_15_5 = arg_15_0.color:get_b()
	local var_15_6

	if arg_15_6 then
		var_15_6 = draw.color(var_15_3, var_15_4, var_15_5, arg_15_4 * 0.3)
	else
		var_15_6 = draw.color(var_15_3, var_15_4, var_15_5, arg_15_4)
	end

	local var_15_7 = 2 * math.pi * arg_15_5
	local var_15_8 = math.floor(arg_15_0.segments * arg_15_5)

	if var_15_8 > 0 then
		local var_15_9 = var_15_7 / var_15_8
		local var_15_10
		local var_15_11

		for iter_15_0 = 0, var_15_8 do
			local var_15_12 = arg_15_0.start_angle + iter_15_0 * var_15_9
			local var_15_13 = var_15_0 + math.cos(var_15_12) * var_15_2
			local var_15_14 = var_15_1 + math.sin(var_15_12) * var_15_2

			if iter_15_0 > 0 then
				draw.surface:add_line(draw.vec2(var_15_10, var_15_11), draw.vec2(var_15_13, var_15_14), var_15_6, arg_15_0.thickness)
			end

			var_15_10 = var_15_13
			var_15_11 = var_15_14
		end
	end
end

function slot_0_74_0(arg_16_0, arg_16_1, arg_16_2, arg_16_3)
	if not slot_0_35_0.start_time then
		slot_0_35_0.start_time = game.global_vars.real_time
		slot_0_35_0.completed_once = false
	end

	local var_16_0 = game.global_vars.real_time - slot_0_35_0.start_time
	local var_16_1 = math.min(var_16_0 / slot_0_35_0.grow_duration, 1)

	slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, 1, true)

	if var_16_1 < 1 then
		slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, var_16_1, false)
	else
		slot_0_35_0.completed_once = true

		slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, 1, false)
	end
end

function slot_0_75_0(arg_17_0, arg_17_1, arg_17_2, arg_17_3, arg_17_4)
	slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, 1, true)

	if arg_17_4 < 1 then
		slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, arg_17_4, false)
	else
		slot_0_36_0.completed_once = true

		slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, 1, false)
	end
end

function slot_0_76_0(arg_18_0, arg_18_1, arg_18_2, arg_18_3, arg_18_4)
	slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, 1, true)

	if arg_18_4 < 1 then
		slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, arg_18_4, false)
	else
		slot_0_37_0.completed_once = true

		slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, 1, false)
	end
end

slot_0_30_0 = slot_0_30_0 or {}
slot_0_77_0 = ws.get_resource_dir()
slot_0_78_0 = nil
slot_0_79_0 = nil
slot_0_80_0 = nil
slot_0_81_0 = nil

function slot_0_32_0()
	print(slot_0_77_0)

	slot_0_78_0 = draw.font(slot_0_77_0 .. "/Fonts/LeagueSpartan.ttf", slot_0_41_0(21), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))

	slot_0_78_0:create()

	local var_19_0 = slot_0_4_0 < 1 and slot_0_41_0(7) or slot_0_41_0(8)

	slot_0_79_0 = draw.font(slot_0_77_0 .. "/Fonts/Verdana.ttf", var_19_0, bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))

	slot_0_79_0:create()

	slot_0_80_0 = draw.font(slot_0_77_0 .. "/Fonts/fonteditor.ttf", slot_0_41_0(17), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))

	slot_0_80_0:create()

	slot_0_81_0 = draw.font(slot_0_77_0 .. "/Fonts/fontello.ttf", slot_0_41_0(20), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))

	slot_0_81_0:create()
end

slot_0_32_0()

function calculate_bomb_damage(arg_20_0, arg_20_1)
	local var_20_0 = {
		default = {
			MAX_RADIUS = 1750,
			MAX_DAMAGE = 500
		},
		de_ancient = {
			MAX_RADIUS = 2275,
			MAX_DAMAGE = 650
		},
		de_anubis = {
			MAX_RADIUS = 1570,
			MAX_DAMAGE = 450
		},
		de_inferno = {
			MAX_RADIUS = 2170,
			MAX_DAMAGE = 620
		},
		de_mirage = {
			MAX_RADIUS = 2275,
			MAX_DAMAGE = 650
		},
		de_nuke = {
			MAX_RADIUS = 2275,
			MAX_DAMAGE = 650
		},
		de_overpass = {
			MAX_RADIUS = 2275,
			MAX_DAMAGE = 650
		},
		de_dogtown = {
			MAX_RADIUS = 2000,
			MAX_DAMAGE = 1123
		},
		de_brewery = {
			MAX_RADIUS = 2000,
			MAX_DAMAGE = 230
		}
	}
	local var_20_1 = var_20_0[arg_20_1] or var_20_0.default
	local var_20_2 = var_20_1.MAX_DAMAGE
	local var_20_3 = var_20_1.MAX_RADIUS

	if var_20_3 < arg_20_0 then
		return 0
	end

	local var_20_4 = var_20_3 / 3

	return var_20_2 * math.exp(-arg_20_0^2 / (2 * var_20_4^2))
end

function slot_0_82_0(arg_21_0, arg_21_1)
	if arg_21_1 > 0 then
		local var_21_0 = 0.5
		local var_21_1 = 0.5
		local var_21_2 = 200
		local var_21_3 = arg_21_0 * var_21_0
		local var_21_4 = arg_21_0 - var_21_3

		if var_21_2 < var_21_4 then
			var_21_4 = var_21_2
			var_21_3 = arg_21_0 - var_21_4
		end

		if arg_21_1 < var_21_4 then
			var_21_4 = arg_21_1
			var_21_3 = arg_21_0 - var_21_4
		end

		if var_21_3 > 1 then
			var_21_3 = var_21_3 - 1
		end

		local var_21_5 = math.floor(var_21_3 + 0.5)
		local var_21_6 = math.floor(var_21_4 + 0.5)

		return var_21_5, var_21_6
	else
		return arg_21_0, 0
	end
end

slot_0_83_0 = vector(0, 0, 0)
slot_0_84_0 = false
slot_0_85_0 = 0
slot_0_86_0 = "?"
slot_0_87_0 = 0
slot_0_88_0 = false
slot_0_89_0 = 0
slot_0_90_0 = 3
slot_0_91_0 = false
slot_0_92_0 = 0
slot_0_93_0 = 5
slot_0_94_0 = false
slot_0_95_0 = false
slot_0_96_0 = false

function slot_0_97_0(arg_22_0)
	local var_22_0 = arg_22_0:get_controller("userid")

	if var_22_0 then
		local var_22_1 = var_22_0:get_pawn()

		if var_22_1 then
			slot_0_83_0 = var_22_1:get_abs_origin()
		end
	end

	if slot_0_83_0 then
		local var_22_2 = game.global_vars.map_name:lower()

		if var_22_2:find("de_mirage") then
			slot_0_86_0 = slot_0_83_0.x > -1300 and slot_0_83_0.y < -1000 and "A" or "B"
		elseif var_22_2:find("de_vertigo") then
			slot_0_86_0 = slot_0_83_0.x > -1000 and slot_0_83_0.y < 0 and "A" or "B"
		elseif var_22_2:find("de_dust2") then
			slot_0_86_0 = slot_0_83_0.x > 0 and "A" or "B"
		elseif var_22_2:find("de_inferno") then
			slot_0_86_0 = slot_0_83_0.x > 1200 and "A" or "B"
		elseif var_22_2:find("de_train") then
			slot_0_86_0 = slot_0_83_0.y > -500 and "A" or "B"
		elseif var_22_2:find("de_anubis") then
			slot_0_86_0 = slot_0_83_0.x > 0 and "A" or "B"
		elseif var_22_2:find("de_ancient") then
			slot_0_86_0 = slot_0_83_0.x < 0 and "A" or "B"
		elseif var_22_2:find("de_overpass") then
			slot_0_86_0 = slot_0_83_0.y > 0 and "A" or "B"
		elseif var_22_2:find("de_nuke") then
			slot_0_86_0 = slot_0_83_0.y > -1000 and "A" or "B"
		elseif var_22_2:find("de_jura") then
			slot_0_86_0 = slot_0_83_0.y > 0 and "A" or "B"
		elseif var_22_2:find("de_grail") then
			slot_0_86_0 = slot_0_83_0.x < -3000 and "A" or "B"
		elseif var_22_2:find("de_dogtown") then
			slot_0_86_0 = "A"
		elseif var_22_2:find("de_brewery") then
			slot_0_86_0 = "A"
		else
			slot_0_86_0 = "A"
		end
	else
		slot_0_86_0 = "A"
	end

	return slot_0_86_0
end

function slot_0_98_0(arg_23_0)
	local var_23_0 = arg_23_0:get_name()

	if var_23_0 == "weapon_fire" then
		local var_23_1 = arg_23_0:get_controller("userid")
		local var_23_2 = entities.get_local_controller()

		if var_23_1 and var_23_1 == var_23_2 then
			slot_0_35_0.start_time = game.global_vars.real_time
			slot_0_35_0.completed_once = false
		end
	elseif var_23_0 == "round_start" then
		slot_0_84_0 = false
		slot_0_88_0 = false
		slot_0_91_0 = false
		slot_0_95_0 = false
		slot_0_96_0 = false
		slot_0_36_0.completed_once = false
		slot_0_36_0.start_time = nil
	elseif var_23_0 == "bomb_begindefuse" then
		slot_0_91_0 = true
		slot_0_92_0 = game.global_vars.real_time
		slot_0_94_0 = arg_23_0:get_bool("haskit")
		slot_0_93_0 = slot_0_94_0 and 5 or 10
	elseif var_23_0 == "bomb_abortdefuse" then
		slot_0_91_0 = false
	elseif var_23_0 == "bomb_beginplant" then
		slot_0_88_0 = true
		slot_0_89_0 = game.global_vars.real_time
		slot_0_86_0 = slot_0_97_0(arg_23_0)
	elseif var_23_0 == "bomb_abortplant" then
		slot_0_88_0 = false
	elseif var_23_0 == "bomb_planted" then
		slot_0_84_0 = true
		slot_0_85_0 = 40
		slot_0_87_0 = game.global_vars.real_time
		slot_0_88_0 = false
		slot_0_86_0 = slot_0_97_0(arg_23_0)
	elseif var_23_0 == "bomb_defused" then
		slot_0_84_0 = false
		slot_0_91_0 = false
		slot_0_88_0 = false
		slot_0_95_0 = true
		slot_0_96_0 = true
	elseif var_23_0 == "bomb_exploded" then
		slot_0_84_0 = false
		slot_0_91_0 = false
		slot_0_88_0 = false
		slot_0_96_0 = true
	end
end

slot_0_99_0 = gui.ctx:find("rage>aimbot>nospread")
slot_0_100_0 = gui.ctx:find("misc>movement>duck peek assist")
slot_0_101_0 = gui.ctx:find("misc>movement>slowwalk")

function slot_0_102_0()
	if not slot_0_10_0:get_value():get() then
		return
	end

	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
	slot_24_0_0 = draw.surface
	slot_24_0_0.font = slot_0_78_0
	slot_24_1_0 = slot_24_0_0.font:get_text_size("Ay").y
	slot_24_2_0 = slot_0_11_0:get_value():get():get_raw()

	if type(slot_24_2_0) ~= "number" then
		return
	end

	slot_24_3_0 = slot_0_72_0("rage>aimbot>general>aimbot")
	slot_24_4_0 = false

	if slot_24_3_0 then
		if slot_0_66_0(slot_24_3_0) then
			slot_24_4_0 = true
		else
			slot_24_5_1 = slot_24_3_0:get_value()

			if slot_24_5_1 and slot_24_5_1.get then
				slot_24_6_1 = slot_24_5_1:get()
				slot_24_4_0 = type(slot_24_6_1) == "boolean" and slot_24_6_1 or false
			end
		end
	end

	slot_24_5_0 = slot_0_99_0 and slot_0_99_0:get_value():get() or false
	slot_24_6_0 = slot_0_0_0
	slot_24_7_0 = slot_0_1_0
	slot_24_8_0 = slot_24_6_0 / 2
	slot_24_9_0 = slot_24_7_0 / 2
	slot_24_10_0 = bit.band(slot_24_2_0, slot_0_68_0.Bomb) ~= 0

	if slot_0_84_0 then
		slot_24_11_1 = game.global_vars.real_time
		slot_24_12_1 = slot_24_11_1 - slot_0_87_0
		slot_0_85_0 = slot_0_85_0 - slot_24_12_1
		slot_0_87_0 = slot_24_11_1

		if slot_0_85_0 <= 0 then
			slot_0_84_0 = false
			slot_0_85_0 = 0
		end
	end

	slot_24_11_0 = {}
	slot_24_12_0 = {}
	slot_24_13_0 = 0.2

	function slot_24_14_0(arg_25_0, arg_25_1)
		arg_25_1._priority = ({
			FORCE = 20,
			Bomb = 200,
			AIR = 9,
			JB = 31,
			MD = 11,
			DT = 30,
			HC = 10,
			["Duck Peek"] = 36,
			PS = 12,
			NS = 1,
			Slow = 33,
			WALK = 32,
			BAIM = 3,
			DUCK = 37,
			HIDE = 100,
			HEAD = 2
		})[arg_25_0] or 50
		arg_25_1._name = arg_25_0

		table.insert(slot_24_12_0, arg_25_1)
	end

	function slot_24_15_0()
		table.sort(slot_24_12_0, function(arg_27_0, arg_27_1)
			return arg_27_0._priority < arg_27_1._priority
		end)

		for iter_26_0, iter_26_1 in ipairs(slot_24_12_0) do
			iter_26_1._priority = nil
			iter_26_1._name = nil

			table.insert(slot_24_11_0, iter_26_1)
		end
	end

	if slot_24_10_0 then
		if slot_0_84_0 then
			slot_24_16_2 = game.global_vars.real_time

			function slot_24_17_3(arg_28_0)
				arg_28_0 = math.max(0, math.min(100, arg_28_0))

				local var_28_0 = math.floor(255 * (1 - arg_28_0 / 100))

				return draw.color(255, var_28_0, var_28_0, 255)
			end

			function slot_24_18_3()
				local var_29_0 = 2.6

				if slot_0_85_0 <= 25 then
					var_29_0 = 2
				end

				if slot_0_85_0 <= 12 then
					var_29_0 = 1.5
				end

				if slot_0_85_0 <= 5 then
					var_29_0 = 0.7
				end

				if slot_0_85_0 <= 2 then
					return draw.color(255, 0, 0, 255)
				end

				if 0.3 > slot_24_16_2 % var_29_0 then
					return draw.color(255, 0, 0, 255)
				else
					return draw.color(255, 255, 0, 255)
				end
			end

			slot_24_19_3 = 0
			slot_24_20_3 = 0
			slot_24_21_2 = ""
			slot_24_22_2 = draw.color(255, 255, 255, 255)
			slot_24_23_2 = entities.get_local_pawn()

			if slot_24_23_2 and slot_24_23_2:is_alive() then
				slot_24_24_2 = slot_24_23_2.m_iHealth
				slot_24_19_2 = slot_24_24_2 and slot_24_24_2:get() or 0
				slot_24_25_2 = slot_24_23_2.m_ArmorValue
				slot_24_26_2 = slot_24_25_2 and slot_24_25_2:get() or 0
				slot_24_27_2 = slot_24_23_2:get_abs_origin():dist(slot_0_83_0)
				slot_24_28_2 = game.global_vars.map_name:lower()
				slot_24_29_2 = calculate_bomb_damage(slot_24_27_2, slot_24_28_2)
				slot_24_30_2, slot_24_31_2 = slot_0_82_0(slot_24_29_2, slot_24_26_2)
				slot_24_20_2 = slot_24_19_2 - slot_24_30_2

				if slot_24_20_2 <= 0 then
					slot_24_21_2 = "\nFATAL"
					slot_24_22_2 = draw.color(255, 0, 0, 255)
				else
					slot_24_32_1 = slot_24_19_2 - slot_24_20_2
					slot_24_21_2 = string.format("\n-%d HP", slot_24_32_1)
					slot_24_22_2 = slot_24_17_3(slot_24_32_1)
				end
			end

			slot_24_14_0("Bomb", {
				icon_font_name = "p",
				y_offset = 2,
				alpha = 1,
				name = string.format("%s - %.1fs%s", slot_0_86_0, slot_0_85_0, slot_24_21_2),
				color = draw.color(255, 255, 255, 255),
				lines_color = slot_24_22_2,
				icon_font = slot_0_80_0,
				icon_tint_color = slot_24_18_3(),
				no_background = true
			})
		elseif slot_0_95_0 and slot_0_96_0 then
			slot_24_14_0("Bomb", {
				y_offset = 2,
				alpha = 1,
				icon_font_name = "p",
				name = string.format("%s - Defused", slot_0_86_0),
				color = draw.color(255, 255, 255, 255),
				icon_font = slot_0_80_0,
				icon_tint_color = draw.color(255, 255, 255, 255),
				no_background = true
			})
		end
	end

	if slot_24_10_0 and slot_0_88_0 then
		slot_24_17_2 = math.min(slot_0_90_0, game.global_vars.real_time - slot_0_89_0) / slot_0_90_0

		slot_24_14_0("Bomb", {
			alpha = 1,
			duck_peek_special = true,
			y_offset = 1,
			icon_font_name = "p",
			name = string.format("%s - Planting", slot_0_86_0),
			color = draw.color(255, 255, 255, 255),
			icon_font = slot_0_80_0,
			icon_tint_color = draw.color(255, 255, 0, 255),
			custom_draw = function(arg_30_0, arg_30_1, arg_30_2, arg_30_3)
				if not slot_0_36_0.completed_once then
					local var_30_0 = slot_0_4_0 < 1 and slot_0_41_0(5) or slot_0_41_0(7.2)

					slot_0_75_0(arg_30_0, arg_30_1 + var_30_0, arg_30_2 - slot_0_41_0(5), arg_30_3, slot_24_17_2)
				end
			end,
			no_icon_padding = slot_0_36_0.completed_once,
			no_background = true
		})
	end

	if slot_24_10_0 and slot_0_91_0 then
		slot_24_16_1 = math.min(slot_0_93_0, game.global_vars.real_time - slot_0_92_0)
		slot_24_17_1 = slot_0_93_0 - slot_24_16_1
		slot_24_18_2 = slot_24_17_1 / slot_0_93_0

		slot_24_14_0("Bomb", {
			alpha = 1,
			duck_peek_special = true,
			y_offset = 3,
			icon_font_name = "V",
			name = string.format("Defusing - %.1fs", slot_24_17_1),
			color = draw.color(255, 255, 255, 255),
			icon_font = slot_0_80_0,
			icon_tint_color = draw.color(255, 255, 255, 255),
			custom_draw = function(arg_31_0, arg_31_1, arg_31_2, arg_31_3)
				if not slot_0_37_0.completed_once then
					local var_31_0 = slot_0_4_0 < 1 and slot_0_41_0(2.5) or slot_0_41_0(4)

					slot_0_76_0(arg_31_0, arg_31_1 + var_31_0, arg_31_2 - slot_0_41_0(5), arg_31_3, slot_24_18_2)
				end
			end,
			no_icon_padding = slot_0_37_0.completed_once,
			no_background = true
		})
	end

	slot_24_16_0 = entities.get_local_pawn()
	slot_24_17_0 = slot_24_16_0 and slot_24_16_0:is_alive()

	if slot_24_17_0 then
		slot_24_18_1 = slot_24_16_0:get_abs_velocity()

		if not slot_24_18_1 or not slot_24_18_1.x then
			slot_24_17_0 = false
		end
	end

	if slot_24_17_0 then
		slot_24_19_1 = slot_24_16_0:get_abs_velocity():length()
		slot_24_20_1 = bit.band(slot_24_2_0, slot_0_68_0.Air) ~= 0
		slot_24_21_1 = slot_0_68_0["Duck Peek"]
		slot_24_22_1 = slot_24_21_1 and bit.band(slot_24_2_0, slot_24_21_1) ~= 0 or false
		slot_24_23_1 = bit.band(slot_24_2_0, slot_0_68_0.WALK) ~= 0
		slot_24_24_1 = slot_24_16_0.m_fFlags and slot_24_16_0.m_fFlags:get() or 0
		slot_24_25_1 = bit.band(slot_24_24_1, 1) == 0
		slot_24_26_1 = slot_24_20_1 and slot_24_25_1 or slot_24_5_0
		slot_24_27_1 = slot_24_26_1
		slot_24_28_1 = slot_24_16_0.m_bIsScoped and slot_24_16_0.m_bIsScoped:get()
		slot_24_29_1 = slot_24_16_0:get_active_weapon()

		if slot_24_29_1 then
			slot_24_30_1 = slot_24_29_1:get_id()
			slot_24_31_1 = slot_24_29_1 and (slot_24_30_1 == weapon_id.awp or slot_24_30_1 == weapon_id.ssg08 or slot_24_30_1 == weapon_id.scar20 or slot_24_30_1 == weapon_id.g3sg1)
			slot_24_32_0 = slot_0_2_0[slot_24_30_1]

			if not slot_24_32_0 then
				slot_24_32_0 = {}
				slot_0_2_0[slot_24_30_1] = slot_24_32_0
				slot_24_32_0.damage_path = slot_0_63_0(slot_24_30_1)
				slot_24_32_0.hitchance_path = slot_24_32_0.damage_path and slot_0_64_0(slot_24_32_0.damage_path)
				slot_24_32_0.pointscale_path = slot_24_32_0.damage_path and slot_0_65_0(slot_24_32_0.damage_path)
				slot_24_32_0.override_path = slot_24_32_0.damage_path and slot_24_32_0.damage_path .. ">override value"
			end

			if slot_24_32_0.damage_path then
				slot_24_33_4 = slot_24_32_0.damage_context or slot_0_72_0(slot_24_32_0.damage_path)

				if slot_24_33_4 then
					slot_24_32_0.damage_context = slot_24_33_4

					if slot_24_32_0.damage == nil then
						slot_24_32_0.damage = slot_24_33_4:get_value():get()
					end
				end
			end

			if slot_24_32_0.hitchance_path then
				slot_24_33_3 = slot_24_32_0.hitchance_context or slot_0_72_0(slot_24_32_0.hitchance_path)

				if slot_24_33_3 then
					slot_24_32_0.hitchance_context = slot_24_33_3

					if slot_24_32_0.hitchance == nil then
						slot_24_32_0.hitchance = slot_24_33_3:get_value():get()
					end
				end
			end

			if slot_24_32_0.pointscale_path then
				slot_24_33_2 = slot_24_32_0.pointscale_context or slot_0_72_0(slot_24_32_0.pointscale_path)

				if slot_24_33_2 then
					slot_24_32_0.pointscale_context = slot_24_33_2

					if slot_24_32_0.pointscale == nil then
						slot_24_32_0.pointscale = slot_24_33_2:get_value():get()
					end
				end
			end

			if slot_24_32_0.override_path then
				slot_24_33_1 = slot_24_32_0.override_context or slot_0_72_0(slot_24_32_0.override_path)

				if slot_24_33_1 then
					slot_24_32_0.override_context = slot_24_33_1
				end
			end

			slot_24_33_0 = slot_24_28_1 and slot_24_31_1 and 75 or 0
			slot_24_34_0 = game.global_vars.frame_time
			slot_0_3_0 = slot_0_3_0 or 0
			slot_0_3_0 = slot_0_3_0 + (slot_24_33_0 - slot_0_3_0) * slot_24_34_0 * 8

			if slot_24_20_1 and slot_24_25_1 then
				slot_24_14_0("AIR", {
					y_offset = 0,
					name = "AIR",
					alpha = 1,
					color = draw.color(200, 230, 200, 255),
					no_background = true
				})
			end

			if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0["Hit Chance"]) ~= 0 and not slot_0_61_0(slot_24_30_1) and not slot_24_26_1 then
				slot_24_35_6 = slot_24_32_0 and (slot_24_32_0.hitchance_context or slot_0_72_0(slot_24_32_0.hitchance_path))

				if slot_24_35_6 then
					slot_24_32_0.hitchance_context = slot_24_35_6
					slot_24_36_7 = slot_24_35_6:get_value():get()
					slot_24_37_7 = slot_0_66_0(slot_24_35_6)
					slot_24_38_5 = nil
					slot_24_39_6 = draw.color(255, 255, 255, 255)

					if slot_24_37_7 then
						slot_24_38_5 = "HC"
					elseif slot_24_36_7 == -1 then
						slot_24_38_5 = "HC"
					end

					slot_24_41_4 = (function()
						if slot_24_36_7 == -1 then
							if slot_24_19_1 >= 124 then
								return draw.color(255, 0, 0, 255)
							elseif slot_24_19_1 >= 0 then
								return draw.color(133, 170, 46, 255)
							else
								return draw.color(255, 255, 255, 255)
							end
						else
							return draw.color(255, 255, 255, 255)
						end
					end)()

					if slot_24_38_5 then
						slot_24_14_0("HC", {
							y_offset = 0,
							icon_y_offset = -1,
							alpha = 1,
							icon_font_name = "X",
							name = slot_24_38_5,
							color = slot_24_41_4,
							icon_font = slot_0_80_0,
							icon_tint_color = slot_24_41_4,
							no_background = true
						})
					end
				end
			end

			if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0["Min Damage"]) ~= 0 and not slot_0_61_0(slot_24_30_1) and slot_24_32_0 and slot_24_32_0.damage_path then
				slot_24_35_5 = slot_24_32_0.damage_context or slot_0_72_0(slot_24_32_0.damage_path)

				if slot_24_35_5 then
					slot_24_32_0.damage_context = slot_24_35_5
					slot_24_36_6 = slot_24_35_5:get_value():get()
					slot_24_37_6 = slot_0_66_0(slot_24_35_5)
					slot_24_38_4 = slot_24_32_0.override_context or slot_0_72_0(slot_24_32_0.override_path)

					if slot_24_38_4 then
						slot_24_32_0.override_context = slot_24_38_4
					end

					slot_24_39_5 = slot_24_38_4 and slot_24_38_4:get_value():get()
					slot_24_40_3 = slot_24_36_6

					if slot_24_37_6 and slot_24_39_5 ~= nil then
						slot_24_40_3 = slot_24_39_5
					end

					slot_24_41_3 = nil
					slot_24_42_3 = draw.color(255, 255, 255, 255)
					slot_24_43_3 = "icon_legit"
					slot_24_44_1 = nil

					if slot_24_40_3 == 0 then
						slot_24_41_3 = "LETHAL"
						slot_24_42_3 = draw.color(255, 50, 50, 255)
						slot_24_43_3 = "gui_icon_bug"
						slot_24_44_1 = draw.color(255, 50, 50, 255)
					elseif slot_24_37_6 then
						slot_24_41_3 = "MD"
					end

					if slot_24_41_3 then
						slot_24_45_3 = {
							y_offset = 0,
							alpha = 1,
							name = slot_24_41_3,
							color = slot_24_42_3,
							strikethrough = strikethrough,
							no_background = true
						}

						if slot_24_41_3 == "LETHAL" then
							slot_24_45_3.icon_name = slot_24_43_3

							if slot_24_44_1 then
								slot_24_45_3.icon_font = slot_0_80_0
								slot_24_45_3.icon_tint_color = slot_24_44_1
								slot_24_45_3.icon_font_name = "k"
							end
						else
							slot_24_45_3.icon_font = slot_0_80_0
							slot_24_45_3.icon_font_name = "\\"
						end

						slot_24_14_0(slot_24_41_3, slot_24_45_3)
					end
				end
			end

			if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.Pointscale) ~= 0 and not slot_0_61_0(slot_24_30_1) and not slot_24_26_1 then
				slot_24_35_4 = slot_24_32_0 and (slot_24_32_0.pointscale_context or slot_0_72_0(slot_24_32_0.pointscale_path))

				if slot_24_35_4 then
					slot_24_32_0.pointscale_context = slot_24_35_4
					slot_24_36_5 = slot_24_35_4:get_value():get()
					slot_24_37_5 = slot_0_66_0(slot_24_35_4)
					slot_24_38_3 = nil
					slot_24_39_4 = draw.color(255, 255, 255, 255)

					if slot_24_37_5 then
						slot_24_38_3 = "PS"
					elseif slot_24_32_0.pointscale ~= nil and slot_24_36_5 ~= slot_24_32_0.pointscale then
						slot_24_38_3 = "PS"
					end

					if slot_24_38_3 then
						slot_24_14_0("PS", {
							icon_name = "gui_icon_settings",
							y_offset = 0,
							alpha = 1,
							name = slot_24_38_3,
							color = slot_24_39_4,
							no_background = true
						})
					end
				end
			end

			if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.FORCE) ~= 0 then
				slot_24_35_3 = slot_0_69_0.FORCE
				slot_24_36_4 = slot_0_72_0(slot_24_35_3)

				if slot_24_36_4 and slot_24_36_4:get_value():get() and not slot_24_27_1 then
					slot_24_14_0("FORCE", {
						y_offset = 0,
						name = "FORCE",
						alpha = 1,
						color = draw.color(255, 200, 120, 255),
						no_background = true
					})
				end
			end

			for iter_24_0, iter_24_1 in ipairs(slot_0_12_0) do
				slot_24_40_2 = iter_24_1[1]
				slot_24_41_2 = iter_24_1[2]
				slot_24_42_2 = slot_0_67_0[slot_24_40_2] or {
					y_offset = 20,
					alpha = 0,
					time = 0,
					active = false
				}
				slot_0_67_0[slot_24_40_2] = slot_24_42_2

				if slot_24_40_2 ~= "Min Damage" and slot_24_40_2 ~= "Hit Chance" and slot_24_40_2 ~= "Pointscale" and slot_24_40_2 ~= "FORCE" and slot_24_40_2 ~= "Air" and slot_24_40_2 ~= "Duck Peek" and slot_24_40_2 ~= "HIDE" then
					slot_24_43_2 = slot_24_40_2 == "NS" or slot_24_40_2 == "DT" or slot_24_40_2 == "BAIM" or slot_24_40_2 == "HEAD" or slot_24_40_2 == "FORCE"

					if not slot_24_43_2 and type(slot_24_41_2) == "string" and (slot_24_41_2:match("^rage>aimbot") or slot_24_40_2 == "Duck") then
						slot_24_43_2 = true
					end

					if bit.band(slot_24_2_0, slot_0_68_0[slot_24_40_2]) ~= 0 and (not slot_24_43_2 or slot_24_4_0) then
						slot_24_45_2 = slot_0_72_0(slot_24_41_2)
						slot_24_46_1 = false

						if slot_24_45_2 then
							if slot_0_66_0(slot_24_45_2) then
								slot_24_46_1 = true
							else
								slot_24_47_3 = slot_24_45_2:get_value()

								if slot_24_47_3 and slot_24_47_3.get then
									slot_24_46_1 = slot_24_47_3:get()
								end
							end
						end

						if slot_24_46_1 then
							if not slot_24_42_2.active then
								slot_24_42_2.active = true
								slot_24_42_2.time = game.global_vars.real_time
								slot_24_42_2.y_offset = 20
							end

							slot_24_47_2 = game.global_vars.frame_time
							slot_24_42_2.alpha = math.min(1, slot_24_42_2.alpha + slot_24_47_2 / slot_24_13_0)
							slot_24_42_2.y_offset = math.max(0, slot_24_42_2.y_offset - slot_24_47_2 * 200)

							if slot_24_42_2.alpha > 0 then
								slot_24_49_2 = ({
									NS = draw.color(136, 170, 46, 255),
									DT = draw.color(255, 255, 255, 255),
									FORCE = draw.color(255, 200, 120, 255)
								})[slot_24_40_2] or draw.color(255, 255, 255, 255)
								slot_24_50_2 = {
									name = slot_24_40_2,
									alpha = slot_24_42_2.alpha,
									y_offset = slot_24_42_2.y_offset,
									color = slot_24_49_2,
									no_background = true
								}

								if slot_24_40_2 == "NS" then
									slot_24_50_2.icon_font = slot_0_80_0
									slot_24_50_2.icon_font_name = "["
									slot_24_50_2.icon_tint_color = slot_24_49_2
									slot_24_50_2.icon_y_offset = -2
								end

								slot_24_14_0(slot_24_40_2, slot_24_50_2)
							end
						else
							slot_24_42_2.active = false
							slot_24_47_1 = game.global_vars.frame_time
							slot_24_42_2.alpha = math.max(0, slot_24_42_2.alpha - slot_24_47_1 / slot_24_13_0)
							slot_24_42_2.y_offset = math.min(20, slot_24_42_2.y_offset + slot_24_47_1 * 100)
						end
					else
						slot_24_42_2.active = false

						if slot_24_43_2 and not slot_24_4_0 then
							slot_24_42_2.alpha = 0
							slot_24_42_2.y_offset = 20
						else
							slot_24_45_1 = game.global_vars.frame_time
							slot_24_42_2.alpha = math.max(0, slot_24_42_2.alpha - slot_24_45_1 / slot_24_13_0)
							slot_24_42_2.y_offset = math.min(20, slot_24_42_2.y_offset + slot_24_45_1 * 100)
						end
					end
				end
			end

			if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.HIDE) ~= 0 then
				slot_24_35_2 = slot_0_69_0.HIDE
				slot_24_36_3 = slot_0_72_0(slot_24_35_2)
				slot_24_37_4 = false

				if slot_24_36_3 then
					if slot_0_66_0(slot_24_36_3) then
						slot_24_37_4 = true
					else
						slot_24_38_1 = slot_24_36_3:get_value()

						if slot_24_38_1 and slot_24_38_1.get then
							slot_24_37_4 = slot_24_38_1:get()
						end
					end
				end

				if slot_24_37_4 then
					slot_24_14_0("HIDE", {
						y_offset = 0,
						name = "HIDE",
						alpha = 1,
						color = draw.color(255, 255, 255, 255),
						no_background = true
					})
				end
			end

			if slot_24_22_1 and slot_0_100_0 then
				slot_24_35_1 = false
				slot_24_36_2 = slot_0_100_0.get_value and slot_0_100_0:get_value()

				if slot_0_100_0.get_hotkey_state then
					slot_24_35_1 = slot_0_100_0:get_hotkey_state()

					if not slot_24_35_1 and slot_24_36_2 and slot_24_36_2.get then
						slot_24_37_3 = slot_24_36_2:get()

						if type(slot_24_37_3) == "boolean" then
							slot_24_35_1 = slot_24_37_3
						end
					end
				elseif slot_24_36_2 then
					if slot_24_36_2.get_hotkey_state then
						slot_24_35_1 = slot_24_36_2:get_hotkey_state()
					elseif slot_24_36_2.get then
						slot_24_37_2 = slot_24_36_2:get()

						if type(slot_24_37_2) == "boolean" then
							slot_24_35_1 = slot_24_37_2
						end
					end
				end

				if slot_24_35_1 and not slot_0_35_0.last_active_state then
					slot_0_35_0.start_time = game.global_vars.real_time
					slot_0_35_0.completed_once = false
				end

				if slot_24_35_1 then
					slot_24_14_0("Duck Peek", {
						duck_peek_special = true,
						y_offset = 0,
						name = "DUCK",
						alpha = 1,
						color = draw.color(255, 255, 255, 255),
						custom_draw = function(arg_33_0, arg_33_1, arg_33_2, arg_33_3)
							if not slot_0_35_0.completed_once then
								local var_33_0 = slot_0_4_0 < 1 and slot_0_41_0(3.5) or slot_0_41_0(5.2)

								slot_0_74_0(arg_33_0, arg_33_1 + var_33_0, arg_33_2 - slot_0_41_0(5), arg_33_3)
							end
						end,
						no_icon_padding = slot_0_35_0.completed_once,
						no_background = true
					})
				end

				slot_0_35_0.last_active_state = slot_24_35_1
			else
				slot_0_35_0.last_active_state = false
			end

			slot_24_36_1 = game.global_vars.cur_time - slot_0_52_0
			slot_24_37_1 = 1

			if slot_24_19_1 > 1 then
				slot_24_37_1 = 2.5
			end

			if slot_24_36_1 < slot_24_37_1 and bit.band(slot_24_2_0, slot_0_68_0.Slow) ~= 0 then
				slot_24_39_2 = slot_24_36_1 / slot_24_37_1
				slot_24_39_1 = math.pow(slot_24_39_2, 0.3333333333333333)
				slot_24_40_1 = 255
				slot_24_41_1 = math.floor(255 * slot_24_39_1)
				slot_24_42_1 = 0
				slot_24_43_1 = draw.color(slot_24_40_1, slot_24_41_1, slot_24_42_1, 255)

				slot_24_14_0("Slow", {
					icon_font_name = "&",
					y_offset = 0,
					name = "SLOW",
					alpha = 1,
					color = slot_24_43_1,
					icon_font = slot_0_81_0,
					icon_tint_color = slot_24_43_1,
					no_background = true
				})
			end

			if slot_24_23_1 and slot_0_101_0 and slot_0_101_0:get_value():get() then
				slot_24_14_0("WALK", {
					y_offset = 0,
					name = "WALK",
					alpha = 1,
					color = draw.color(200, 180, 255, 255),
					no_background = true
				})
			end
		end
	end

	slot_24_15_0()

	slot_24_18_0 = slot_0_41_0(16)
	slot_24_19_0 = slot_0_41_0(12)
	slot_24_20_0 = slot_0_41_0(4)
	slot_24_21_0 = slot_0_41_0(7)
	slot_24_22_0 = slot_0_41_0(27)
	slot_24_23_0 = slot_0_41_0(2)
	slot_24_24_0 = slot_0_41_0(20)
	slot_24_25_0 = slot_0_41_0(2.5)
	slot_24_26_0 = slot_0_45_0:get_value():get()
	slot_24_27_0 = slot_0_46_0:get_value():get()
	slot_24_28_0 = slot_24_27_0:get_r()
	slot_24_29_0 = slot_24_27_0:get_g()
	slot_24_30_0 = slot_24_27_0:get_b()
	
	local slot_24_31_0 = slot_24_7_0 / 2 + slot_0_41_0(70) - #slot_24_11_0 / 2 * slot_24_22_0

	for iter_24_2, iter_24_3 in ipairs(slot_24_11_0) do
		slot_24_37_0 = slot_0_30_0[iter_24_3.name]

		if not slot_24_37_0 then
			slot_24_37_0 = slot_24_0_0.font:get_text_size(iter_24_3.name).x
			slot_0_30_0[iter_24_3.name] = slot_24_37_0
		end

		slot_24_38_0 = iter_24_3.icon_name or iter_24_3.icon_font_name
		slot_24_39_0 = iter_24_3.custom_draw
		
		slot_24_40_0 = slot_24_37_0 + slot_24_19_0 * 2
		slot_24_41_0 = slot_24_24_0

		if slot_24_38_0 and not iter_24_3.no_icon_padding then
			slot_24_40_0 = slot_24_40_0 + slot_24_41_0 + slot_24_25_0
		elseif slot_24_38_0 then
			slot_24_40_0 = slot_24_40_0 + slot_24_41_0
		end

		if slot_24_39_0 and not iter_24_3.no_icon_padding then
			slot_24_40_0 = slot_24_40_0 + slot_24_41_0 + slot_24_25_0
		elseif slot_24_39_0 then
			slot_24_40_0 = slot_24_40_0 + slot_24_41_0
		end

		slot_24_42_0 = select(2, iter_24_3.name:gsub("\n", "\n")) + 1
		slot_24_43_0 = slot_0_41_0(4)
		slot_24_44_0 = slot_24_42_0 * slot_24_1_0 + (slot_24_42_0 - 1) * slot_24_43_0
		
		slot_24_45_0 = math.max(slot_24_22_0, slot_24_44_0 + slot_24_20_0 * 2)
		slot_24_46_0 = slot_24_31_0 + iter_24_3.y_offset * slot_0_4_0
		slot_24_47_0 = math.floor(iter_24_3.alpha * 255)

		if not iter_24_3.no_background then
			slot_24_48_2 = 0.2
			slot_24_49_1 = slot_24_27_0:get_a()
			slot_24_50_1 = math.floor(slot_24_40_0 * slot_24_48_2)
			slot_24_51_1 = 32
			slot_24_52_1 = math.max(1, math.floor(slot_24_50_1 / slot_24_51_1))

			for iter_24_4 = 0, slot_24_50_1, slot_24_52_1 do
				slot_24_57_0 = iter_24_4 / math.max(1, slot_24_50_1)
				slot_24_58_1 = math.floor(slot_24_49_1 * slot_24_57_0 * (slot_24_47_0 / 255))

				slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + iter_24_4, slot_24_46_0, slot_24_18_0 + iter_24_4 + slot_24_52_1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, slot_24_58_1))
			end

			slot_24_53_1 = slot_24_50_1 + 1
			slot_24_54_1 = slot_24_40_0 - slot_24_50_1 - 1

			if slot_24_53_1 <= slot_24_54_1 then
				slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + slot_24_53_1, slot_24_46_0, slot_24_18_0 + slot_24_54_1 + 1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, math.floor(slot_24_49_1 * (slot_24_47_0 / 255))))
			end

			for iter_24_5 = slot_24_40_0 - slot_24_50_1, slot_24_40_0, slot_24_52_1 do
				slot_24_60_1 = (slot_24_40_0 - iter_24_5) / math.max(1, slot_24_50_1)
				slot_24_61_1 = math.floor(slot_24_49_1 * slot_24_60_1 * (slot_24_47_0 / 255))

				slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + iter_24_5, slot_24_46_0, slot_24_18_0 + iter_24_5 + slot_24_52_1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, slot_24_61_1))
			end
		end

		slot_24_48_1 = nil
		slot_24_49_0 = nil
		slot_24_50_0 = nil
		slot_24_51_0 = nil
		
		slot_24_48_0 = slot_24_18_0 + slot_24_19_0

		if slot_24_38_0 then
			slot_24_50_0 = slot_24_18_0 + slot_24_19_0
			slot_24_48_0 = slot_24_50_0 + slot_24_41_0 + slot_24_25_0
		end

		if slot_24_39_0 then
			slot_24_51_0 = slot_24_18_0 + slot_24_40_0 - slot_24_41_0 - slot_24_19_0

			if not iter_24_3.no_icon_padding then
				slot_24_51_0 = slot_24_51_0 - slot_24_25_0
			end
		end

		slot_24_52_0 = slot_0_41_0(2)
		slot_24_53_0 = slot_24_46_0 + (slot_24_45_0 - slot_24_41_0) / 2 - slot_24_52_0 + slot_0_41_0(1)
		slot_24_54_0 = slot_24_53_0 + slot_24_41_0 / 2
		slot_24_58_0 = slot_24_1_0 * (slot_0_4_0 < 0.6 and -0.05 or slot_0_4_0 < 1 and 0.18 or 0.22) + (slot_0_4_0 - 1) * slot_0_41_0(2.6)

		if slot_24_42_0 > 1 then
			slot_24_49_0 = slot_24_54_0 - slot_24_44_0 / 2 - slot_24_58_0
		else
			slot_24_49_0 = slot_24_54_0 - slot_24_1_0 / 2 - slot_24_58_0
		end

		slot_24_59_0 = iter_24_3.color or slot_24_26_0

		if slot_24_59_0:get_r() == 255 and slot_24_59_0:get_g() == 255 and slot_24_59_0:get_b() == 255 and slot_24_59_0:get_a() == 255 then
			slot_24_59_0 = slot_24_26_0
		end

		slot_24_60_0 = math.floor(slot_24_59_0:get_a() * (slot_24_47_0 / 255))
		slot_24_61_0 = draw.color(slot_24_59_0:get_r(), slot_24_59_0:get_g(), slot_24_59_0:get_b(), slot_24_60_0)
		slot_24_62_0 = draw.color(0, 0, 0, slot_24_60_0 * 0.5)
		slot_24_63_0 = {}

		for iter_24_6 in iter_24_3.name:gmatch("[^\n]+") do
			table.insert(slot_24_63_0, iter_24_6)
		end

		for iter_24_7, iter_24_8 in ipairs(slot_24_63_0) do
			slot_24_69_1 = slot_24_49_0 + (iter_24_7 - 1) * (slot_24_1_0 + slot_24_43_0)

			slot_24_0_0:add_text(draw.vec2(slot_24_48_0 + 1, slot_24_69_1 + 1), iter_24_8, slot_24_62_0)
		end

		for iter_24_9, iter_24_10 in ipairs(slot_24_63_0) do
			slot_24_69_0 = slot_24_49_0 + (iter_24_9 - 1) * (slot_24_1_0 + slot_24_43_0)
			slot_24_70_0 = nil

			if iter_24_9 == 1 then
				slot_24_70_0 = slot_24_61_0
			else
				slot_24_70_0 = iter_24_3.lines_color or draw.color(255, 0, 0, 255)
			end

			slot_24_0_0:add_text(draw.vec2(slot_24_48_0, slot_24_69_0), iter_24_10, slot_24_70_0)
		end

		if slot_24_38_0 then
			if iter_24_3.icon_font_name then
				slot_24_64_1 = slot_24_0_0.font
				slot_24_0_0.font = iter_24_3.icon_font
				slot_24_65_1 = iter_24_3.icon_tint_color or slot_24_61_0
				slot_24_66_1 = iter_24_3.icon_font == slot_0_81_0 and 3 or 7

				if iter_24_3.icon_y_offset then
					slot_24_66_1 = slot_24_66_1 + iter_24_3.icon_y_offset
				end

				slot_24_0_0:add_text(draw.vec2(slot_24_50_0, slot_24_53_0 + slot_24_66_1), iter_24_3.icon_font_name, slot_24_65_1)

				slot_24_0_0.font = slot_24_64_1
			elseif iter_24_3.icon_name and draw.textures[iter_24_3.icon_name] then
				slot_24_64_0 = draw.textures[iter_24_3.icon_name]
				slot_24_65_0 = slot_24_0_0.g.texture
				slot_24_0_0.g.texture = slot_24_64_0.obj
				slot_24_66_0 = iter_24_3.icon_tint_color or slot_24_61_0

				slot_24_0_0:add_rect_filled(draw.rect(slot_24_50_0, slot_24_53_0, slot_24_50_0 + slot_24_41_0, slot_24_53_0 + slot_24_41_0), slot_24_66_0)

				slot_24_0_0.g.texture = slot_24_65_0
			end
		end

		if slot_24_39_0 then
			iter_24_3.custom_draw(slot_24_51_0 + slot_0_41_0(6), slot_24_53_0, slot_24_41_0, slot_24_47_0)
		end

		slot_24_31_0 = slot_24_46_0 + slot_24_45_0 + slot_24_20_0 * 2 - slot_0_41_0(10) + slot_24_21_0
	end
end

events.event:add(slot_0_98_0)
mods.events:add_listener("weapon_fire")
mods.events:add_listener("bomb_begindefuse")
mods.events:add_listener("bomb_abortdefuse")
mods.events:add_listener("bomb_beginplant")
mods.events:add_listener("bomb_abortplant")
mods.events:add_listener("bomb_planted")
mods.events:add_listener("bomb_defused")
mods.events:add_listener("bomb_exploded")

slot_0_103_0 = {}
slot_0_104_0 = {
	hitbox = 0,
	time = 0,
	damage = 0
}
slot_0_105_0 = {
	normal_hitlogs = false,
	watermark = false
}
slot_0_106_0 = {
	normal_hitlogs = {
		y = 0,
		x = 0
	},
	watermark = {
		y = 0,
		x = 0
	}
}
slot_0_107_0 = {
	normal_hitlogs = {
		x = slot_0_41_0(10),
		y = slot_0_41_0(10)
	},
	watermark = {
		y = 10,
		x = slot_0_0_0 - 200
	}
}
slot_0_108_0 = true
slot_0_109_0 = true
slot_0_110_0 = true

function slot_0_111_0(arg_34_0)
	local var_34_0 = {}
	local var_34_1 = 1
	local var_34_2 = false

	for iter_34_0 = 1, #arg_34_0 do
		local var_34_3 = arg_34_0:sub(iter_34_0, iter_34_0)

		if var_34_3 == "\x01" then
			if var_34_1 < iter_34_0 then
				table.insert(var_34_0, {
					text = arg_34_0:sub(var_34_1, iter_34_0 - 1),
					colored = var_34_2
				})
			end

			var_34_1 = iter_34_0 + 1
			var_34_2 = true
		elseif var_34_3 == "\x02" then
			if var_34_1 < iter_34_0 then
				table.insert(var_34_0, {
					text = arg_34_0:sub(var_34_1, iter_34_0 - 1),
					colored = var_34_2
				})
			end

			var_34_1 = iter_34_0 + 1
			var_34_2 = false
		end
	end

	if var_34_1 <= #arg_34_0 then
		table.insert(var_34_0, {
			text = arg_34_0:sub(var_34_1),
			colored = var_34_2
		})
	end

	return var_34_0
end

function slot_0_112_0(arg_35_0)
	slot_0_42_0()

	local var_35_0 = draw.surface

	var_35_0.font = draw.fonts.gui_debug

	local var_35_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)

	for iter_35_0, iter_35_1 in ipairs(arg_35_0) do
		if iter_35_1.text ~= "" then
			var_35_1 = var_35_1 + Get_TextWidth(iter_35_1.text, var_35_0.font)
		end
	end

	return var_35_1, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end

events.input:add(function(arg_36_0, arg_36_1, arg_36_2)
	if arg_36_0 == 513 then
		slot_36_3_0 = slot_0_7_0()
		slot_36_4_0 = slot_0_6_0()
		slot_36_5_0, slot_36_6_0 = game.engine:get_screen_size()

		slot_0_42_0()

		slot_36_7_0 = math.max(slot_0_41_0(24), slot_0_38_0)
		slot_36_8_0 = math.max(slot_0_41_0(20), slot_0_39_0)

		if #slot_0_103_0 == 0 then
			slot_36_9_1 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
			slot_36_10_1 = slot_0_111_0(slot_36_9_1)
			slot_36_7_0, slot_36_8_0 = slot_0_112_0(slot_36_10_1)
		end

		slot_36_9_0 = {
			x = slot_0_107_0.normal_hitlogs.x - slot_0_41_0(10),
			y = slot_0_107_0.normal_hitlogs.y - slot_0_41_0(7),
			width = slot_36_7_0,
			height = slot_36_8_0
		}
		slot_36_10_0 = {
			x = slot_36_9_0.x / slot_0_4_0,
			y = slot_36_9_0.y / slot_0_4_0,
			width = slot_36_9_0.width / slot_0_4_0,
			height = slot_36_9_0.height / slot_0_4_0
		}
		slot_36_11_0 = slot_36_3_0.x >= slot_36_9_0.x and slot_36_3_0.x <= slot_36_9_0.x + slot_36_9_0.width and slot_36_3_0.y >= slot_36_9_0.y and slot_36_3_0.y <= slot_36_9_0.y + slot_36_9_0.height
		slot_36_12_0 = slot_36_4_0.x >= slot_36_10_0.x and slot_36_4_0.x <= slot_36_10_0.x + slot_36_10_0.width and slot_36_4_0.y >= slot_36_10_0.y and slot_36_4_0.y <= slot_36_10_0.y + slot_36_10_0.height

		if slot_36_11_0 or slot_36_12_0 then
			slot_0_105_0.normal_hitlogs = true
			slot_0_106_0.normal_hitlogs.x = slot_36_3_0.x - slot_0_107_0.normal_hitlogs.x
			slot_0_106_0.normal_hitlogs.y = slot_36_3_0.y - slot_0_107_0.normal_hitlogs.y
			slot_0_109_0 = false
		end

		slot_36_13_0 = slot_0_41_0(200)
		slot_36_14_0 = slot_0_41_0(20)

		if last_segments and last_font then
			slot_36_15_1, slot_36_16_1 = GetWatermarkWidth(last_segments, last_font)
			slot_36_13_0, slot_36_14_0 = slot_36_15_1, slot_36_16_1
		end

		slot_36_15_0 = {
			x = slot_0_107_0.watermark.x - slot_0_41_0(10),
			y = slot_0_107_0.watermark.y - slot_0_41_0(7),
			width = slot_36_13_0,
			height = slot_36_14_0
		}
		slot_36_16_0 = {
			x = slot_36_15_0.x / slot_0_4_0,
			y = slot_36_15_0.y / slot_0_4_0,
			width = slot_36_15_0.width / slot_0_4_0,
			height = slot_36_15_0.height / slot_0_4_0
		}
		slot_36_17_0 = slot_36_3_0.x >= slot_36_15_0.x and slot_36_3_0.x <= slot_36_15_0.x + slot_36_15_0.width and slot_36_3_0.y >= slot_36_15_0.y and slot_36_3_0.y <= slot_36_15_0.y + slot_36_15_0.height
		slot_36_18_0 = slot_36_4_0.x >= slot_36_16_0.x and slot_36_4_0.x <= slot_36_16_0.x + slot_36_16_0.width and slot_36_4_0.y >= slot_36_16_0.y and slot_36_4_0.y <= slot_36_16_0.y + slot_36_16_0.height

		if slot_36_17_0 or slot_36_18_0 then
			slot_0_105_0.watermark = true
			slot_0_108_0 = false
			slot_0_106_0.watermark.x = slot_36_3_0.x - slot_0_107_0.watermark.x
			slot_0_106_0.watermark.y = slot_36_3_0.y - slot_0_107_0.watermark.y
		end
	elseif arg_36_0 == 514 then
		slot_0_105_0.normal_hitlogs = false
		slot_0_105_0.watermark = false
	elseif arg_36_0 == 257 and (arg_36_1 == 45 or arg_36_1 == 46) then
		slot_0_110_0 = not slot_0_110_0
	end
end)

function slot_0_113_0(arg_37_0)
	if not slot_0_43_0:get_value():get() then
		return
	end

	local var_37_0 = arg_37_0:get_pawn_from_id("attacker")
	local var_37_1 = arg_37_0:get_pawn_from_id("userid")
	local var_37_2 = entities.get_local_pawn()

	if var_37_0 and var_37_2 and var_37_0 == var_37_2 then
		local var_37_3 = arg_37_0:get_int("dmg_health")
		local var_37_4 = arg_37_0:get_int("hitgroup")
		local var_37_5 = arg_37_0:get_int("health")
		local var_37_6 = game.global_vars.cur_time
		local var_37_7 = var_37_1 and var_37_1:get_name() or "unknown"

		if var_37_3 == slot_0_104_0.damage and var_37_4 == slot_0_104_0.hitbox and var_37_6 - slot_0_104_0.time < 0.01 then
			return
		end

		slot_0_104_0.damage = var_37_3
		slot_0_104_0.hitbox = var_37_4
		slot_0_104_0.time = var_37_6

		local var_37_8 = ""
		local var_37_9 = var_37_4 == 1 and "head" or var_37_4 == 2 and "chest" or var_37_4 == 3 and "stomach" or var_37_4 == 4 and "left arm" or var_37_4 == 5 and "right arm" or var_37_4 == 6 and "left leg" or var_37_4 == 7 and "right leg" or "body"
		local var_37_10 = string.format("Hit \x01%s\x02 in the \x01%s\x02 for \x01%d\x02 damage (%d health remaining)", var_37_7, var_37_9, var_37_3, var_37_5)

		table.insert(slot_0_103_0, {
			y_offset = -8,
			state = "fade_in",
			alpha = 255,
			text = var_37_10,
			segments = slot_0_111_0(var_37_10),
			time = var_37_6
		})

		if #slot_0_103_0 > 8 then
			table.remove(slot_0_103_0, 1)
		end

		local var_37_11 = var_37_5 <= 0 and string.format("Hit %s in the %s for %d damage (0 health remaining)", var_37_7, var_37_9, var_37_3) or string.format("Hit %s in the %s for %d damage (%d health remaining)", var_37_7, var_37_9, var_37_3, var_37_5)

		print("[gamesense] " .. var_37_11)
	end
end

function slot_0_114_0(arg_38_0)
	local var_38_0 = arg_38_0:get_pawn_from_id("attacker")
	local var_38_1 = arg_38_0:get_pawn_from_id("userid")
	local var_38_2 = entities.get_local_pawn()

	if var_38_1 and var_38_2 and var_38_1 == var_38_2 and var_38_0 then
		slot_0_52_0 = game.global_vars.cur_time

		if not slot_0_43_0:get_value():get() then
			return
		end

		local var_38_3 = arg_38_0:get_int("dmg_health")
		local var_38_4 = arg_38_0:get_int("hitgroup")
		local var_38_5 = arg_38_0:get_int("health")
		local var_38_6 = game.global_vars.cur_time
		local var_38_7 = var_38_0 and var_38_0:get_name() or "unknown"

		if var_38_3 == slot_0_104_0.damage and var_38_4 == slot_0_104_0.hitbox and var_38_6 - slot_0_104_0.time < 0.01 then
			return
		end

		slot_0_104_0.damage = var_38_3
		slot_0_104_0.hitbox = var_38_4
		slot_0_104_0.time = var_38_6

		local var_38_8 = ""
		local var_38_9 = var_38_4 == 1 and "head" or var_38_4 == 2 and "chest" or var_38_4 == 3 and "stomach" or var_38_4 == 4 and "left arm" or var_38_4 == 5 and "right arm" or var_38_4 == 6 and "left leg" or var_38_4 == 7 and "right leg" or "body"
		local var_38_10 = string.format("Got hit by \x01%s\x02 in the \x01%s\x02 for \x01%d\x02 damage (%d health remaining)", var_38_7, var_38_9, var_38_3, var_38_5)

		table.insert(slot_0_103_0, {
			y_offset = -8,
			state = "fade_in",
			alpha = 255,
			text = var_38_10,
			segments = slot_0_111_0(var_38_10),
			time = var_38_6
		})

		if #slot_0_103_0 > 8 then
			table.remove(slot_0_103_0, 1)
		end

		local var_38_11 = var_38_5 <= 0 and string.format("Got hit by %s in the %s for %d damage (0 health remaining)", var_38_7, var_38_9, var_38_3) or string.format("Got hit by %s in the %s for %d damage (%d health remaining)", var_38_7, var_38_9, var_38_3, var_38_5)

		print("[gamesense] " .. var_38_11)
	end
end

function slot_0_115_0(arg_39_0, arg_39_1, arg_39_2, arg_39_3, arg_39_4)
	slot_0_42_0()

	slot_39_5_0 = draw.surface
	slot_39_5_0.skip_dpi = true
	slot_39_5_0.font = draw.fonts.gui_debug
	slot_39_6_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)

	for iter_39_0, iter_39_1 in ipairs(arg_39_2) do
		if iter_39_1.text ~= "" then
			slot_39_6_1 = slot_39_6_1 + Get_TextWidth(iter_39_1.text, slot_39_5_0.font)
		end
	end

	slot_39_7_0 = slot_0_41_0(20)
	slot_39_8_0 = 0.2
	slot_39_9_0 = 170
	slot_39_6_0 = math.min(slot_39_6_1, math.max(slot_0_41_0(120), slot_0_0_0 - arg_39_0 - slot_0_41_0(10)))
	slot_39_11_0 = math.max(0, math.floor(slot_39_6_0))
	slot_39_12_0 = 64
	slot_39_13_0 = math.max(1, math.floor(slot_39_11_0 / slot_39_12_0))

	for iter_39_2 = 0, slot_39_11_0 - 1, slot_39_13_0 do
		slot_39_18_1 = iter_39_2 / math.max(1, slot_39_6_0 * slot_39_8_0)
		slot_39_19_1 = (slot_39_6_0 - iter_39_2) / math.max(1, slot_39_6_0 * slot_39_8_0)
		slot_39_20_0 = math.min(1, slot_39_18_1) * math.min(1, slot_39_19_1)
		slot_39_21_0 = math.floor(slot_39_9_0 * math.sqrt(slot_39_20_0) * (arg_39_3 / 255))

		if slot_39_21_0 > 0 then
			slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_2, arg_39_1, arg_39_0 + math.min(iter_39_2 + slot_39_13_0, slot_39_11_0), arg_39_1 + slot_39_7_0), draw.color(20, 20, 20, slot_39_21_0))
		end
	end

	slot_0_38_0 = slot_39_6_0
	slot_0_39_0 = slot_39_7_0
	slot_39_14_0 = draw.color(arg_39_4:get_r() * 0.1, arg_39_4:get_g() * 0.1, arg_39_4:get_b() * 0.1, math.floor(120 * arg_39_3 / 255))
	slot_39_15_0 = slot_39_6_0 * slot_39_8_0

	slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_15_0, arg_39_1, arg_39_0 + slot_39_6_0 - slot_39_15_0, arg_39_1 + 1), slot_39_14_0)
	slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_15_0, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + slot_39_6_0 - slot_39_15_0, arg_39_1 + slot_39_7_0), slot_39_14_0)

	slot_39_16_0 = math.floor(slot_39_15_0)
	slot_39_17_0 = 16
	slot_39_18_0 = math.max(1, math.floor(slot_39_16_0 / slot_39_17_0))

	for iter_39_3 = 0, slot_39_16_0, slot_39_18_0 do
		slot_39_23_1 = iter_39_3 / math.max(1, slot_39_15_0)
		slot_39_24_1 = slot_39_14_0:get_a() * slot_39_23_1
		slot_39_25_1 = draw.color(slot_39_14_0:get_r(), slot_39_14_0:get_g(), slot_39_14_0:get_b(), slot_39_24_1)

		slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_3, arg_39_1, arg_39_0 + iter_39_3 + slot_39_18_0, arg_39_1 + 1), slot_39_25_1)
		slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_6_0 - iter_39_3 - slot_39_18_0, arg_39_1, arg_39_0 + slot_39_6_0 - iter_39_3, arg_39_1 + 1), slot_39_25_1)
		slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_3, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + iter_39_3 + slot_39_18_0, arg_39_1 + slot_39_7_0), slot_39_25_1)
		slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_6_0 - iter_39_3 - slot_39_18_0, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + slot_39_6_0 - iter_39_3, arg_39_1 + slot_39_7_0), slot_39_25_1)
	end

	slot_39_19_0 = arg_39_0 + 12

	for iter_39_4, iter_39_5 in ipairs(arg_39_2) do
		if iter_39_5.text ~= "" then
			slot_39_25_0 = iter_39_5.colored and draw.color(arg_39_4:get_r(), arg_39_4:get_g(), arg_39_4:get_b(), math.floor(arg_39_3)) or draw.color(255, 255, 255, math.floor(arg_39_3))
			slot_39_26_0 = Get_TextWidth(iter_39_5.text, slot_39_5_0.font)
			slot_39_27_0 = arg_39_0 + slot_39_6_0 - slot_39_19_0 - 12

			if slot_39_27_0 < slot_39_26_0 then
				slot_39_28_0 = Get_TextWidth("...", slot_39_5_0.font)
				slot_39_29_0 = iter_39_5.text
				slot_39_30_0 = ""

				for iter_39_6 = 1, #slot_39_29_0 do
					slot_39_35_0 = slot_39_29_0:sub(1, iter_39_6)

					if slot_39_27_0 < Get_TextWidth(slot_39_35_0, slot_39_5_0.font) + slot_39_28_0 then
						slot_39_30_0 = slot_39_29_0:sub(1, iter_39_6 - 1) .. "..."

						break
					end
				end

				if slot_39_30_0 == "" then
					slot_39_30_0 = slot_39_29_0
				end

				slot_39_5_0:add_text(draw.vec2(slot_39_19_0, arg_39_1 + slot_0_41_0(4)), slot_39_30_0, slot_39_25_0)

				slot_39_19_0 = arg_39_0 + slot_39_6_0

				break
			else
				slot_39_5_0:add_text(draw.vec2(slot_39_19_0, arg_39_1 + slot_0_41_0(4)), iter_39_5.text, slot_39_25_0)

				slot_39_19_0 = slot_39_19_0 + slot_39_26_0
			end
		end
	end

	return slot_39_6_0
end

function slot_0_116_0(arg_40_0)
	slot_0_42_0()

	local var_40_0 = draw.surface

	var_40_0.font = draw.fonts.gui_debug

	local var_40_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)

	for iter_40_0, iter_40_1 in ipairs(arg_40_0) do
		if iter_40_1.text ~= "" then
			var_40_1 = var_40_1 + Get_TextWidth(iter_40_1.text, var_40_0.font)
		end
	end

	return var_40_1, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end

function slot_0_117_0()
	if not slot_0_43_0:get_value():get() and not slot_0_110_0 and not slot_0_105_0.normal_hitlogs then
		return
	end

	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()

	if slot_0_105_0.normal_hitlogs then
		slot_41_0_1 = slot_0_7_0()
		slot_0_107_0.normal_hitlogs.x = slot_41_0_1.x - slot_0_106_0.normal_hitlogs.x
		slot_0_107_0.normal_hitlogs.y = slot_41_0_1.y - slot_0_106_0.normal_hitlogs.y
	end

	slot_41_0_0 = draw.surface
	slot_41_0_0.skip_dpi = true
	slot_41_0_0.font = draw.fonts.gui_debug
	slot_41_1_0 = game.global_vars.cur_time
	slot_41_2_0 = game.global_vars.frame_time
	slot_41_3_0 = slot_0_44_0:get_value():get()
	slot_41_4_0 = slot_0_41_0(200)
	slot_41_5_0 = slot_0_41_0(20)

	if slot_0_110_0 and slot_0_43_0:get_value():get() then
		slot_41_6_3 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
		slot_41_7_3 = slot_0_111_0(slot_41_6_3)
		slot_41_4_0, slot_41_5_0 = slot_0_116_0(slot_41_7_3)
	elseif slot_0_43_0:get_value():get() and #slot_0_103_0 > 0 then
		slot_41_6_2 = slot_0_103_0[#slot_0_103_0]
		slot_41_7_2 = slot_41_6_2.segments or slot_0_111_0(slot_41_6_2.text)
		slot_41_4_0, slot_41_5_0 = slot_0_116_0(slot_41_7_2)
	end

	if slot_0_109_0 then
		slot_0_107_0.normal_hitlogs.x = slot_0_41_0(10)
		slot_0_107_0.normal_hitlogs.y = slot_0_41_0(10)
	end

	slot_0_107_0.normal_hitlogs.x = math.max(0, math.min(slot_0_107_0.normal_hitlogs.x, slot_0_0_0 - slot_41_4_0))
	slot_0_107_0.normal_hitlogs.y = math.max(0, math.min(slot_0_107_0.normal_hitlogs.y, slot_0_1_0 - slot_41_5_0))

	if slot_0_110_0 and slot_0_43_0:get_value():get() then
		slot_41_6_1 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
		slot_41_7_1 = slot_0_111_0(slot_41_6_1)

		slot_0_115_0(slot_0_107_0.normal_hitlogs.x, slot_0_107_0.normal_hitlogs.y, slot_41_7_1, 255, slot_41_3_0)
	end

	if slot_0_43_0:get_value():get() then
		slot_41_6_0 = slot_41_0_0.font:get_text_size("Ay").y
		slot_41_7_0 = math.ceil(slot_41_6_0 * 0.4)
		slot_41_8_0 = slot_0_107_0.normal_hitlogs.y

		if slot_0_110_0 and slot_0_43_0:get_value():get() then
			slot_41_8_0 = slot_41_8_0 + slot_41_5_0 + slot_41_7_0
		end

		for iter_41_0 = #slot_0_103_0, 1, -1 do
			slot_41_13_1 = slot_0_103_0[iter_41_0]
			slot_41_14_1 = slot_41_1_0 - slot_41_13_1.time

			if slot_41_13_1.state == "fade_in" then
				slot_41_13_1.alpha = 255
				slot_41_13_1.y_offset = slot_41_13_1.y_offset + (0 - slot_41_13_1.y_offset) * slot_41_2_0 * 12

				if math.abs(slot_41_13_1.y_offset) < 0.5 then
					slot_41_13_1.state = "visible"
					slot_41_13_1.y_offset = 0
				end
			elseif slot_41_14_1 > 2 then
				slot_41_13_1.state = "fade_out"
				slot_41_13_1.alpha = math.max(0, 255 * (1 - (slot_41_14_1 - 2)))
				slot_41_13_1.y_offset = slot_41_13_1.y_offset - slot_41_2_0 * 50
			end

			if slot_41_14_1 >= 3 then
				table.remove(slot_0_103_0, iter_41_0)
			end
		end

		for iter_41_1 = 1, #slot_0_103_0 do
			slot_41_13_0 = slot_0_103_0[iter_41_1]
			slot_41_14_0 = slot_41_13_0.segments or slot_0_111_0(slot_41_13_0.text)
			slot_41_13_0.segments = slot_41_14_0
			slot_41_15_0, slot_41_16_0 = slot_0_116_0(slot_41_14_0)
			slot_41_17_0 = slot_41_8_0 + slot_41_13_0.y_offset

			slot_0_115_0(slot_0_107_0.normal_hitlogs.x, slot_41_17_0, slot_41_14_0, slot_41_13_0.alpha, slot_41_3_0)

			slot_41_8_0 = slot_41_8_0 + slot_41_16_0 + slot_41_7_0
		end
	end
end

slot_0_118_0 = 0
slot_0_119_0 = 0
slot_0_120_0 = 0
slot_0_31_0 = {}
slot_0_121_0 = {}
slot_0_122_0 = 0
slot_0_123_0 = 1024
slot_0_124_0 = 256
slot_0_125_0 = 0
slot_0_126_0 = nil
slot_0_127_0 = 255
slot_0_128_0 = nil
slot_0_129_0 = nil
slot_0_130_0 = 1
slot_0_131_0 = 0
slot_0_132_0 = 0
slot_0_133_0 = false

function slot_0_134_0()
	slot_0_118_0 = 0
	slot_0_119_0 = 0
	slot_0_120_0 = 0
	slot_0_31_0 = {}
	slot_0_125_0 = 0
	slot_0_126_0 = nil
	slot_0_127_0 = 255
	slot_0_128_0 = nil
	slot_0_129_0 = nil
	slot_0_30_0 = {}
end

function Get_TextWidth(arg_43_0, arg_43_1)
	slot_0_42_0()

	local var_43_0 = arg_43_0 .. tostring(arg_43_1)
	local var_43_1 = slot_0_31_0[var_43_0]

	if not var_43_1 then
		var_43_1 = arg_43_1:get_text_size(arg_43_0).x
		slot_0_31_0[var_43_0] = var_43_1
		slot_0_122_0 = slot_0_122_0 + 1

		table.insert(slot_0_121_0, var_43_0)

		if slot_0_122_0 > slot_0_123_0 then
			local var_43_2 = math.min(slot_0_124_0, slot_0_122_0)

			for iter_43_0 = 1, var_43_2 do
				local var_43_3 = slot_0_121_0[iter_43_0]

				slot_0_31_0[var_43_3] = nil
			end

			for iter_43_1 = var_43_2 + 1, #slot_0_121_0 do
				slot_0_121_0[iter_43_1 - var_43_2] = slot_0_121_0[iter_43_1]
			end

			for iter_43_2 = #slot_0_121_0, #slot_0_121_0 - var_43_2 + 1, -1 do
				slot_0_121_0[iter_43_2] = nil
			end

			slot_0_122_0 = slot_0_122_0 - var_43_2
		end
	end

	return var_43_1 * slot_0_4_0
end

function slot_0_135_0()
	local var_44_0 = game.global_vars.real_time

	slot_0_118_0 = 0.9 * slot_0_118_0 + 0.1 * game.global_vars.frame_time
	slot_0_119_0 = math.floor(1 / slot_0_118_0 + 0.5)
	slot_0_120_0 = var_44_0

	return slot_0_119_0
end

function slot_0_136_0()
	local var_45_0 = game.engine:get_netchan()

	if var_45_0 and not var_45_0:is_null() then
		return math.floor(var_45_0:get_latency() * 1000 + 0.5)
	end

	return 0
end

function slot_0_137_0()
	local var_46_0 = game.engine:get_netchan()

	if not var_46_0 or var_46_0:is_null() then
		return 0
	end

	local function var_46_1(arg_47_0, arg_47_1)
		local var_47_0, var_47_1 = pcall(arg_47_0, var_46_0, arg_47_1)

		if var_47_0 and type(var_47_1) == "number" then
			return var_47_1
		end

		return nil
	end

	local function var_46_2(arg_48_0)
		local var_48_0 = var_46_1(arg_48_0, 0)
		local var_48_1 = var_46_1(arg_48_0, 1)

		if var_48_0 or var_48_1 then
			return math.max(var_48_0 or 0, var_48_1 or 0)
		end

		local var_48_2, var_48_3 = pcall(arg_48_0, var_46_0)

		if var_48_2 and type(var_48_3) == "number" then
			return var_48_3
		end

		return nil
	end

	if var_46_0.get_avg_loss then
		local var_46_3 = var_46_2(var_46_0.get_avg_loss)

		if var_46_3 then
			return math.floor(var_46_3 * 100 + 0.5)
		end
	end

	if var_46_0.get_loss then
		local var_46_4 = var_46_2(var_46_0.get_loss)

		if var_46_4 then
			return math.floor(var_46_4 * 100 + 0.5)
		end
	end

	return 0
end

slot_0_138_0 = 0.2

function slot_0_139_0(arg_49_0, arg_49_1, arg_49_2, arg_49_3)
	local var_49_0 = arg_49_0 / arg_49_1
	local var_49_1 = math.min(1, arg_49_0 / (arg_49_1 * slot_0_138_0)) * math.min(1, (arg_49_1 - arg_49_0) / (arg_49_1 * slot_0_138_0))

	return math.floor(arg_49_2 * math.sqrt(var_49_1) * (arg_49_3 / 255))
end

function slot_0_140_0(arg_50_0, arg_50_1, arg_50_2, arg_50_3, arg_50_4, arg_50_5)
	slot_0_42_0()

	slot_50_6_0 = draw.surface
	slot_50_6_0.font = arg_50_5
	slot_50_7_0 = slot_0_41_0(15)

	for iter_50_0, iter_50_1 in ipairs(arg_50_2) do
		if iter_50_1.text ~= "" then
			slot_50_13_1 = iter_50_1.down and slot_0_79_0 or arg_50_5
			slot_50_7_0 = slot_50_7_0 + Get_TextWidth(tostring(iter_50_1.text), slot_50_13_1)
		end
	end

	slot_50_8_0 = slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
	slot_50_9_0 = slot_0_41_0(1)
	slot_50_10_0 = 170
	slot_50_11_0 = 64
	slot_50_12_0 = math.max(1, math.floor(slot_50_7_0 / slot_50_11_0))

	for iter_50_2 = 0, slot_50_7_0, slot_50_12_0 do
		slot_50_17_1 = slot_0_139_0(iter_50_2, slot_50_7_0, slot_50_10_0, arg_50_3)

		if slot_50_17_1 > 0 then
			slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_2, arg_50_1, arg_50_0 + math.min(iter_50_2 + slot_50_12_0, slot_50_7_0), arg_50_1 + slot_50_8_0), draw.color(20, 20, 20, slot_50_17_1))
		end
	end

	slot_50_13_0 = draw.color(arg_50_4:get_r() * 0.1, arg_50_4:get_g() * 0.1, arg_50_4:get_b() * 0.1, 120 * arg_50_3 / 255)
	slot_50_14_0 = slot_50_7_0 * slot_0_138_0

	slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_14_0, arg_50_1, arg_50_0 + slot_50_7_0 - slot_50_14_0, arg_50_1 + slot_50_9_0), slot_50_13_0)
	slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_14_0, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + slot_50_7_0 - slot_50_14_0, arg_50_1 + slot_50_8_0), slot_50_13_0)

	slot_50_15_0 = math.floor(slot_50_14_0)
	slot_50_16_0 = 16
	slot_50_17_0 = math.max(1, math.floor(slot_50_15_0 / slot_50_16_0))

	for iter_50_3 = 0, slot_50_15_0, slot_50_17_0 do
		slot_50_22_1 = iter_50_3 / math.max(1, slot_50_14_0)
		slot_50_23_1 = slot_50_13_0:get_a() * slot_50_22_1
		slot_50_24_1 = draw.color(slot_50_13_0:get_r(), slot_50_13_0:get_g(), slot_50_13_0:get_b(), slot_50_23_1)

		slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_3, arg_50_1, arg_50_0 + iter_50_3 + slot_50_17_0, arg_50_1 + slot_50_9_0), slot_50_24_1)
		slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_7_0 - iter_50_3 - slot_50_17_0, arg_50_1, arg_50_0 + slot_50_7_0 - iter_50_3, arg_50_1 + slot_50_9_0), slot_50_24_1)
		slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_3, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + iter_50_3 + slot_50_17_0, arg_50_1 + slot_50_8_0), slot_50_24_1)
		slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_7_0 - iter_50_3 - slot_50_17_0, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + slot_50_7_0 - iter_50_3, arg_50_1 + slot_50_8_0), slot_50_24_1)
	end

	slot_50_18_0 = arg_50_0 + slot_0_41_0(8)
	slot_50_6_0.font = arg_50_5

	for iter_50_4, iter_50_5 in ipairs(arg_50_2) do
		if iter_50_5.text ~= "" then
			slot_50_24_0 = tostring(iter_50_5.text)
			slot_50_25_0 = iter_50_5.colored and draw.color(arg_50_4:get_r(), arg_50_4:get_g(), arg_50_4:get_b(), arg_50_3) or draw.color(255, 255, 255, arg_50_3)
			slot_50_26_0 = iter_50_5.down and slot_0_79_0 or arg_50_5
			slot_50_6_0.font = slot_50_26_0
			slot_50_27_0 = slot_0_4_0 < 1 and slot_0_41_0(7.5) or slot_0_41_0(7)
			slot_50_28_0 = arg_50_1 + (iter_50_5.down and slot_50_27_0 or slot_0_41_0(4)) + (iter_50_5.dy or 0)

			slot_50_6_0:add_text(draw.vec2(slot_50_18_0, slot_50_28_0), slot_50_24_0, slot_50_25_0)

			slot_50_18_0 = slot_50_18_0 + Get_TextWidth(slot_50_24_0, slot_50_26_0)
		end
	end

	return slot_50_7_0, slot_50_8_0
end

function slot_0_141_0(arg_51_0, arg_51_1)
	slot_0_42_0()

	local var_51_0 = slot_0_41_0(15)

	for iter_51_0, iter_51_1 in ipairs(arg_51_0) do
		if iter_51_1.text ~= "" then
			local var_51_1 = iter_51_1.down and slot_0_79_0 or arg_51_1

			var_51_0 = var_51_0 + Get_TextWidth(tostring(iter_51_1.text), var_51_1)
		end
	end

	return var_51_0, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end

function slot_0_142_0()
	local var_52_0 = slot_0_21_0:get_value()
	local var_52_1 = var_52_0 and var_52_0:get()

	if var_52_1 and var_52_1.get_raw then
		var_52_1 = var_52_1:get_raw()
	end

	if type(var_52_1) ~= "number" then
		var_52_1 = slot_0_25_0
	end

	for iter_52_0 = 1, #slot_0_23_0 do
		if bit.band(var_52_1, 2^(iter_52_0 - 1)) ~= 0 then
			return slot_0_23_0[iter_52_0]
		end
	end

	return 0
end

function slot_0_143_0()
	if not utils or not utils.get_unix_time then
		return ""
	end

	local var_53_0 = utils.get_unix_time()

	if not var_53_0 then
		return ""
	end

	local var_53_1 = ((var_53_0 + slot_0_142_0() * 60) % 86400 + 86400) % 86400
	local var_53_2 = math.floor(var_53_1 / 3600)
	local var_53_3 = math.floor(var_53_1 % 3600 / 60)
	local var_53_4 = math.floor(var_53_1 % 60)

	local function var_53_5(arg_54_0)
		arg_54_0 = tonumber(arg_54_0) or 0

		if arg_54_0 < 10 then
			return "0" .. tostring(arg_54_0)
		end

		return tostring(arg_54_0)
	end

	return var_53_5(var_53_2) .. ":" .. var_53_5(var_53_3) .. ":" .. var_53_5(var_53_4)
end

function slot_0_144_0(arg_55_0, arg_55_1, arg_55_2)
	local var_55_0 = slot_0_17_0:get_value()
	local var_55_1 = var_55_0 and var_55_0:get()

	if var_55_1 and var_55_1.get_raw then
		var_55_1 = var_55_1:get_raw()
	end

	if type(var_55_1) ~= "number" then
		var_55_1 = slot_0_19_0
	end

	local function var_55_2(arg_56_0)
		local var_56_0 = slot_0_20_0[arg_56_0]

		if not var_56_0 then
			return false
		end

		return bit.band(var_55_1, var_56_0) ~= 0
	end

	local var_55_3 = {}

	local function var_55_4()
		if #var_55_3 > 0 then
			table.insert(var_55_3, {
				colored = false,
				text = "    "
			})
		end
	end

	if var_55_2("Logo") then
		table.insert(var_55_3, {
			colored = false,
			text = "game"
		})
		table.insert(var_55_3, {
			colored = true,
			text = "sense"
		})
	end

	if var_55_2("FPS") then
		var_55_4()
		table.insert(var_55_3, {
			colored = true,
			text = arg_55_0
		})
		table.insert(var_55_3, {
			down = true,
			text = " FPS"
		})
	end

	if var_55_2("Ping") then
		var_55_4()
		table.insert(var_55_3, {
			colored = true,
			text = arg_55_1
		})
		table.insert(var_55_3, {
			down = true,
			text = " PING"
		})
	end

	if var_55_2("Network Lag") and arg_55_2 > 0 then
		var_55_4()
		table.insert(var_55_3, {
			colored = true,
			text = string.format("%d%%", arg_55_2)
		})
		table.insert(var_55_3, {
			down = true,
			text = " LOSS"
		})
	end

	if var_55_2("Clock") then
		local var_55_5 = slot_0_143_0()

		if var_55_5 ~= "" then
			var_55_4()
			table.insert(var_55_3, {
				colored = false,
				text = var_55_5,
				dy = slot_0_41_0(1)
			})
		end
	end

	if #var_55_3 == 0 then
		return nil
	end

	return var_55_3
end

-- ============================================
-- QUANTUM.LUA - ПОЛОСКА С ЗАКРУГЛЕНИЯМИ СПРАВА И СЛЕВА,
-- НО ПРАВЫЕ ЗАКРЫВАЕМ ДРУГОЙ ПОЛОСКОЙ
-- ============================================

-- Глобальные переменные для плавного FPS
quantum_fps_display = 0
quantum_fps_update_time = 0

function slot_0_145_0()
	if not slot_0_13_0:get_value():get() then
		return
	end

	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
	local surface = draw.surface
	surface.skip_dpi = true
	
	-- ===== ШРИФТ SF UI Display ДЛЯ ВОДЯНОЙ МЕТКИ =====
	if not quantum_font then
		quantum_font = draw.font_gdi("SF UI Display", slot_0_41_0(17), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
		quantum_font:create()
	end
	
	surface.font = quantum_font

	local current_time = game.global_vars.real_time
	
	if current_time - quantum_fps_update_time >= 1.0 then
		local raw_fps = slot_0_135_0()
		quantum_fps_display = raw_fps
		quantum_fps_update_time = current_time
	end
	
	local ping = slot_0_136_0()
	local clock = slot_0_143_0()
	local accent = slot_0_44_0:get_value():get()
	
	local accent_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), 255)
	local white = draw.color(255, 255, 255, 255)
	local grey = draw.color(180, 180, 180, 200)
	
	-- ЧАСТИ
	local parts = {}
	table.insert(parts, {text = "quantum", color = white})
	table.insert(parts, {text = ".lua", color = accent_color})
	
	if bit.band(slot_0_19_0, slot_0_20_0.FPS) ~= 0 then
		table.insert(parts, {text = "", is_dot = true})
		table.insert(parts, {text = tostring(quantum_fps_display), color = white})
		table.insert(parts, {text = " fps", color = grey})
	end
	
	if bit.band(slot_0_19_0, slot_0_20_0.Ping) ~= 0 then
		table.insert(parts, {text = "", is_dot = true})
		table.insert(parts, {text = tostring(ping), color = white})
		table.insert(parts, {text = " ms", color = grey})
	end
	
	if bit.band(slot_0_19_0, slot_0_20_0.Clock) ~= 0 and clock ~= "" then
		table.insert(parts, {text = "", is_dot = true})
		table.insert(parts, {text = clock, color = white})
	end

	-- РАЗМЕРЫ
	local total_width = 0
	local dot_radius = slot_0_41_0(3)
	local dot_spacing = dot_radius * 2 + slot_0_41_0(9)
	
	for i, part in ipairs(parts) do
		if part.is_dot then
			total_width = total_width + dot_spacing
		else
			total_width = total_width + surface.font:get_text_size(part.text).x
		end
	end
	
	local padding = slot_0_41_0(14)
	local height = slot_0_41_0(34)
	local line_width = slot_0_41_0(2)
	local width = total_width + padding * 2 + line_width + slot_0_41_0(4)
	local round = slot_0_41_0(10)
	
	local x = slot_0_0_0 - width - slot_0_41_0(10)
	local y = slot_0_41_0(10)
	
	local bg_color = draw.color(15, 15, 15, 200)
	local line_color = draw.color(255, 255, 255, 255)

	-- ===== РИСУЕМ =====
	surface.g.anti_alias = true
	
	-- 1. ФОН
	surface:add_rect_filled_rounded(
		draw.rect(x, y, x + width, y + height),
		bg_color,
		round
	)
	
	-- 2. ПОЛОСКА (закруглена со всех сторон)
	surface:add_rect_filled_rounded(
		draw.rect(x, y, x + line_width + round - 6, y + height),
		accent_color,
		round
	)
	
	-- 3. НАКЛАДЫВАЕМ ПОВЕРХ ПРАВУЮ ЧАСТЬ ПОЛОСКИ БЕЗ ЗАКРУГЛЕНИЙ
	surface:add_rect_filled(
		draw.rect(x + round - 6, y, x + line_width + round - 5, y + height),
		accent_color
	)
	
	surface.g.anti_alias = false

	-- ТЕКСТ И КРУЖОЧКИ
	local current_x = x + padding + line_width + 2 
	local text_size = surface.font:get_text_size("Ay")
	local text_y = y + (height - text_size.y) / 2 - 1
	local center_y = y + height / 2
	
	for i, part in ipairs(parts) do
		if part.is_dot then
			local dot_x = current_x + dot_radius
			surface.g.anti_alias = true
			surface:add_circle_filled(
				draw.vec2(dot_x + 4, center_y),
				dot_radius,
				accent_color
			)
			surface.g.anti_alias = false
			current_x = current_x + dot_spacing
		else
			surface:add_text(
				draw.vec2(current_x, text_y + 1),
				part.text,
				draw.color(0, 0, 0, 150)
			)
			surface:add_text(
				draw.vec2(current_x, text_y),
				part.text,
				part.color
			)
			current_x = current_x + surface.font:get_text_size(part.text).x
		end
	end
end

print("[Quantum.lua] Watermark loaded!")
slot_0_146_0 = {}
slot_0_147_0 = {}

mods.events:add_listener("molotov_detonate")
mods.events:add_listener("smokegrenade_detonate")
mods.events:add_listener("hegrenade_detonate")
mods.events:add_listener("inferno_extinguish")

slot_0_148_0 = nil

function slot_0_33_0()
	slot_0_148_0 = draw.font_gdi("Verdana", slot_0_41_0(10), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))

	slot_0_148_0:create()
end

slot_0_33_0()

slot_0_149_0 = 0.4
slot_0_150_0 = 0.4
slot_0_151_0 = {
	[0] = draw.color(255, 255, 255, 255),
	draw.color(254, 164, 0, 255),
	(draw.color(255, 255, 255, 255))
}

function slot_0_152_0(arg_60_0, arg_60_1)
	table.insert(slot_0_147_0, {
		arg_60_0[1],
		arg_60_0[2],
		arg_60_0[3],
		arg_60_1
	})
end

function slot_0_153_0(arg_61_0, arg_61_1, arg_61_2)
	local var_61_0 = arg_61_1 + arg_61_2 - slot_0_150_0
	local var_61_1 = arg_61_0 - arg_61_1
	local var_61_2 = slot_0_50_0:get_value():get()

	if var_61_1 <= 0 then
		return 0
	elseif var_61_1 < slot_0_149_0 then
		local var_61_3 = var_61_1 / slot_0_149_0

		return math.floor(var_61_3 * var_61_2)
	elseif var_61_0 <= arg_61_0 then
		local var_61_4 = (arg_61_0 - var_61_0) / slot_0_150_0

		return math.floor((1 - var_61_4) * var_61_2)
	else
		return var_61_2
	end
end

function HandleNade()
	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()

	function slot_62_0_0()
		slot_0_146_0 = {}
		slot_0_147_0 = {}
	end

	if not slot_0_47_0:get_value():get() and not slot_0_48_0:get_value():get() and not slot_0_49_0:get_value():get() then
		return slot_62_0_0()
	end

	if not game.engine:in_game() then
		return slot_62_0_0()
	end

	slot_62_1_0 = entities.get_local_pawn()

	if not slot_62_1_0 or not slot_62_1_0:is_alive() then
		return slot_62_0_0()
	end

	slot_62_2_0 = game.global_vars.cur_time

	for iter_62_0 = #slot_0_147_0, 1, -1 do
		slot_62_7_1 = slot_0_147_0[iter_62_0]
		slot_62_8_0 = nil

		if slot_62_7_1[4] == 0 then
			slot_62_8_0 = 20.5
		elseif slot_62_7_1[4] == 1 then
			slot_62_8_0 = 7.1
		elseif slot_62_7_1[4] == 2 then
			slot_62_8_0 = 1
		end

		table.insert(slot_0_146_0, {
			slot_62_7_1,
			slot_62_2_0,
			slot_62_8_0,
			slot_62_7_1[4]
		})
		table.remove(slot_0_147_0, iter_62_0)
	end

	slot_62_3_0 = draw.surface
	slot_62_3_0.g.anti_alias = true
	slot_62_4_0 = slot_0_41_0(41)
	slot_62_5_0 = slot_0_41_0(5)
	slot_62_6_0 = slot_0_41_0(12)
	slot_62_7_0 = draw.text_params.with_h(draw.text_alignment.center)

	for iter_62_1 = #slot_0_146_0, 1, -1 do
		slot_62_12_0 = slot_0_146_0[iter_62_1]
		slot_62_13_0 = slot_62_12_0[1]
		slot_62_14_0 = slot_62_12_0[2]
		slot_62_15_0 = slot_62_12_0[3]
		slot_62_16_0 = slot_62_12_0[4]
		slot_62_17_0 = slot_62_14_0 + slot_62_15_0

		if slot_62_17_0 <= slot_62_2_0 then
			table.remove(slot_0_146_0, iter_62_1)
		else
			slot_62_18_0 = slot_0_153_0(slot_62_2_0, slot_62_14_0, slot_62_15_0)

			if slot_62_18_0 <= 0 then
				-- block empty
			else
				slot_62_19_0 = vector(slot_62_13_0[1], slot_62_13_0[2], slot_62_13_0[3])
				slot_62_20_2 = math.world_to_screen(slot_62_19_0)
				slot_62_20_1 = draw.vec2(slot_62_20_2.x, slot_62_20_2.y - slot_62_6_0)
				slot_62_3_0.font = slot_0_80_0

				if slot_62_16_0 == 0 then
					slot_62_3_0:add_text(slot_62_20_1, "&", draw.color(slot_0_151_0[0]:get_r(), slot_0_151_0[0]:get_g(), slot_0_151_0[0]:get_b(), slot_62_18_0), slot_62_7_0)
				elseif slot_62_16_0 == 1 then
					slot_62_3_0:add_text(slot_62_20_1, "q", draw.color(slot_0_151_0[1]:get_r(), slot_0_151_0[1]:get_g(), slot_0_151_0[1]:get_b(), slot_62_18_0), slot_62_7_0)
				elseif slot_62_16_0 == 2 then
					slot_62_3_0:add_text(slot_62_20_1, "i", draw.color(slot_0_151_0[2]:get_r(), slot_0_151_0[2]:get_g(), slot_0_151_0[2]:get_b(), slot_62_18_0), slot_62_7_0)
				end

				slot_62_3_0.font = draw.fonts.gui_bold
				slot_62_20_0 = draw.vec2(slot_62_20_1.x, slot_62_20_1.y + slot_62_6_0 * 2)

				if slot_62_16_0 ~= 2 then
					slot_62_3_0:add_rect_filled_rounded(draw.rect(slot_62_20_0.x - slot_62_4_0 / 2, slot_62_20_0.y - slot_62_5_0 / 2, slot_62_20_0.x + slot_62_4_0 / 2, slot_62_20_0.y + slot_62_5_0 / 2), draw.color(150, 150, 150, math.floor(slot_62_18_0 * 1)), slot_0_41_0(5))

					slot_62_22_1 = slot_62_4_0 * (1 - math.min(1, math.max(0, (slot_62_2_0 - slot_62_14_0) / slot_62_15_0)))
					slot_62_23_1 = slot_62_20_0.x - slot_62_4_0 / 2
					slot_62_24_1 = slot_62_23_1 + slot_62_22_1

					slot_62_3_0:add_rect_filled_rounded(draw.rect(slot_62_23_1, slot_62_20_0.y - slot_62_5_0 / 2, slot_62_24_1, slot_62_20_0.y + slot_62_5_0 / 2), draw.color(slot_0_151_0[slot_62_16_0]:get_r(), slot_0_151_0[slot_62_16_0]:get_g(), slot_0_151_0[slot_62_16_0]:get_b(), slot_62_18_0), slot_0_41_0(5))

					slot_62_20_0 = draw.vec2(slot_62_20_0.x, slot_62_20_0.y + slot_62_5_0 / 2 + slot_62_6_0 / 2)
				else
					slot_62_20_0 = draw.vec2(slot_62_20_0.x, slot_62_20_0.y - slot_0_41_0(4))
				end

				slot_62_21_0 = math.max(0, slot_62_17_0 - slot_62_2_0)
				slot_62_3_0.font = slot_0_148_0
				slot_62_22_0 = string.format("%.1f S", slot_62_21_0)
				slot_62_23_0 = draw.color(0, 0, 0, slot_62_18_0)
				slot_62_24_0 = slot_0_41_0(1)
				slot_62_25_0 = {
					{
						-slot_62_24_0,
						-slot_62_24_0
					},
					{
						0,
						-slot_62_24_0
					},
					{
						slot_62_24_0,
						-slot_62_24_0
					},
					{
						-slot_62_24_0,
						0
					},
					{
						slot_62_24_0,
						0
					},
					{
						-slot_62_24_0,
						slot_62_24_0
					},
					{
						0,
						slot_62_24_0
					},
					{
						slot_62_24_0,
						slot_62_24_0
					}
				}

				for iter_62_2, iter_62_3 in ipairs(slot_62_25_0) do
					slot_62_31_0 = iter_62_3[1]
					slot_62_32_0 = iter_62_3[2]

					slot_62_3_0:add_text(draw.vec2(slot_62_20_0.x + slot_62_31_0, slot_62_20_0.y + slot_62_32_0), slot_62_22_0, slot_62_23_0, slot_62_7_0)
				end

				slot_62_3_0:add_text(slot_62_20_0, slot_62_22_0, draw.color(slot_0_151_0[slot_62_16_0]:get_r(), slot_0_151_0[slot_62_16_0]:get_g(), slot_0_151_0[slot_62_16_0]:get_b(), slot_62_18_0), slot_62_7_0)
			end
		end
	end

	slot_62_3_0.g.anti_alias = false
end

function Event(arg_64_0)
	local var_64_0 = arg_64_0:get_name()

	if var_64_0 == "round_start" or var_64_0 == "game_newmap" or var_64_0 == "map_shutdown" then
		slot_0_146_0 = {}
		slot_0_147_0 = {}
	elseif var_64_0 == "molotov_detonate" and slot_0_47_0:get_value():get() then
		local var_64_1 = arg_64_0:get_float("x")
		local var_64_2 = arg_64_0:get_float("y")
		local var_64_3 = arg_64_0:get_float("z")

		slot_0_152_0({
			var_64_1,
			var_64_2,
			var_64_3
		}, 1)
	elseif var_64_0 == "smokegrenade_detonate" and slot_0_48_0:get_value():get() then
		local var_64_4 = arg_64_0:get_float("x")
		local var_64_5 = arg_64_0:get_float("y")
		local var_64_6 = arg_64_0:get_float("z")

		slot_0_152_0({
			var_64_4,
			var_64_5,
			var_64_6
		}, 0)
	elseif var_64_0 == "hegrenade_detonate" and slot_0_49_0:get_value():get() then
		local var_64_7 = arg_64_0:get_float("x")
		local var_64_8 = arg_64_0:get_float("y")
		local var_64_9 = arg_64_0:get_float("z")

		

		slot_0_152_0({
			var_64_7,
			var_64_8,
			var_64_9
		}, 2)
	elseif var_64_0 == "inferno_extinguish" and slot_0_47_0:get_value():get() then
		local var_64_10 = arg_64_0:get_float("x")
		local var_64_11 = arg_64_0:get_float("y")
		local var_64_12 = arg_64_0:get_float("z")

		for iter_64_0 = #slot_0_146_0, 1, -1 do
			local var_64_13 = slot_0_146_0[iter_64_0]
			local var_64_14 = var_64_13[1]
			local var_64_15 = var_64_13[4]
			local var_64_16 = vector(var_64_14[1], var_64_14[2], var_64_14[3])

			if var_64_15 == 1 and var_64_16:dist(vector(var_64_10, var_64_11, var_64_12)) < 40 then
				table.remove(slot_0_146_0, iter_64_0)
			end
		end
	end
end

slot_0_154_0 = {}

function slot_0_155_0()
	if not slot_0_14_0:get_value():get() then
		return
	end

	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
	slot_0_154_0 = {}

	if not entities.get_local_controller() then
		return
	end

	entities.players:for_each(function(arg_66_0)
		local var_66_0 = arg_66_0.entity:to_player_pawn()

		if var_66_0 and not var_66_0:is_alive() and not var_66_0:is_enemy() then
			local var_66_1 = var_66_0:get_name()

			if var_66_1 then
				table.insert(slot_0_154_0, var_66_1)
			end
		end
	end)

	local var_65_0 = draw.color(255, 255, 255, 255)
	local var_65_1 = draw.color(0, 0, 0, 120)

	draw.surface.font = draw.fonts.gui_debug

	local var_65_2 = slot_0_0_0 - slot_0_41_0(20)
	local var_65_3 = slot_0_41_0(5)
	local var_65_4 = slot_0_41_0(1)
	local var_65_5 = {
		{
			x = var_65_4,
			y = var_65_4
		},
		{
			x = -var_65_4,
			y = var_65_4
		},
		{
			x = var_65_4,
			y = -var_65_4
		},
		{
			x = -var_65_4,
			y = -var_65_4
		},
		{
			x = 0,
			y = var_65_4
		},
		{
			y = 0,
			x = var_65_4
		},
		{
			y = 0,
			x = -var_65_4
		},
		{
			x = 0,
			y = -var_65_4
		}
	}
	local var_65_6 = draw.text_params.with_h(draw.text_alignment.right)

	local function var_65_7(arg_67_0, arg_67_1, arg_67_2)
		if string.len(arg_67_0) > 25 then
			arg_67_0 = string.sub(arg_67_0, 1, 17) .. "..."
		end

		for iter_67_0, iter_67_1 in ipairs(var_65_5) do
			draw.surface:add_text(draw.vec2(arg_67_1 + iter_67_1.x, arg_67_2 + iter_67_1.y), arg_67_0, var_65_1, var_65_6)
		end

		draw.surface:add_text(draw.vec2(arg_67_1, arg_67_2), arg_67_0, var_65_0, var_65_6)
	end

	if #slot_0_154_0 > 0 then
		local var_65_8 = var_65_3 + slot_0_41_0(20) + slot_0_41_0(15)

		for iter_65_0, iter_65_1 in ipairs(slot_0_154_0) do
			var_65_7(iter_65_1, var_65_2, var_65_8)

			var_65_8 = var_65_8 + slot_0_41_0(15)
		end
	end
end

slot_0_156_0 = 8
slot_0_157_0 = 3
slot_0_158_0 = 2
slot_0_159_0 = draw.color(255, 255, 255, 255)
slot_0_160_0 = {}

-- ДОБАВЛЯЕМ ЧЕКБОКС ДЛЯ ВКЛЮЧЕНИЯ/ВЫКЛЮЧЕНИЯ УРОНА
slot_0_175_0 = gui.checkbox(gui.control_id("Enable Damage Numbers"))
misc_group:Add(gui.MakeControl("Damage Numbers", slot_0_175_0))
slot_0_175_0:set_value(true)  -- по умолчанию включено

-- НОВАЯ ФУНКЦИЯ ДЛЯ ПОЛУЧЕНИЯ ПОЗИЦИИ ХИТБОКСА
function slot_0_164_0(arg_68_0, arg_68_1)
    if entities.get_hitbox_position then
        local var_68_0, var_68_1 = pcall(entities.get_hitbox_position, arg_68_0, arg_68_1)
        if var_68_0 and var_68_1 then
            return var_68_1
        end
    end

    if arg_68_0.get_hitbox_position then
        local var_68_2, var_68_3 = pcall(arg_68_0.get_hitbox_position, arg_68_0, arg_68_1)
        if var_68_2 and var_68_3 then
            return var_68_3
        end
    end

    if arg_68_0.get_bone_position then
        local var_68_4 = slot_0_163_0[arg_68_1]
        if var_68_4 then
            local var_68_5, var_68_6 = pcall(arg_68_0.get_bone_position, arg_68_0, var_68_4)
            if var_68_5 and var_68_6 then
                return var_68_6
            end
        end
    end

    local var_68_7 = arg_68_0:get_abs_origin()
    return vector(var_68_7.x, var_68_7.y, var_68_7.z + (slot_0_162_0[arg_68_1] or 0))
end

-- НОВЫЙ ОБРАБОТЧИК player_hurt (сохраняет данные всегда, но отрисовка будет по чекбоксу)
events.event:add(function(arg_69_0)
    if not slot_0_15_0:get_value():get() then
        return
    end

    if arg_69_0:get_name() ~= "player_hurt" then
        return
    end

    local var_69_0 = arg_69_0:get_controller("attacker")
    local var_69_1 = arg_69_0:get_controller("userid")
    local var_69_2 = arg_69_0:get_int("hitbox")
    local var_69_3 = arg_69_0:get_int("dmg_health")

    if not var_69_0 or not var_69_1 then
        return
    end

    if var_69_0 ~= entities.get_local_controller() or not var_69_1:is_enemy() then
        return
    end

    local var_69_5 = var_69_1:get_pawn()
    if not var_69_5 then
        return
    end

    local var_69_6 = slot_0_164_0(var_69_5, var_69_2)

    table.insert(slot_0_160_0, {
        pos = var_69_6,
        time = game.global_vars.real_time,
        damage = var_69_3
    })
end)

local clantag_cache = ""

local pnd_animation = {
    "PND",
    "PND.",
    "PND.l",
    "PND.lu",
    "PND.lua",
    "PND.lua ",
    "PND.lua",
    "PND.lu",
    "PND.l",
    "PND.",
    "PND"
}

local function set_clantag(name)
    if clantag_cache == name then
        return
    end

    game.engine:ClientCmd('setinfo name "' .. name .. '"')

    clantag_cache = name
end
events.present_queue:add(function()

    if not game.engine:is_connected() then
        return
    end

    if not cbx_clantag then
        return
    end

    local mode = cbx_clantag:get_value():get()

    if mode ~= 2 then
        return
    end

    local frame =
        math.floor(game.global_vars.real_time * 3)
        % #pnd_animation + 1

    set_clantag(
        pnd_animation[frame]
    )

end)

-- НОВАЯ ОТРИСОВКА ХИТМАРКЕРА С АНИМАЦИЕЙ
events.present_queue:add(function()
    if not slot_0_15_0:get_value():get() then
        return
    end

    slot_0_42_0()
    slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()

    local var_70_0 = game.global_vars.real_time
    local var_70_1 = slot_0_51_0:get_value():get()
    local var_70_2 = draw.surface
    local var_70_3 = slot_0_41_0(slot_0_156_0)
    local var_70_4 = slot_0_41_0(slot_0_157_0)
    local var_70_5 = slot_0_41_0(slot_0_158_0)

    -- Проверяем включен ли показ урона
    local var_70_6 = slot_0_175_0:get_value():get()

    -- Жирный шрифт для цифр
    var_70_2.font = draw.fonts.gui_bold
    
    -- Параметры анимации
    local var_70_7 = 1.5   -- общая длительность
    local var_70_8 = 50    -- на сколько пикселей улетает вверх
    local var_70_9 = 0.2   -- время появления
    local var_70_10 = 0.7  -- время начала исчезновения

    for iter_70_0 = #slot_0_160_0, 1, -1 do
        local var_70_11 = slot_0_160_0[iter_70_0]
        local var_70_12 = var_70_0 - var_70_11.time

        -- Удаляем если время вышло
        if var_70_12 > var_70_7 then
            table.remove(slot_0_160_0, iter_70_0)
        else
            local var_70_13 = math.world_to_screen(var_70_11.pos)
            if var_70_13 then
                -- Прогресс анимации
                local var_70_14 = var_70_12 / var_70_7
                
                -- Плавное появление
                local var_70_15 = math.min(var_70_12 / var_70_9, 1)
                local var_70_16 = var_70_15 * var_70_15 * (3 - 2 * var_70_15)
                
                -- Улетает вверх
                local var_70_17 = var_70_14 * var_70_14 * var_70_8
                
                -- Прозрачность
                local var_70_18
                if var_70_14 < var_70_10 then
                    var_70_18 = 255
                else
                    local var_70_19 = (var_70_14 - var_70_10) / (1 - var_70_10)
                    var_70_18 = 255 * (1 - var_70_19 * var_70_19)
                end
                
                var_70_18 = math.max(0, math.min(255, var_70_18))
                
                -- Рисуем хитмаркер (всегда)
                local var_70_20 = math.floor(var_70_18 * 0.8)
                local var_70_21 = draw.color(255, 255, 255, var_70_20)
                
                var_70_2:add_line(draw.vec2(var_70_13.x - var_70_3, var_70_13.y - var_70_3), draw.vec2(var_70_13.x - var_70_4, var_70_13.y - var_70_4), var_70_21, var_70_5)
                var_70_2:add_line(draw.vec2(var_70_13.x + var_70_4, var_70_13.y + var_70_4), draw.vec2(var_70_13.x + var_70_3, var_70_13.y + var_70_3), var_70_21, var_70_5)
                var_70_2:add_line(draw.vec2(var_70_13.x + var_70_3, var_70_13.y - var_70_3), draw.vec2(var_70_13.x + var_70_4, var_70_13.y - var_70_4), var_70_21, var_70_5)
                var_70_2:add_line(draw.vec2(var_70_13.x - var_70_4, var_70_13.y + var_70_4), draw.vec2(var_70_13.x - var_70_3, var_70_13.y + var_70_3), var_70_21, var_70_5)

                -- Рисуем цифры урона ТОЛЬКО если чекбокс включен
                if var_70_6 then
                    local var_70_22 = var_70_11.damage or 0
                    local var_70_23 = tostring("-" .. var_70_22)
                    
                    local var_70_24 = var_70_2.font:get_text_size(var_70_23).x
                    local var_70_25 = var_70_2.font:get_text_size(var_70_23).y

                    local var_70_26 = draw.vec2(
                        var_70_13.x - var_70_24 / 2, 
                        var_70_13.y - var_70_3 - var_70_25 - slot_0_41_0(5) - var_70_17
                    )

                    local var_70_27 = math.floor(var_70_18)
                    local var_70_28
                    if var_70_22 >= 100 then
                        var_70_28 = draw.color(255, 50, 50, var_70_27)
                    elseif var_70_22 >= 50 then
                        var_70_28 = draw.color(255, 200, 50, var_70_27)
                    else
                        var_70_28 = draw.color(255, 255, 255, var_70_27)
                    end
                    var_70_2:add_text(var_70_26, var_70_23, var_70_28)
                end
            end
        end
    end
end)
-- ===== LOW HP EFFECT (постоянная яркость) =====
slot_0_700_0 = gui.checkbox(gui.control_id("Enable Low HP Effect"))
visuals_group:Add(gui.MakeControl("Low HP Effect", slot_0_700_0))
slot_0_700_0:set_value(true)

slot_0_701_0 = gui.slider(gui.control_id("Low HP Threshold"), 10, 50, 1)
visuals_group:Add(gui.MakeControl("HP Threshold", slot_0_701_0))
slot_0_701_0:get_value():set(25)

events.present_queue:add(function()
    if not slot_0_700_0:get_value():get() then
        return
    end

    local var_200_0 = entities.get_local_pawn()
    if not var_200_0 or not var_200_0:is_alive() then
        return
    end

    local var_200_1 = var_200_0.m_iHealth
    if not var_200_1 then
        return
    end

    local var_200_2 = var_200_1:get() or 100
    local var_200_3 = slot_0_701_0:get_value():get() or 25

    if var_200_2 > var_200_3 then
        return
    end

    slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
    local var_200_4 = draw.surface

    -- ===== ПОСТОЯННАЯ ЯРКОСТЬ (НЕ ЗАВИСИТ ОТ HP) =====
    local var_200_5 = 65  -- Всегда максимальная яркость
    local var_200_6 = math.floor(var_200_5 * 0.5)

    -- ===== 1. КРАСНАЯ ТЕНЬ ПО КРАЯМ =====
    local var_200_7 = var_200_6
    local var_200_8 = math.floor(slot_0_0_0 * 0.12)
    
    -- Верх
    for iter_200_0 = 0, var_200_8 do
        local var_200_9 = iter_200_0 / var_200_8
        local var_200_10 = math.floor(var_200_7 * (1 - var_200_9))
        var_200_4:add_line(
            draw.vec2(0, iter_200_0),
            draw.vec2(slot_0_0_0, iter_200_0),
            draw.color(255, 0, 0, var_200_10),
            slot_0_41_0(1)
        )
    end
    
    -- Низ
    for iter_200_1 = 0, var_200_8 do
        local var_200_11 = iter_200_1 / var_200_8
        local var_200_12 = math.floor(var_200_7 * (1 - var_200_11))
        var_200_4:add_line(
            draw.vec2(0, slot_0_1_0 - iter_200_1),
            draw.vec2(slot_0_0_0, slot_0_1_0 - iter_200_1),
            draw.color(255, 0, 0, var_200_12),
            slot_0_41_0(1)
        )
    end
    
    -- Лево
    for iter_200_2 = 0, var_200_8 do
        local var_200_13 = iter_200_2 / var_200_8
        local var_200_14 = math.floor(var_200_7 * (1 - var_200_13))
        var_200_4:add_line(
            draw.vec2(iter_200_2, 0),
            draw.vec2(iter_200_2, slot_0_1_0),
            draw.color(255, 0, 0, var_200_14),
            slot_0_41_0(1)
        )
    end
    
    -- Право
    for iter_200_3 = 0, var_200_8 do
        local var_200_15 = iter_200_3 / var_200_8
        local var_200_16 = math.floor(var_200_7 * (1 - var_200_15))
        var_200_4:add_line(
            draw.vec2(slot_0_0_0 - iter_200_3, 0),
            draw.vec2(slot_0_0_0 - iter_200_3, slot_0_1_0),
            draw.color(255, 0, 0, var_200_16),
            slot_0_41_0(1)
        )
    end

    -- ===== 2. ЗАТЕМНЕНИЕ =====
    var_200_4:add_rect_filled(
        draw.rect(0, 0, slot_0_0_0, slot_0_1_0),
        draw.color(255, 0, 0, math.floor(var_200_5 * 0.1))
    )

    -- ===== 3. НАДПИСЬ "WARNING, LOW HP!" НИЖЕ ПРИЦЕЛА =====
    local var_200_17 = "⚠ WARNING, LOW HP! ⚠"
    var_200_4.font = draw.fonts.gui_bold
    
    local var_200_18 = var_200_4.font:get_text_size(var_200_17).x
    local var_200_19 = var_200_4.font:get_text_size(var_200_17).y
    
    local var_200_20 = game.global_vars.real_time
    local var_200_21 = (math.sin(var_200_20 * 3) + 1) / 2
    local var_200_22 = math.floor(180 + var_200_21 * 75)
    
    local var_200_23 = slot_0_0_0 / 2 - var_200_18 / 2
    local var_200_24 = slot_0_1_0 / 2 + slot_0_41_0(90)
    
    -- Тень
    var_200_4:add_text(
        draw.vec2(var_200_23 + 2, var_200_24 + 2),
        var_200_17,
        draw.color(0, 0, 0, math.floor(var_200_22 * 0.5))
    )
    
    -- Основной текст
    var_200_4:add_text(
        draw.vec2(var_200_23, var_200_24),
        var_200_17,
        draw.color(255, 50, 50, var_200_22)
    )
    
    -- Красная линия под текстом
    var_200_4:add_line(
        draw.vec2(var_200_23, var_200_24 + var_200_19 + 5),
        draw.vec2(var_200_23 + var_200_18, var_200_24 + var_200_19 + 5),
        draw.color(255, 0, 0, math.floor(var_200_22 * 0.4)),
        slot_0_41_0(2)
    )
end)
-- ===== KILL LOG =====
slot_0_800_0 = gui.checkbox(gui.control_id("Enable Kill Log"))
visuals_group:Add(gui.MakeControl("Kill Log", slot_0_800_0))
slot_0_800_0:set_value(true)

slot_0_801_0 = gui.slider(gui.control_id("Kill Log Duration"), 1, 10, 1)
visuals_group:Add(gui.MakeControl("Duration (seconds)", slot_0_801_0))
slot_0_801_0:get_value():set(3)

slot_0_802_0 = {}

-- ===== ПОСЛЕДНИЙ ВРАГ ДЛЯ МИССОВ =====
slot_0_805_0 = nil
slot_0_806_0 = "body"

-- ===== ОБРАБОТЧИК ВЫСТРЕЛОВ =====
events.event:add(function(arg_500_0)
    if not slot_0_800_0:get_value():get() then
        return
    end

    if arg_500_0:get_name() ~= "weapon_fire" then
        return
    end

    local var_500_0 = arg_500_0:get_controller("userid")
    if var_500_0 ~= entities.get_local_controller() then
        return
    end

    -- Сохраняем цель для мисса (если была)
    -- Берем ближайшего врага
    local var_500_1 = entities.get_local_pawn()
    if var_500_1 then
        local var_500_2 = var_500_1:get_abs_origin()
        local var_500_3 = nil
        local var_500_4 = 9999
        
        entities.players:for_each(function(arg_510_0)
            local var_510_0 = arg_510_0.entity:to_player_pawn()
            if var_510_0 and var_510_0:is_alive() and var_510_0:is_enemy() then
                local var_510_1 = var_510_0:get_abs_origin()
                local var_510_2 = var_500_2:dist(var_510_1)
                if var_510_2 < var_500_4 then
                    var_500_4 = var_510_2
                    var_500_3 = var_510_0
                end
            end
        end)
        
        if var_500_3 then
            slot_0_805_0 = var_500_3:get_name() or "enemy"
            -- Определяем часть тела для мисса (по умолчанию body)
            slot_0_806_0 = "body"
        end
    end
end)

-- ===== СЧИТАЕМ ВЫСТРЕЛЫ =====
slot_0_803_0 = 0
slot_0_804_0 = 0

events.event:add(function(arg_501_0)
    if not slot_0_800_0:get_value():get() then
        return
    end

    if arg_501_0:get_name() == "weapon_fire" then
        local var_501_0 = arg_501_0:get_controller("userid")
        if var_501_0 == entities.get_local_controller() then
            slot_0_803_0 = slot_0_803_0 + 1
        end
    end
end)

-- ===== СЧИТАЕМ ПОПАДАНИЯ (запоминаем часть тела) =====
events.event:add(function(arg_502_0)
    if not slot_0_800_0:get_value():get() then
        return
    end

    if arg_502_0:get_name() ~= "player_hurt" then
        return
    end

    local var_502_0 = arg_502_0:get_controller("attacker")
    if var_502_0 ~= entities.get_local_controller() then
        return
    end

    slot_0_804_0 = slot_0_804_0 + 1
    
    -- Запоминаем часть тела для попадания
    local var_502_1 = arg_502_0:get_int("hitgroup")
    if var_502_1 == 1 then
        slot_0_806_0 = "head"
    elseif var_502_1 == 2 then
        slot_0_806_0 = "chest"
    elseif var_502_1 == 3 then
        slot_0_806_0 = "stomach"
    elseif var_502_1 == 4 or var_502_1 == 5 then
        slot_0_806_0 = "arm"
    elseif var_502_1 == 6 or var_502_1 == 7 then
        slot_0_806_0 = "leg"
    else
        slot_0_806_0 = "body"
    end
end)

-- ===== ОБРАБОТЧИК УБИЙСТВ =====
events.event:add(function(arg_200_0)
    if not slot_0_800_0:get_value():get() then
        return
    end

    if arg_200_0:get_name() ~= "player_hurt" then
        return
    end

    local var_200_0 = arg_200_0:get_controller("attacker")
    local var_200_1 = arg_200_0:get_controller("userid")
    local var_200_2 = arg_200_0:get_int("health")
    local var_200_3 = arg_200_0:get_int("dmg_health")
    local var_200_4 = arg_200_0:get_int("hitgroup")

    if not var_200_0 or not var_200_1 then
        return
    end

    if var_200_0 ~= entities.get_local_controller() then
        return
    end

    if not var_200_1:is_enemy() then
        return
    end

    if var_200_2 <= 0 then
        local var_200_5 = var_200_1:get_name() or "Unknown"
        local var_200_6 = entities.get_local_controller():get_name() or "You"
        
        local var_200_7 = ""
        if var_200_4 == 1 then
            var_200_7 = "head"
        elseif var_200_4 == 2 then
            var_200_7 = "chest"
        elseif var_200_4 == 3 then
            var_200_7 = "stomach"
        elseif var_200_4 == 4 or var_200_4 == 5 then
            var_200_7 = "arm"
        elseif var_200_4 == 6 or var_200_4 == 7 then
            var_200_7 = "leg"
        else
            var_200_7 = "body"
        end
        
        local var_200_8 = string.format("Killed %s by %s in %s (%d)", var_200_5, var_200_6, var_200_7, var_200_3)
        
        table.insert(slot_0_802_0, {
            text = var_200_8,
            time = game.global_vars.real_time,
            alpha = 0,
            y_offset = 60,
            color = draw.color(255, 255, 255, 255)
        })
        
        if #slot_0_802_0 > 5 then
            table.remove(slot_0_802_0, 1)
        end
    end
end)

-- ===== СБРОС СЧЁТЧИКОВ ПРИ РАУНДЕ =====
events.event:add(function(arg_503_0)
    if arg_503_0:get_name() == "round_start" then
        slot_0_803_0 = 0
        slot_0_804_0 = 0
        slot_0_805_0 = nil
    end
end)

-- ===== ПРОВЕРКА МИССОВ (каждый кадр) =====
events.present_queue:add(function()
    if not slot_0_800_0:get_value():get() then
        return
    end

    if slot_0_803_0 > slot_0_804_0 then
        local var_504_0 = slot_0_803_0 - slot_0_804_0
        if var_504_0 > 0 then
            local var_504_1 = slot_0_805_0 or "enemy"
            local var_504_2 = slot_0_806_0 or "body"
            
            local var_504_3 = string.format("Missed %s in %s", var_504_1, var_504_2)
            
            table.insert(slot_0_802_0, {
                text = var_504_3,
                time = game.global_vars.real_time,
                alpha = 0,
                y_offset = 60,
                color = draw.color(255, 0, 0, 255)
            })
            
            slot_0_804_0 = slot_0_803_0
            
            if #slot_0_802_0 > 5 then
                table.remove(slot_0_802_0, 1)
            end
        end
    end
end)

-- ===== СОЗДАЁМ БОЛЬШОЙ ШРИФТ ДЛЯ KILL LOG =====
if not kill_log_big_font then
    kill_log_big_font = draw.font_gdi("SF UI Display", slot_0_41_0(16), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
    kill_log_big_font:create()
end

-- ===== ОТРИСОВКА =====
events.present_queue:add(function()
    if not slot_0_800_0:get_value():get() then
        return
    end

    if #slot_0_802_0 == 0 then
        return
    end

    slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
    local var_201_0 = draw.surface
    local var_201_1 = game.global_vars.real_time
    local var_201_2 = slot_0_801_0:get_value():get() or 3
    
    var_201_0.font = kill_log_big_font  -- ← ИСПОЛЬЗУЕМ БОЛЬШОЙ ШРИФТ
    local var_201_3 = slot_0_0_0 / 2
    local var_201_4 = slot_0_1_0 / 2 + slot_0_41_0(130)
    
    local var_201_5 = slot_0_41_0(12)
    local var_201_6 = slot_0_41_0(10)
    local var_201_7 = slot_0_41_0(2)
    
    -- ===== ЦВЕТ ПОЛОСКИ ИЗ OVERRIDE COLOR =====
    local accent = slot_0_44_0:get_value():get()
    local accent_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), 255)

    for iter_201_0 = #slot_0_802_0, 1, -1 do
        local var_201_8 = slot_0_802_0[iter_201_0]
        local var_201_9 = var_201_1 - var_201_8.time
        
        if var_201_9 > var_201_2 then
            table.remove(slot_0_802_0, iter_201_0)
        else
            if var_201_9 < 0.3 then
                local var_201_10 = var_201_9 / 0.3
                var_201_8.alpha = math.floor(var_201_10 * 255)
                var_201_8.y_offset = math.floor(60 * (1 - var_201_10))
            else
                var_201_8.alpha = 255
                var_201_8.y_offset = 0
            end
            
            if var_201_9 > var_201_2 - 0.3 then
                local var_201_11 = (var_201_9 - (var_201_2 - 0.3)) / 0.3
                var_201_8.alpha = math.floor(255 * (1 - var_201_11))
                var_201_8.y_offset = math.floor(60 * var_201_11)
            end
            
            local var_201_12 = math.max(0, math.min(255, var_201_8.alpha))
            
            local var_201_13 = var_201_8.text
            local var_201_14 = var_201_0.font:get_text_size(var_201_13).x
            local var_201_15 = var_201_0.font:get_text_size(var_201_13).y
            
            local var_201_16 = var_201_14 + var_201_5 * 2 + var_201_7 + 2
            local var_201_17 = var_201_15 + var_201_5 * 2
            
            local var_201_18 = var_201_3 - var_201_16 / 2
            local var_201_19 = var_201_4 - (iter_201_0 - 1) * (var_201_17 + slot_0_41_0(5)) + var_201_8.y_offset
            
            local bg_color = draw.color(15, 15, 15, math.floor(var_201_12 * 0.8))
            -- ===== ПОЛОСКА ЦВЕТОМ ИЗ OVERRIDE COLOR =====
            local line_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), math.floor(var_201_12 * 0.9))

            -- ===== ФОН =====
            var_201_0.g.anti_alias = true
            var_201_0:add_rect_filled_rounded(
                draw.rect(var_201_18, var_201_19, var_201_18 + var_201_16, var_201_19 + var_201_17),
                bg_color,
                var_201_6
            )
            
            -- ===== ПОЛОСКА СЛЕВА (цвет из Override Color) =====
            var_201_0:add_rect_filled_rounded(
                draw.rect(var_201_18, var_201_19, var_201_18 + var_201_7 + var_201_6 - 6, var_201_19 + var_201_17),
                line_color,
                var_201_6
            )
            
            -- ===== НАКЛАДЫВАЕМ ПОВЕРХ ПРАВУЮ ЧАСТЬ ПОЛОСКИ =====
            var_201_0:add_rect_filled(
                draw.rect(var_201_18 + var_201_6 - 6, var_201_19, var_201_18 + var_201_7 + var_201_6 - 5, var_201_19 + var_201_17),
                line_color
            )
            
            var_201_0.g.anti_alias = false
            
            -- ===== ЦВЕТ ТЕКСТА =====
            local var_201_text_color = var_201_8.color or draw.color(255, 255, 255, 255)
            
            -- ===== ТЕКСТ =====
            local var_201_24 = var_201_18 + var_201_5 + var_201_7 + 2
            local var_201_25 = var_201_19 + var_201_5
            
            var_201_0:add_text(
                draw.vec2(var_201_24 + 1, var_201_25 + 1),
                var_201_13,
                draw.color(0, 0, 0, math.floor(var_201_12 * 0.3))
            )
            
            var_201_0:add_text(
                draw.vec2(var_201_24, var_201_25),
                var_201_13,
                draw.color(
                    var_201_text_color:get_r(),
                    var_201_text_color:get_g(),
                    var_201_text_color:get_b(),
                    var_201_12
                )
            )
        end
    end
end)
-- ===== HEADSHOT INDICATOR =====
slot_0_300_0 = gui.checkbox(gui.control_id("Enable Headshot Indicator"))
visuals_group:Add(gui.MakeControl("Headshot Indicator", slot_0_300_0))
slot_0_300_0:set_value(true)

slot_0_301_0 = gui.slider(gui.control_id("Headshot Effect Duration"), 1, 10, 1)
visuals_group:Add(gui.MakeControl("Effect Duration", slot_0_301_0))
slot_0_301_0:get_value():set(1)

slot_0_302_0 = 0
slot_0_303_0 = false

-- СОЗДАЕМ ШРИФТ (БЕЗ bold, просто жирный через настройки)
slot_0_304_0 = draw.font_gdi("Verdana", 60, bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_304_0:create()

events.event:add(function(arg_90_0)
    if not slot_0_300_0:get_value():get() then
        return
    end

    if arg_90_0:get_name() ~= "player_hurt" then
        return
    end

    local var_90_0 = arg_90_0:get_controller("attacker")
    local var_90_1 = arg_90_0:get_controller("userid")
    local var_90_2 = arg_90_0:get_int("hitgroup")

    if not var_90_0 or not var_90_1 then
        return
    end

    if var_90_0 ~= entities.get_local_controller() then
        return
    end

    if not var_90_1:is_enemy() then
        return
    end

    if var_90_2 == 1 then
        slot_0_302_0 = game.global_vars.real_time
        slot_0_303_0 = true
    end
end)

events.present_queue:add(function()
    if not slot_0_300_0:get_value():get() then
        return
    end

    if not slot_0_303_0 then
        return
    end

    slot_0_42_0()
    slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()

    local var_91_0 = game.global_vars.real_time
    local var_91_1 = slot_0_301_0:get_value():get() or 3
    local var_91_2 = var_91_0 - slot_0_302_0
    local var_91_3 = var_91_2 / var_91_1

    -- ПЛАВНОСТЬ: smoothstep
    local var_91_4 = var_91_3 * var_91_3 * (3 - 2 * var_91_3)
    if var_91_4 > 1 then
        var_91_4 = 1
    end

    if var_91_3 > 1 then
        slot_0_303_0 = false
        return
    end

    local var_91_5 = draw.surface
    local var_91_6 = math.floor(255 * (1 - var_91_3))

    -- ===== 1. КРАСНАЯ ВИНЬЕТКА =====
    local var_91_7 = math.floor(var_91_6 * 0.5)
    local var_91_8 = math.floor(slot_0_0_0 * 0.15)
    
    for iter_91_0 = 0, var_91_8 do
        local var_91_9 = iter_91_0 / var_91_8
        local var_91_10 = math.floor(var_91_7 * (1 - var_91_9))
        var_91_5:add_line(
            draw.vec2(0, iter_91_0),
            draw.vec2(slot_0_0_0, iter_91_0),
            draw.color(255, 255, 255, var_91_10),
            slot_0_41_0(1)
        )
    end
    
    for iter_91_1 = 0, var_91_8 do
        local var_91_11 = iter_91_1 / var_91_8
        local var_91_12 = math.floor(var_91_7 * (1 - var_91_11))
        var_91_5:add_line(
            draw.vec2(0, slot_0_1_0 - iter_91_1),
            draw.vec2(slot_0_0_0, slot_0_1_0 - iter_91_1),
            draw.color(255, 255, 255, var_91_12),
            slot_0_41_0(1)
        )
    end
    
    for iter_91_2 = 0, var_91_8 do
        local var_91_13 = iter_91_2 / var_91_8
        local var_91_14 = math.floor(var_91_7 * (1 - var_91_13))
        var_91_5:add_line(
            draw.vec2(iter_91_2, 0),
            draw.vec2(iter_91_2, slot_0_1_0),
            draw.color(255, 255, 255, var_91_14),
            slot_0_41_0(1)
        )
    end
    
    for iter_91_3 = 0, var_91_8 do
        local var_91_15 = iter_91_3 / var_91_8
        local var_91_16 = math.floor(var_91_7 * (1 - var_91_15))
        var_91_5:add_line(
            draw.vec2(slot_0_0_0 - iter_91_3, 0),
            draw.vec2(slot_0_0_0 - iter_91_3, slot_0_1_0),
            draw.color(255, 0, 0, var_91_16),
            slot_0_41_0(1)
        )
    end

    -- ===== 2. ЗАТЕМНЕНИЕ =====
    var_91_5:add_rect_filled(
        draw.rect(0, 0, slot_0_0_0, slot_0_1_0),
        draw.color(255, 0, 0, math.floor(var_91_6 * 0.15))
    )

    -- ===== 3. ТЕКСТ "HEADSHOT" С ПЛАВНЫМ ВЫЛЕТОМ =====
    local var_91_17 = "HEADSHOT"
    var_91_5.font = slot_0_304_0
    
    local var_91_18 = var_91_5.font:get_text_size(var_91_17).x
    local var_91_19 = var_91_5.font:get_text_size(var_91_17).y
    
      -- ПРОСТОЙ ВЫЛЕТ СНИЗУ (БЫСТРЕЕ И НИЖЕ)
    local var_91_21 = math.floor(255 * (1 - var_91_3 * 0.1))
    
    -- Ускоряем анимацию (var_91_4 умножаем на 1.5, но ограничиваем 1)
    local var_91_4_fast = math.min(var_91_4 * 3, 3)
    
    -- Позиция: стартует ниже экрана и быстро вылетает
    local var_91_22 = slot_0_1_0 + var_91_19 - (slot_0_1_0 + var_91_19 * 2) * var_91_4_fast
    
    -- ===== ЖИРНЫЙ ТЕКСТ (несколько слоев) =====
    -- Тень 1
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 + 6, var_91_22 + 6),
        var_91_17,
        draw.color(100, 0, 0, math.floor(var_91_21 * 0.6))
    )
    
    -- Тень 2
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 + 3, var_91_22 + 3),
        var_91_17,
        draw.color(150, 0, 0, math.floor(var_91_21 * 0.4))
    )
    
    -- Свечение (красный ореол)
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 + 5, var_91_22 + 5),
        var_91_17,
        draw.color(255, 0, 0, math.floor(var_91_21 * 0.2))
    )
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 - 5, var_91_22 - 5),
        var_91_17,
        draw.color(255, 0, 0, math.floor(var_91_21 * 0.2))
    )
    
    -- Основной текст
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2, var_91_22),
        var_91_17,
        draw.color(255, 80, 80, var_91_21)
    )
    
    -- Дополнительная жирность
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 + 1, var_91_22 + 1),
        var_91_17,
        draw.color(255, 60, 60, math.floor(var_91_21 * 0.7))
    )
    var_91_5:add_text(
        draw.vec2(slot_0_0_0/2 - var_91_18/2 - 1, var_91_22 - 1),
        var_91_17,
        draw.color(255, 60, 60, math.floor(var_91_21 * 0.7))
    )
end)
-- ===== AUTO QUICKSWITCH AFTER KILL + AUTO SCOPE (DELAY 800ms) =====
slot_0_400_0 = gui.checkbox(gui.control_id("Auto QuickSwitch After Kill"))
visuals_group:Add(gui.MakeControl("Auto QuickSwitch After Kill", slot_0_400_0))
slot_0_400_0:set_value(true)

slot_0_402_0 = 0
slot_0_403_0 = false
slot_0_404_0 = 0

events.event:add(function(arg_100_0)
    if not slot_0_400_0:get_value():get() then
        return
    end

    if arg_100_0:get_name() ~= "player_hurt" then
        return
    end

    local var_100_0 = arg_100_0:get_controller("attacker")
    local var_100_1 = arg_100_0:get_controller("userid")
    local var_100_2 = arg_100_0:get_int("health")

    if not var_100_0 or not var_100_1 then
        return
    end

    if var_100_0 ~= entities.get_local_controller() then
        return
    end

    if not var_100_1:is_enemy() then
        return
    end

    if var_100_2 <= 0 then
        slot_0_402_0 = game.global_vars.real_time
        slot_0_403_0 = true
        slot_0_404_0 = 0
    end
end)

events.present_queue:add(function()
    if not slot_0_400_0:get_value():get() then
        return
    end

    if not slot_0_403_0 then
        return
    end

    local var_101_0 = game.global_vars.real_time

    if slot_0_404_0 == 0 then
        game.engine:client_cmd("slot3")
        slot_0_404_0 = 1
        slot_0_402_0 = var_101_0
    elseif slot_0_404_0 == 1 then
        game.engine:client_cmd("slot1")
        slot_0_404_0 = 2
        slot_0_402_0 = var_101_0
    elseif slot_0_404_0 == 2 then
        -- 0.8 СЕКУНДЫ (800 мс)
        if var_101_0 - slot_0_402_0 >= 1.2 then
            game.engine:client_cmd("+attack2")
            game.engine:client_cmd("-attack2")
            
            slot_0_403_0 = false
            slot_0_404_0 = 3
        end
    end
end)
-- ===== FAKE E KEY HOLD AFTER SHOOT =====
slot_0_500_0 = gui.checkbox(gui.control_id("Enable Fake E Hold"))
visuals_group:Add(gui.MakeControl("Fake E Hold After Shoot", slot_0_500_0))
slot_0_500_0:set_value(false)

slot_0_501_0 = gui.slider(gui.control_id("Hold Duration"), 100, 1000, 1)
visuals_group:Add(gui.MakeControl("Hold Duration (ms)", slot_0_501_0))
slot_0_501_0:get_value():set(100)

slot_0_502_0 = false
slot_0_503_0 = 0

-- Обработчик выстрела
events.event:add(function(arg_110_0)
    if not slot_0_500_0:get_value():get() then
        return
    end

    if arg_110_0:get_name() ~= "weapon_fire" then
        return
    end

    local var_110_0 = arg_110_0:get_controller("userid")
    local var_110_1 = entities.get_local_controller()

    if not var_110_0 or not var_110_1 then
        return
    end

    if var_110_0 ~= var_110_1 then
        return
    end

    -- Зажимаем E
    game.engine:client_cmd("+use")
    slot_0_502_0 = true
    slot_0_503_0 = game.global_vars.real_time
end)

-- Отпускаем E через заданное время
events.present_queue:add(function()
    if not slot_0_500_0:get_value():get() then
        return
    end

    if not slot_0_502_0 then
        return
    end

    local var_111_0 = game.global_vars.real_time
    local var_111_1 = slot_0_501_0:get_value():get() or 300
    local var_111_2 = (var_111_0 - slot_0_503_0) * 1000

    if var_111_2 >= var_111_1 then
        game.engine:client_cmd("-use")
        slot_0_502_0 = false
    end
end)

slot_0_161_0 = {
    RLEG = 6,
    LLEG = 5,
    RARM = 4,
    STOMACH = 2,
    LARM = 3,
    CHEST = 1,
    HEAD = 0
}
slot_0_162_0 = {
    [slot_0_161_0.HEAD] = 70,
    [slot_0_161_0.CHEST] = 50,
    [slot_0_161_0.STOMACH] = 30,
    [slot_0_161_0.LARM] = 50,
    [slot_0_161_0.RARM] = 50,
    [slot_0_161_0.LLEG] = -35,
    [slot_0_161_0.RLEG] = -35
}
slot_0_163_0 = {
    [slot_0_161_0.HEAD] = 6,
    [slot_0_161_0.CHEST] = 4,
    [slot_0_161_0.STOMACH] = 1,
    [slot_0_161_0.LARM] = 13,
    [slot_0_161_0.RARM] = 15,
    [slot_0_161_0.LLEG] = 26,
    [slot_0_161_0.RLEG] = 27
}

function slot_0_164_0(arg_68_0, arg_68_1)
    if entities.get_hitbox_position then
        local var_68_0, var_68_1 = pcall(entities.get_hitbox_position, arg_68_0, arg_68_1)
        if var_68_0 and var_68_1 then
            return var_68_1
        end
    end

    if arg_68_0.get_hitbox_position then
        local var_68_2, var_68_3 = pcall(arg_68_0.get_hitbox_position, arg_68_0, arg_68_1)
        if var_68_2 and var_68_3 then
            return var_68_3
        end
    end

    if arg_68_0.get_bone_position then
        local var_68_4 = slot_0_163_0[arg_68_1]
        if var_68_4 then
            local var_68_5, var_68_6 = pcall(arg_68_0.get_bone_position, arg_68_0, var_68_4)
            if var_68_5 and var_68_6 then
                return var_68_6
            end
        end
    end

    local var_68_7 = arg_68_0:get_abs_origin()
    return vector(var_68_7.x, var_68_7.y, var_68_7.z + (slot_0_162_0[arg_68_1] or 0))
end


slot_0_165_0 = 67
slot_0_166_0 = 0
slot_0_167_0 = 0.1
slot_0_168_0 = 0
slot_0_169_0 = 0
slot_0_170_0 = nil

function slot_0_171_0(arg_71_0)
	local var_71_0 = arg_71_0:get_active_weapon()

	if not var_71_0 then
		return false
	end

	return slot_0_62_0(var_71_0:get_id())
end

function slot_0_172_0()
	slot_0_170_0 = nil
	slot_0_169_0 = 0
	slot_0_166_0 = 0

	game.engine:client_cmd("-attack2")
end

mods.events:add_listener("round_start")
events.event:add(function(arg_73_0)
	if arg_73_0:get_name() == "round_start" then
		slot_0_172_0()
	end
end)
mods.events:add_listener("game_newmap")
events.event:add(function(arg_74_0)
	if arg_74_0:get_name() == "game_newmap" then
		slot_0_172_0()
	end
end)
events.present_queue:add(function()
	if not slot_0_16_0:get_value():get() then
		return
	end

	local var_75_0 = entities.get_local_pawn()

	if not var_75_0 or not var_75_0:is_alive() then
		if slot_0_169_0 ~= 0 then
			slot_0_172_0()
		end

		return
	end

	if not slot_0_171_0(var_75_0) then
		if slot_0_169_0 ~= 0 then
			slot_0_172_0()
		end

		return
	end

	local var_75_1 = var_75_0:get_abs_origin()
	local var_75_2 = var_75_0.m_fFlags and var_75_0.m_fFlags:get() or 0
	local var_75_3 = bit.band(var_75_2, 1) == 0
	local var_75_4 = var_75_3 and slot_0_165_0 - 5 or slot_0_165_0
	local var_75_5
	local var_75_6 = var_75_4 + 1

	entities.players:for_each(function(arg_76_0)
		local var_76_0 = arg_76_0.entity:to_player_pawn()

		if var_76_0 and var_76_0:is_alive() and var_76_0:is_enemy() then
			local var_76_1 = var_76_0:get_abs_origin()
			local var_76_2 = var_75_1:dist(var_76_1)

			if var_76_2 < var_75_4 and var_76_2 < var_75_6 then
				var_75_6 = var_76_2
				var_75_5 = var_76_0
			end
		end
	end)

	slot_0_170_0 = var_75_5

	local var_75_7 = game.global_vars.real_time

	if slot_0_170_0 then
		local var_75_8 = var_75_0:get_eye_pos()
		local var_75_9 = slot_0_170_0:get_abs_origin()
		local var_75_10 = slot_0_170_0.m_vecViewOffset
		local var_75_11 = var_75_9

		if var_75_10 and var_75_10:get() then
			var_75_11 = var_75_9 + var_75_10:get()
		end

		local var_75_12 = math.calc_angle(var_75_8, var_75_11)

		var_75_12.x = math.angle_normalize(var_75_12.x)
		var_75_12.y = math.angle_normalize(var_75_12.y)

		game.input:set_view_angles(var_75_12)

		local var_75_13 = var_75_3 and 0.2 or slot_0_167_0

		if slot_0_169_0 == 0 then
			game.engine:client_cmd("+attack2")

			slot_0_166_0 = var_75_7
			slot_0_169_0 = 1
		elseif slot_0_169_0 == 1 then
			if var_75_13 <= var_75_7 - slot_0_166_0 then
				game.engine:client_cmd("-attack2")

				slot_0_166_0 = var_75_7
				slot_0_169_0 = 2
			end
		elseif slot_0_169_0 == 2 then
			if var_75_7 - slot_0_166_0 >= slot_0_168_0 then
				game.engine:client_cmd("+attack2")

				slot_0_166_0 = var_75_7
				slot_0_169_0 = 3
			end
		elseif slot_0_169_0 == 3 then
			if var_75_13 <= var_75_7 - slot_0_166_0 then
				game.engine:client_cmd("-attack2")

				slot_0_166_0 = var_75_7
				slot_0_169_0 = 4
			end
		elseif slot_0_169_0 == 4 and var_75_7 - slot_0_166_0 >= 0.1 then
			slot_0_169_0 = 0
		end
	elseif slot_0_169_0 ~= 0 then
		slot_0_172_0()
	end
end)
events.event:add(function(arg_77_0)
	Event(arg_77_0)
end)
events.present_queue:add(HandleNade)
events.present_queue:add(slot_0_102_0)
events.present_queue:add(slot_0_117_0)
events.present_queue:add(slot_0_155_0)
events.event:add(slot_0_113_0)
events.event:add(slot_0_114_0)
mods.events:add_listener("player_hurt")
events.present_queue:add(slot_0_145_0)
-- ============================================
-- APEX SENSE - Улучшенная водяная метка
-- Стиль: Kill Log уведомления
-- Версия: 2.0
-- ============================================

-- ===== НОВАЯ ВОДЯНАЯ МЕТКА APEX SENSE =====
function slot_0_145_0()
	if not slot_0_13_0:get_value():get() and not slot_0_105_0.watermark then
		return
	end

	slot_0_42_0()

	slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
	local var_58_0 = draw.surface
	var_58_0.skip_dpi = true

	-- Перетаскивание
	if slot_0_105_0.watermark then
		local var_58_1 = slot_0_7_0()
		slot_0_107_0.watermark.x = var_58_1.x - slot_0_106_0.watermark.x
		slot_0_107_0.watermark.y = var_58_1.y - slot_0_106_0.watermark.y
	end

	-- Обновляем данные
	local var_58_2 = game.global_vars.real_time
	local var_58_3 = slot_0_40_0()
	local var_58_4 = false
	local var_58_5 = slot_0_135_0()
	local var_58_6 = slot_0_136_0()
	local var_58_7 = slot_0_137_0()
	
	-- Формируем сегменты Kill Log стиля
	local var_58_8 = slot_0_17_0:get_value()
	local var_58_9 = var_58_8 and var_58_8:get()
	if var_58_9 and var_58_9.get_raw then
		var_58_9 = var_58_9:get_raw()
	end
	if type(var_58_9) ~= "number" then
		var_58_9 = slot_0_19_0
	end

	local function var_58_10(arg_56_0)
		local var_56_0 = slot_0_20_0[arg_56_0]
		if not var_56_0 then
			return false
		end
		return bit.band(var_58_9, var_56_0) ~= 0
	end

	local var_58_11 = {}
	local var_58_12 = 4 -- Расстояние между элементами
	
	-- Добавляем элементы Kill Log стиля
	if var_58_10("Logo") then
		table.insert(var_58_11, {text = "apex", colored = false, spacing = 0})
		table.insert(var_58_11, {text = "sense", colored = true, spacing = 0})
		var_58_4 = true
	end
	
	if var_58_10("FPS") then
		if #var_58_11 > 0 then
			table.insert(var_58_11, {text = "  ", colored = false, spacing = 0})
		end
		table.insert(var_58_11, {text = tostring(var_58_5), colored = true, spacing = 0})
		table.insert(var_58_11, {text = "fps", colored = false, spacing = 0})
		var_58_4 = true
	end
	
	if var_58_10("Ping") then
		if #var_58_11 > 0 then
			table.insert(var_58_11, {text = "  ", colored = false, spacing = 0})
		end
		table.insert(var_58_11, {text = tostring(var_58_6), colored = true, spacing = 0})
		table.insert(var_58_11, {text = " ms", colored = false, spacing = 0})
		var_58_4 = true
	end
	
	if var_58_10("Clock") then
		local var_58_13 = slot_0_143_0()
		if var_58_13 ~= "" then
			if #var_58_11 > 0 then
				table.insert(var_58_11, {text = "  ", colored = false, spacing = 0})
			end
			table.insert(var_58_11, {text = var_58_13, colored = false, spacing = 0})
			var_58_4 = true
		end
	end

	if not var_58_4 then
		return
	end

	-- Замеряем ширину
	local var_58_14 = 0
	var_58_0.font = draw.fonts.gui_debug
	for iter_58_0, iter_58_1 in ipairs(var_58_11) do
		if iter_58_1.text and iter_58_1.text ~= "" then
			var_58_14 = var_58_14 + Get_TextWidth(iter_58_1.text, var_58_0.font)
		end
		-- Добавляем небольшой отступ между элементами
		if iter_58_0 < #var_58_11 then
			var_58_14 = var_58_14 + slot_0_41_0(1)
		end
	end
	
	local var_58_15 = slot_0_41_0(16) -- Высота (по умолчанию)
	local var_58_16 = var_58_14 + slot_0_41_0(20) -- Ширина с отступами
	local var_58_17 = slot_0_41_0(8) -- Отступ слева/справа

	-- Проверяем позицию
	if slot_0_108_0 then
		slot_0_107_0.watermark.x = slot_0_0_0 - var_58_16 - slot_0_41_0(10)
		slot_0_107_0.watermark.y = slot_0_41_0(10)
	end

	slot_0_107_0.watermark.x = math.max(0, math.min(slot_0_107_0.watermark.x, slot_0_0_0 - var_58_16))
	slot_0_107_0.watermark.y = math.max(0, math.min(slot_0_107_0.watermark.y, slot_0_1_0 - var_58_15))

	local var_58_18 = slot_0_44_0:get_value():get()
	local var_58_19 = draw.color(var_58_18:get_r(), var_58_18:get_g(), var_58_18:get_b(), 255)

	-- ===== РИСУЕМ ВОДЯНУЮ МЕТКУ APEX SENSE =====
	
	-- 1. ФОН
	local var_58_20 = 25
	local var_58_21 = 100
	local var_58_22 = 20
	var_58_0.g.anti_alias = true
	var_58_0:add_rect_filled_rounded(
		draw.rect(slot_0_107_0.watermark.x, slot_0_107_0.watermark.y, slot_0_107_0.watermark.x + var_58_16, slot_0_107_0.watermark.y + var_58_15),
		draw.color(var_58_20, var_58_20, var_58_20, var_58_21),
		var_58_22
	)
	
	-- 2. КРУЖОЧКИ И ТЕКСТ
	local var_58_23 = slot_0_107_0.watermark.x + slot_0_41_0(8)
	local var_58_24 = slot_0_107_0.watermark.y + slot_0_41_0(6)
	local var_58_25 = slot_0_41_0(8) -- Радиус кружочка
	local var_58_26 = slot_0_41_0(4) -- Отступ перед кружочком
	local var_58_27 = false -- Флаг, что мы только что добавили кружочек
	
	-- Отрисовываем каждый сегмент
	for iter_58_2, iter_58_3 in ipairs(var_58_11) do
		if iter_58_3.text and iter_58_3.text ~= "" then
			local var_58_28 = iter_58_3.colored and var_58_19 or draw.color(255, 255, 255, 255)
			local var_58_29 = var_58_0.font:get_text_size(iter_58_3.text)
			
			-- Проверяем, нужно ли рисовать кружочек
			if iter_58_3.text == "  " then
				-- Это разделитель - рисуем кружочек
				local var_58_30 = draw.color(var_58_18:get_r(), var_58_18:get_g(), var_58_18:get_b(), 200)
				local var_58_31 = slot_0_107_0.watermark.x + var_58_23 + var_58_25
				local var_58_32 = slot_0_107_0.watermark.y + var_58_15/2
				
				var_58_0.g.anti_alias = true
				var_58_0:add_circle_filled(
					draw.vec2(var_58_31, var_58_32),
					var_58_25,
					var_58_30
				)
				var_58_0.g.anti_alias = false
				
				-- Смещаем позицию после кружочка
				var_58_23 = var_58_23 + var_58_25*2 + slot_0_41_0(4)
				
				-- Если следующий элемент - текст, добавляем отступ
				if iter_58_2 < #var_58_11 then
					local var_58_33 = var_58_0.font:get_text_size(var_58_11[iter_58_2+1].text)
					var_58_23 = var_58_23 + slot_0_41_0(4)
				end
			else
				-- Рисуем текст
				local var_58_34 = draw.color(0, 0, 0, math.floor(255 * 0.3))
				var_58_0:add_text(
					draw.vec2(slot_0_107_0.watermark.x + var_58_23 + 1, var_58_24 + 1),
					iter_58_3.text,
					var_58_34
				)
				var_58_0:add_text(
					draw.vec2(slot_0_107_0.watermark.x + var_58_23, var_58_24),
					iter_58_3.text,
					var_58_28
				)
				
				-- Смещаем позицию
				var_58_23 = var_58_23 + var_58_29.x + slot_0_41_0(2)
			end
		end
	end
	
	var_58_0.g.anti_alias = false
end

-- ===== APEX SENSE: ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ =====
print("[ApexSense] Watermark loaded successfully!")
print("[ApexSense] Style: Kill Log notifications")
print("[ApexSense] Position: Top Right")
-- ===== AUTO MINDAMAGE OVERRIDE FOR FATALITY CS2 =====
slot_0_auto_md_enable = gui.checkbox(gui.control_id("Enable Auto MinDamage Override"))
visuals_group:Add(gui.MakeControl("Auto MinDamage Override", slot_0_auto_md_enable))
slot_0_auto_md_enable:set_value(true)

slot_0_auto_md_height = gui.slider(gui.control_id("Auto MD Height Diff"), 10, 100, 5)
visuals_group:Add(gui.MakeControl("Height Difference", slot_0_auto_md_height))
slot_0_auto_md_height:get_value():set(30)

slot_0_auto_md_interval = gui.slider(gui.control_id("Auto MD Check Interval"), 100, 1000, 100)
visuals_group:Add(gui.MakeControl("Check Interval (ms)", slot_0_auto_md_interval))
slot_0_auto_md_interval:get_value():set(500)

slot_0_auto_md_last_check = 0
slot_0_auto_md_active = false
slot_0_auto_md_original = nil

-- Основной цикл
events.present_queue:add(function()

    if not cbx_clantag then
        return
    end

    local mode = cbx_clantag:get_value():get()

    if mode ~= 2 then
        return
    end

    local frame =
        math.floor(game.global_vars.real_time * 3)
        % #pnd_animation + 1

    set_clantag(
        pnd_animation[frame]
    )

end)	
events.present_queue:add(function()
    if not slot_0_auto_md_enable:get_value():get() then
        if slot_0_auto_md_active then
            -- Возвращаем оригинал
            local var_0 = gui.ctx:Find("rage>aimbot>general>min damage")
            if var_0 and slot_0_auto_md_original then
                local var_1 = var_0:get_value()
                if var_1 and var_1.set then
                    var_1:set(slot_0_auto_md_original)
                end
            end
            slot_0_auto_md_active = false
        end
        return
    end
    
    local var_2 = entities.get_local_pawn()
    if not var_2 or not var_2:is_alive() then
        return
    end
    
    local var_3 = game.global_vars.real_time
    local var_4 = slot_0_auto_md_interval:get_value():get() / 1000
    
    if var_3 - slot_0_auto_md_last_check < var_4 then
        return
    end
    
    slot_0_auto_md_last_check = var_3
    
    local var_5 = var_2:get_abs_origin()
    local var_6 = false
    local var_7 = slot_0_auto_md_height:get_value():get()
    
    entities.players:for_each(function(arg_0)
        local var_8 = arg_0.entity:to_player_pawn()
        if var_8 and var_8:is_alive() and var_8:is_enemy() then
            local var_9 = var_8:get_abs_origin()
            local var_10 = var_5:dist(var_9)
            
            if var_9.z > var_5.z + var_7 and var_10 < 1000 then
                var_6 = true
            end
        end
    end)
    
    local var_11 = gui.ctx:Find("rage>aimbot>general>min damage")
    
    if var_6 and not slot_0_auto_md_active then
        -- Сохраняем и ставим 101
        if var_11 then
            local var_12 = var_11:get_value()
            if var_12 and var_12.get then
                slot_0_auto_md_original = var_12:get()
                if var_12.set then
                    var_12:set(101)
                    slot_0_auto_md_active = true
                end
            end
        end
    elseif not var_6 and slot_0_auto_md_active then
        -- Возвращаем оригинал
        if var_11 and slot_0_auto_md_original then
            local var_13 = var_11:get_value()
            if var_13 and var_13.set then
                var_13:set(slot_0_auto_md_original)
            end
        end
        slot_0_auto_md_active = false
    end
end)

-- Сброс при новом раунде
events.event:add(function(arg_1)
    if arg_1:get_name() == "round_start" then
        if slot_0_auto_md_active then
            local var_14 = gui.ctx:Find("rage>aimbot>general>min damage")
            if var_14 and slot_0_auto_md_original then
                local var_15 = var_14:get_value()
                if var_15 and var_15.set then
                    var_15:set(slot_0_auto_md_original)
                end
            end
            slot_0_auto_md_active = false
        end
        slot_0_auto_md_last_check = 0
        slot_0_auto_md_original = nil
    end
end)