Script Dump Report

Click on a script to view source code.

Script Script Workspace.pitch.flags.Flag.Pole.Script
-- [SERVER SCRIPT] Source hidden from client.
Script Script Workspace.pitch.flags.Flag.Pole.Script
-- [SERVER SCRIPT] Source hidden from client.
Script Script Workspace.pitch.flags.Flag.Pole.Script
-- [SERVER SCRIPT] Source hidden from client.
Script Script Workspace.pitch.flags.Flag.Pole.Script
-- [SERVER SCRIPT] Source hidden from client.
Script Animate Workspace.game.referee.rigs.assistant2.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Animate Workspace.game.referee.rigs.assistant1.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Animate Workspace.game.referee.rigs.main.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Animate Workspace.game.manager.rigs.Home.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Animate Workspace.game.manager.rigs.Away.Animate
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.Growergreengrass.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:10
-- Luau version 6, Types version 3
-- Time taken: 0.054785 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.Growergreengrass.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.15121134a.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:12
-- Luau version 6, Types version 3
-- Time taken: 0.066913 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.15121134a.Health
-- [SERVER SCRIPT] Source hidden from client.
Script Health Workspace.kontantin5678.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.kontantin5678.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:14
-- Luau version 6, Types version 3
-- Time taken: 0.073823 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.Dinarabbre0.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.Dinarabbre0.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:16
-- Luau version 6, Types version 3
-- Time taken: 0.056143 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.ghost_1234219.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.ghost_1234219.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:19
-- Luau version 6, Types version 3
-- Time taken: 0.054478 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
LocalScript Animate Bouncebouncebounce76.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:21
-- Luau version 6, Types version 3
-- Time taken: 0.053438 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Bouncebouncebounce76.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.Cappyboyy.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:24
-- Luau version 6, Types version 3
-- Time taken: 0.053708 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.Cappyboyy.Health
-- [SERVER SCRIPT] Source hidden from client.
LocalScript Animate Workspace.cashiadadanhatami.Animate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:26
-- Luau version 6, Types version 3
-- Time taken: 0.063083 seconds

script:SetAttribute("Init", true)
local var13
local scriptChildModified
if game:GetService("AssetService"):FindFirstChild("engine") then
    var13 = require(game:GetService("AssetService").engine)
else
    var13 = require(game:GetService("ReplicatedStorage").engine)
end
local var15_upvw = false
local Parent_upvr = script.Parent
local Humanoid_upvr = Parent_upvr:WaitForChild("Humanoid")
local var18_upvw = "Standing"
local _, _ = pcall(function() -- Line 20
    return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop")
end)
local pcall_result1, pcall_result2 = pcall(function() -- Line 24
    return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange")
end)
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 31
    return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2")
end)
local var28_upvw = 0
local var29_upvw = 0
local tbl_7_upvw = {
    x = 0;
    y = 0;
}
local var31_upvw = 0
local var32_upvw = ""
local var33_upvw
local var34_upvw
local var35_upvw
local var36_upvw = 1
local tbl_5_upvr = {}
local tbl_4_upvr = {
    idle = {{
        id = "http://www.roblox.com/asset/?id=507766666";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766951";
        weight = 1;
    }, {
        id = "http://www.roblox.com/asset/?id=507766388";
        weight = 9;
    }};
    walk = {{
        id = "http://www.roblox.com/asset/?id=507777826";
        weight = 10;
    }};
    run = {{
        id = "http://www.roblox.com/asset/?id=507767714";
        weight = 10;
    }};
    swim = {{
        id = "http://www.roblox.com/asset/?id=507784897";
        weight = 10;
    }};
    swimidle = {{
        id = "http://www.roblox.com/asset/?id=507785072";
        weight = 10;
    }};
    jump = {{
        id = "http://www.roblox.com/asset/?id=507765000";
        weight = 10;
    }};
    fall = {{
        id = "http://www.roblox.com/asset/?id=507767968";
        weight = 10;
    }};
    climb = {{
        id = "http://www.roblox.com/asset/?id=507765644";
        weight = 10;
    }};
    sit = {{
        id = "http://www.roblox.com/asset/?id=2506281703";
        weight = 10;
    }};
    toolnone = {{
        id = "http://www.roblox.com/asset/?id=507768375";
        weight = 10;
    }};
    toolslash = {{
        id = "http://www.roblox.com/asset/?id=522635514";
        weight = 10;
    }};
    toollunge = {{
        id = "http://www.roblox.com/asset/?id=522638767";
        weight = 10;
    }};
    wave = {{
        id = "http://www.roblox.com/asset/?id=507770239";
        weight = 10;
    }};
    point = {{
        id = "http://www.roblox.com/asset/?id=507770453";
        weight = 10;
    }};
    dance = {{
        id = "http://www.roblox.com/asset/?id=507771019";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507771955";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507772104";
        weight = 10;
    }};
    dance2 = {{
        id = "http://www.roblox.com/asset/?id=507776043";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776720";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507776879";
        weight = 10;
    }};
    dance3 = {{
        id = "http://www.roblox.com/asset/?id=507777268";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777451";
        weight = 10;
    }, {
        id = "http://www.roblox.com/asset/?id=507777623";
        weight = 10;
    }};
    laugh = {{
        id = "http://www.roblox.com/asset/?id=507770818";
        weight = 10;
    }};
    cheer = {{
        id = "http://www.roblox.com/asset/?id=507770677";
        weight = 10;
    }};
}
local tbl_6_upvr = {}
local tbl_2_upvr = {}
local var87_upvw = tbl_6_upvr
local tbl_upvr = {
    wave = false;
    point = false;
    dance = true;
    dance2 = true;
    dance3 = true;
    laugh = false;
    cheer = false;
}
math.randomseed(tick())
function findExistingAnimationInSet(arg1, arg2) -- Line 139
    if arg1 == nil or arg2 == nil then
        return 0
    end
    for i = 1, arg1.count do
        if arg1[i].anim.AnimationId == arg2.AnimationId then
            return i
        end
    end
    return 0
end
local function destroyWalkAnimations_upvr() -- Line 153, Named "destroyWalkAnimations"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var29_upvw (read and write)
    ]]
    for _, v in pairs(tbl_6_upvr) do
        if v.track then
            v.track:Stop()
            v.track:Destroy()
            v.track = nil
        end
    end
    for _, v_2 in pairs(tbl_2_upvr) do
        if v_2.track then
            v_2.track:Stop()
            v_2.track:Destroy()
            v_2.track = nil
        end
    end
    var29_upvw = 0
end
local var100_upvw
local var101_upvw
local var102_upvw
local var103_upvw
local function _(arg1) -- Line 174, Named "resetVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
end
local function _(arg1) -- Line 181, Named "updateVelocityBounds"
    --[[ Upvalues[4]:
        [1]: var100_upvw (read and write)
        [2]: var102_upvw (read and write)
        [3]: var101_upvw (read and write)
        [4]: var103_upvw (read and write)
    ]]
    if arg1 then
        if var100_upvw < arg1.x then
            var100_upvw = arg1.x
        end
        if var102_upvw < arg1.y then
            var102_upvw = arg1.y
        end
        if arg1.x < var101_upvw then
            var101_upvw = arg1.x
        end
        if arg1.y < var103_upvw then
            var103_upvw = arg1.y
        end
    end
end
local function checkStrafingEnabled_upvr(arg1) -- Line 190, Named "checkStrafingEnabled"
    --[[ Upvalues[7]:
        [1]: var100_upvw (read and write)
        [2]: var101_upvw (read and write)
        [3]: var102_upvw (read and write)
        [4]: var103_upvw (read and write)
        [5]: var87_upvw (read and write)
        [6]: tbl_6_upvr (readonly)
        [7]: tbl_2_upvr (readonly)
    ]]
    if var100_upvw == 0 or var101_upvw == 0 or var102_upvw == 0 or var103_upvw == 0 then
        if var87_upvw == tbl_6_upvr then
            warn("Strafe blending disabled. Not all quadrants of motion represented.")
        end
        var87_upvw = tbl_2_upvr
    else
        if not tbl_6_upvr.run or not tbl_6_upvr.walk then
            if var87_upvw == tbl_6_upvr then
                warn("Strafe blending disabled. Run and walk must be strafing-friendly.")
            end
            var87_upvw = tbl_2_upvr
            return
        end
        if var87_upvw ~= tbl_6_upvr then
            var87_upvw = tbl_6_upvr
            warn("Strafing reenabled")
        end
    end
end
local function setupWalkAnimations_upvr() -- Line 209, Named "setupWalkAnimations"
    --[[ Upvalues[9]:
        [1]: var101_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var103_upvw (read and write)
        [4]: var102_upvw (read and write)
        [5]: tbl_6_upvr (readonly)
        [6]: checkStrafingEnabled_upvr (readonly)
        [7]: var87_upvw (read and write)
        [8]: Humanoid_upvr (readonly)
        [9]: tbl_5_upvr (readonly)
    ]]
    var101_upvw = 0
    var100_upvw = 0
    var103_upvw = 0
    var102_upvw = 0
    for _, v_3 in pairs(tbl_6_upvr) do
        local lv = v_3.lv
        if lv then
            if var100_upvw < lv.x then
                var100_upvw = lv.x
            end
            if var102_upvw < lv.y then
                var102_upvw = lv.y
            end
            if lv.x < var101_upvw then
                var101_upvw = lv.x
            end
            if lv.y < var103_upvw then
                var103_upvw = lv.y
            end
        end
    end
    checkStrafingEnabled_upvr()
    for i_5, v_4 in pairs(var87_upvw) do
        v_4.track = Humanoid_upvr:LoadAnimation(tbl_5_upvr[i_5][1].anim)
        v_4.track.Priority = Enum.AnimationPriority.Action
    end
end
local function replaceLocomotionTrack_upvr(arg1, arg2) -- Line 222, Named "replaceLocomotionTrack"
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: var87_upvw (read and write)
        [3]: destroyWalkAnimations_upvr (readonly)
        [4]: tbl_6_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: var31_upvw (read and write)
    ]]
    local var115
    if var32_upvw == "walk" and var87_upvw[arg1] then
        destroyWalkAnimations_upvr()
        var115 = true
    end
    if arg2 then
        local tbl = {}
        tbl.lv = arg2
        tbl.speed = arg2.Magnitude
        tbl_6_upvr[arg1] = tbl
    else
        tbl_6_upvr[arg1] = nil
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        local var117
        return arg1 == "walk"
    end
    if arg1 == "run" or INLINED() then
        if arg2 then
            var117 = tbl_2_upvr
            var117[arg1] = tbl_6_upvr[arg1]
        else
            if arg1 == "run" then
                var117 = 12.8
            else
                var117 = 6.4
            end
            tbl_2_upvr[arg1] = {
                lv = Vector2.new(0, var117);
                speed = var117;
            }
            tbl_6_upvr[arg1] = nil
        end
    end
    if var115 then
        setupWalkAnimations_upvr()
        var31_upvw = 0
    end
end
local tbl_upvr_2 = {}
function scriptChildModified(arg1, arg2) -- Line 250, Named "configureAnimationSet"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvr (readonly)
        [2]: replaceLocomotionTrack_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: Humanoid_upvr (readonly)
    ]]
    if tbl_5_upvr[arg1] ~= nil then
        for _, v_5 in pairs(tbl_5_upvr[arg1].connections) do
            v_5:disconnect()
        end
    end
    tbl_5_upvr[arg1] = {}
    tbl_5_upvr[arg1].count = 0
    tbl_5_upvr[arg1].totalWeight = 0
    tbl_5_upvr[arg1].connections = {}
    local SOME = script:FindFirstChild(arg1)
    if SOME ~= nil then
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildAdded:connect(function(arg1_2) -- Line 264
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        table.insert(tbl_5_upvr[arg1].connections, SOME.ChildRemoved:connect(function(arg1_3) -- Line 265
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            configureAnimationSet(arg1, arg2)
        end))
        for _, v_6 in pairs(SOME:GetChildren()) do
            if v_6:IsA("Animation") then
                local var147 = 1
                local Weight = v_6:FindFirstChild("Weight")
                if Weight ~= nil then
                    var147 = Weight.Value
                end
                tbl_5_upvr[arg1].count = tbl_5_upvr[arg1].count + 1
                local count = tbl_5_upvr[arg1].count
                tbl_5_upvr[arg1][count] = {}
                tbl_5_upvr[arg1][count].anim = v_6
                tbl_5_upvr[arg1][count].weight = var147
                tbl_5_upvr[arg1].totalWeight = tbl_5_upvr[arg1].totalWeight + tbl_5_upvr[arg1][count].weight
                table.insert(tbl_5_upvr[arg1].connections, v_6.Changed:connect(function(arg1_4) -- Line 282
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildAdded:connect(function(arg1_5) -- Line 283
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                table.insert(tbl_5_upvr[arg1].connections, v_6.ChildRemoved:connect(function(arg1_6) -- Line 284
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    configureAnimationSet(arg1, arg2)
                end))
                replaceLocomotionTrack_upvr(arg1, v_6:GetAttribute("LinearVelocity"))
            end
        end
    end
    if tbl_5_upvr[arg1].count <= 0 then
        for i_8, v_7 in pairs(arg2) do
            v_6 = tbl_5_upvr[arg1]
            v_6[i_8] = {}
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.anim = Instance.new("Animation")
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.Name = arg1
            v_6 = tbl_5_upvr[arg1][i_8].anim
            v_6.AnimationId = v_7.id
            v_6 = tbl_5_upvr[arg1][i_8]
            v_6.weight = v_7.weight
            v_6 = tbl_5_upvr[arg1]
            v_6.count = tbl_5_upvr[arg1].count + 1
            v_6 = tbl_5_upvr[arg1]
            v_6.totalWeight = tbl_5_upvr[arg1].totalWeight + v_7.weight
        end
    end
    for _, v_8 in pairs(tbl_5_upvr) do
        for i_10 = 1, v_8.count do
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if tbl_upvr_2[v_8[i_10].anim.AnimationId] == nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                Humanoid_upvr:LoadAnimation(v_8[i_10].anim)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                tbl_upvr_2[v_8[i_10].anim.AnimationId] = true
            end
        end
    end
end
configureAnimationSet = scriptChildModified -- Setting global
function scriptChildModified(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var159 = tbl_4_upvr[arg1.Name]
    if var159 ~= nil then
        configureAnimationSet(arg1.Name, var159)
    elseif arg1:isA("StringValue") then
        tbl_4_upvr[arg1.Name] = {}
        configureAnimationSet(arg1.Name, tbl_4_upvr[arg1.Name])
    end
end
scriptChildModified = scriptChildModified -- Setting global
scriptChildModified = script.ChildAdded:connect
scriptChildModified(scriptChildModified)
scriptChildModified = script.ChildRemoved:connect
scriptChildModified(scriptChildModified)
if Humanoid_upvr then
    scriptChildModified = Humanoid_upvr:FindFirstChildOfClass("Animator")
else
    scriptChildModified = nil
end
if scriptChildModified then
    for _, v_9 in ipairs(scriptChildModified:GetPlayingAnimationTracks()) do
        v_9:Stop(0)
        v_9:Destroy()
    end
end
for i_12, _ in pairs(tbl_4_upvr) do
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [552.44]
    configureAnimationSet(i_12, nil)
end
for _, v_11 in script:GetChildren() do
    if v_11:isA("StringValue") then
        tbl_4_upvr[v_11.Name] = {}
        configureAnimationSet(v_11.Name, tbl_4_upvr[v_11.Name])
    end
end
local var169_upvw = "None"
local var170_upvw = 0
local var171_upvw = false
function stopAllAnimations() -- Line 369
    --[[ Upvalues[7]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var33_upvw (read and write)
        [5]: var35_upvw (read and write)
        [6]: var34_upvw (read and write)
        [7]: var87_upvw (read and write)
    ]]
    local var176
    if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var176] == false then
        var176 = "idle"
    end
    if var171_upvw then
        var176 = "idle"
        var171_upvw = false
    end
    var32_upvw = ""
    var33_upvw = nil
    if var35_upvw ~= nil then
        var35_upvw:disconnect()
    end
    if var34_upvw ~= nil then
        var34_upvw:Stop()
        var34_upvw:Destroy()
        var34_upvw = nil
    end
    for _, v_12 in pairs(var87_upvw) do
        if v_12.track then
            v_12.track:Stop()
            v_12.track:Destroy()
            v_12.track = nil
        end
    end
    return var176
end
local ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
function getHeightScale() -- Line 405
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: ScaleDampeningPercent_upvw (read and write)
    ]]
    local var181
    if var181 then
        var181 = Humanoid_upvr.AutomaticScalingEnabled
        if not var181 then
            var181 = 1
            return var181
        end
        var181 = Humanoid_upvr.HipHeight / 2
        if ScaleDampeningPercent_upvw == nil then
            ScaleDampeningPercent_upvw = script:FindFirstChild("ScaleDampeningPercent")
        end
        if ScaleDampeningPercent_upvw ~= nil then
            var181 = 1 + (Humanoid_upvr.HipHeight - 2) * ScaleDampeningPercent_upvw.Value / 2
        end
        return var181
    end
    return 1
end
local function _(arg1, arg2) -- Line 424, Named "signedAngle"
    return -math.atan2(arg1.x * arg2.y - arg1.y * arg2.x, arg1.x * arg2.x + arg1.y * arg2.y)
end
local function get2DWeight_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 429, Named "get2DWeight"
    local var182 = 0.5 * (arg5 + arg6)
    local module_2 = {
        x = (arg4 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg1.y - arg2.y * arg1.x, arg2.x * arg1.x + arg2.y * arg1.y);
    }
    local module = {
        x = (arg6 - arg5) / var182;
        y = 2 * -math.atan2(arg2.x * arg3.y - arg2.y * arg3.x, arg2.x * arg3.x + arg2.y * arg3.y);
    }
    return math.clamp(1 - (module_2.x * module.x + module_2.y * module.y) / ((0.0001) + (module.x * module.x + module.y * module.y)), 0, 1)
end
local function blend2D_upvr(arg1, arg2) -- Line 440, Named "blend2D"
    --[[ Upvalues[2]:
        [1]: var87_upvw (read and write)
        [2]: get2DWeight_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 95 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var213
    for i_15, v_13 in pairs(var87_upvw) do
        if arg1.x * v_13.lv.x < 0 or arg1.y * v_13.lv.y < 0 then
            tbl_3[i_15] = 0
        else
            tbl_3[i_15] = math.huge
            for _, v_14 in pairs(var87_upvw) do
                if arg1.x * v_14.lv.x >= 0 and arg1.y * v_14.lv.y >= 0 then
                    tbl_3[i_15] = math.min(tbl_3[i_15], get2DWeight_upvr(arg1, v_13.lv, v_14.lv, arg2, v_13.speed, v_14.speed))
                end
            end
            var213 += tbl_3[i_15]
        end
    end
    local pairs_result1_4, pairs_result2_10, pairs_result3_10 = pairs(var87_upvw)
    for i_17, v_15 in pairs_result1_4, pairs_result2_10, pairs_result3_10 do
        if 0.1 < tbl_3[i_17] / var213 then
            local var220 = 0 + tbl_3[i_17] * v_15.lv.x
            local var222 = 0 + tbl_3[i_17] * v_15.lv.y
        else
            tbl_3[i_17] = 0
        end
    end
    pairs_result1_4 = nil
    local var223 = pairs_result1_4
    local var224 = var220 * var220 + var222 * var222
    if 0.0001 < var224 then
        var223 = math.sqrt(arg2 * arg2 / var224)
    else
        var223 = 0
    end
    local pairs_result1_6, pairs_result2_7, pairs_result3_8 = pairs(var87_upvw)
    -- KONSTANTERROR: [0] 1. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [153] 112. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [143] 106. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if v_15.lv then
        local _, _, _ = pairs(var87_upvw)
        -- KONSTANTWARNING: GOTO [160] #117
    end
    -- KONSTANTERROR: [143] 106. Error Block 83 end (CF ANALYSIS FAILED)
end
local function getWalkDirection_upvr() -- Line 522, Named "getWalkDirection"
    --[[ Upvalues[1]:
        [1]: Humanoid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local WalkToPoint_2 = Humanoid_upvr.WalkToPoint
    local WalkToPart = Humanoid_upvr.WalkToPart
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        do
            return Humanoid_upvr.MoveDirection
        end
        local _
    end
    if WalkToPart or WalkToPoint_2 ~= Vector3.new(0, 0, 0) then
        if WalkToPart then
        else
        end
        if Humanoid_upvr.RootPart then
            local var240 = WalkToPoint_2 - Humanoid_upvr.RootPart.CFrame.Position
            local vector3 = Vector3.new(var240.x, 0, var240.z)
            local Magnitude_2 = vector3.Magnitude
            if 0.01 < Magnitude_2 then
            end
        end
        return vector3 / Magnitude_2
    end
    return Humanoid_upvr.MoveDirection
end
local function updateVelocity_upvr(arg1) -- Line 549, Named "updateVelocity"
    --[[ Upvalues[10]:
        [1]: var87_upvw (read and write)
        [2]: tbl_6_upvr (readonly)
        [3]: getWalkDirection_upvr (readonly)
        [4]: Humanoid_upvr (readonly)
        [5]: var18_upvw (read and write)
        [6]: var28_upvw (read and write)
        [7]: tbl_7_upvw (read and write)
        [8]: var29_upvw (read and write)
        [9]: var31_upvw (read and write)
        [10]: blend2D_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 93. Error Block 29 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [130.7]
    tbl_7_upvw = nil
    var29_upvw = var28_upvw
    var31_upvw = arg1
    blend2D_upvr(tbl_7_upvw, var29_upvw)
    do
        return
    end
    -- KONSTANTERROR: [130] 93. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [139] 102. Error Block 31 start (CF ANALYSIS FAILED)
    if 0.01 < math.abs(var28_upvw - var29_upvw) or 1 < arg1 - var31_upvw then
        var29_upvw = var28_upvw
        var31_upvw = arg1
        blend2D_upvr(Vector2.yAxis, var29_upvw)
    end
    -- KONSTANTERROR: [139] 102. Error Block 31 end (CF ANALYSIS FAILED)
end
function setAnimationSpeed(arg1) -- Line 597
    --[[ Upvalues[3]:
        [1]: var32_upvw (read and write)
        [2]: var36_upvw (read and write)
        [3]: var34_upvw (read and write)
    ]]
    if var32_upvw ~= "walk" and arg1 ~= var36_upvw then
        var36_upvw = arg1
        var34_upvw:AdjustSpeed(var36_upvw)
    end
end
function keyFrameReachedFunc(arg1) -- Line 606
    --[[ Upvalues[6]:
        [1]: var32_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: var171_upvw (read and write)
        [4]: var34_upvw (read and write)
        [5]: var36_upvw (read and write)
        [6]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        local var243
        if tbl_upvr[var32_upvw] ~= nil and tbl_upvr[var243] == false then
            var243 = "idle"
        end
        if var171_upvw then
            if var34_upvw.Looped then return end
            var243 = "idle"
            var171_upvw = false
        end
        playAnimation(var243, 0.15, Humanoid_upvr)
        setAnimationSpeed(var36_upvw)
    end
end
function rollAnimation(arg1) -- Line 630
    --[[ Upvalues[1]:
        [1]: tbl_5_upvr (readonly)
    ]]
    local var245
    while tbl_5_upvr[arg1][var245].weight < math.random(1, tbl_5_upvr[arg1].totalWeight) do
        var245 += 1
    end
    return var245
end
local function switchToAnim_upvr(arg1, arg2, arg3, arg4) -- Line 641, Named "switchToAnim"
    --[[ Upvalues[7]:
        [1]: var33_upvw (read and write)
        [2]: var34_upvw (read and write)
        [3]: var35_upvw (read and write)
        [4]: var36_upvw (read and write)
        [5]: var32_upvw (read and write)
        [6]: setupWalkAnimations_upvr (readonly)
        [7]: destroyWalkAnimations_upvr (readonly)
    ]]
    if arg1 ~= var33_upvw then
        if var34_upvw ~= nil then
            var34_upvw:Stop(arg3)
            var34_upvw:Destroy()
        end
        if var35_upvw ~= nil then
            var35_upvw:disconnect()
        end
        if arg2 == "idle" then
            script:SetAttribute("WalkDirection", "Idle")
        end
        var36_upvw = 1
        var32_upvw = arg2
        var33_upvw = arg1
        if arg2 == "walk" then
            setupWalkAnimations_upvr()
            return
        end
        destroyWalkAnimations_upvr()
        var34_upvw = arg4:LoadAnimation(arg1)
        var34_upvw.Priority = Enum.AnimationPriority.Core
        var34_upvw:Play(arg3)
        var35_upvw = var34_upvw.KeyframeReached:connect(keyFrameReachedFunc)
    end
end
function playAnimation(arg1, arg2, arg3) -- Line 677
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: switchToAnim_upvr (readonly)
        [3]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(tbl_5_upvr[arg1][rollAnimation(arg1)].anim, arg1, arg2, arg3)
    var171_upvw = false
end
function playEmote(arg1, arg2, arg3) -- Line 685
    --[[ Upvalues[2]:
        [1]: switchToAnim_upvr (readonly)
        [2]: var171_upvw (read and write)
    ]]
    switchToAnim_upvr(arg1, arg1.Name, arg2, arg3)
    var171_upvw = true
end
local var246_upvw = ""
local var247_upvw
local var248_upvw
local var249_upvw
function toolKeyFrameReachedFunc(arg1) -- Line 698
    --[[ Upvalues[2]:
        [1]: var246_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "End" then
        playToolAnimation(var246_upvw, 0, Humanoid_upvr)
    end
end
function playToolAnimation(arg1, arg2, arg3, arg4) -- Line 705
    --[[ Upvalues[5]:
        [1]: tbl_5_upvr (readonly)
        [2]: var248_upvw (read and write)
        [3]: var247_upvw (read and write)
        [4]: var246_upvw (read and write)
        [5]: var249_upvw (read and write)
    ]]
    local anim = tbl_5_upvr[arg1][rollAnimation(arg1)].anim
    local var251
    if var248_upvw ~= anim then
        if var247_upvw ~= nil then
            var247_upvw:Stop()
            var247_upvw:Destroy()
            var251 = 0
        end
        var247_upvw = arg3:LoadAnimation(anim)
        if arg4 then
            var247_upvw.Priority = arg4
        end
        var247_upvw:Play(var251)
        var246_upvw = arg1
        var248_upvw = anim
        var249_upvw = var247_upvw.KeyframeReached:connect(toolKeyFrameReachedFunc)
    end
end
function stopToolAnimations() -- Line 732
    --[[ Upvalues[4]:
        [1]: var246_upvw (read and write)
        [2]: var249_upvw (read and write)
        [3]: var248_upvw (read and write)
        [4]: var247_upvw (read and write)
    ]]
    if var249_upvw ~= nil then
        var249_upvw:disconnect()
    end
    var246_upvw = ""
    var248_upvw = nil
    if var247_upvw ~= nil then
        var247_upvw:Stop()
        var247_upvw:Destroy()
        var247_upvw = nil
    end
    return var246_upvw
end
local var252_upvw = pcall_result1 and pcall_result2
function onRunning(arg1) -- Line 754
    --[[ Upvalues[8]:
        [1]: var252_upvw (read and write)
        [2]: var171_upvw (read and write)
        [3]: Humanoid_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: var18_upvw (read and write)
        [6]: updateVelocity_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: var32_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var253
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var253 = var171_upvw
    -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 5. Error Block 20 start (CF ANALYSIS FAILED)
    if Humanoid_upvr.MoveDirection ~= Vector3.new(0, 0, 0) then
        var253 = false
    else
        var253 = true
    end
    -- KONSTANTERROR: [4] 5. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 19 start (CF ANALYSIS FAILED)
    if not var253 or not Humanoid_upvr.WalkSpeed then
    end
    var28_upvw = arg1
    -- KONSTANTERROR: [12] 11. Error Block 19 end (CF ANALYSIS FAILED)
end
function onDied() -- Line 776
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Dead"
end
function onJumping() -- Line 780
    --[[ Upvalues[3]:
        [1]: Humanoid_upvr (readonly)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
    ]]
    playAnimation("jump", 0.1, Humanoid_upvr)
    var170_upvw = 0.31
    var18_upvw = "Jumping"
end
function onClimbing(arg1) -- Line 786
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    playAnimation("climb", 0.1, Humanoid_upvr)
    setAnimationSpeed(arg1 / 5)
    var18_upvw = "Climbing"
end
function onGettingUp() -- Line 793
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "GettingUp"
end
function onFallingDown() -- Line 797
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "FallingDown"
end
function onSeated() -- Line 801
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "Seated"
end
function onPlatformStanding() -- Line 805
    --[[ Upvalues[1]:
        [1]: var18_upvw (read and write)
    ]]
    var18_upvw = "PlatformStanding"
end
function onSwimming(arg1) -- Line 812
    --[[ Upvalues[2]:
        [1]: Humanoid_upvr (readonly)
        [2]: var18_upvw (read and write)
    ]]
    if 1 < arg1 then
        playAnimation("swim", 0.4, Humanoid_upvr)
        setAnimationSpeed(arg1 / 10)
        var18_upvw = "Swimming"
    else
        playAnimation("swimidle", 0.4, Humanoid_upvr)
        var18_upvw = "Standing"
    end
end
function animateTool() -- Line 824
    --[[ Upvalues[2]:
        [1]: var169_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if var169_upvw == "None" then
        playToolAnimation("toolnone", 0.1, Humanoid_upvr, Enum.AnimationPriority.Idle)
    else
        if var169_upvw == "Slash" then
            playToolAnimation("toolslash", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
        if var169_upvw == "Lunge" then
            playToolAnimation("toollunge", 0, Humanoid_upvr, Enum.AnimationPriority.Action)
            return
        end
    end
end
function getToolAnim(arg1) -- Line 841
    for _, v_16 in ipairs(arg1:GetChildren()) do
        if v_16.Name == "toolanim" and v_16.className == "StringValue" then
            return v_16
        end
    end
    return nil
end
local var259_upvw = 0
local var260_upvw = 0
function stepAnimate(arg1) -- Line 852
    --[[ Upvalues[9]:
        [1]: var259_upvw (read and write)
        [2]: var170_upvw (read and write)
        [3]: var18_upvw (read and write)
        [4]: Humanoid_upvr (readonly)
        [5]: updateVelocity_upvr (readonly)
        [6]: Parent_upvr (readonly)
        [7]: var169_upvw (read and write)
        [8]: var260_upvw (read and write)
        [9]: var248_upvw (read and write)
    ]]
    var259_upvw = arg1
    if 0 < var170_upvw then
        var170_upvw -= arg1 - var259_upvw
    end
    if var18_upvw == "FreeFall" and var170_upvw <= 0 then
        playAnimation("fall", 0.2, Humanoid_upvr)
    else
        if var18_upvw == "Seated" then
            playAnimation("sit", 0.5, Humanoid_upvr)
            return
        end
        if var18_upvw == "Running" then
            playAnimation("walk", 0.2, Humanoid_upvr)
            updateVelocity_upvr(arg1)
        elseif var18_upvw == "Dead" or var18_upvw == "GettingUp" or var18_upvw == "FallingDown" or var18_upvw == "Seated" or var18_upvw == "PlatformStanding" then
            stopAllAnimations()
        end
    end
    local class_Tool = Parent_upvr:FindFirstChildOfClass("Tool")
    if class_Tool and class_Tool:FindFirstChild("Handle") then
        local getToolAnim_result1 = getToolAnim(class_Tool)
        if getToolAnim_result1 then
            var169_upvw = getToolAnim_result1.Value
            getToolAnim_result1.Parent = nil
            var260_upvw = arg1 + 0.3
        end
        if var260_upvw < arg1 then
            var260_upvw = 0
            var169_upvw = "None"
        end
        animateTool()
    else
        stopToolAnimations()
        var169_upvw = "None"
        var248_upvw = nil
        var260_upvw = 0
    end
end
Humanoid_upvr.Died:connect(onDied)
Humanoid_upvr.Running:connect(onRunning)
Humanoid_upvr.Climbing:connect(onClimbing)
Humanoid_upvr.GettingUp:connect(onGettingUp)
Humanoid_upvr.FallingDown:connect(onFallingDown)
Humanoid_upvr.Seated:connect(onSeated)
Humanoid_upvr.PlatformStanding:connect(onPlatformStanding)
Humanoid_upvr.Swimming:connect(onSwimming)
Humanoid_upvr.Changed:Connect(function(arg1) -- Line 917
    --[[ Upvalues[2]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
    ]]
    if arg1 == "Jump" and var15_upvw then
        Humanoid_upvr.Jump = false
    end
end)
local References_upvr = var13.References
Humanoid_upvr.StateChanged:Connect(function(arg1, arg2) -- Line 923
    --[[ Upvalues[3]:
        [1]: var15_upvw (read and write)
        [2]: Humanoid_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 == Enum.HumanoidStateType.Jumping then
        local var271
        if not var15_upvw then
            var271 = "Sprinting"
            if script:GetAttribute(var271) then
                var271 = References_upvr.Main.animations.Player.Jump.Sprint
                local any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(var271)
                any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action3
                any_LoadAnimation_result1_upvr:Play(0.2)
                var271 = 0.2
                task.wait(var271)
                var15_upvw = true
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var271 = any_LoadAnimation_result1_upvr.Length - 0.2
                    return var271
                end
                if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED_3() then
                    var271 = 0.3
                end
                task.delay(var271, function() -- Line 934
                    --[[ Upvalues[2]:
                        [1]: any_LoadAnimation_result1_upvr (readonly)
                        [2]: var15_upvw (copied, read and write)
                    ]]
                    any_LoadAnimation_result1_upvr:Stop(0.2)
                    task.wait(1)
                    var15_upvw = false
                end)
                return
            end
            any_LoadAnimation_result1_upvr = Humanoid_upvr:LoadAnimation(References_upvr.Main.animations.Player.Jump.Low)
            local var274_upvr = any_LoadAnimation_result1_upvr
            var274_upvr.Priority = Enum.AnimationPriority.Action3
            var274_upvr:Play(0.2)
            task.wait(0.2)
            var15_upvw = true
            if 0.1 > var274_upvr.Length or not (var274_upvr.Length - 1) then
            end
            task.delay(0.2, function() -- Line 947
                --[[ Upvalues[2]:
                    [1]: var274_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                ]]
                var274_upvr:Stop(0.2)
                task.wait(1)
                var15_upvw = false
            end)
        end
    end
end)
game:GetService("Players").LocalPlayer.Chatted:connect(function(arg1) -- Line 958
    --[[ Upvalues[3]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
    ]]
    local var277
    if string.sub(arg1, 1, 3) == "/e " then
        var277 = string.sub(arg1, 4)
    elseif string.sub(arg1, 1, 7) == "/emote " then
        var277 = string.sub(arg1, 8)
    end
    if var18_upvw == "Standing" and tbl_upvr[var277] ~= nil then
        playAnimation(var277, 0.1, Humanoid_upvr)
    end
end)
local var279_upvw = pcall_result1_2 and pcall_result2_2
script:WaitForChild("PlayEmote").OnInvoke = function(arg1) -- Line 972
    --[[ Upvalues[5]:
        [1]: var18_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Humanoid_upvr (readonly)
        [4]: var279_upvw (read and write)
        [5]: var34_upvw (read and write)
    ]]
    if var18_upvw ~= "Standing" then return end
    if tbl_upvr[arg1] ~= nil then
        playAnimation(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    if typeof(arg1) == "Instance" and arg1:IsA("Animation") then
        playEmote(arg1, 0.1, Humanoid_upvr)
        if var279_upvw then
            return true, var34_upvw
        end
        return true
    end
    return false
end
if Parent_upvr.Parent ~= nil then
    playAnimation("idle", 0.1, Humanoid_upvr)
    var18_upvw = "Standing"
end
while Parent_upvr.Parent ~= nil do
    local _, wait_result2 = wait(0.1)
    stepAnimate(wait_result2)
end
Script Health Workspace.cashiadadanhatami.Health
-- [SERVER SCRIPT] Source hidden from client.
ModuleScript engine ReplicatedStorage.engine
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:28
-- Luau version 6, Types version 3
-- Time taken: 0.005540 seconds

local module_upvr = {
    Random = Random.new(tick());
    Module = script;
    Utils = script:WaitForChild("utils");
    Classes = script:WaitForChild("classes");
    Modules = script:WaitForChild("modules");
    Services = require(script:WaitForChild("services"));
    References = require(script:WaitForChild("references"));
}
function module_upvr._init(arg1) -- Line 11
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local tick_result1 = tick()
    for i, v_upvr in next, module_upvr.Services.ServerScriptService:WaitForChild("modules"):GetChildren() do
        if v_upvr:IsA("ModuleScript") and require(v_upvr)._init then
            local var8_upvw = false
            task.delay(15, function() -- Line 18
                --[[ Upvalues[2]:
                    [1]: var8_upvw (read and write)
                    [2]: v_upvr (readonly)
                ]]
                if not var8_upvw then
                    warn(string.format("Engine:_init | Module '%s' is taking too long to load!", v_upvr.Name))
                end
            end)
            if v_upvr.Name == "servers" then
                task.spawn(function() -- Line 25
                    --[[ Upvalues[1]:
                        [1]: v_upvr (readonly)
                    ]]
                end)
            else
            end
            var8_upvw = true
        end
    end
    if module_upvr.Services.RunService:IsServer() then
        v_upvr = tick() - tick_result1
        i = tostring(v_upvr)
        warn(string.format("Engine.Server | Modules intialized, time taken: %s", i))
    elseif module_upvr.Services.RunService:IsClient() then
        v_upvr = tick() - tick_result1
        i = tostring(v_upvr)
        warn(string.format("Engine.Client | Modules intialized, time taken: %s", i))
    end
end
function module_upvr.load(arg1, arg2, arg3) -- Line 43
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 15 start (CF ANALYSIS FAILED)
    assert(arg2, string.format("Engine.load | string expected, got %s", typeof(arg2)))
    if not arg3 then
        if module_upvr.Modules:FindFirstChild(arg2) then
            return require(module_upvr.Modules[arg2])
        end
        if module_upvr.Classes:FindFirstChild(arg2) then
            do
                return require(module_upvr.Classes[arg2])
            end
            -- KONSTANTWARNING: GOTO [64] #50
        end
    elseif script[arg3]:FindFirstChild(arg2) then
        return require(script[arg3][arg2])
    end
    -- KONSTANTERROR: [0] 1. Error Block 15 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [64] 50. Error Block 9 start (CF ANALYSIS FAILED)
    warn(string.format("Engine.load | Module %s not found!", arg2))
    do
        return false
    end
    -- KONSTANTERROR: [64] 50. Error Block 9 end (CF ANALYSIS FAILED)
end
function module_upvr.get(arg1, arg2, arg3) -- Line 62
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 15 start (CF ANALYSIS FAILED)
    assert(arg2, string.format("Engine.get | string expected, got %s", typeof(arg2)))
    if not arg3 then
        if module_upvr.Modules:FindFirstChild(arg2) then
            return module_upvr.Modules[arg2]
        end
        if module_upvr.Classes:FindFirstChild(arg2) then
            do
                return module_upvr.Classes[arg2]
            end
            -- KONSTANTWARNING: GOTO [55] #44
        end
    elseif script[arg3]:FindFirstChild(arg2) then
        return script[arg3][arg2]
    end
    -- KONSTANTERROR: [0] 1. Error Block 15 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [55] 44. Error Block 9 start (CF ANALYSIS FAILED)
    warn(string.format("Engine.get | Module %s not found!", arg2))
    do
        return false
    end
    -- KONSTANTERROR: [55] 44. Error Block 9 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript references ReplicatedStorage.engine.references
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:29
-- Luau version 6, Types version 3
-- Time taken: 0.004502 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local module_upvr = {
    Main = ReplicatedStorage:WaitForChild("game");
    Engine = ReplicatedStorage:WaitForChild("engine");
    Classes = module_upvr.Engine:WaitForChild("classes");
    Modules = module_upvr.Engine:WaitForChild("modules");
    Utils = module_upvr.Engine:WaitForChild("utils");
    Network = ReplicatedStorage:WaitForChild("network");
    Profiles = module_upvr.Network:WaitForChild("Profiles");
    RemoteEvent = module_upvr.Network.Shared.NetworkRemoteEvent;
    RemoteFunction = module_upvr.Network.Shared.NetworkRemoteFunction;
    BindableEvent = module_upvr.Network.NetworkBindableEvent;
    BindableFunction = module_upvr.Network.NetworkBindableFunction;
}
if game:GetService("RunService"):IsClient() then
    module_upvr.LocalPlayer = Players.LocalPlayer
    module_upvr.PlayerScripts = module_upvr.LocalPlayer:WaitForChild("PlayerScripts")
    module_upvr.PlayerGui = module_upvr.LocalPlayer:WaitForChild("PlayerGui")
    module_upvr.Backpack = module_upvr.LocalPlayer:WaitForChild("Backpack")
    module_upvr.LocalPlayer.CharacterRemoving:Connect(function() -- Line 30
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.Backpack = module_upvr.LocalPlayer:WaitForChild("Backpack")
    end)
    module_upvr.PlayerModule = require(module_upvr.PlayerScripts:WaitForChild("PlayerModule"))
    module_upvr.Controls = module_upvr.PlayerModule:GetControls()
    local Character = module_upvr.LocalPlayer.Character
    if not Character then
        Character = module_upvr.LocalPlayer.CharacterAdded:Wait()
    end
    module_upvr.Character = Character
    module_upvr.Humanoid = module_upvr.Character:WaitForChild("Humanoid")
    while not module_upvr.Profiles:FindFirstChild(tostring(Players.LocalPlayer.UserId)) do
        task.wait()
    end
    while not module_upvr.Profiles[tostring(Players.LocalPlayer.UserId)]:GetAttribute("Loaded") do
        task.wait()
    end
    module_upvr.Profile = module_upvr.Profiles:WaitForChild(tostring(Players.LocalPlayer.UserId), 100)
end
return module_upvr
ModuleScript services ReplicatedStorage.engine.services
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:31
-- Luau version 6, Types version 3
-- Time taken: 0.002225 seconds

local module = {
    Players = game:GetService("Players");
    ReplicatedStorage = game:GetService("ReplicatedStorage");
    CollectionService = game:GetService("CollectionService");
    TweenService = game:GetService("TweenService");
    ServerStorage = game:GetService("ServerStorage");
    RunService = game:GetService("RunService");
    HttpService = game:GetService("HttpService");
    Debris = game:GetService("Debris");
    UserInputService = game:GetService("UserInputService");
    TextChatService = game:GetService("TextChatService");
    Teams = game:GetService("Teams");
    StarterGui = game:GetService("StarterGui");
    MarketPlaceService = game:GetService("MarketplaceService");
    InsertService = game:GetService("InsertService");
    Lighting = game:GetService("Lighting");
}
setmetatable(module, {
    __index = function(arg1, arg2) -- Line 20, Named "__index"
        local service = game:GetService(arg2)
        if not service then
            service = game:FindService(arg2)
        end
        if service then
            rawset(arg1, arg2, service)
        end
        return service
    end;
})
return module
ModuleScript Global ReplicatedStorage.engine.modules.Global
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:32
-- Luau version 6, Types version 3
-- Time taken: 0.001425 seconds

local module = {}
_G._engine = require(script.Parent.Parent)
_G._services = require(script.Parent.Parent:WaitForChild("services"))
_G._references = require(script.Parent.Parent:WaitForChild("references"))
_G._classes = script.Parent.Parent:WaitForChild("classes")
_G._sounds = _G._services.SoundService
_G._maxPing = 500
_G._maxPlayers = 14
_G._levelCap = 9999
_G._autoOwnership = false
_G._replays = false
_G._useReplicators = false
_G._useSmoothTransition = false
_G._debug = false
_G._ranked = 0
_G._subscriptionId = "EXP-8462005104087400563"
module._debug = _G._debug
module._maxPing = _G._maxPing
module._replays = _G._replays
module._useReplicators = _G._useReplicators
module._useSmoothTransition = _G._useSmoothTransition
if _G._services.RunService:IsClient() then
    _G._playerScripts = _G._references.LocalPlayer.PlayerScripts
    _G._controllers = _G._playerScripts:WaitForChild("controllers", 100)
    _G._mechanics = _G._playerScripts:WaitForChild("mechanics", 100)
    _G._root = _G._mechanics:WaitForChild("root", 100)
end
return module
ModuleScript Network ReplicatedStorage.engine.modules.Network
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:34
-- Luau version 6, Types version 3
-- Time taken: 0.001115 seconds

return {
    new = function() -- Line 3, Named "new"
        if _G._services.RunService:IsClient() then
            return require(script:WaitForChild("client"))
        end
        if _G._services.RunService:IsServer() then
            return require(script:WaitForChild("server"))
        end
        return {}
    end;
}
ModuleScript client ReplicatedStorage.engine.modules.Network.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:36
-- Luau version 6, Types version 3
-- Time taken: 0.083574 seconds

return {
    BR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "BR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local _ = 1
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [43] 40. Error Block 10 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [43] 40. Error Block 10 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    Rk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Rk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [45] 38. Error Block 15 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [45] 38. Error Block 15 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [45.33686107]
        -- KONSTANTERROR: [5] 6. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    hk = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "hk"
        arg5[2][35][arg4 + 1] = arg2
        arg5[2][35][arg4 + 2] = arg3
        arg5[2][35][arg4 + 3] = arg6
    end;
    r = function(...) -- Line 3, Named "r"
        ...[...] = nil
    end;
    FR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "FR"
        return 93, nil, nil
    end;
    Bk = function(arg1, arg2, arg3) -- Line 3, Named "Bk"
        arg3[1][21] = arg2
    end;
    LR = bit32.countlz;
    ck = function(arg1, arg2, arg3, arg4) -- Line 3, Named "ck"
        -- KONSTANTERROR: [0] 1. Error Block 23 start (CF ANALYSIS FAILED)
        if arg4[2][39] ~= arg3 then
            -- KONSTANTWARNING: GOTO [33] #31
        end
        -- KONSTANTERROR: [0] 1. Error Block 23 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 6. Error Block 19 start (CF ANALYSIS FAILED)
        if 46 == 46 then
            if not -arg4[5] then
            else
            end
            -- KONSTANTWARNING: GOTO [10] #10
        end
        -- KONSTANTERROR: [6] 6. Error Block 19 end (CF ANALYSIS FAILED)
    end;
    p = coroutine;
    yR = bit32.bor;
    Qk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) -- Line 3, Named "Qk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [184] 165. Error Block 43 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [184] 165. Error Block 43 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 7. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [184.6621580]
        -- KONSTANTERROR: [6] 7. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    K = pcall;
    i = function(arg1, arg2, arg3) -- Line 3, Named "i"
        arg3[22] = arg1.g
        return arg1.P
    end;
    wR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "wR"
        arg4[12][6] = arg1.u.bor
        local var6
        if not arg3[17104] then
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var6 = arg3[27060]
                return var6
            end
            if arg1.S[2] > arg3[2435] or not INLINED() then
                var6 = arg3[3172]
            end
            var6 = arg1.S[5]
            var6 = 6539
            local var7 = -2063731354 + arg1.sR(arg1.IR(var6, arg3[29601]) - var6, arg3[var6])
            arg3[17104] = var7
            return var7
        end
        return arg3[17104]
    end;
    t = function(arg1, arg2, arg3) -- Line 3, Named "t"
        return arg3[18281]
    end;
    _ = bit32.lrotate;
    b = string.gsub;
    Ck = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "Ck"
        return arg8 % 8, 79, arg3 % 8, arg4 % 8
    end;
    k = setmetatable;
    H = bit32.rshift;
    c = unpack;
    VR = function(arg1) -- Line 3, Named "VR"
        return {}
    end;
    rk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "rk"
        local var8
        if var8 < 73 then
            arg3[31] = arg1.n
            if arg4[7720] then
                var8 = arg4[7720]
            else
                var8 = arg1:Sk(var8, arg4)
            end
            return 201, var8
        end
        arg3[32] = arg1.u.bxor
        return 5012, var8
    end;
    fR = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "fR"
        local var9
        if arg2 then
            local any__R_result1, any__R_result2 = arg1:_R(arg3, var9, arg5)
            local var12 = any__R_result1
            var9 = any__R_result2
            if var12 == nil then
            else
                return {arg1.c(var12)}, var9
            end
        end
        return nil, var9
    end;
    z = string;
    wk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "wk"
        return arg5[2][39](), nil, nil
    end;
    T = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "T"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg4[23] = arg1.U
        arg4[24] = nil
        arg4[25] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [60] 52. Error Block 13 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [60] 52. Error Block 13 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 8. Error Block 40 start (CF ANALYSIS FAILED)
        if 38 == 38 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if not nil then
            else
            end
            -- KONSTANTWARNING: GOTO [60] #52
        end
        -- KONSTANTERROR: [8] 8. Error Block 40 end (CF ANALYSIS FAILED)
    end;
    ak = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "ak"
        if arg6 ~= arg2[3] then
            arg1:hk(arg3, arg4, arg5, arg2, arg7)
        end
    end;
    w = bit32.bnot;
    fk = function(arg1, arg2) -- Line 3, Named "fk"
        return 186
    end;
    UR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "UR"
        if not arg3 then
        else
            arg2[2][12][5] = arg2[2][6]
            arg2[2][12][2] = arg4
        end
    end;
    Pk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Pk"
        if arg2 == 98 then
            return {arg4[2][22](arg4[2][26], arg4[2][21] - arg3, arg4[2][21] - 1)}
        end
        arg1:gk(arg3, arg4)
        return nil
    end;
    A = function(arg1, arg2, arg3) -- Line 3, Named "A"
        return arg2[7090]
    end;
    R = string.match;
    YR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) -- Line 3, Named "YR"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var16
        if arg6[1154] then
            local any_GR_result1 = arg1:GR(arg6, arg5)
        else
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var16 = arg1.S[7]
                return var16
            end
            if arg1.yR(arg6[8558]) ~= arg6[30860] or not INLINED_2() then
                var16 = arg6[6245]
            end
            arg6[31225] = -4400 + arg1.xR(arg1.aR(var16, arg6[30860]))
            var16 = arg6[30860]
            var16 = arg1.S[3]
            var16 = 29082
            arg6[1154] = (4264193508) + (arg1.WR(var16, arg6[23163]) - var16 + arg6[var16] + any_GR_result1)
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return arg7[42](arg3, arg7[9])(arg4, arg1.r, arg9, arg2, arg7[37], arg7[33], arg7[34], arg1.S, arg8, arg7[42]), (4264193508) + (arg1.WR(var16, arg6[23163]) - var16 + arg6[var16] + any_GR_result1)
    end;
    pk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "pk"
        if arg3 ~= 9 then
            arg2[1][21] = arg4
            local module_2 = {}
            module_2[1] = arg5
            return arg5, module_2, arg4
        end
        local any_bk_result1, any_bk_result2 = arg1:bk(arg5, arg2, arg4)
        return any_bk_result1, nil, any_bk_result2
    end;
    bR = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "bR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [16] 14. Error Block 6 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [16] 14. Error Block 6 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    J = unpack;
    V = table;
    x = function(arg1, arg2, arg3, arg4) -- Line 3, Named "x"
        arg4[8] = 9007199254740992
        if not arg2[5405] then
            return arg1:I(arg3, arg2)
        end
        return arg2[5405]
    end;
    uR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "uR"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var21
        if 69 < arg2 then
            if arg2 == 91 then
                local function var22() -- Line 3
                    --[[ Upvalues[2]:
                        [1]: arg5 (readonly)
                        [2]: arg1 (readonly)
                    ]]
                    local tbl_2 = {arg5[38]}
                    tbl_2[2] = arg5
                    tbl_2[3] = arg5[33]
                    tbl_2[4] = arg5[44]
                    local any_RR_result1, any_RR_result2, any_RR_result3 = arg1:RR(tbl_2, nil, nil)
                    local var27 = any_RR_result2
                    if var27 ~= nil then
                        return arg1.c(var27)
                    end
                    local any_KR_result1 = arg1:KR(any_RR_result1, any_RR_result3, tbl_2)
                    if any_KR_result1 == nil then
                    else
                        return arg1.c(any_KR_result1)
                    end
                end
                local var29
                if arg4[29082] then
                    local any_jR_result1 = arg1:jR(arg2, arg4)
                else
                    local function INLINED_3() -- Internal function, doesn't exist in bytecode
                        var29 = arg1.S[4]
                        return var29
                    end
                    if arg1.yR(arg1.S[7], arg4[30937]) ~= arg1.S[4] or not INLINED_3() then
                        var29 = arg4[30937]
                    end
                    var29 = arg4[28288]
                    arg4[5169] = (182) + (arg1.XR(var29, arg4[30937]) - var29)
                    var29 = arg1.WR(arg4[4063], arg4[1367]) - arg4[1197]
                    arg4[32732] = -4294967224 + arg1.xR(var29 + arg4[18230])
                    var29 = arg1.S[9]
                    local function INLINED_4() -- Internal function, doesn't exist in bytecode
                        var29 = 27060
                        return arg4[var29]
                    end
                    if var29 > arg1.S[7] or not INLINED_4() then
                        var29 = 6245
                    end
                    var29 = arg4[18230]
                    var29 = arg1.S
                    if arg4[var29] + var29 ~= var29[9] or not arg4[7720] then
                    end
                    arg4[29082] = -4294967151 + arg1.hR(arg4[23163])
                end
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                local any_nR_result1, any_nR_result2 = arg1:nR(arg7, -4294967151 + arg1.hR(arg4[23163]), arg4)
                local var33 = any_nR_result1
                return 59626, var21, var33, var22, any_nR_result2
            end
        else
            var21 = var22()
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return 833, var21, var33, var22, any_nR_result2
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return nil, var21, var33, var22, any_nR_result2
    end;
    Z = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Z"
        arg3[29] = arg1.j
        local var34
        if not arg2[1197] then
            local function INLINED_5() -- Internal function, doesn't exist in bytecode
                var34 = arg2[18230]
                return var34
            end
            if arg1.LR(arg2[30937] + arg2[4063] + arg1.S[3]) >= arg2[2435] or not INLINED_5() then
                var34 = arg1.S[9]
            end
            local var35 = 63 + var34
            arg2[1197] = var35
            return var35
        end
        return arg2[1197]
    end;
    F = "<d";
    Kk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Kk"
        -- KONSTANTERROR: [0] 1. Error Block 21 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 21 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 7. Error Block 25 start (CF ANALYSIS FAILED)
        local var37
        arg3[39] = function() -- Line 3
            --[[ Upvalues[1]:
                [1]: arg3 (readonly)
            ]]
            local module = {arg3[38]}
            module[2] = arg3
            local any_1_result1 = module[1]()
            if module[2][28] <= any_1_result1 then
                return any_1_result1 - module[2][8]
            end
            do
                return any_1_result1
            end
        end
        if arg2[27495] then
        else
            local function INLINED_6() -- Internal function, doesn't exist in bytecode
                var37 = arg2[27763]
                return var37
            end
            if arg1.S[9] >= arg1.sR(arg2[7090]) or not INLINED_6() then
                var37 = arg2[18281]
            end
            var37 = arg2[1367]
            arg2[27495] = -558406876 + arg1.aR(var37 + arg1.S[5], var37)
        end
        -- KONSTANTERROR: [8] 7. Error Block 25 end (CF ANALYSIS FAILED)
    end;
    sk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "sk"
        if arg5 == 187 then
            arg6[arg2 + 1] = arg3
            return arg6, 19427, arg2
        end
        if arg5 ~= 102 then
        else
            local var40 = arg7[2][6][arg4]
        end
        return var40, nil, #var40
    end;
    Wk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Wk"
        arg2[arg3] = arg5[2][6][arg4]
    end;
    l = function(arg1, arg2, arg3, arg4) -- Line 3, Named "l"
        arg2[28] = 4503599627370496
        arg2[29] = nil
        arg2[30] = nil
        return 39, nil
    end;
    Ik = function(arg1, arg2, arg3) -- Line 3, Named "Ik"
        arg3[arg2 + 3] = 4
    end;
    sR = bit32.bxor;
    WR = bit32.rshift;
    Vk = function(arg1, arg2, arg3) -- Line 3, Named "Vk"
        arg2[34] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local tbl_4 = {}
            tbl_4[1] = arg2
            local var44
            while true do
                if 71 < 122 then
                    local any_14_result1, any_14_result2_2 = tbl_4[1][14](arg1.o, tbl_4[1][26], tbl_4[1][21])
                    var44 = any_14_result1
                elseif 71 < 122 then
                    arg1:Bk(any_14_result2_2, tbl_4)
                    return var44
                end
            end
            return var44
        end
        arg2[35] = arg1.M
        arg2[36] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local tbl_8 = {}
            tbl_8[1] = arg2
            local any_Mk_result1 = arg1:Mk(tbl_8)
            if any_Mk_result1 ~= nil then
                return arg1.c(any_Mk_result1)
            end
        end
        arg2[37] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local tbl_5 = {}
            tbl_5[1] = arg2
            for i_2 = 26, 366, 111 do
                if i_2 > 26 then
                    if 248 <= i_2 then
                        return nil
                    end
                    tbl_5[1][21] = nil
                else
                    local _, _ = tbl_5[1][14](arg1.F, tbl_5[1][26], tbl_5[1][21])
                end
            end
        end
        arg2[38] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            ({arg2[23]})[2] = arg2
            local _
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [53] 44. Error Block 20 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [53] 44. Error Block 20 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [10] 9. Error Block 37 start (CF ANALYSIS FAILED)
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [53.65666]
            if 89 < arg2[23] then
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
            if arg2[23] < 89 then
                repeat
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                until arg2[23] < arg2
                -- KONSTANTWARNING: GOTO [53] #44
            end
            -- KONSTANTERROR: [10] 9. Error Block 37 end (CF ANALYSIS FAILED)
        end
        arg2[39] = nil
        arg2[40] = nil
        return 71
    end;
    qR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) -- Line 3, Named "qR"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var59
        if var59 < 21 then
            local any_YR_result1, any_YR_result2 = arg1:YR(arg9, arg8, arg7, var59, arg5, arg6, arg3, arg2)
            local var62 = any_YR_result1
            var59 = any_YR_result2
            return var59, 6350, var62
        end
        if 14 >= var59 then
        else
            return var59, {arg6[42](var62, arg6[9])}, var62
        end
        return var59, nil, var62
    end;
    O = function(arg1, arg2, arg3, arg4) -- Line 3, Named "O"
        if arg3 >= 150 then
            arg2[1][21] = 1
            return 34254
        end
        arg2[1][26] = arg4
        return 55147
    end;
    v = function(arg1, arg2, arg3) -- Line 3, Named "v"
        local var64 = -2945865754 + arg1.sR(arg1.WR(arg1.S[7], arg3[30860]) - arg3[27763] + arg2, arg1.S[2])
        arg3[28288] = var64
        return var64
    end;
    ik = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) -- Line 3, Named "ik"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [4] 4. Error Block 52 start (CF ANALYSIS FAILED)
        if arg6 == 5 then
            if arg12[2][7] then
                arg1:dk(arg11, arg13, arg10, arg12)
            else
                arg1:Wk(arg4, arg13, arg10, arg12)
            end
        elseif arg6 == 0 then
            arg8[arg13] = arg10
        elseif arg6 == 2 then
            arg1:vk(arg13, arg8, arg10)
        elseif arg6 == 1 then
            arg8[arg13] = arg13 - arg10
        elseif arg6 == 7 then
            arg1:ek(arg10, arg4, arg12, arg13)
        end
        do
            return 40672
        end
        -- KONSTANTERROR: [4] 4. Error Block 52 end (CF ANALYSIS FAILED)
    end;
    o = "<I4";
    mk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "mk"
        arg4[arg2] = arg3
    end;
    ok = function(arg1) -- Line 3, Named "ok"
        return {}
    end;
    y = function(arg1, arg2) -- Line 3, Named "y"
        arg2[11] = arg1.J
    end;
    xk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "xk"
        arg5[arg2] = arg4[2][6][arg3]
    end;
    SR = function(arg1, arg2, arg3) -- Line 3, Named "SR"
        return arg2 / 2
    end;
    HR = function(arg1, arg2) -- Line 3, Named "HR"
        arg2[12][9] = arg1.u.bxor
    end;
    Lk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Lk"
        arg4[arg2] = arg2 - arg3
    end;
    Q = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Q"
        arg2[2][arg4] = arg3(arg4)
    end;
    tk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "tk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [51] 47. Error Block 20 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [51] 47. Error Block 20 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 32 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [51.65666]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [51.6]
        if 4 < nil then
            -- KONSTANTWARNING: GOTO [51] #47
        end
        -- KONSTANTERROR: [2] 3. Error Block 32 end (CF ANALYSIS FAILED)
    end;
    XR = bit32.lrotate;
    kR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "kR"
        arg2[2][7] = arg3
        return 17
    end;
    N = bit32.countrz;
    s = function(arg1, arg2, arg3, arg4) -- Line 3, Named "s"
        local var65
        while true do
            local any_a_result1, any_a_result2 = arg1:a(var65, arg4, arg2)
            local var68 = any_a_result1
            var65 = any_a_result2
            if var68 == 13010 then
            elseif var68 == 23423 then
                break
            end
        end
        arg2[8] = nil
        arg2[9] = nil
        arg2[10] = nil
        arg2[11] = nil
        return var65
    end;
    Fk = function(arg1, arg2) -- Line 3, Named "Fk"
        arg2[2][10] = arg2[2][12]
        arg2[2][37] = 253
    end;
    Jk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Jk"
        local var69
        local function INLINED_7() -- Internal function, doesn't exist in bytecode
            var69 = arg3 - 128
            return var69
        end
        if 127 >= arg3 or not INLINED_7() then
            var69 = arg3
        end
        return arg4 + var69 * arg2
    end;
    _k = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) -- Line 3, Named "_k"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [26] 24. Error Block 8 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [26] 24. Error Block 8 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [3] 4. Error Block 15 start (CF ANALYSIS FAILED)
        if 48 == 48 then
            -- KONSTANTWARNING: GOTO [26] #24
        end
        -- KONSTANTERROR: [3] 4. Error Block 15 end (CF ANALYSIS FAILED)
    end;
    W = function(arg1, arg2, arg3, arg4) -- Line 3, Named "W"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [75] 61. Error Block 15 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [75] 61. Error Block 15 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 37 start (CF ANALYSIS FAILED)
        if 117 == 117 then
            -- KONSTANTWARNING: GOTO [75] #61
        end
        -- KONSTANTERROR: [2] 3. Error Block 37 end (CF ANALYSIS FAILED)
    end;
    h = function(arg1, arg2, arg3, arg4) -- Line 3, Named "h"
        arg4[6] = arg1.M
        if not arg2[18230] then
            local var72 = (3867185737) + (arg1.hR(arg1.S[8] + arg3) - arg1.S[2] - arg1.S[4])
            arg2[18230] = var72
            return var72
        end
        return arg2[18230]
    end;
    dR = string.unpack;
    S = {62339, 2945865867, 4264193627, 2069624964, 2233627915, 3336860550, 2534292420, 3146662056, 3738338732};
    NR = function(arg1, arg2) -- Line 3, Named "NR"
        arg2[12][11] = arg1.N
    end;
    xR = bit32.band;
    n = table.move;
    JR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "JR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [37] 30. Error Block 13 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [37] 30. Error Block 13 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    e = function(arg1, arg2, arg3, arg4) -- Line 3, Named "e"
        arg2[15] = arg1.k
        arg2[16] = function(arg1_2, arg2_2, arg3_2, arg4_2) -- Line 3
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            local tbl_6 = {}
            tbl_6[1] = arg2
            local var76 = tbl_6
            if arg3_2 < arg2_2 then return end
            local var77 = arg3_2 - arg2_2 + 1
            if 8 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], arg1_2[arg2_2 + 3], arg1_2[arg2_2 + 4], arg1_2[arg2_2 + 5], arg1_2[arg2_2 + 6], arg1_2[arg2_2 + 7], var76[1][16](arg1_2, arg2_2 + 8, arg3_2)
            end
            if 7 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], arg1_2[arg2_2 + 3], arg1_2[arg2_2 + 4], arg1_2[arg2_2 + 5], arg1_2[arg2_2 + 6], var76[1][16](arg1_2, arg2_2 + 7, arg3_2)
            end
            if 6 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], arg1_2[arg2_2 + 3], arg1_2[arg2_2 + 4], arg1_2[arg2_2 + 5], var76[1][16](arg1_2, arg2_2 + 6, arg3_2)
            end
            if 5 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], arg1_2[arg2_2 + 3], arg1_2[arg2_2 + 4], var76[1][16](arg1_2, arg2_2 + 5, arg3_2)
            end
            if 4 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], arg1_2[arg2_2 + 3], var76[1][16](arg1_2, arg2_2 + 4, arg3_2)
            end
            if 3 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], arg1_2[arg2_2 + 2], var76[1][16](arg1_2, arg2_2 + 3, arg3_2)
            end
            if 2 <= var77 then
                return arg1_2[arg2_2], arg1_2[arg2_2 + 1], var76[1][16](arg1_2, arg2_2 + 2, arg3_2)
            end
            return arg1_2[arg2_2], var76[1][16](arg1_2, arg2_2 + 1, arg3_2)
        end
        if arg3[6245] then
            return arg3[6245]
        end
        local var78 = -3221225401 + arg1.XR(arg1.LR(arg1.XR(arg1.S[9], arg3[29601])) - arg3[23163], arg3[30860])
        arg3[6245] = var78
        return var78
    end;
    B = select;
    j = getfenv;
    uk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) -- Line 3, Named "uk"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var83
        for i_3 = 114, 328, 107 do
            local any_nk_result1, any_nk_result2, any_nk_result3, any_nk_result4, any_nk_result5 = arg1:nk(nil, nil, arg9, var83, i_3, arg2, arg7)
            var83 = any_nk_result5
            if any_nk_result3 == 12192 then
            end
        end
        return var83, any_nk_result1, nil, any_nk_result2, any_nk_result4, arg9[2][20](arg2), nil
    end;
    IR = bit32.lshift;
    RR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "RR"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 74 start (CF ANALYSIS FAILED)
        local var93
        for i_4 = 79, 153, 74 do
            if 153 > i_4 then
                arg2[2][43] = {}
            else
                arg2[2][6] = arg2[2][20](arg2[1]() - 24361)
            end
        end
        if arg2[3]() == 0 then
            var93 = false
        else
            var93 = true
        end
        local const_number = 122
        -- KONSTANTERROR: [0] 1. Error Block 74 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [127] 112. Error Block 51 start (CF ANALYSIS FAILED)
        if 17 < const_number then
        end
        -- KONSTANTERROR: [127] 112. Error Block 51 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [32] 30. Error Block 12 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [138.198482]
        -- KONSTANTERROR: [32] 30. Error Block 12 end (CF ANALYSIS FAILED)
    end;
    X = function(arg1, arg2, arg3, arg4) -- Line 3, Named "X"
        arg3[10] = type
        if not arg2[1367] then
            local var95 = -308950197 + arg1.xR(arg1.xR(arg1.S[4] + arg4) + arg1.S[7])
            arg2[1367] = var95
            return var95
        end
        return arg1:L(arg2, var95)
    end;
    rR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "rR"
        if arg7 == 39 then
            local any_SR_result1 = arg1:SR(arg6, arg4)
        else
        end
        return any_SR_result1, arg1:Ok(arg2, arg5, any_SR_result1, arg6, arg3)
    end;
    cR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "cR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [16] 15. Error Block 35 start (CF ANALYSIS FAILED)
        if nil == 14972 then
        end
        -- KONSTANTERROR: [16] 15. Error Block 35 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 51 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil == 21419 then
            -- KONSTANTWARNING: GOTO [20] #18
        end
        -- KONSTANTERROR: [1] 2. Error Block 51 end (CF ANALYSIS FAILED)
    end;
    I = function(arg1, arg2, arg3) -- Line 3, Named "I"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var97
        local function INLINED_8() -- Internal function, doesn't exist in bytecode
            var97 = arg3[30937]
            return var97
        end
        if arg1.IR(arg1.S[8], arg3[30937]) == arg3[3172] or not INLINED_8() then
            var97 = arg1.S[1]
        end
        local function INLINED_9() -- Internal function, doesn't exist in bytecode
            var97 = arg1.S
            return var97[8]
        end
        if var97 == arg3[3172] or not INLINED_9() then
            var97 = 27763
        end
        var97 = arg3[18230]
        local var98 = 48 + arg1.xR(arg3[var97], var97)
        arg3[5405] = var98
        return var98
    end;
    Yk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) -- Line 3, Named "Yk"
        if arg2 == 100 then
            local _ = 115
            local var100
        elseif var100 == 115 then
            local any_ck_result1, any_ck_result2 = arg1:ck(var100, (arg14 - arg6) / 8, arg3)
            var100 = any_ck_result2
            local var103
        elseif var103 == 54 then
            var103 = arg1:Gk(arg11, arg4, arg13, arg7, var103, arg10)
        else
            if var103 == 29 then
                var103 = 88
                local var104 = var103
                arg8[arg13] = arg5
                return any_ck_result1, 15354, var104
            end
            if var104 ~= 88 then
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                arg9[arg13] = any_ck_result1
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return any_ck_result1, 39697, var104
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return any_ck_result1, nil, var104
    end;
    Gk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "Gk"
        arg2[arg4] = arg5
        arg7[arg4] = arg3
        return 29
    end;
    q = function(arg1, arg2, arg3) -- Line 3, Named "q"
        return arg2[27763]
    end;
    Uk = function(arg1, arg2) -- Line 3, Named "Uk"
        arg2[40] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local tbl_3 = {arg2[38]}
            tbl_3[2] = arg2
            for i_5 = 59, 191, 39 do
                local any_Pk_result1 = arg1:Pk(i_5, tbl_3[1](), tbl_3)
                if any_Pk_result1 == nil then
                else
                    return arg1.c(any_Pk_result1)
                end
            end
        end
    end;
    Y = function(arg1, arg2, arg3) -- Line 3, Named "Y"
        arg3[4] = nil
        arg3[5] = nil
        arg3[6] = nil
        arg3[7] = nil
        return 101
    end;
    Xk = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "Xk"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var109
        if var109 < 115 then
            local len = #arg6[2][35]
            var109 = 115
        else
            arg6[2][35][len + 1] = arg2
            var109 = 54
            arg6[2][35][len + 2] = arg4
            return 16848, var109, len
        end
        return nil, var109, len
    end;
    P = string.char;
    mR = bit32.countrz;
    U = string.byte;
    Zk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "Zk"
        if arg3 == 48 then
            local any_3_result1_2 = arg5[3]()
            local any_3_result1 = arg5[3]()
            return any_3_result1_2, 12130, any_3_result1
        end
        if arg3 ~= 58 then
        else
            arg1:lk(arg6, arg2, any_3_result1_2, any_3_result1)
        end
        return any_3_result1_2, nil, any_3_result1
    end;
    hR = bit32.bnot;
    KR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "KR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [53] 45. Error Block 22 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [53] 45. Error Block 22 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 7. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 7. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    gk = function(arg1, arg2, arg3) -- Line 3, Named "gk"
        arg3[2][21] = arg3[2][21] + arg2
    end;
    vR = function(arg1) -- Line 3
        local tbl = {}
        local any_G_result1 = arg1:G(nil, tbl)
        local any_D_result1, any_D_result2 = arg1:D(any_G_result1, nil, arg1:W(tbl, any_G_result1, arg1:s(tbl, arg1:Y(nil, tbl), any_G_result1)), tbl)
        local any_l_result1, any_l_result2 = arg1:l(tbl, nil, arg1:T(any_D_result1, any_G_result1, tbl, any_D_result2))
        local any_zk_result1, any_zk_result2 = arg1:zk(any_l_result2, any_l_result1, tbl, any_G_result1)
        local any_oR_result1, any_oR_result2, any_oR_result3, any_oR_result4 = arg1:oR(nil, nil, arg1:Kk(any_G_result1, tbl, arg1:Vk(tbl, any_zk_result1)), tbl, nil, any_G_result1)
        local var127 = any_oR_result3
        local any_FR_result1, any_FR_result2, any_FR_result3 = arg1:FR(nil, nil, any_oR_result4)
        local _, _, any_cR_result3, any_cR_result4, any_cR_result5 = arg1:cR(any_zk_result2, any_FR_result1, any_G_result1, var127, any_FR_result2, tbl, any_FR_result3)
        local var136 = any_cR_result3
        if var136 == nil then
        else
            return arg1.c(var136)
        end
        while true do
            local _, any_qR_result2, _ = arg1:qR(any_cR_result5, any_cR_result4, 14, any_G_result1, tbl, any_oR_result1, any_oR_result2, var127)
            local var140 = any_qR_result2
            if var140 == 6350 then
            elseif var140 == nil then
            else
                return arg1.c(var140)
            end
        end
    end;
    bk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "bk"
        local any_14_result1_2, any_14_result2 = arg3[1][14]("<i8", arg3[1][26], arg3[1][21])
        return any_14_result1_2, any_14_result2
    end;
    PR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "PR"
        return arg4[arg3[1]()]
    end;
    E = bit32.rrotate;
    jR = function(arg1, arg2, arg3) -- Line 3, Named "jR"
        return arg3[29082]
    end;
    vk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "vk"
        arg3[arg2] = arg2 + arg4
    end;
    Nk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) -- Line 3, Named "Nk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [183] 146. Error Block 54 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [183] 146. Error Block 54 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [4] 5. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [183.5245580]
        -- KONSTANTERROR: [4] 5. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    yk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "yk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local _ = 100
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [27] 25. Error Block 9 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [27] 25. Error Block 9 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [3] 4. Error Block 13 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [27.8]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [27.65666]
        if nil < _ then
            if nil ~= 16848 then
                -- KONSTANTWARNING: GOTO [27] #25
            end
        else
        end
        -- KONSTANTERROR: [3] 4. Error Block 13 end (CF ANALYSIS FAILED)
    end;
    Ek = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Ek"
        return arg5[2][39](), arg5[2][39](), arg5[2][39]()
    end;
    nk = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "nk"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var144
        if 114 >= arg6 then
            local any_20_result1 = arg4[2][20](arg7)
            return var144, any_20_result1, 12192, arg2, arg5
        end
        if 221 < arg6 then
            var144 = 1
        else
        end
        return var144, any_20_result1, nil, arg4[2][20](arg7), arg4[2][20](arg7)
    end;
    u = bit32;
    Ok = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "Ok"
        local var148
        if arg5 % 2 == 0 then
            arg3[var148] = arg4 - arg4 % 1
            return var148
        end
        for i_6 = 48, 58, 10 do
            local any_Zk_result1, any_Zk_result2, _ = arg1:Zk(arg3, i_6, nil, arg2, arg4, var148)
            var148 = any_Zk_result1
            if any_Zk_result2 == 12130 then
            end
        end
        return var148
    end;
    MR = function(arg1) -- Line 3, Named "MR"
        return {183}
    end;
    f = bit32.countlz;
    C = bit32.lshift;
    L = function(arg1, arg2, arg3) -- Line 3, Named "L"
        return arg2[1367]
    end;
    D = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "D"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg5[18] = nil
        arg5[19] = nil
        arg5[20] = nil
        arg5[21] = nil
        arg5[22] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [138] 117. Error Block 26 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [138] 117. Error Block 26 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [12] 13. Error Block 45 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [138.197970]
        if nil < 67 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if 67 <= nil then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if nil then
                else
                end
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if 67 ~= 109 then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    if nil then
                    else
                    end
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    if nil then
                    else
                        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [138.7]
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [138.8]
                        local function INLINED_10() -- Internal function, doesn't exist in bytecode
                            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [138.6]
                            return nil
                        end
                        if nil ~= nil or not INLINED_10() then
                        end
                    end
                end
            end
            -- KONSTANTWARNING: GOTO [138] #117
        end
        -- KONSTANTERROR: [12] 13. Error Block 45 end (CF ANALYSIS FAILED)
    end;
    _R = function(arg1, arg2, arg3, arg4) -- Line 3, Named "_R"
        local var155
        for i_7 = 21, 212, 101 do
            local var156
            if i_7 < var156 then
                if arg4 > arg4 then
                    var156 = false
                else
                    var156 = true
                end
                var155 = 122
                arg2[28] = var156
            else
                var156 = 21
                if var156 >= i_7 then
                else
                    var156 = arg1:CR()
                    var156 = {}
                    var156[1] = arg1.c(var156)
                    return var156, var155
                end
            end
        end
        return nil, var155
    end;
    Sk = function(arg1, arg2, arg3) -- Line 3, Named "Sk"
        local var157 = -2661285815 + arg1.IR(arg1.xR(arg3[18281] - arg1.S[2]) - arg3[30860], arg2)
        arg3[7720] = var157
        return var157
    end;
    d = function(arg1, arg2, arg3, arg4) -- Line 3, Named "d"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var158
        if 18 < var158 and var158 < 96 then
            arg4[13] = error
            local var159
            if not arg3[23163] then
                var159 = arg1.LR(arg1.LR(arg3[25290]))
                arg3[3486] = arg1.mR(var159 + arg3[5405])
                local function INLINED_11() -- Internal function, doesn't exist in bytecode
                    var159 = arg3[25290]
                    return var159
                end
                if arg1.XR(var158, arg3[30937]) == arg3[3172] or not INLINED_11() then
                    var159 = arg1.S[3]
                end
                var159 = arg1.S[2]
                var158 = (-2945865912) + (var159 - arg3[30937] + var159)
                arg3[23163] = var158
            else
                var158 = arg3[23163]
            end
        else
            if 63 < var158 then
                arg4[12] = {}
                local var160
                if arg3[25290] then
                else
                    var160 = -1628945888
                    var159 = arg1.XR(arg1.aR(arg1.sR(arg1.S[9], arg3[5080], arg1.S[4]) + arg1.S[8], arg3[30937]), arg3[30937])
                    arg3[29601] = var160 + var159
                    var160 = -2069624939
                    var159 = arg3[25290] + arg1.S[4] - arg1.S[3] + arg1.S[3] - arg3[27763]
                    arg3[30860] = var160 + var159
                    var159 = arg1.yR(arg1.mR(arg1.S[8]), arg3[5080])
                    local function INLINED_12() -- Internal function, doesn't exist in bytecode
                        var160 = arg3[var159]
                        var159 = 1367
                        return var160
                    end
                    if arg1.S[7] > var159 or not INLINED_12() then
                        var159 = arg1.S
                        var160 = var159[1]
                    end
                    var159 = arg1.S[4]
                    local function INLINED_13() -- Internal function, doesn't exist in bytecode
                        var160 = arg1.S
                        return var160[4]
                    end
                    if var160 ~= var159 or not INLINED_13() then
                        var160 = 30937
                    end
                    arg3[25290] = 63 + arg3[var160]
                end
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return 64137, 63 + arg3[var160]
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if 63 + arg3[var160] < 63 then
                arg4[14] = arg1.dR
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return 16980, 63 + arg3[var160]
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return nil, 63 + arg3[var160]
    end;
    ek = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "ek"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local const_number_2 = 27
        while true do
            if const_number_2 < 27 then
                arg4[2][35][nil + 3] = arg2
                return
            end
            local var162
            if 27 < const_number_2 then
            elseif arg1:Ak(var162, const_number_2, arg5, arg4) < 62 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if 5 >= arg1:Ak(var162, const_number_2, arg5, arg4) then
                else
                    var162 = #arg4[2][35]
                    arg4[2][35][var162 + 1] = arg3
                end
            end
        end
    end;
    ER = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "ER"
        -- KONSTANTERROR: [0] 1. Error Block 41 start (CF ANALYSIS FAILED)
        if arg4 == 93 then
            local const_number_3 = 122
            if arg3[8558] then
                local _ = arg3[8558]
            else
                arg3[31221] = 94 + arg1.XR(arg1.mR(arg1.XR(arg3[4063] - arg3[28288], arg3[1367])), arg3[30937])
                arg3[8558] = -4294967108 + arg1.hR(arg1.sR(arg3[5080] + arg3[6245] - arg3[23163]))
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return 14972, -4294967108 + arg1.hR(arg1.sR(arg3[5080] + arg3[6245] - arg3[23163])), arg2, const_number_3
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if -4294967108 + arg1.hR(arg1.sR(arg3[5080] + arg3[6245] - arg3[23163])) ~= 24 then
            -- KONSTANTWARNING: GOTO [101] #85
        end
        -- KONSTANTERROR: [0] 1. Error Block 41 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [57] 51. Error Block 36 start (CF ANALYSIS FAILED)
        if const_number_3 ~= 122 then
            -- KONSTANTWARNING: GOTO [89] #75
        end
        -- KONSTANTERROR: [57] 51. Error Block 36 end (CF ANALYSIS FAILED)
    end;
    nR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "nR"
        local function var165(...) -- Line 3
            return ...()
        end
        if not arg4[6539] then
            local var166 = (-4264193558) + (arg1.yR(arg4[30937], arg4[7090], arg1.S[3]) + arg4[3486] - arg4[1197] + arg4[18281])
            arg4[6539] = var166
            return var165, var166
        end
        return var165, arg4[6539]
    end;
    CR = function(arg1) -- Line 3, Named "CR"
        return {160}
    end;
    Hk = function(arg1, arg2) -- Line 3, Named "Hk"
        return {arg2[5]}
    end;
    jk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "jk"
        return arg5[1]() - 42758, nil, {}
    end;
    G = function(arg1, arg2, arg3) -- Line 3, Named "G"
        arg3[1] = arg1.z.pack
        arg3[2] = {}
        arg3[3] = nil
        return {}
    end;
    zk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "zk"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [75] 67. Error Block 17 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [75] 67. Error Block 17 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [75.6]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [75.1734]
        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    g = string.sub;
    lk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "lk"
        for i_8 = arg2 - arg2 % 1, arg4 do
            arg1:Tk(arg3, arg5, i_8)
        end
    end;
    Dk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Dk"
        return {arg4 - arg4 % 1, arg3 % 4}
    end;
    aR = bit32.rrotate;
    zR = function(arg1, arg2, arg3) -- Line 3, Named "zR"
        if arg3 ~= 264 then
            return 58246, arg2
        end
        return nil, arg2 + 1
    end;
    dk = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "dk"
        local var171 = arg5[2][6][arg4]
        local len_2 = #var171
        var171[len_2 + 1] = arg2
        var171[len_2 + 2] = arg3
        var171[len_2 + 3] = 5
    end;
    M = nil;
    pR = function(arg1, arg2, arg3, arg4) -- Line 3, Named "pR"
        if arg3 == 80 then
            return arg2[2][37]()
        end
        return arg2[2][36]()
    end;
    Tk = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Tk"
        arg2[arg4] = arg3
    end;
    a = function(arg1, arg2, arg3, arg4) -- Line 3, Named "a"
        local var175
        if var175 < 50 then
            arg4[4] = arg1.b
            arg4[5] = arg1.p.yield
            local var176
            if not arg3[27763] then
                local function INLINED_15() -- Internal function, doesn't exist in bytecode
                    var176 = var175
                    return var176
                end
                if arg1.sR(var175) == arg1.S[5] or not INLINED_15() then
                    var176 = arg3[30937]
                end
                var176 = var175
                var175 = -1760674781 + arg1.aR(var176 - arg1.S[7], var176)
                arg3[27763] = var175
            else
                var176 = var175
                var175 = arg1:q(arg3, var176)
            end
        else
            if var175 < 95 then
                if 0 < var175 then
                    arg4[7] = nil
                    return 23423, var175
                end
            end
            if 95 < var175 then
                arg4[3] = arg1.B
                if arg3[30937] then
                    var175 = arg3[30937]
                else
                    var176 = arg1.sR(arg1.IR(var175 - arg1.S[7], 30) - arg1.S[9])
                    arg3[3172] = -1630370315 + var176
                    var176 = arg1.S[3] - arg1.S[9]
                    var176 = 31
                    var175 = arg1.aR(arg1.IR(var176 - arg1.S[1], var176), 23)
                    arg3[30937] = var175
                end
            elseif 50 < var175 and var175 < 101 then
                var176 = var175
                var175 = arg1:h(arg3, var176, arg4)
                return 13010, var175
            end
        end
        return nil, var175
    end;
    Ak = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Ak"
        arg5[2][35][arg2 + 2] = arg4
        return 5
    end;
    qk = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "qk"
        if not arg2[2][7] then
            arg6[arg4] = arg2[2][6][arg3]
        else
            local var177 = arg2[2][6][arg3]
            local len_3 = #var177
            var177[len_3 + 1] = arg5
            var177[len_3 + 2] = arg4
            var177[len_3 + 3] = 7
        end
    end;
    m = function(arg1, arg2, arg3) -- Line 3, Named "m"
        return arg3[5080]
    end;
    Mk = function(arg1, arg2) -- Line 3, Named "Mk"
        for i_9 = 9, 201, 118 do
            local _, any_pk_result2, _ = arg1:pk(arg2, i_9, nil, nil)
            local var183 = any_pk_result2
            if var183 == nil then
            else
                return {arg1.c(var183)}
            end
        end
        return nil
    end;
    gR = function(arg1, arg2) -- Line 3, Named "gR"
        local var185
        if 249 > false then
            var185 = false
        else
            var185 = true
        end
        arg2[2][40] = var185
    end;
    GR = function(arg1, arg2, arg3) -- Line 3, Named "GR"
        return arg2[1154]
    end;
    kk = function(arg1) -- Line 3, Named "kk"
    end;
    oR = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "oR"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg5[44] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg5 (readonly)
                [2]: arg1 (readonly)
            ]]
            local tbl_7 = {arg5[38]}
            tbl_7[2] = arg5
            tbl_7[3] = arg5[34]
            tbl_7[4] = arg5[41]
            tbl_7[5] = arg5[33]
            local any_jk_result1, any_jk_result2, any_jk_result3 = arg1:jk(nil, nil, nil, tbl_7)
            local var191 = any_jk_result1
            local any_uk_result1, any_uk_result2, any_uk_result3, any_uk_result4, any_uk_result5, any_uk_result6, any_uk_result7 = arg1:uk(var191, nil, nil, nil, nil, any_jk_result2, nil, tbl_7, nil)
            local var199 = any_uk_result1
            local var200 = any_uk_result4
            local var201 = any_uk_result6
            local any_Nk_result1, any_Nk_result2, any_Nk_result3, any_Nk_result4, any_Nk_result5, any_Nk_result6, any_Nk_result7 = arg1:Nk(any_uk_result7, nil, var191, nil, var199, var200, tbl_7, any_uk_result3, nil, nil, var201)
            local var209 = any_Nk_result6
            local var210 = any_Nk_result7
            if var209 == nil then
            else
                return arg1.c(var209)
            end
            local any_Qk_result1, any_Qk_result2, _ = arg1:Qk(any_Nk_result4, any_uk_result5, any_Nk_result5, var199, var191, tbl_7, any_Nk_result3, var210, any_Nk_result1, var201, any_Nk_result2, var200)
            local var214 = any_Qk_result2
            if var214 == nil then
            else
                return arg1.c(var214)
            end
            local _, any_bR_result2, _ = arg1:bR(any_jk_result3, var210, any_Qk_result1, any_uk_result2, tbl_7)
            return arg1.c(any_bR_result2)
        end
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [26] 25. Error Block 10 start (CF ANALYSIS FAILED)
        if nil == 59626 then
        end
        -- KONSTANTERROR: [26] 25. Error Block 10 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [9] 10. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: [9] 10. Error Block 2 end (CF ANALYSIS FAILED)
    end;
}:vR()(...)
ModuleScript server ReplicatedStorage.engine.modules.Network.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:39
-- Luau version 6, Types version 3
-- Time taken: 0.130235 seconds

return {
    T = select;
    Ci = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) -- Line 3, Named "Ci"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [20] 18. Error Block 7 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [20] 18. Error Block 7 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 35 start (CF ANALYSIS FAILED)
        if nil == 31257 then
            -- KONSTANTWARNING: GOTO [24] #22
        end
        -- KONSTANTERROR: [1] 2. Error Block 35 end (CF ANALYSIS FAILED)
    end;
    ti = function(arg1, arg2, arg3, arg4) -- Line 3, Named "ti"
        arg2[arg4] = arg4 - arg3
    end;
    M = function(arg1, arg2, arg3, arg4) -- Line 3, Named "M"
        arg3[28] = arg1.nQ
        local var2
        if not arg2[14301] then
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var2 = arg2[15437]
                return var2
            end
            if arg2[1270] > arg1.m[7] or not INLINED() then
                var2 = arg1.m[4]
            end
            var2 = arg1.m[2]
            arg2[22424] = (-4177975804) + (var2 + arg2[13348] + var2 - arg4)
            var2 = 13564
            var2 = arg2[3993]
            var2 = arg1.m
            local var3 = (-94868289) + (arg2[var2] + var2 + var2[9] - arg1.m[6] - arg2[15437])
            arg2[14301] = var3
            return var3
        end
        return arg1:e(var3, arg2)
    end;
    FQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "FQ"
        local var4 = arg3[40]() - 73891
        arg3[13] = arg3[3](var4)
        return var4, 113
    end;
    Mi = function(arg1, arg2, arg3) -- Line 3, Named "Mi"
        arg2[arg3 + 3] = 7
    end;
    f = "<i8";
    oi = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "oi"
        if arg3 == 9 then
            local const_number = 84
            local const_number_9 = 1
            return arg5, const_number, 20591, const_number_9
        end
        if const_number == 84 then
            arg2[6] = arg4[40]()
            local any_40_result1 = arg4[40]()
            return any_40_result1, const_number, 17154, const_number_9
        end
        return any_40_result1, const_number, nil, const_number_9
    end;
    t = function(arg1, arg2, arg3) -- Line 3, Named "t"
        return arg2[6220]
    end;
    xi = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) -- Line 3, Named "xi"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [53] 49. Error Block 11 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [53] 49. Error Block 11 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [17] 18. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [53.6293388]
        -- KONSTANTERROR: [17] 18. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    zi = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "zi"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local const_number_6 = 69
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 14. Error Block 17 start (CF ANALYSIS FAILED)
        if const_number_6 ~= 69 then
        end
        -- KONSTANTERROR: [14] 14. Error Block 17 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    Yi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Yi"
        return 126, arg4[40]() - 47780
    end;
    vi = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "vi"
        arg3[22][arg2 + 2] = arg4
        return 33
    end;
    si = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "si"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var14
        if var14 <= 21 then
            if var14 ~= 21 then
                var14 = 34
                for i_2 = 1, arg3 do
                    arg1:Qi(arg6, i_2, arg2)
                end
            else
                var14 = 112
                i_2 = arg2[3](arg3)
                return 40226, var14, i_2
            end
        elseif var14 == 112 then
            var14 = 15
            arg4[11] = arg2[3](arg3)
        else
            i_2 = arg4
            arg1:yi(i_2, arg5)
            i_2 = arg2[3](arg3)
            return 31257, var14, i_2
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return nil, var14, arg2[3](arg3)
    end;
    mQ = function(arg1, arg2, arg3) -- Line 3, Named "mQ"
        arg3[arg2 + 3] = 9
    end;
    A = setfenv;
    bQ = table.move;
    Bi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Bi"
        arg3[5] = arg4
        arg3[3] = arg2
    end;
    dQ = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "dQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var15
        if var15 < 113 and 28 < var15 then
            local any_FQ_result1, any_FQ_result2 = arg1:FQ(var15, arg2, arg5)
            local var18 = any_FQ_result1
            var15 = any_FQ_result2
            return var15, 42191, arg4, var18
        end
        if var15 < 90 then
            arg2[19] = arg4
            return var15, 52194, arg4, var18
        end
        if 90 < var15 then
            var15 = 28
            if arg2[34]() == 0 then
            else
            end
        end
        return var15, nil, true, var18
    end;
    ei = function(arg1, arg2, arg3, arg4) -- Line 3, Named "ei"
        return arg3[13][arg2]
    end;
    li = function(arg1, arg2, arg3, arg4) -- Line 3, Named "li"
        return arg3 % 8, 24
    end;
    YQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "YQ"
        local var19
        if arg3 == 1.4965776766268446e+136 then
            var19 = false
        else
            var19 = true
        end
        arg2[8] = var19
        arg2[4] = 84
        return 5
    end;
    Ii = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "Ii"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [17] 16. Error Block 10 start (CF ANALYSIS FAILED)
        if nil == 20591 then
        end
        -- KONSTANTERROR: [17] 16. Error Block 10 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    ni = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) -- Line 3, Named "ni"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [19] 18. Error Block 9 start (CF ANALYSIS FAILED)
        local any_Hi_result1, any_Hi_result2 = arg1:Hi(47, nil, arg8)
        -- KONSTANTERROR: [19] 18. Error Block 9 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    X = function(arg1, arg2, arg3) -- Line 3, Named "X"
        return arg2[10275]
    end;
    hQ = bit32.countlz;
    NQ = function(arg1, arg2, arg3) -- Line 3, Named "NQ"
        arg2[6303] = (-4160749544) + (arg1.aQ(arg1.pQ(arg2[30161] - arg2[30161], arg2[862]), arg2[14301]) + arg2[30231])
        arg2[3442] = (4100261148) + (arg1.nQ(arg1.MQ(arg2[13198], arg1.m[1], arg2[9223]) + arg2[7306], arg2[3993], arg2[862]) - arg1.m[8])
        local var22
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var22 = arg2[4538]
            return var22
        end
        if arg1.pQ(arg1.m[3] - arg2[30231], arg2[4901]) - arg1.m[4] >= arg1.m[5] or not INLINED_2() then
            var22 = arg1.m[1]
        end
        local var23 = -4 + var22
        arg2[10816] = var23
        return var23
    end;
    KQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "KQ"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    I = bit32.bnot;
    jQ = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "jQ"
        if not arg6[19] then
            arg3[arg2] = arg6[13][arg5]
        else
            local var25 = arg6[13][arg5]
            local any_Gi_result1 = arg1:Gi(var25, nil)
            var25[any_Gi_result1 + 1] = arg4
            for i_8 = 22, 77, 55 do
                if i_8 == 22 then
                    arg1:Oi(var25, any_Gi_result1, arg2)
                elseif i_8 == 77 then
                    arg1:mQ(any_Gi_result1, var25)
                end
            end
        end
    end;
    UQ = string.char;
    wQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "wQ"
        arg2[22][arg3 + 3] = arg4
    end;
    Y = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Y"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        arg3[3] = arg1.w.create
        local var27
        if arg2[10275] then
            var27 = arg1:X(arg2, var27)
            return var27
        end
        if arg1.m[8] ~= var27 or not arg1.m[6] then
        end
        arg2[28454] = (6737340557) + (arg2[31444] - arg1.m[9] - arg1.m[7] - arg1.m[4])
        if arg1.m[8] == arg2[29961] or not arg1.m[5] then
        end
        if arg1.m[2] >= arg1.m[8] + arg2[31444] or not arg1.m[6] then
        end
        var27 = -4294967116 + arg1.lQ(arg2[29961])
        arg2[10275] = var27
        return var27
    end;
    Ni = function(arg1, arg2) -- Line 3, Named "Ni"
        return arg2 * 128
    end;
    fQ = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "fQ"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg2[27] = {}
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [21] 19. Error Block 24 start (CF ANALYSIS FAILED)
        if nil == 42191 then
        end
        -- KONSTANTERROR: [21] 19. Error Block 24 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 7. Error Block 32 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil == 52194 then
            -- KONSTANTWARNING: GOTO [30] #27
        end
        -- KONSTANTERROR: [7] 7. Error Block 32 end (CF ANALYSIS FAILED)
    end;
    Fi = function(arg1, arg2) -- Line 3, Named "Fi"
        for i_3 = 109, 355, 87 do
            if 109 >= i_3 then
            else
                local any_Pi_result1, _, _, any_Pi_result4 = arg1:Pi(arg2, 1, i_3, 0)
                local var33 = any_Pi_result1
                if var33 == 19860 then
                elseif var33 ~= -2 then
                else
                    return -2, any_Pi_result4
                end
            end
        end
        return nil
    end;
    DQ = function(arg1, arg2) -- Line 3, Named "DQ"
        arg2[25] = arg2[35]
        arg2[36] = arg2[45]
    end;
    P = nil;
    eQ = bit32.countrz;
    PQ = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "PQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var34
        if 16 >= var34 then
            local function var35(...) -- Line 3
                return ...()
            end
            local var36
            if arg5[20166] then
                var34 = arg5[20166]
            else
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    var36 = arg5[862]
                    return var36
                end
                if arg1.m[4] >= arg5[9621] or not INLINED_3() then
                    var36 = arg1.m[7]
                end
                var34 = 15 + arg1.eQ(arg1.eQ(var36 + arg5[13564]))
                arg5[20166] = var34
            end
            return 35888, var35, var34
        end
        if var34 == 28 then
            var34 = arg1:zQ(arg5, var34, arg4)
        else
            arg4[46] = function() -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg4 (readonly)
                ]]
                -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                local any_Di_result1, any_Di_result2, any_Di_result3 = arg1:Di(nil, arg4, nil, nil)
                local var41 = any_Di_result3
                local any_Ii_result1, any_Ii_result2, any_Ii_result3, any_Ii_result4, any_Ii_result5 = arg1:Ii(arg4, var41, nil, any_Di_result2, nil, nil, any_Di_result1)
                local _, any_Ci_result2, any_Ci_result3, any_Ci_result4, any_Ci_result5, _, _ = arg1:Ci(var41, any_Ii_result3, nil, arg4, any_Ii_result2, nil, any_Ii_result4, nil, any_Ii_result5, any_Ii_result1)
                local any_xi_result1, _, _, _, _, _, _ = arg1:xi(nil, nil, any_Ci_result4, nil, nil, nil, any_Ci_result2, any_Ci_result3, arg4, any_Ci_result5, nil)
                -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [335] 301. Error Block 61 start (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [335] 301. Error Block 61 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [85] 82. Error Block 82 start (CF ANALYSIS FAILED)
                -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [335.65666]
                if any_xi_result1 < any_xi_result1 then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    if any_xi_result1 >= any_xi_result1 then
                    else
                    end
                    -- KONSTANTWARNING: GOTO [335] #301
                end
                -- KONSTANTERROR: [85] 82. Error Block 82 end (CF ANALYSIS FAILED)
            end
            if arg5[372] then
                var34 = arg5[372]
            else
                var34 = -286114975 + arg1.pQ(arg1.iQ(arg1.nQ(arg1.m[8] + arg1.m[7]), arg5[14832]))
                arg5[372] = var34
            end
        end
        return nil, var35, var34
    end;
    K = string.unpack;
    e = function(arg1, arg2, arg3) -- Line 3, Named "e"
        return arg3[14301]
    end;
    s = unpack;
    Ui = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) -- Line 3, Named "Ui"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg9 = 51
        local var64
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [43] 36. Error Block 15 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [43] 36. Error Block 15 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 47 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [43.14]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [43.966]
        if nil < var64 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if var64 < nil then
                -- KONSTANTWARNING: GOTO [43] #36
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if var64 < nil then
            var64 = 98
            -- KONSTANTWARNING: GOTO [47] #40
        end
        -- KONSTANTERROR: [1] 2. Error Block 47 end (CF ANALYSIS FAILED)
    end;
    _ = function(arg1, arg2, arg3) -- Line 3, Named "_"
        local var65
        local function INLINED_4() -- Internal function, doesn't exist in bytecode
            var65 = arg1.m[1]
            return var65
        end
        if arg1.m[7] > arg1.m[5] or not INLINED_4() then
            var65 = arg1.m[2]
        end
        var65 = arg1.m[4]
        var65 = arg1.m
        arg3[31444] = (-104850758) + (var65 - arg1.m[4] + var65 - var65[4])
        var65 = arg1.m
        var65 = arg1.m[5]
        var65 = arg1.m
        local var66 = -633077120 + arg1.nQ(var65[1] - var65 + var65[2] - arg1.m[1], arg1.m[4])
        arg3[29961] = var66
        return var66
    end;
    qi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "qi"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var67
        if var67 < 62 then
            arg3[35] = function() -- Line 3
                --[[ Upvalues[1]:
                    [1]: arg3 (readonly)
                ]]
                local any_31_result1, any_31_result2 = arg3[31]("<I4", arg3[30], arg3[12])
                arg3[12] = any_31_result2
                return any_31_result1
            end
            local var71
            if arg4[30523] then
                var67 = arg4[30523]
            else
                local function INLINED_5() -- Internal function, doesn't exist in bytecode
                    var71 = arg1.m[2]
                    return var71
                end
                if arg4[15437] >= arg1.m[5] - arg4[13564] or not INLINED_5() then
                    var71 = arg4[25185]
                end
                var71 = arg4[30161]
                arg4[862] = (-4177975613) + (arg1.nQ(var71, arg4[1270]) + var71)
                var71 = arg4[25185]
                var71 = arg4[14832]
                if var71 >= var71 + arg4[30161] or not arg4[31444] then
                end
                var71 = 22424
                var67 = (-26) + (arg4[12616] + arg4[var71] - arg4[30161])
                arg4[30523] = var67
            end
            return 21906, var67
        end
        arg3[36] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg3 (readonly)
            ]]
            local any_mi_result1, any_mi_result2 = arg1:mi(arg3)
            if any_mi_result1 ~= -2 then
            else
                return any_mi_result2
            end
        end
        if not arg4[4901] then
            var67 = -1073741818 + arg1.iQ(arg1.tQ(var67 + arg4[14832], arg4[1167]) - arg4[9223], arg4[14832])
            arg4[4901] = var67
        else
            var67 = arg1:ji(var67, arg4)
        end
        return 21906, var67
    end;
    Xi = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Xi"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local any_35_result1 = arg4[35]()
        local var76 = any_35_result1 / 2
        local var77
        if arg4[14] == arg5 then
            arg4[39] = 238
            arg4[25] = arg4[38]
        elseif any_35_result1 % 2 ~= 0 then
            var77 = arg1:_i(var76, arg3, var77, arg4)
        else
            arg3[var77] = var76 - var76 % 1
        end
        var77 += 1
        return var77, -arg4[8]
    end;
    cQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "cQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        if arg3 > 86 then
            if 120 > arg3 then
                arg2[8][8] = arg1.Q.lshift
                return 63792, arg3
            end
            arg2[8][11] = arg1.r
            local var78
            if arg4[3996] then
                local _ = arg4[3996]
            else
                var78 = (109) + (arg4[12616] - arg4[13198] + arg4[15939] - arg4[30523] + arg4[13348])
                arg4[26187] = var78
                local function INLINED_6() -- Internal function, doesn't exist in bytecode
                    var78 = arg4[3115]
                    return var78
                end
                if arg4[20166] >= arg1.lQ(arg1.nQ(arg4[25185], arg4[6303], arg4[30231]) + arg4[3625]) or not INLINED_6() then
                    var78 = arg4[1167]
                end
                arg4[3996] = 22 + var78
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return 20949, 22 + var78
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if 22 + var78 >= 86 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return 20949, arg1:xQ(arg4, arg2, 22 + var78)
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return nil, arg1:SQ(arg2, arg1:xQ(arg4, arg2, 22 + var78), arg4)
    end;
    MQ = bit32.band;
    g = function(arg1, arg2, arg3, arg4) -- Line 3, Named "g"
        arg2[6] = error
        local var80
        if arg4[12616] then
            var80 = arg4[12616]
            return var80
        end
        var80 = (-27136215) + (arg1.hQ(arg1.m[1] + var80) + arg1.m[8] - arg1.m[4])
        arg4[12616] = var80
        return var80
    end;
    fi = function(arg1, arg2) -- Line 3, Named "fi"
        arg2[42] = {}
        arg2[43] = function() -- Line 3
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            local any_Ki_result1 = arg1:Ki(arg2, nil)
            arg2[12] += any_Ki_result1
            return arg2[24](arg2[30], arg2[12] - any_Ki_result1, arg2[12] - 1)
        end
        arg2[44] = nil
        arg2[45] = nil
    end;
    TQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "TQ"
        if 75 <= arg2 then
            return arg4[39]()
        end
        return arg4[36]()
    end;
    Gi = function(arg1, arg2, arg3) -- Line 3, Named "Gi"
        return #arg2
    end;
    ii = function(arg1, arg2, arg3) -- Line 3, Named "ii"
        return #arg2
    end;
    E = string;
    Zi = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "Zi"
        if arg2 == 50 then
            arg5[arg6 + 1] = arg3
            arg5[arg6 + 2] = arg4
        end
    end;
    Ri = function(arg1, arg2, arg3) -- Line 3, Named "Ri"
        arg2[arg3 + 3] = 4
    end;
    mi = function(arg1, arg2) -- Line 3, Named "mi"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [20] 19. Error Block 15 start (CF ANALYSIS FAILED)
        if nil ~= -2 then
        else
            return -2, nil
        end
        -- KONSTANTERROR: [20] 19. Error Block 15 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: [5] 6. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    h = function(arg1, arg2, arg3) -- Line 3, Named "h"
        return arg2[9621]
    end;
    VQ = function(arg1) -- Line 3
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local tbl = {}
        local any_C_result1, any_C_result2 = arg1:C(nil, tbl, nil)
        local var87 = any_C_result2
        local any_Ei_result1, any_Ei_result2 = arg1:Ei(nil, arg1:L(arg1:i(tbl, var87, arg1:n(tbl, arg1:H(arg1:S(var87, any_C_result1, tbl), var87, tbl))), tbl, var87), tbl, var87)
        local var90 = any_Ei_result1
        arg1:fi(tbl)
        local _, any__Q_result2, _, any__Q_result4 = arg1:_Q(nil, nil, any_Ei_result2, tbl, nil, var87)
        local var95 = any__Q_result4
        local any_HQ_result1, _ = arg1:HQ(any__Q_result2, var90, var87, var95, tbl)
        if any_HQ_result1 == -1 then
        else
            local const_number_3 = 92
            while true do
                if 11 < const_number_3 and const_number_3 < 110 then
                    tbl[8][15] = arg1.MQ
                    local var99
                    if var87[1838] then
                    else
                        local function INLINED_7() -- Internal function, doesn't exist in bytecode
                            var99 = var87[3996]
                            return var99
                        end
                        if var87[3625] > arg1.nQ(var87[862]) - var87[3996] - var87[1270] or not INLINED_7() then
                            var99 = var87[30231]
                        end
                        var87[1838] = -25 + var99
                    end
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                    if -25 + var99 < 117 and 92 < -25 + var99 then
                        var99 = _
                        var99 = _
                        var99 = 28847
                        if var87[var99] then
                        else
                            var99 = arg1.eQ(arg1.ZQ(var87[9397] + var87[20166], var87[28304]) - var87[9621])
                            var87[28847] = 117 + var99
                        end
                    else
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        if 110 < 117 + var99 then
                            var99 = tbl[45](var99, tbl[42])(var99, arg1.j, var90, var95, tbl[39], tbl[34], tbl[35], arg1.m, tbl[33], tbl[45])
                            return tbl[45](var99, tbl[42])
                        end
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        if 117 + var99 < 92 then
                            var99 = arg1.iQ
                            tbl[8][9] = var99
                            var99 = 9397
                            local var100
                            if not var87[var99] then
                                local function INLINED_8() -- Internal function, doesn't exist in bytecode
                                    var100 = var87[7306]
                                    return var100
                                end
                                if var87[31444] >= var87[13041] or not INLINED_8() then
                                    var100 = var87[13041]
                                end
                                var100 = 15939
                                var99 = -4289855461 + arg1.iQ(arg1.lQ(arg1.ZQ(var100, var87[3993])), var87[var100])
                                var87[28304] = var99
                                var100 = 7002
                                var100 = var87[4901]
                                var100 = 4901
                                local function INLINED_9() -- Internal function, doesn't exist in bytecode
                                    var99 = var87[29961]
                                    return var99
                                end
                                if arg1.eQ(arg1.tQ(arg1.aQ(var87[var100], var100), var87[var100])) ~= arg1.m[9] or not INLINED_9() then
                                    var99 = var87[1167]
                                end
                                var87[9397] = 80 + var99
                            else
                            end
                        end
                    end
                end
            end
        end
    end;
    q = string.match;
    bi = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "bi"
        local len = #arg5[22]
        arg5[22][len + 1] = arg2
        arg5[22][len + 2] = arg3
        arg5[22][len + 3] = arg4
    end;
    Ai = function(arg1, arg2) -- Line 3, Named "Ai"
        local any_31_result1_4, any_31_result2_4 = arg2[31]("<d", arg2[30], arg2[12])
        local const_number_2 = 105
        while true do
            if const_number_2 == 105 then
            elseif arg1:wi(any_31_result2_4, arg2, const_number_2) ~= 52 then
            else
                return {arg1:ui(any_31_result1_4)}
            end
        end
        return nil
    end;
    Hi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Hi"
        return 66, arg4[41]()
    end;
    ji = function(arg1, arg2, arg3) -- Line 3, Named "ji"
        return arg3[4901]
    end;
    Di = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Di"
        local var107 = {nil, arg1.P, nil, arg1.P, nil, arg1.P, arg1.P, arg1.P, arg1.P, nil, nil}
        var107[2] = arg3[40]()
        return nil, nil, var107
    end;
    u = setmetatable;
    b = function(arg1, arg2) -- Line 3, Named "b"
        arg2[12] = 1
    end;
    J = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "J"
        local var108
        if 69 < var108 then
            return -2, var108, arg2
        end
        if var108 < 96 then
            var108 = arg1:v(var108, arg4, arg3)
        end
        return nil, var108
    end;
    Pi = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Pi"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var109
        if 196 < arg4 then
            return -2, var109, arg5, arg5
        end
        repeat
            local any_zi_result1, any_zi_result2, any_zi_result3 = arg1:zi(var109, arg2, nil, arg5)
            var109 = any_zi_result2
        until any_zi_result1 < 128
        return 19860, var109, any_zi_result3
    end;
    iQ = bit32.rrotate;
    zQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "zQ"
        arg4[44] = function(...) -- Line 3
            --[[ Upvalues[1]:
                [1]: arg4 (readonly)
            ]]
            local any_29_result1 = arg4[29]('#', ...)
            if any_29_result1 == 0 then
                return any_29_result1, arg4[32]
            end
            return any_29_result1, {...}
        end
        if not arg2[10816] then
            return arg1:NQ(arg2, arg3)
        end
        return arg2[10816]
    end;
    sQ = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "sQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var116
        if arg7 > 46 then
            local any_yQ_result1, any_yQ_result2, any_yQ_result3, any_yQ_result4 = arg1:yQ(arg5, arg6, arg7, arg2, arg4)
            local var121 = any_yQ_result4
            if any_yQ_result1 ~= 50968 then
            else
                return var116, 918, any_yQ_result3, any_yQ_result2, var121
            end
        else
            local any_PQ_result1, any_PQ_result2, any_PQ_result3 = arg1:PQ(var116, var121, arg4, arg5)
            var116 = any_PQ_result2
            if any_PQ_result1 == 35888 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                return var116, 25171, any_yQ_result3, any_yQ_result2, any_PQ_result3
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
        return var116, nil, any_yQ_result3, any_yQ_result2, any_PQ_result3
    end;
    m = {3358, 4177975722, 2820483500, 4073124891, 562679757, 1243148546, 1326198783, 4100261125, 1338016872};
    tQ = bit32.rshift;
    U = function(arg1, arg2, arg3, arg4) -- Line 3, Named "U"
        if arg3 == 12 then
            arg2[18] = function(arg1_2, arg2_2, arg3_2) -- Line 3
                --[[ Upvalues[1]:
                    [1]: arg2 (readonly)
                ]]
                if arg1_2 < arg3_2 then return end
                local var127 = arg1_2 - arg3_2 + 1
                if 8 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2_2[arg3_2 + 3], arg2_2[arg3_2 + 4], arg2_2[arg3_2 + 5], arg2_2[arg3_2 + 6], arg2_2[arg3_2 + 7], arg2[18](arg1_2, arg2_2, arg3_2 + 8)
                end
                if 7 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2_2[arg3_2 + 3], arg2_2[arg3_2 + 4], arg2_2[arg3_2 + 5], arg2_2[arg3_2 + 6], arg2[18](arg1_2, arg2_2, arg3_2 + 7)
                end
                if 6 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2_2[arg3_2 + 3], arg2_2[arg3_2 + 4], arg2_2[arg3_2 + 5], arg2[18](arg1_2, arg2_2, arg3_2 + 6)
                end
                if 5 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2_2[arg3_2 + 3], arg2_2[arg3_2 + 4], arg2[18](arg1_2, arg2_2, arg3_2 + 5)
                end
                if 4 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2_2[arg3_2 + 3], arg2[18](arg1_2, arg2_2, arg3_2 + 4)
                end
                if 3 <= var127 then
                    return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2_2[arg3_2 + 2], arg2[18](arg1_2, arg2_2, arg3_2 + 3)
                end
                if 2 > var127 then
                    return arg2_2[arg3_2], arg2[18](arg1_2, arg2_2, arg3_2 + 1)
                end
                return arg2_2[arg3_2], arg2_2[arg3_2 + 1], arg2[18](arg1_2, arg2_2, arg3_2 + 2)
            end
            if arg4[9621] then
                local _ = arg1:h(arg4, arg3)
            else
                local var129
            end
        else
            if var129 == 123 then
                arg2[19] = nil
                local var130
                if not arg4[1167] then
                    local function INLINED_10() -- Internal function, doesn't exist in bytecode
                        var130 = arg4[4538]
                        return var130
                    end
                    if arg4[29961] >= arg1.iQ(var129, arg4[14832]) or not INLINED_10() then
                        var130 = arg4[29961]
                    end
                    var130 = arg1.m[5]
                    var129 = (562679714) + (arg1.nQ(var130, arg4[14832]) - var130)
                    local var131 = var129
                    arg4[1167] = var131
                else
                    var131 = arg4[1167]
                end
                return 34682, var131
            end
            if var131 == 30 then
                arg2[20] = function(arg1_3, arg2_3, arg3_3) -- Line 3
                    --[[ Upvalues[1]:
                        [1]: arg2 (readonly)
                    ]]
                    local var133 = arg1_3 or 1
                    local var134 = arg2_3
                    if not var134 then
                        var134 = #arg3_3
                    end
                    local var135 = var134
                    if 7997 >= var135 - var133 + 1 then
                        return arg2[11](arg3_3, var133, var135)
                    end
                    return arg2[18](var135, arg3_3, var133)
                end
                arg2[21] = arg1.W
                if not arg4[10402] then
                    var130 = arg1.m[2] + arg4[3115] + var131
                    var130 = arg1.m[3]
                    var131 = (-6998459248) + (arg1.pQ(var130) + var130)
                    arg4[10402] = var131
                else
                    var131 = arg4[10402]
                end
            elseif var131 == 101 then
                arg2[22] = arg1.P
                if not arg4[3993] then
                    var130 = arg1.nQ(arg1.nQ(arg1.m[6], arg4[30161]) - arg1.m[9] - arg1.m[9], arg4[10402])
                    arg4[13348] = -2862081978 + var130
                    var130 = arg1.eQ(arg1.tQ(arg4[3115], arg4[14832]))
                    var130 = arg1.m[2]
                    var131 = (-5504174505) + (var130 + arg1.m[7] + var130)
                    arg4[3993] = var131
                else
                    var131 = arg4[3993]
                end
            elseif var131 == 0 then
                arg2[23] = arg1.bQ
                return 28817, var131
            end
        end
        return nil, var131
    end;
    S = function(arg1, arg2, arg3, arg4) -- Line 3, Named "S"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg4[11] = nil
        arg4[12] = nil
        arg4[13] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [118] 98. Error Block 22 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [118] 98. Error Block 22 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 36 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [118.131714]
        if nil < 26 then
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
        if 26 < nil and nil < 26 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if not nil then
            else
            end
            -- KONSTANTWARNING: GOTO [118] #98
        end
        -- KONSTANTERROR: [7] 8. Error Block 36 end (CF ANALYSIS FAILED)
    end;
    _i = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "_i"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var142
        while true do
            if 45 == 45 then
            elseif 40 == 40 then
                var142 = arg5[35]()
            elseif 103 ~= 103 then
            else
                for i_9 = arg2 - arg2 % 1, arg5[35]() do
                    arg3[i_9] = var142
                end
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return arg5[35]()
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return arg5[35]()
    end;
    Ei = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "Ei"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg4[36] = nil
        arg4[37] = nil
        arg4[38] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 27. Error Block 9 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 27. Error Block 9 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 9. Error Block 16 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [30.1753]
        if 27 > nil then
            if nil ~= 21906 then
                -- KONSTANTWARNING: GOTO [30] #27
            end
            -- KONSTANTWARNING: GOTO [30] #27
        end
        -- KONSTANTERROR: [8] 9. Error Block 16 end (CF ANALYSIS FAILED)
    end;
    ZQ = bit32.lshift;
    Si = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "Si"
        local var144
        if 333 >= arg8 then
            var144 = 50
            arg4[7] = arg5
        else
            if arg8 ~= 553 then
                arg1:Bi(arg6, arg4, arg3)
                return 37057, var144
            end
            arg4[9] = arg7
            return 13100, var144
        end
        return nil, var144
    end;
    Li = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Li"
        arg2[arg3] = arg3 - arg4
    end;
    nQ = bit32.bxor;
    ui = function(arg1, arg2) -- Line 3, Named "ui"
        return arg2
    end;
    Wi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Wi"
        if arg4[37] <= arg3 then
            return -2, arg2, arg3 - arg4[5]
        end
        return nil, 89
    end;
    W = getfenv;
    HQ = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "HQ"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [82] 72. Error Block 36 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [82] 72. Error Block 36 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 74 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [82.117770003]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [82.7]
        if arg2 < nil then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if arg3 == nil then
                while true do
                end
                -- KONSTANTWARNING: GOTO [83] #73
            end
            -- KONSTANTWARNING: GOTO [83] #73
        end
        -- KONSTANTERROR: [1] 2. Error Block 74 end (CF ANALYSIS FAILED)
    end;
    xQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "xQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        arg3[8][14] = arg1.D
        arg3[8][12] = arg1.o
        local var145
        if not arg2[20968] then
            local function INLINED_11() -- Internal function, doesn't exist in bytecode
                var145 = arg2[13198]
                return var145
            end
            if arg2[3993] > arg2[9223] + arg1.m[7] or not INLINED_11() then
                var145 = arg2[4538]
            end
            var145 = arg2[4901]
            if var145 > var145 - arg2[28454] or not arg2[30523] then
            end
            arg2[3111] = 51 + arg2[3442]
            var145 = arg1.nQ(arg1.nQ(arg1.m[6]), arg2[15939], arg2[29961])
            var145 = arg2[3115]
            arg2[7002] = (-5343409799) + (var145 + arg1.m[8] + var145)
            var145 = arg2[372]
            var145 = 14832
            local var146 = (-2968768003) + (arg1.aQ(arg1.lQ(var145 - arg2[3625]), arg2[var145]) - arg1.m[7])
            arg2[20968] = var146
            return var146
        end
        return arg2[20968]
    end;
    L = function(arg1, arg2, arg3, arg4) -- Line 3, Named "L"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg3[29] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [70] 59. Error Block 17 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [70] 59. Error Block 17 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [3] 4. Error Block 58 start (CF ANALYSIS FAILED)
        if 15 == 15 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if nil then
            else
            end
            -- KONSTANTWARNING: GOTO [70] #59
        end
        -- KONSTANTERROR: [3] 4. Error Block 58 end (CF ANALYSIS FAILED)
    end;
    H = function(arg1, arg2, arg3, arg4) -- Line 3, Named "H"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg4[14] = nil
        arg4[15] = nil
        arg4[16] = nil
        arg4[17] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [25] 23. Error Block 7 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [25] 23. Error Block 7 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 11. Error Block 12 start (CF ANALYSIS FAILED)
        if nil == 40318 then
            -- KONSTANTWARNING: GOTO [25] #23
        end
        -- KONSTANTERROR: [10] 11. Error Block 12 end (CF ANALYSIS FAILED)
    end;
    B = function(arg1, arg2, arg3) -- Line 3, Named "B"
        local var148 = (5016891542) + (arg1.aQ(arg3[12616] - arg1.m[4], 17) - arg1.m[6] - arg1.m[2])
        arg3[13564] = var148
        return var148
    end;
    yQ = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "yQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var182
        if arg4 <= 47 then
            local var182_result1 = var182()
            return 50968, var182, var182_result1, arg4
        end
        if arg4 > 53 then
            arg6[45] = function(arg1_4, arg2_4) -- Line 3
                --[[ Upvalues[1]:
                    [1]: arg6 (readonly)
                ]]
                local _2_upvr = arg1_4[2]
                local _1_upvr = arg1_4[1]
                local _10_upvr = arg1_4[10]
                local _3_upvr = arg1_4[3]
                local _5_upvr = arg1_4[5]
                local _9_upvr = arg1_4[9]
                local _4_upvr = arg1_4[4]
                local _7_upvr = arg1_4[7]
                local _8_upvr = arg1_4[8]
                return function(...) -- Line 3
                    --[[ Upvalues[12]:
                        [1]: arg6 (copied, readonly)
                        [2]: _2_upvr (readonly)
                        [3]: _1_upvr (readonly)
                        [4]: _10_upvr (readonly)
                        [5]: _3_upvr (readonly)
                        [6]: _5_upvr (readonly)
                        [7]: _9_upvr (readonly)
                        [8]: _4_upvr (readonly)
                        [9]: _7_upvr (readonly)
                        [10]: arg2_4 (readonly)
                        [11]: arg1_4 (readonly)
                        [12]: _8_upvr (readonly)
                    ]]
                    local any_3_result1_upvr = arg6[3](_2_upvr)
                    local var165_upvw = 1
                    local var166_upvw
                    local any_44_result1_upvr, any_44_result2_upvr = arg6[44](...)
                    local const_number_8_upvw = 1
                    local const_number_upvw = 1
                    local const_number_7_upvw = 0
                    local any_21_result1_upvr = arg6[21]()
                    local var174_upvw
                    local var175_upvw
                    local var176_upvw
                    local var177_upvw
                    local any_1_result1, any_1_result2, any_1_result3, any_1_result4 = arg6[1](function() -- Line 3
                        --[[ Upvalues[23]:
                            [1]: _1_upvr (copied, readonly)
                            [2]: var165_upvw (read and write)
                            [3]: _10_upvr (copied, readonly)
                            [4]: _3_upvr (copied, readonly)
                            [5]: any_3_result1_upvr (readonly)
                            [6]: any_44_result2_upvr (readonly)
                            [7]: const_number_upvw (read and write)
                            [8]: _5_upvr (copied, readonly)
                            [9]: const_number_8_upvw (read and write)
                            [10]: _9_upvr (copied, readonly)
                            [11]: arg6 (copied, readonly)
                            [12]: _4_upvr (copied, readonly)
                            [13]: _7_upvr (copied, readonly)
                            [14]: var166_upvw (read and write)
                            [15]: arg2_4 (copied, readonly)
                            [16]: const_number_7_upvw (read and write)
                            [17]: any_21_result1_upvr (readonly)
                            [18]: var174_upvw (read and write)
                            [19]: var175_upvw (read and write)
                            [20]: var176_upvw (read and write)
                            [21]: var177_upvw (read and write)
                            [22]: arg1_4 (copied, readonly)
                            [23]: any_44_result1_upvr (readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4734] 4381. Error Block 1171 start (CF ANALYSIS FAILED)
                        var165_upvw += 1
                        -- KONSTANTERROR: [4734] 4381. Error Block 1171 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [10] 11. Error Block 2 start (CF ANALYSIS FAILED)
                        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [4737.10]
                        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [4737.65666]
                        -- KONSTANTERROR: [10] 11. Error Block 2 end (CF ANALYSIS FAILED)
                    end)
                    if not any_1_result1 then
                        if var166_upvw then
                            for i_4, v_2 in var166_upvw do
                                if 1 > i_4 then
                                else
                                    v_2[2] = v_2
                                    v_2[3] = any_3_result1_upvr[i_4]
                                    v_2[1] = 3
                                    var166_upvw[i_4] = nil
                                end
                            end
                        end
                        if arg6[14](any_1_result2) == "string" then
                            if not arg6[2](any_1_result2, ":(%d+)[:\r\n]") then
                                arg6[6](any_1_result2, 0)
                            else
                                i_4 = _8_upvr[var165_upvw] or "(internal)"
                                v_2 = ": "
                                arg6[6]("Luraph Script:"..i_4..v_2..arg6[38](any_1_result2), 0)
                            end
                        else
                            arg6[6](any_1_result2, 0)
                        end
                    else
                        if any_1_result2 then
                            if any_1_result4 == 1 then
                                return any_3_result1_upvr[any_1_result3]()
                            end
                            i_4 = const_number_8_upvw
                            v_2 = any_3_result1_upvr
                            return any_3_result1_upvr[any_1_result3](arg6[20](any_1_result3 + 1, i_4, v_2))
                        end
                        if any_1_result3 then
                            i_4 = any_3_result1_upvr
                            return arg6[20](any_1_result3, any_1_result4, i_4)
                        end
                    end
                end
            end
            if not arg2[3625] then
                arg2[3625] = -594 + arg1.aQ(arg1.iQ(arg2[28979] - arg2[10816] + arg2[14832], arg2[14301]), arg2[3993])
            else
            end
        else
            function var182() -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg6 (readonly)
                ]]
                -- KONSTANTERROR: [0] 1. Error Block 28 start (CF ANALYSIS FAILED)
                local _, any_fQ_result2, any_fQ_result3, _, _ = arg1:fQ(arg6, nil, nil, nil, nil)
                if any_fQ_result3 == -1 then return end
                if arg6[8] == arg6[20] then
                    arg1:DQ(arg6)
                end
                arg6[22] = arg6[3](any_fQ_result2 * 3)
                -- KONSTANTERROR: [0] 1. Error Block 28 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [100] 87. Error Block 23 start (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [100] 87. Error Block 23 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [41] 38. Error Block 6 start (CF ANALYSIS FAILED)
                -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [100.65666]
                -- KONSTANTERROR: [41] 38. Error Block 6 end (CF ANALYSIS FAILED)
            end
            local var183
            if arg2[15939] then
            else
                if arg1.iQ(arg2[31444] - arg2[9223], arg2[4901]) + arg2[14832] >= arg1.m[4] or not arg2[30231] then
                end
                arg2[15939] = -20 + arg2[14301]
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return nil, var182, var182_result1, -20 + arg2[14301]
    end;
    D = bit32.rshift;
    kQ = string.pack;
    gi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "gi"
        return arg3[3](arg4)
    end;
    uQ = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "uQ"
        local var189
        if arg7 <= 186 then
            if 87 >= arg7 then
                var189 = #arg2[22]
            else
                arg2[22][var189 + 1] = arg6
            end
        elseif arg7 ~= 285 then
            arg1:wQ(arg2, var189, arg5)
        else
            arg2[22][var189 + 2] = arg4
            return 12981, var189
        end
        return nil, var189
    end;
    z = unpack;
    rQ = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "rQ"
        for i_5 = 1, arg2 do
            arg1:oQ(i_5, arg6, arg4)
        end
        for i_6 = 1, #arg6[22], 3 do
            arg6[22][i_6][arg6[22][i_6 + 1]] = arg4[arg6[22][i_6 + 2]]
        end
        if arg3 then
            i_6 = arg4
            arg1:IQ(i_6, arg6)
        end
        return 52
    end;
    ci = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "ci"
        return arg4[41](), arg3 % 8
    end;
    _Q = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 3, Named "_Q"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg5[46] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [24] 23. Error Block 14 start (CF ANALYSIS FAILED)
        if nil == 25171 then
        end
        -- KONSTANTERROR: [24] 23. Error Block 14 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 8. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: [7] 8. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    AQ = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "AQ"
        if arg5 == 0 then
            arg1:jQ(arg7, arg6, arg4, arg2, arg8)
        else
            if arg5 == 7 then
                arg3[arg7] = arg2
                return
            end
            if arg5 == 1 then
                arg3[arg7] = arg7 + arg2
                return
            end
            if arg5 == 4 then
                arg1:qQ(arg7, arg2, arg3)
                return
            end
            if arg5 ~= 2 then return end
            for i_10 = 87, 384, 99 do
                local any_uQ_result1, _ = arg1:uQ(arg8, nil, arg7, arg2, arg6, i_10)
                if any_uQ_result1 == 12981 then
                end
            end
        end
    end;
    V = function(arg1, arg2) -- Line 3, Named "V"
        while true do
            local _, any_Z_result2, _, any_Z_result4 = arg1:Z(nil, 79, arg2)
            local var199 = any_Z_result2
            if var199 == 63892 then
            elseif var199 == -2 then
                return -2, any_Z_result4
            end
        end
        return nil
    end;
    r = bit32.lrotate;
    SQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "SQ"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        arg2[8][7] = arg1.I
        local var200
        if arg4[13041] then
            return arg4[13041]
        end
        local function INLINED_12() -- Internal function, doesn't exist in bytecode
            var200 = arg1.m[5]
            return var200
        end
        if arg1.lQ(arg4[22424]) >= arg4[9621] or not INLINED_12() then
            var200 = arg1.m[6]
        end
        var200 = arg4[30523]
        if var200 - arg4[22424] > var200 or not arg4[9223] then
        end
        local var201 = 14 + arg4[22381]
        arg4[13041] = var201
        return var201
    end;
    n = function(arg1, arg2, arg3) -- Line 3, Named "n"
        arg2[19] = nil
        arg2[20] = nil
        arg2[21] = nil
        arg2[22] = nil
        arg2[23] = nil
        return 12
    end;
    y = bit32.bor;
    CQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "CQ"
        if arg2 == 62 then
            local any_YQ_result1 = arg1:YQ(arg4, arg3, arg2)
        elseif any_YQ_result1 == 5 then
            arg1:gQ(arg4)
            return 44638, any_YQ_result1
        end
        return nil, any_YQ_result1
    end;
    Qi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Qi"
        while true do
            if 44 == 44 then
            elseif 27 ~= 27 then
            else
                arg1:ri(arg3, arg4, arg2, arg4[40]())
                return
            end
        end
    end;
    ri = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "ri"
        if arg3[27][arg5] then
            arg4[arg2] = arg3[27][arg5]
        else
            local var205 = arg5 / 4
            for i_11 = 102, 234, 10 do
                if i_11 == 112 then
                    arg4[arg2] = nil
                    return
                end
                if i_11 == 102 then
                    arg3[27][arg5] = {var205 - var205 % 1, arg5 % 4}
                end
            end
        end
    end;
    ki = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "ki"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local _ = 122
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [40] 34. Error Block 13 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [40] 34. Error Block 13 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 7. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [40.10]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [40.6554764]
        -- KONSTANTERROR: [6] 7. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    Vi = function(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 3, Named "Vi"
        local var209 = arg4[13][arg6]
        for i_7 = 15, 76, 61 do
            if 76 > i_7 then
                arg1:Zi(arg2, arg5, arg3, var209, #var209)
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                arg1:Ri(var209, #var209)
            end
        end
    end;
    aQ = bit32.lrotate;
    wi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "wi"
        arg3[12] = arg2
        return 52
    end;
    F = coroutine.wrap;
    j = function(...) -- Line 3, Named "j"
        ...[...] = nil
    end;
    O = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "O"
        if 114 > arg5 then
            if arg2[32] ~= arg2[33] then
                local any_G_result1, any_G_result2 = arg1:G(arg3, arg2, arg4)
                if any_G_result1 == -2 then
                    return arg5, -2, arg4, arg3, any_G_result2
                end
            end
            return arg5, 3242, arg4, arg3
        end
        local any_31_result1_2, any_31_result2_2 = arg2[31](arg1.f, arg2[30], arg2[12])
        return 41, nil, any_31_result2_2, any_31_result1_2
    end;
    Ji = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Ji"
        return #arg2[22], 87
    end;
    EQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "EQ"
        -- KONSTANTERROR: [0] 1. Error Block 16 start (CF ANALYSIS FAILED)
        local var218
        if arg4[34] == arg4[32] then
            return -1, var218
        end
        if 156 >= arg2 then
            var218 = arg4[43]()
            -- KONSTANTWARNING: GOTO [20] #18
        end
        -- KONSTANTERROR: [0] 1. Error Block 16 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 13. Error Block 17 start (CF ANALYSIS FAILED)
        if arg4[34]() ~= 1 then
            var218 = false
        else
            var218 = true
        end
        do
            return nil, var218
        end
        -- KONSTANTERROR: [14] 13. Error Block 17 end (CF ANALYSIS FAILED)
    end;
    Oi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Oi"
        arg2[arg3 + 2] = arg4
    end;
    N = coroutine.yield;
    pi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "pi"
        arg2[arg3] = arg3 + arg4
    end;
    gQ = function(arg1, arg2) -- Line 3, Named "gQ"
        arg2[34] = -arg2[4]
        arg2[39] = -218 * true
    end;
    pQ = bit32.bor;
    x = function(arg1, arg2, arg3, arg4) -- Line 3, Named "x"
        arg2[15] = arg1.F
        if not arg4[13198] then
            local var219 = -2680194147 + arg1.MQ(arg1.iQ(arg4[28454], 6) + arg4[29961] + arg1.m[9])
            arg4[13198] = var219
            return var219
        end
        return arg4[13198]
    end;
    C = function(arg1, arg2, arg3, arg4) -- Line 3, Named "C"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        arg3[1] = pcall
        arg3[2] = nil
        arg3[3] = nil
        arg3[4] = nil
        arg3[5] = nil
        arg3[6] = nil
        arg3[7] = nil
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [102] 85. Error Block 22 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [102] 85. Error Block 22 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [18] 17. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [18] 17. Error Block 2 end (CF ANALYSIS FAILED)
    end;
    l = function(arg1, arg2, arg3) -- Line 3, Named "l"
        local var220
        local function INLINED_13() -- Internal function, doesn't exist in bytecode
            var220 = arg1.m[6]
            return var220
        end
        if arg1.aQ(arg1.m[6], arg3) >= arg1.m[2] or not INLINED_13() then
            var220 = arg1.m[2]
        end
        var220 = arg1.m[1]
        arg2[14832] = -14 + arg1.MQ(var220 - arg2[10275], var220)
        var220 = arg1.m[2]
        var220 = arg2[30161]
        local var221 = 91 + arg1.pQ(arg1.eQ(arg1.MQ(var220 + arg3, var220, arg2[29961])))
        arg2[9621] = var221
        return var221
    end;
    Ki = function(arg1, arg2, arg3) -- Line 3, Named "Ki"
        local var222
        while true do
            if 0 == 95 then
                if arg2[42] ~= arg2[41] then
                    return var222
                end
                while true do
                    local any_Ti_result1, _ = arg1:Ti(arg2, 44)
                    local var225 = any_Ti_result1
                    if var225 == 28032 then
                        return var222
                    end
                    if var225 == 21349 then
                    end
                end
                return var222
            end
            var222 = arg2[40]()
        end
        return var222
    end;
    XQ = function(arg1, arg2, arg3) -- Line 3, Named "XQ"
        if arg2 == 34 then
            if arg3[43] ~= 81 then
            else
            end
            arg3[41] = 30
            arg3[5] = true
        elseif arg2 ~= 108 then
        else
            return -1
        end
        return nil
    end;
    o = bit32.countlz;
    di = function(arg1, ...) -- Line 3, Named "di"
        return ...[...]
    end;
    i = function(arg1, arg2, arg3, arg4) -- Line 3, Named "i"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [16] 14. Error Block 7 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [16] 14. Error Block 7 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 29 start (CF ANALYSIS FAILED)
        if nil == 28817 then
            arg2[24] = nil
            arg2[25] = nil
            -- KONSTANTWARNING: GOTO [22] #20
        end
        -- KONSTANTERROR: [1] 2. Error Block 29 end (CF ANALYSIS FAILED)
    end;
    Z = function(arg1, arg2, arg3, arg4) -- Line 3, Named "Z"
        if arg3 == 79 then
        else
            if 98 == 98 then
                arg4[12] += 1
                local const_number_5 = 89
                return arg4[17](arg4[30], arg4[12], arg4[12]), 63892, const_number_5
            end
            if const_number_5 == 89 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                return arg4[17](arg4[30], arg4[12], arg4[12]), -2, const_number_5, arg4[17](arg4[30], arg4[12], arg4[12])
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return arg4[17](arg4[30], arg4[12], arg4[12]), nil, const_number_5
    end;
    IQ = function(arg1, arg2, arg3) -- Line 3, Named "IQ"
        arg3[8][2] = arg3[13]
        arg3[8][3] = arg2
    end;
    R = function(arg1, arg2, arg3) -- Line 3, Named "R"
        arg3[30] = arg2
        arg1:b(arg3)
    end;
    WQ = function(arg1, arg2, arg3) -- Line 3, Named "WQ"
        return arg2[34]()
    end;
    c = function(arg1, arg2, arg3, arg4) -- Line 3, Named "c"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var228
        if var228 < 76 then
            arg3[14] = type
            local var229
            if not arg4[3115] then
                local function INLINED_14() -- Internal function, doesn't exist in bytecode
                    var229 = arg1.m[1]
                    return var229
                end
                if arg1.m[2] >= arg1.m[7] or not INLINED_14() then
                    var229 = arg1.m[2]
                end
                var229 = arg4[28454]
                if var229 + arg1.m[1] ~= var229 or not arg1.m[4] then
                end
                var229 = arg1.m
                if var229[2] > arg4[29961] or not arg1.m[5] then
                end
                var228 = -562679660 + arg1.m[5]
                arg4[3115] = var228
            else
                var228 = arg4[3115]
            end
        else
            if 10 < var228 and var228 < 97 then
                arg3[16] = arg1.kQ
                arg3[17] = arg1.d
                return 37339, var228
            end
            if 76 < var228 then
                var229 = arg4
                var228 = arg1:x(arg3, var228, var229)
                return 40318, var228
            end
        end
        return nil, var228
    end;
    d = string.byte;
    hi = function(arg1, arg2, arg3, arg4) -- Line 3, Named "hi"
        return (arg4 - arg2) / 8
    end;
    Q = bit32;
    k = function(arg1, arg2, arg3, arg4) -- Line 3, Named "k"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        arg3[29] = arg1.T
        local var230
        if not arg2[30231] then
            local function INLINED_15() -- Internal function, doesn't exist in bytecode
                var230 = arg2[29961]
                return var230
            end
            if arg2[3115] >= arg2[13564] or not INLINED_15() then
                var230 = arg1.m[7]
            end
            var230 = arg2[10402]
            var230 = 9223
            if arg2[var230] >= var230 - arg2[1167] + var230 or not arg2[3993] then
            end
            local var231 = 36 + arg2[1167]
            arg2[30231] = var231
            return var231
        end
        return arg2[30231]
    end;
    G = function(arg1, arg2, arg3, arg4) -- Line 3, Named "G"
        while true do
            local any_J_result1, _, any_J_result3 = arg1:J(arg2, arg4, arg3, 69)
            if any_J_result1 ~= -2 then
            else
                return -2, any_J_result3
            end
        end
        return nil
    end;
    BQ = function(arg1, arg2, arg3) -- Line 3, Named "BQ"
        repeat
            local any_CQ_result1, _ = arg1:CQ(62, arg3, arg2)
        until any_CQ_result1 == 44638
    end;
    a = function(arg1, arg2, arg3) -- Line 3, Named "a"
        return arg2[1270]
    end;
    ai = function(arg1, arg2, arg3, arg4) -- Line 3, Named "ai"
        arg2[arg4 + 1] = arg3
    end;
    RQ = string.gsub;
    qQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "qQ"
        arg4[arg2] = arg2 - arg3
    end;
    p = function(arg1, arg2, arg3) -- Line 3, Named "p"
        local var237 = -4294967160 + arg1.lQ(arg1.aQ(arg1.nQ(arg1.eQ(arg2[13564]), arg2[25185], arg2[28454]), arg2[3993]))
        arg2[6220] = var237
        return var237
    end;
    lQ = bit32.bnot;
    v = function(arg1, arg2, arg3, arg4) -- Line 3, Named "v"
        arg3[12] = arg4
        return 96
    end;
    QQ = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "QQ"
        return arg4[arg5[40]()], 3
    end;
    oQ = function(arg1, arg2, arg3, arg4) -- Line 3, Named "oQ"
        arg4[arg2] = arg3[46]()
    end;
    yi = function(arg1, arg2, arg3) -- Line 3, Named "yi"
        arg2[8] = arg3
    end;
    w = table;
    Ti = function(arg1, arg2, arg3) -- Line 3, Named "Ti"
        if arg3 == 44 then
            local const_number_4 = 27
            arg2[8] = 206
            arg2[20] = 199
            do
                return 21349, const_number_4
            end
            local var239
        end
        if const_number_4 == 27 then
            if arg2[14] > 138 then
                var239 = false
            else
                var239 = true
            end
            arg2[41] = var239
            arg2[4] = arg2[35]
            var239 = 28032
            return var239, const_number_4
        end
        return nil, const_number_4
    end;
}:VQ()(...)
ModuleScript Objectives ReplicatedStorage.engine.modules.Objectives
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:41
-- Luau version 6, Types version 3
-- Time taken: 0.015418 seconds

local module_upvr = {
    _objectives = {
        ["Score a goal"] = {
            _rewards = {
                points = 15;
                xp = 15;
            };
        };
        ["Score 10 goals"] = {
            _repeat = 10;
            _rewards = {
                points = 50;
                xp = 35;
            };
        };
        ["Score 5 goals"] = {
            _repeat = 5;
            _rewards = {
                points = 35;
                xp = 25;
            };
        };
        ["Score 3 goals"] = {
            _repeat = 3;
            _rewards = {
                points = 15;
                xp = 20;
            };
        };
        ["Make 3 assists"] = {
            _repeat = 3;
            _rewards = {
                points = 15;
                xp = 20;
            };
        };
        ["Assist a goal"] = {
            _rewards = {
                points = 10;
                xp = 10;
            };
        };
        ["Make 3 saves"] = {
            _repeat = 3;
            _rewards = {
                points = 15;
                xp = 20;
            };
        };
        ["Make 5 saves"] = {
            _repeat = 3;
            _rewards = {
                points = 25;
                xp = 25;
            };
        };
        ["Win a match"] = {
            _rewards = {
                points = 35;
                xp = 35;
            };
        };
        ["Score a free kick"] = {
            _rewards = {
                points = 50;
                xp = 35;
            };
        };
        ["Score a penalty"] = {
            _rewards = {
                points = 25;
                xp = 25;
            };
        };
    };
}
module_upvr.__index = module_upvr
function module_upvr.new(arg1) -- Line 79
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local module = {}
    module._player = arg1
    module._cache = _G._references.Main.objectives
    module._maid = _G._engine:load("Maid").new()
    module._dataStore = _G._services.DataStoreService:GetDataStore("Objectives")
    return setmetatable(module, module_upvr)
end
function module_upvr.saveData(arg1, arg2) -- Line 88
    local pcall_result1_3, pcall_result2 = pcall(function() -- Line 89
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        return arg1._dataStore:SetAsync(tostring(arg1._player.UserId), arg2)
    end)
    if pcall_result1_3 then
        warn(string.format("Successfully saved daily objectives of user %s", tostring(arg1._player.UserId)))
    else
        warn(string.format("An unexpected error occured while saving daily objectives of user %s (%s), retrying", tostring(arg1._player.UserId), pcall_result2))
        arg1:saveData(arg2)
    end
end
function module_upvr.init(arg1) -- Line 101
    local pcall_result1, pcall_result2_2 = pcall(function() -- Line 102
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1._dataStore:GetAsync(tostring(arg1._player.UserId))
    end)
    if pcall_result1 then
        arg1._folder = Instance.new("Folder")
        arg1._folder.Name = tostring(arg1._player.UserId)
        arg1._folder.Parent = arg1._cache
        arg1._maid:GiveTask(arg1._folder)
        if pcall_result2_2 and os.date("!*t", os.time() - pcall_result2_2.lastReset).day <= 1 then
            local IntValue_2 = Instance.new("IntValue")
            IntValue_2.Name = "lastReset"
            IntValue_2.Value = pcall_result2_2.lastReset
            IntValue_2.Parent = arg1._folder
            for i, v in next, pcall_result2_2.objectives do
                if i and v then
                    local BoolValue_8 = Instance.new("BoolValue")
                    BoolValue_8.Name = i
                    BoolValue_8.Value = v.completed
                    BoolValue_8.Parent = arg1._folder
                    if v["repeat"] then
                        for i_2, _ in next, v["repeat"] do
                            local BoolValue_2 = Instance.new("BoolValue")
                            BoolValue_2.Name = tostring(i_2)
                            BoolValue_2.Value = true
                            BoolValue_2.Parent = BoolValue_8
                            local _
                        end
                    end
                end
            end
        else
            local function createRandomObjective() -- Line 136
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                local tbl = {}
                for i_5, v_5 in next, arg1._objectives do
                    if i_5 and v_5 and not arg1._folder:FindFirstChild(i_5) then
                        table.insert(tbl, i_5)
                    end
                end
                if tbl[1] and tbl[2] then
                    i_5 = #tbl
                    local BoolValue = Instance.new("BoolValue")
                    BoolValue.Name = tbl[math.random(1, i_5)]
                    BoolValue.Value = false
                    i_5 = arg1
                    BoolValue.Parent = i_5._folder
                elseif tbl[1] and not tbl[2] then
                    local BoolValue_6 = Instance.new("BoolValue")
                    BoolValue_6.Name = tbl[1]
                    BoolValue_6.Value = false
                    i_5 = arg1
                    BoolValue_6.Parent = i_5._folder
                end
            end
            createRandomObjective()
            createRandomObjective()
            createRandomObjective()
            local tbl_upvr = {
                lastReset = os.time();
                objectives = {};
            }
            local IntValue_3 = Instance.new("IntValue")
            IntValue_3.Name = "lastReset"
            IntValue_3.Value = tbl_upvr.lastReset
            IntValue_3.Parent = arg1._folder
            for _, v_6 in next, arg1._folder:GetChildren() do
                if v_6 and v_6:IsA("BoolValue") then
                    tbl_upvr.objectives[v_6.Name] = {
                        completed = false;
                    }
                    if v_6:FindFirstChildWhichIsA("BoolValue") then
                        tbl_upvr.objectives[v_6.Name]["repeat"] = {}
                    end
                end
            end
            task.spawn(function() -- Line 186
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: tbl_upvr (readonly)
                ]]
                arg1:saveData(tbl_upvr)
            end)
        end
    end
    tbl_upvr = string.format("An unexpected error occured while loading daily objectives of user %s (%s)", tostring(arg1._player.UserId), pcall_result2_2)
    warn(tbl_upvr)
end
function module_upvr.clear(arg1) -- Line 195
    local tbl_2_upvr = {
        lastReset = arg1._folder.lastReset.Value;
        objectives = {};
    }
    for _, v_3 in next, arg1._folder:GetChildren() do
        if v_3 and v_3:IsA("BoolValue") then
            tbl_2_upvr.objectives[v_3.Name] = {
                completed = v_3.Value;
            }
            if v_3:FindFirstChildWhichIsA("BoolValue") then
                tbl_2_upvr.objectives[v_3.Name]["repeat"] = {}
                for _, v_4 in next, v_3:GetChildren() do
                    if v_4 and v_4:IsA("BoolValue") then
                        tbl_2_upvr.objectives[v_3.Name]["repeat"][tostring(v_4.Name)] = true
                    end
                end
            end
        end
    end
    arg1._maid:DoCleaning()
    task.spawn(function() -- Line 221
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: tbl_2_upvr (readonly)
        ]]
        arg1:saveData(tbl_2_upvr)
    end)
end
return module_upvr
ModuleScript Balls ReplicatedStorage.engine.modules.Balls
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:42
-- Luau version 6, Types version 3
-- Time taken: 0.012894 seconds

local module_upvr = {
    Tag = "Ball";
}
function module_upvr.IsBall(arg1) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return _G._services.CollectionService:HasTag(arg1, module_upvr.Tag)
end
function module_upvr.IsClientBall(arg1) -- Line 9
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg1 and arg1:FindFirstChild("properties") then
        local var58
        if var58 then
            var58 = nil
            for _, v in next, arg1.Parent.Parent:GetChildren() do
                if _G._services.CollectionService:HasTag(v, "SpawnersFolder") then
                    var58 = v
                elseif _G._services.CollectionService:HasTag(v, "ServerBallsFolder") then
                end
            end
            if var58 and v then
                for _, v_2 in next, var58:GetChildren() do
                    if v_2 and arg1.properties.spawner.Value == v_2 then
                        for _, v_3 in next, v:GetChildren() do
                            if v_3 and v_3:FindFirstChild("properties") and v_3.properties:FindFirstChild("spawner") and v_3.properties.spawner.Value == v_2 then
                                return v_3
                            end
                        end
                    end
                end
            end
        end
    end
    return false
end
function module_upvr.GetBalls(arg1) -- Line 37
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    for _, v_4 in next, _G._services.CollectionService:GetTagged(module_upvr.Tag) do
        if v_4 then
            if arg1 and not v_4:FindFirstAncestor("replay") or not arg1 then
                table.insert({}, v_4)
            end
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
function module_upvr.GetBallFolder() -- Line 49
    for _, v_5 in next, workspace.game:GetChildren() do
        if v_5 and (v_5.Name == "balls" or v_5:HasTag("BallsFolder")) then
            return v_5
        end
    end
end
function module_upvr.GetClientBallFolder() -- Line 57
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    for _, v_6 in next, module_upvr.GetBallFolder():GetChildren() do
        if v_6 and (v_6.Name == "client" or v_6:HasTag("ClientBallsFolder")) then
            return v_6
        end
    end
end
function module_upvr.GetServerBallFolder() -- Line 67
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    for _, v_7 in next, module_upvr.GetBallFolder():GetChildren() do
        if v_7 and (v_7.Name == "server" or v_7:HasTag("ServerBallsFolder")) then
            return v_7
        end
    end
end
local any_GetClientBallFolder_result1 = module_upvr.GetClientBallFolder()
local any_GetServerBallFolder_result1 = module_upvr.GetServerBallFolder()
module_upvr.ClientBallAdded = any_GetClientBallFolder_result1.ChildAdded
module_upvr.ClientBallRemoved = any_GetClientBallFolder_result1.ChildRemoved
module_upvr.BallAdded = any_GetServerBallFolder_result1.ChildAdded
module_upvr.BallRemoved = any_GetServerBallFolder_result1.ChildRemoved
return module_upvr
ModuleScript Zone ReplicatedStorage.engine.modules.Zone
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:44
-- Luau version 6, Types version 3
-- Time taken: 0.065113 seconds

-- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
local RunService_upvr = game:GetService("RunService")
local var2
if RunService_upvr:IsClient() then
    local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
end
local enums_upvr = require(script.Enum).enums
local Janitor_upvr = require(script.Janitor)
local ZonePlusReference = require(script.ZonePlusReference)
local any_getObject_result1 = ZonePlusReference.getObject()
local ZoneController = script.ZoneController
local Tracker_upvr = ZoneController.Tracker
var2 = ZoneController
local var2_2_upvr = require(var2)
if game:GetService("RunService"):IsClient() then
    var2 = "Client"
else
    var2 = "Server"
end
if any_getObject_result1 then
    local SOME = any_getObject_result1:FindFirstChild(var2)
end
if SOME then
    return require(any_getObject_result1.Value)
end
local module_6_upvr = {}
module_6_upvr.__index = module_6_upvr
if not SOME then
    ZonePlusReference.addToReplicatedStorage()
end
module_6_upvr.enum = enums_upvr
local HttpService_upvr = game:GetService("HttpService")
local Signal_upvr = require(script.Signal)
function module_6_upvr.new(arg1) -- Line 34
    --[[ Upvalues[7]:
        [1]: module_6_upvr (readonly)
        [2]: enums_upvr (readonly)
        [3]: Janitor_upvr (readonly)
        [4]: HttpService_upvr (readonly)
        [5]: var2_2_upvr (readonly)
        [6]: Signal_upvr (readonly)
        [7]: LocalPlayer_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local module_2_upvr = {}
    setmetatable(module_2_upvr, module_6_upvr)
    local typeof_result1_2 = typeof(arg1)
    if typeof_result1_2 ~= "table" and typeof_result1_2 ~= "Instance" then
        error("The zone container must be a model, folder, basepart or table!")
    end
    module_2_upvr.accuracy = enums_upvr.Accuracy.High
    module_2_upvr.autoUpdate = true
    module_2_upvr.respectUpdateQueue = true
    local any_new_result1 = Janitor_upvr.new()
    module_2_upvr.janitor = any_new_result1
    module_2_upvr._updateConnections = any_new_result1:add(Janitor_upvr.new(), "destroy")
    module_2_upvr.container = arg1
    module_2_upvr.zoneParts = {}
    module_2_upvr.overlapParams = {}
    module_2_upvr.region = nil
    module_2_upvr.volume = nil
    module_2_upvr.boundMin = nil
    module_2_upvr.boundMax = nil
    module_2_upvr.recommendedMaxParts = nil
    module_2_upvr.zoneId = HttpService_upvr:GenerateGUID()
    module_2_upvr.activeTriggers = {}
    module_2_upvr.occupants = {}
    module_2_upvr.trackingTouchedTriggers = {}
    module_2_upvr.enterDetection = enums_upvr.Detection.Centre
    module_2_upvr.exitDetection = enums_upvr.Detection.Centre
    module_2_upvr._currentEnterDetection = nil
    module_2_upvr._currentExitDetection = nil
    module_2_upvr.totalPartVolume = 0
    module_2_upvr.allZonePartsAreBlocks = true
    module_2_upvr.trackedItems = {}
    module_2_upvr.settingsGroupName = nil
    module_2_upvr.worldModel = workspace
    module_2_upvr.onItemDetails = {}
    module_2_upvr.itemsToUntrack = {}
    var2_2_upvr.updateDetection(module_2_upvr)
    module_2_upvr.updated = any_new_result1:add(Signal_upvr.new(), "destroy")
    local tbl_4 = {"player", "part", "localPlayer", "item"}
    for _, v_upvr in pairs(tbl_4) do
        local var47_upvw = 0
        local var48_upvw = 0
        for _, v_2 in pairs({"entered", "exited"}) do
            local any_add_result1 = any_new_result1:add(Signal_upvr.new(true), "destroy")
            local var53_upvr = v_2:sub(1, 1):upper()..v_2:sub(2)
            module_2_upvr[v_upvr..var53_upvr] = any_add_result1
            any_add_result1.connectionsChanged:Connect(function(arg1_2) -- Line 105
                --[[ Upvalues[7]:
                    [1]: v_upvr (readonly)
                    [2]: LocalPlayer_upvr (copied, readonly)
                    [3]: var53_upvr (readonly)
                    [4]: var48_upvw (read and write)
                    [5]: var47_upvw (read and write)
                    [6]: var2_2_upvr (copied, readonly)
                    [7]: module_2_upvr (readonly)
                ]]
                if v_upvr == "localPlayer" and not LocalPlayer_upvr and arg1_2 == 1 then
                    error("Can only connect to 'localPlayer%s' on the client!":format(var53_upvr))
                end
                var48_upvw = var47_upvw
                var47_upvw += arg1_2
                if var48_upvw == 0 and 0 < var47_upvw then
                    var2_2_upvr._registerConnection(module_2_upvr, v_upvr, var53_upvr)
                elseif 0 < var48_upvw and var47_upvw == 0 then
                    var2_2_upvr._deregisterConnection(module_2_upvr, v_upvr)
                end
            end)
            local var55
        end
    end
    module_6_upvr.touchedConnectionActions = {}
    for _, v_3 in pairs(tbl_4) do
        local var59_upvr = module_2_upvr["_%sTouchedZone":format(v_3)]
        if var59_upvr then
            module_2_upvr.trackingTouchedTriggers[v_3] = {}
            module_6_upvr.touchedConnectionActions[v_3] = function(arg1_3) -- Line 129
                --[[ Upvalues[2]:
                    [1]: var59_upvr (readonly)
                    [2]: module_2_upvr (readonly)
                ]]
                var59_upvr(module_2_upvr, arg1_3)
            end
        end
    end
    module_2_upvr:_update()
    var2_2_upvr._registerZone(module_2_upvr)
    var55:add(function() -- Line 140
        --[[ Upvalues[2]:
            [1]: var2_2_upvr (copied, readonly)
            [2]: module_2_upvr (readonly)
        ]]
        var2_2_upvr._deregisterZone(module_2_upvr)
    end, true)
    return module_2_upvr
end
function module_6_upvr.fromRegion(arg1, arg2) -- Line 147
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local Model_upvr = Instance.new("Model")
    local function createCube_upvr(arg1_4, arg2_2) -- Line 150, Named "createCube"
        --[[ Upvalues[2]:
            [1]: createCube_upvr (readonly)
            [2]: Model_upvr (readonly)
        ]]
        if 2024 < arg2_2.X or 2024 < arg2_2.Y or 2024 < arg2_2.Z then
            local var63 = arg2_2 * 0.25
            local var64 = arg2_2 * 0.5
            createCube_upvr(arg1_4 * CFrame.new(-var63.X, -var63.Y, -var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(-var63.X, -var63.Y, var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(-var63.X, var63.Y, -var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(-var63.X, var63.Y, var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(var63.X, -var63.Y, -var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(var63.X, -var63.Y, var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(var63.X, var63.Y, -var63.Z), var64)
            createCube_upvr(arg1_4 * CFrame.new(var63.X, var63.Y, var63.Z), var64)
        else
            local Part_2 = Instance.new("Part")
            Part_2.CFrame = arg1_4
            Part_2.Size = arg2_2
            Part_2.Anchored = true
            Part_2.Parent = Model_upvr
        end
    end
    createCube_upvr(arg1, arg2)
    local any_new_result1_2 = module_6_upvr.new(Model_upvr)
    any_new_result1_2:relocate()
    return any_new_result1_2
end
function module_6_upvr._calculateRegion(arg1, arg2, arg3) -- Line 179
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl_2 = {
        Min = {};
        Max = {};
    }
    for i_4_upvr, v_4 in pairs(tbl_2) do
        v_4.Values = {}
        function v_4.parseCheck(arg1_5, arg2_3) -- Line 183
            --[[ Upvalues[1]:
                [1]: i_4_upvr (readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local var111 = i_4_upvr
            if var111 == "Min" then
                if arg1_5 > arg2_3 then
                    var111 = false
                else
                    var111 = true
                end
                return var111
            end
            var111 = i_4_upvr
            if var111 == "Max" then
                if arg2_3 > arg1_5 then
                else
                end
                return true
            end
        end
        function v_4.parse(arg1_6, arg2_4) -- Line 190
            for i_5, v_5 in pairs(arg2_4) do
                if arg1_6.parseCheck(v_5, arg1_6.Values[i_5] or v_5) then
                    arg1_6.Values[i_5] = v_5
                end
            end
        end
    end
    for _, v_6 in pairs(arg2) do
        local var120 = v_6.Size * 0.5
        for _, v_7 in pairs({v_6.CFrame * CFrame.new(-var120.X, -var120.Y, -var120.Z), v_6.CFrame * CFrame.new(-var120.X, -var120.Y, var120.Z), v_6.CFrame * CFrame.new(-var120.X, var120.Y, -var120.Z), v_6.CFrame * CFrame.new(-var120.X, var120.Y, var120.Z), v_6.CFrame * CFrame.new(var120.X, -var120.Y, -var120.Z), v_6.CFrame * CFrame.new(var120.X, -var120.Y, var120.Z), v_6.CFrame * CFrame.new(var120.X, var120.Y, -var120.Z), v_6.CFrame * CFrame.new(var120.X, var120.Y, var120.Z)}) do
            local any_GetComponents_result1, any_GetComponents_result2, any_GetComponents_result3 = v_7:GetComponents()
            local tbl_6 = {any_GetComponents_result1, any_GetComponents_result2, any_GetComponents_result3}
            tbl_2.Min:parse(tbl_6)
            tbl_2.Max:parse(tbl_6)
        end
    end
    local function _(arg1_7) -- Line 222, Named "roundToFour"
        return math.floor((arg1_7 + 2) / 4) * 4
    end
    for i_8, v_8 in pairs(tbl_2) do
        local var135
        for _, v_9 in pairs(v_8.Values) do
            if i_8 ~= "Min" or not {} then
            end
            if not arg3 then
                if i_8 == "Min" then
                    var135 = -2
                else
                    var135 = 2
                end
            end
            table.insert({}, math.floor((v_9 + var135 + 2) / 4) * 4)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    local vector3_2 = Vector3.new(unpack({}))
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    local vector3 = Vector3.new(unpack({}))
    return Region3.new(vector3_2, vector3), vector3_2, vector3
end
function module_6_upvr._displayBounds(arg1) -- Line 245
    if not arg1.displayBoundParts then
        arg1.displayBoundParts = true
        for i_10, v_10 in pairs({
            BoundMin = arg1.boundMin;
            BoundMax = arg1.boundMax;
        }) do
            local Part = Instance.new("Part")
            Part.Anchored = true
            Part.CanCollide = false
            Part.Transparency = 0.5
            Part.Size = Vector3.new(1, 1, 1)
            Part.Color = Color3.fromRGB(255, 0, 0)
            Part.CFrame = CFrame.new(v_10)
            Part.Name = i_10
            Part.Parent = workspace
            arg1.janitor:add(Part, "Destroy")
        end
    end
end
function module_6_upvr._update(arg1) -- Line 264
    --[[ Upvalues[1]:
        [1]: RunService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local container_2 = arg1.container
    local tbl = {}
    local var203_upvw = 0
    arg1._updateConnections:clean()
    local typeof_result1 = typeof(container_2)
    local tbl_7 = {}
    local var206
    if typeof_result1 == "table" then
        var206 = pairs(container_2)
        local pairs_result1_11, pairs_result2_20, pairs_result3 = pairs(container_2)
        for _, v_11 in pairs_result1_11, pairs_result2_20, pairs_result3 do
            if v_11:IsA("BasePart") then
                table.insert(tbl, v_11)
            end
        end
    elseif typeof_result1 == "Instance" then
        pairs_result1_11 = container_2:IsA("BasePart")
        if pairs_result1_11 then
            pairs_result1_11 = table.insert
            pairs_result1_11(tbl, container_2)
        else
            pairs_result1_11 = table.insert
            pairs_result1_11(tbl_7, container_2)
            pairs_result1_11 = pairs(container_2:GetDescendants())
            local pairs_result1_13, pairs_result2, pairs_result3_16 = pairs(container_2:GetDescendants())
            for _, v_24 in pairs_result1_13, pairs_result2, pairs_result3_16 do
                if v_24:IsA("BasePart") then
                    table.insert(tbl, v_24)
                else
                    table.insert(tbl_7, v_24)
                end
            end
        end
    end
    arg1.zoneParts = tbl
    pairs_result1_13 = {}
    arg1.overlapParams = pairs_result1_13
    pairs_result1_13 = true
    for _, v_12_upvr in pairs(tbl) do
        local _, pcall_result2_3 = pcall(function() -- Line 298
            --[[ Upvalues[1]:
                [1]: v_12_upvr (readonly)
            ]]
            return v_12_upvr.Shape.Name
        end)
        if pcall_result2_3 ~= "Block" then
            pairs_result1_13 = false
        end
    end
    arg1.allZonePartsAreBlocks = pairs_result1_13
    local OverlapParams_new_result1_2 = OverlapParams.new()
    OverlapParams_new_result1_2.FilterType = Enum.RaycastFilterType.Whitelist
    OverlapParams_new_result1_2.MaxParts = #tbl
    OverlapParams_new_result1_2.FilterDescendantsInstances = tbl
    arg1.overlapParams.zonePartsWhitelist = OverlapParams_new_result1_2
    local OverlapParams_new_result1 = OverlapParams.new()
    OverlapParams_new_result1.FilterType = Enum.RaycastFilterType.Blacklist
    OverlapParams_new_result1.FilterDescendantsInstances = tbl
    arg1.overlapParams.zonePartsIgnorelist = OverlapParams_new_result1
    local function _(arg1_8) -- Line 340, Named "verifyDefaultCollision"
    end
    for _, v_13_upvr in pairs(tbl) do
        for _, v_14 in pairs({"Size", "Position"}) do
            arg1._updateConnections:add(v_13_upvr:GetPropertyChangedSignal(v_14):Connect(function() -- Line 318, Named "update"
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: var203_upvw (read and write)
                    [3]: RunService_upvr (copied, readonly)
                ]]
                if arg1.autoUpdate then
                    local os_clock_result1_2_upvw = os.clock()
                    if arg1.respectUpdateQueue then
                        var203_upvw += 1
                        os_clock_result1_2_upvw += 0.1
                    end
                    local var223_upvw
                    var223_upvw = RunService_upvr.Heartbeat:Connect(function() -- Line 326
                        --[[ Upvalues[4]:
                            [1]: os_clock_result1_2_upvw (read and write)
                            [2]: var223_upvw (read and write)
                            [3]: arg1 (copied, readonly)
                            [4]: var203_upvw (copied, read and write)
                        ]]
                        if os_clock_result1_2_upvw <= os.clock() then
                            var223_upvw:Disconnect()
                            if arg1.respectUpdateQueue then
                                var203_upvw -= 1
                            end
                            if var203_upvw == 0 and arg1.zoneId then
                                arg1:_update()
                            end
                        end
                    end)
                end
            end), "Disconnect")
            local _
        end
        arg1._updateConnections:add(v_13_upvr:GetPropertyChangedSignal("CollisionGroupId"):Connect(function() -- Line 350
            --[[ Upvalues[1]:
                [1]: v_13_upvr (readonly)
            ]]
        end), "Disconnect")
    end
    for _, _ in pairs(tbl_7) do
        for _, v_16 in pairs({"ChildAdded", "ChildRemoved"}) do
            arg1._updateConnections:add(arg1.container[v_16]:Connect(function(arg1_9) -- Line 357
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: var203_upvw (read and write)
                    [3]: RunService_upvr (copied, readonly)
                ]]
                if arg1_9:IsA("BasePart") and arg1.autoUpdate then
                    local os_clock_result1_upvw = os.clock()
                    if arg1.respectUpdateQueue then
                        var203_upvw += 1
                        os_clock_result1_upvw += 0.1
                    end
                    local var243_upvw
                    var243_upvw = RunService_upvr.Heartbeat:Connect(function() -- Line 326
                        --[[ Upvalues[4]:
                            [1]: os_clock_result1_upvw (read and write)
                            [2]: var243_upvw (read and write)
                            [3]: arg1 (copied, readonly)
                            [4]: var203_upvw (copied, read and write)
                        ]]
                        if os_clock_result1_upvw <= os.clock() then
                            var243_upvw:Disconnect()
                            if arg1.respectUpdateQueue then
                                var203_upvw -= 1
                            end
                            if var203_upvw == 0 and arg1.zoneId then
                                arg1:_update()
                            end
                        end
                    end)
                end
            end), "Disconnect")
        end
    end
    local any__calculateRegion_result1, any__calculateRegion_result2, any__calculateRegion_result3 = arg1:_calculateRegion(tbl)
    local any__calculateRegion_result1_2, _, _ = arg1:_calculateRegion(tbl, true)
    arg1.region = any__calculateRegion_result1
    arg1.exactRegion = any__calculateRegion_result1_2
    arg1.boundMin = any__calculateRegion_result2
    arg1.boundMax = any__calculateRegion_result3
    local Size = any__calculateRegion_result1.Size
    arg1.volume = Size.X * Size.Y * Size.Z
    arg1:_updateTouchedConnections()
    arg1.updated:Fire()
end
function module_6_upvr._updateOccupants(arg1, arg2, arg3) -- Line 393
    local var259 = arg1.occupants[arg2]
    if not var259 then
        var259 = {}
        arg1.occupants[arg2] = var259
    end
    local module_5 = {}
    for i_17, v_17 in pairs(var259) do
        local var264 = arg3[i_17]
        if var264 == nil or var264 ~= v_17 then
            var259[i_17] = nil
            if not module_5.exited then
                module_5.exited = {}
            end
            table.insert(module_5.exited, i_17)
        end
    end
    for i_18, _ in pairs(arg3) do
        local var268
        if var259[i_18] == nil then
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var268 = i_18.Character
                return var268
            end
            if not i_18:IsA("Player") or not INLINED() then
                var268 = true
            end
            var259[i_18] = var268
            var268 = module_5.entered
            if not var268 then
                var268 = {}
                module_5.entered = var268
            end
            var268 = table.insert
            var268(module_5.entered, i_18)
        end
    end
    return module_5
end
function module_6_upvr._formTouchedConnection(arg1, arg2) -- Line 423
    --[[ Upvalues[1]:
        [1]: Janitor_upvr (readonly)
    ]]
    local var269 = "_touchedJanitor"..arg2
    if arg1[var269] then
        arg1[var269]:clean()
    else
        arg1[var269] = arg1.janitor:add(Janitor_upvr.new(), "destroy")
    end
    arg1:_updateTouchedConnection(arg2)
end
function module_6_upvr._updateTouchedConnection(arg1, arg2) -- Line 435
    local var274 = arg1["_touchedJanitor"..arg2]
    if not var274 then
    else
        for _, v_25 in pairs(arg1.zoneParts) do
            var274:add(v_25.Touched:Connect(arg1.touchedConnectionActions[arg2], arg1), "Disconnect")
        end
    end
end
function module_6_upvr._updateTouchedConnections(arg1) -- Line 444
    for i_19, _ in pairs(arg1.touchedConnectionActions) do
        local var283 = arg1["_touchedJanitor"..i_19]
        if var283 then
            var283:cleanup()
            arg1:_updateTouchedConnection(i_19)
        end
    end
end
function module_6_upvr._disconnectTouchedConnection(arg1, arg2) -- Line 455
    local var284 = "_touchedJanitor"..arg2
    local var285 = arg1[var284]
    if var285 then
        var285:cleanup()
        arg1[var284] = nil
    end
end
local function _(arg1, arg2) -- Line 464, Named "round"
    return math.round(arg1 * 10 ^ arg2) * 10 ^ (-arg2)
end
local Heartbeat_upvr = RunService_upvr.Heartbeat
function module_6_upvr._partTouchedZone(arg1, arg2) -- Line 467
    --[[ Upvalues[3]:
        [1]: Janitor_upvr (readonly)
        [2]: Heartbeat_upvr (readonly)
        [3]: enums_upvr (readonly)
    ]]
    local part_upvr = arg1.trackingTouchedTriggers.part
    if part_upvr[arg2] then
    else
        local any_add_result1_upvr = arg1.janitor:add(Janitor_upvr.new(), "destroy")
        part_upvr[arg2] = any_add_result1_upvr
        if not ({
            Seat = true;
            VehicleSeat = true;
        })[arg2.ClassName] and ({
            HumanoidRootPart = true;
        })[arg2.Name] then
            arg2.CanTouch = false
        end
        local var291_upvr = math.round(arg2.Size.X * arg2.Size.Y * arg2.Size.Z * 100000) * 0.00001
        arg1.totalPartVolume += var291_upvr
        local const_number_upvw = 0
        local var294_upvw = false
        local Position_upvw = arg2.Position
        local os_clock_result1_upvw_2 = os.clock()
        any_add_result1_upvr:add(Heartbeat_upvr:Connect(function() -- Line 485
            --[[ Upvalues[8]:
                [1]: const_number_upvw (read and write)
                [2]: enums_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: arg2 (readonly)
                [5]: var294_upvw (read and write)
                [6]: Position_upvw (read and write)
                [7]: os_clock_result1_upvw_2 (read and write)
                [8]: any_add_result1_upvr (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            local os_clock_result1 = os.clock()
            local var298 = const_number_upvw
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [44] 35. Error Block 7 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [44] 35. Error Block 7 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [54] 42. Error Block 8 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [54] 42. Error Block 8 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [63] 49. Error Block 13 start (CF ANALYSIS FAILED)
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [63.2]
            if not nil then
                var294_upvw = false
                Position_upvw = arg2.Position
                os_clock_result1_upvw_2 = os.clock()
                arg1.partExited:Fire(arg2)
            end
            -- KONSTANTERROR: [63] 49. Error Block 13 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [81] 63. Error Block 12 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [81] 63. Error Block 12 end (CF ANALYSIS FAILED)
        end), "Disconnect")
        any_add_result1_upvr:add(function() -- Line 516
            --[[ Upvalues[4]:
                [1]: part_upvr (readonly)
                [2]: arg2 (readonly)
                [3]: arg1 (readonly)
                [4]: var291_upvr (readonly)
            ]]
            part_upvr[arg2] = nil
            arg2.CanTouch = true
            arg1.totalPartVolume = math.round((arg1.totalPartVolume - var291_upvr) * 100000) * 0.00001
        end, true)
    end
end
local tbl_upvr = {
    Ball = function(arg1) -- Line 524
        return "GetPartBoundsInRadius", {arg1.Position, arg1.Size.X}
    end;
    Block = function(arg1) -- Line 527
        return "GetPartBoundsInBox", {arg1.CFrame, arg1.Size}
    end;
    Other = function(arg1) -- Line 530
        local module_4 = {}
        module_4[1] = arg1
        return "GetPartsInPart", module_4
    end;
}
function module_6_upvr._getRegionConstructor(arg1, arg2, arg3) -- Line 534
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local pcall_result1, pcall_result2 = pcall(function() -- Line 535
        --[[ Upvalues[1]:
            [1]: arg2 (readonly)
        ]]
        return arg2.Shape.Name
    end)
    local var320
    if pcall_result1 then
        if arg1.allZonePartsAreBlocks then
            local var321 = tbl_upvr[pcall_result2]
            if var321 then
                local var321_result1, var321_result2 = var321(arg2)
                var320 = var321_result2
            end
        end
    end
    if not var321_result1 then
        local any_Other_result1, any_Other_result2 = tbl_upvr.Other(arg2)
        var320 = any_Other_result2
    end
    if arg3 then
        table.insert(var320, arg3)
    end
    return any_Other_result1, var320
end
function module_6_upvr.findLocalPlayer(arg1) -- Line 555
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    if not LocalPlayer_upvr then
        error("Can only call 'findLocalPlayer' on the client!")
    end
    return arg1:findPlayer(LocalPlayer_upvr)
end
function module_6_upvr._find(arg1, arg2, arg3) -- Line 562
    --[[ Upvalues[1]:
        [1]: var2_2_upvr (readonly)
    ]]
    var2_2_upvr.updateDetection(arg1)
    for _, v_20 in pairs(var2_2_upvr.getTouchingZones(arg3, false, arg1._currentEnterDetection, var2_2_upvr.trackers[arg2])) do
        if v_20 == arg1 then
            return true
        end
    end
    return false
end
function module_6_upvr.findPlayer(arg1, arg2) -- Line 574
    local var332 = arg2.Character
    if var332 then
        var332 = arg2.Character:FindFirstChildOfClass("Humanoid")
    end
    if not var332 then
        return false
    end
    return arg1:_find("player", arg2.Character)
end
function module_6_upvr.findItem(arg1, arg2) -- Line 583
    return arg1:_find("item", arg2)
end
function module_6_upvr.findPart(arg1, arg2) -- Line 587
    local any__getRegionConstructor_result1_2, any__getRegionConstructor_result2_2 = arg1:_getRegionConstructor(arg2, arg1.overlapParams.zonePartsWhitelist)
    local any_any_result1_2 = arg1.worldModel[any__getRegionConstructor_result1_2](arg1.worldModel, unpack(any__getRegionConstructor_result2_2))
    if 0 < #any_any_result1_2 then
        return true, any_any_result1_2
    end
    return false
end
function module_6_upvr.getCheckerPart(arg1) -- Line 597
    --[[ Upvalues[1]:
        [1]: var2_2_upvr (readonly)
    ]]
    local var336
    if not arg1.checkerPart then
        var336 = arg1.janitor:add(Instance.new("Part"), "Destroy")
        local var337 = var336
        var336 = Vector3.new(0.10000, 0.10000, 0.10000)
        var337.Size = var336
        var336 = "ZonePlusCheckerPart"
        var337.Name = var336
        var336 = true
        var337.Anchored = var336
        var336 = 1
        var337.Transparency = var336
        var336 = false
        var337.CanCollide = var336
        arg1.checkerPart = var337
    end
    var336 = arg1.worldModel
    if var336 == workspace then
        var336 = var2_2_upvr.getWorkspaceContainer()
    end
    if var337.Parent ~= var336 then
        var337.Parent = var336
    end
    return var337
end
function module_6_upvr.findPoint(arg1, arg2) -- Line 618
    local var338 = arg2
    if typeof(arg2) == "Vector3" then
        var338 = CFrame.new(arg2)
    end
    local any_getCheckerPart_result1 = arg1:getCheckerPart()
    any_getCheckerPart_result1.CFrame = var338
    local any__getRegionConstructor_result1, any__getRegionConstructor_result2 = arg1:_getRegionConstructor(any_getCheckerPart_result1, arg1.overlapParams.zonePartsWhitelist)
    local any_any_result1 = arg1.worldModel[any__getRegionConstructor_result1](arg1.worldModel, unpack(any__getRegionConstructor_result2))
    if 0 < #any_any_result1 then
        return true, any_any_result1
    end
    return false
end
function module_6_upvr._getAll(arg1, arg2) -- Line 635
    --[[ Upvalues[1]:
        [1]: var2_2_upvr (readonly)
    ]]
    var2_2_upvr.updateDetection(arg1)
    local module_3 = {}
    local var349 = var2_2_upvr._getZonesAndItems(arg2, {
        self = true;
    }, arg1.volume, false, arg1._currentEnterDetection)[arg1]
    if var349 then
        for i_21, _ in pairs(var349) do
            table.insert(module_3, i_21)
        end
    end
    return module_3
end
function module_6_upvr.getPlayers(arg1) -- Line 648
    return arg1:_getAll("player")
end
function module_6_upvr.getItems(arg1) -- Line 652
    return arg1:_getAll("item")
end
function module_6_upvr.getParts(arg1) -- Line 656
    local module = {}
    if arg1.activeTriggers.part then
        for i_22, _ in pairs(arg1.trackingTouchedTriggers.part) do
            table.insert(module, i_22)
        end
        return module
    end
    for _, v_23 in pairs(arg1.worldModel:GetPartBoundsInBox(arg1.region.CFrame, arg1.region.Size, arg1.overlapParams.zonePartsIgnorelist)) do
        if arg1:findPart(v_23) then
            table.insert(module, v_23)
        end
    end
    return module
end
function module_6_upvr.getRandomPoint(arg1) -- Line 677
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local Size_2 = arg1.exactRegion.Size
    local random_state = Random.new()
    local var371
    if #arg1.overlapParams.zonePartsWhitelist.FilterDescendantsInstances <= 0 then
        return nil
    end
    repeat
        var371 = arg1.exactRegion.CFrame * CFrame.new(random_state:NextNumber(-Size_2.X / 2, Size_2.X / 2), random_state:NextNumber(-Size_2.Y / 2, Size_2.Y / 2), random_state:NextNumber(-Size_2.Z / 2, Size_2.Z / 2))
        local any_findPoint_result1, any_findPoint_result2 = arg1:findPoint(var371)
        local var374
        if any_findPoint_result1 then
            var374 = true
        end
    until var374
    return var371.Position, any_findPoint_result2
end
function module_6_upvr.setAccuracy(arg1, arg2) -- Line 702
    --[[ Upvalues[1]:
        [1]: enums_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 11 start (CF ANALYSIS FAILED)
    local tonumber_result1_2 = tonumber(arg2)
    if not tonumber_result1_2 then
        tonumber_result1_2 = enums_upvr.Accuracy[arg2]
        if not tonumber_result1_2 then
            error("'%s' is an invalid enumName!":format(arg2))
            -- KONSTANTWARNING: GOTO [36] #29
        end
    elseif not enums_upvr.Accuracy.getName(tonumber_result1_2) then
        error("%s is an invalid enumId!":format(tonumber_result1_2))
    end
    -- KONSTANTERROR: [0] 1. Error Block 11 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [36] 29. Error Block 7 start (CF ANALYSIS FAILED)
    arg1.accuracy = tonumber_result1_2
    -- KONSTANTERROR: [36] 29. Error Block 7 end (CF ANALYSIS FAILED)
end
function module_6_upvr.setDetection(arg1, arg2) -- Line 718
    --[[ Upvalues[1]:
        [1]: enums_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 11 start (CF ANALYSIS FAILED)
    local tonumber_result1 = tonumber(arg2)
    if not tonumber_result1 then
        tonumber_result1 = enums_upvr.Detection[arg2]
        if not tonumber_result1 then
            error("'%s' is an invalid enumName!":format(arg2))
            -- KONSTANTWARNING: GOTO [36] #29
        end
    elseif not enums_upvr.Detection.getName(tonumber_result1) then
        error("%s is an invalid enumId!":format(tonumber_result1))
    end
    -- KONSTANTERROR: [0] 1. Error Block 11 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [36] 29. Error Block 7 start (CF ANALYSIS FAILED)
    arg1.enterDetection = tonumber_result1
    arg1.exitDetection = tonumber_result1
    -- KONSTANTERROR: [36] 29. Error Block 7 end (CF ANALYSIS FAILED)
end
function module_6_upvr.trackItem(arg1, arg2) -- Line 735
    --[[ Upvalues[2]:
        [1]: Janitor_upvr (readonly)
        [2]: Tracker_upvr (readonly)
    ]]
    local children = arg2:IsA("BasePart")
    local var378 = false
    if not children then
        local class_Humanoid = arg2:FindFirstChildOfClass("Humanoid")
        if class_Humanoid then
            class_Humanoid = arg2:FindFirstChild("HumanoidRootPart")
        end
        var378 = class_Humanoid
    end
    assert(children or var378, "Only BaseParts or Characters/NPCs can be tracked!")
    if arg1.trackedItems[arg2] then
    else
        if arg1.itemsToUntrack[arg2] then
            arg1.itemsToUntrack[arg2] = nil
        end
        local any_add_result1_2 = arg1.janitor:add(Janitor_upvr.new(), "destroy")
        local tbl_3 = {
            janitor = any_add_result1_2;
        }
        tbl_3.item = arg2
        tbl_3.isBasePart = children
        tbl_3.isCharacter = var378
        arg1.trackedItems[arg2] = tbl_3
        any_add_result1_2:add(arg2.AncestryChanged:Connect(function() -- Line 760
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            if not arg2:IsDescendantOf(game) then
                arg1:untrackItem(arg2)
            end
        end), "Disconnect")
        require(Tracker_upvr).itemAdded:Fire(tbl_3)
    end
end
function module_6_upvr.untrackItem(arg1, arg2) -- Line 770
    --[[ Upvalues[1]:
        [1]: Tracker_upvr (readonly)
    ]]
    local var383 = arg1.trackedItems[arg2]
    if var383 then
        var383.janitor:destroy()
    end
    arg1.trackedItems[arg2] = nil
    require(Tracker_upvr).itemRemoved:Fire(var383)
end
function module_6_upvr.bindToGroup(arg1, arg2) -- Line 781
    --[[ Upvalues[1]:
        [1]: var2_2_upvr (readonly)
    ]]
    arg1:unbindFromGroup()
    local any_getGroup_result1 = var2_2_upvr.getGroup(arg2)
    if not any_getGroup_result1 then
        any_getGroup_result1 = var2_2_upvr.setGroup(arg2)
    end
    any_getGroup_result1._memberZones[arg1.zoneId] = arg1
    arg1.settingsGroupName = arg2
end
function module_6_upvr.unbindFromGroup(arg1) -- Line 788
    --[[ Upvalues[1]:
        [1]: var2_2_upvr (readonly)
    ]]
    if arg1.settingsGroupName then
        local any_getGroup_result1_2 = var2_2_upvr.getGroup(arg1.settingsGroupName)
        if any_getGroup_result1_2 then
            any_getGroup_result1_2._memberZones[arg1.zoneId] = nil
        end
        arg1.settingsGroupName = nil
    end
end
local CollectiveWorldModel_upvr = ZoneController.CollectiveWorldModel
function module_6_upvr.relocate(arg1) -- Line 798
    --[[ Upvalues[1]:
        [1]: CollectiveWorldModel_upvr (readonly)
    ]]
    if arg1.hasRelocated then
    else
        local any_setupWorldModel_result1 = require(CollectiveWorldModel_upvr).setupWorldModel(arg1)
        arg1.worldModel = any_setupWorldModel_result1
        arg1.hasRelocated = true
        local container = arg1.container
        if typeof(container) == "table" then
            container = Instance.new("Folder")
            for _, v_26 in pairs(arg1.zoneParts) do
                v_26.Parent = container
            end
        end
        arg1.relocationContainer = arg1.janitor:add(container, "Destroy", "RelocationContainer")
        container.Parent = any_setupWorldModel_result1
    end
end
function module_6_upvr._onItemCallback(arg1, arg2, arg3, arg4, arg5) -- Line 819
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 4. Error Block 2 start (CF ANALYSIS FAILED)
    local tbl_5 = {}
    arg1.onItemDetails[arg4] = tbl_5
    -- KONSTANTERROR: [4] 4. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 3 end (CF ANALYSIS FAILED)
end
function module_6_upvr.onItemEnter(arg1, ...) -- Line 865
    arg1:_onItemCallback("itemEntered", true, ...)
end
function module_6_upvr.onItemExit(arg1, ...) -- Line 869
    arg1:_onItemCallback("itemExited", false, ...)
end
function module_6_upvr.destroy(arg1) -- Line 873
    arg1:unbindFromGroup()
    arg1.janitor:destroy()
end
module_6_upvr.Destroy = module_6_upvr.destroy
return module_6_upvr
ModuleScript Enum ReplicatedStorage.engine.modules.Zone.Enum
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:45
-- Luau version 6, Types version 3
-- Time taken: 0.007945 seconds

local module = {}
local module_upvr = {}
module.enums = module_upvr
function module.createEnum(arg1, arg2) -- Line 20
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var13_upvr
    if typeof(arg1) ~= "string" then
        var13_upvr = false
    else
        var13_upvr = true
    end
    assert(var13_upvr, "bad argument #1 - enums must be created using a string name!")
    if typeof(arg2) ~= "table" then
        var13_upvr = false
    else
        var13_upvr = true
    end
    assert(var13_upvr, "bad argument #2 - enums must be created using a table!")
    var13_upvr = not module_upvr[arg1]
    assert(var13_upvr, "enum '%s' already exists!":format(arg1))
    local module_2 = {}
    var13_upvr = {}
    local tbl_upvr_2 = {}
    local tbl_upvr = {}
    local module_3_upvr = {
        getName = function(arg1_2) -- Line 30, Named "getName"
            --[[ Upvalues[3]:
                [1]: tbl_upvr_2 (readonly)
                [2]: tbl_upvr (readonly)
                [3]: arg2 (readonly)
            ]]
            local tostring_result1_3 = tostring(arg1_2)
            local var19 = tbl_upvr_2[tostring_result1_3]
            if not var19 then
                var19 = tbl_upvr[tostring_result1_3]
            end
            if var19 then
                return arg2[var19][1]
            end
        end;
        getValue = function(arg1_3) -- Line 40, Named "getValue"
            --[[ Upvalues[3]:
                [1]: var13_upvr (readonly)
                [2]: tbl_upvr (readonly)
                [3]: arg2 (readonly)
            ]]
            local tostring_result1_4 = tostring(arg1_3)
            local var21 = var13_upvr[tostring_result1_4]
            if not var21 then
                var21 = tbl_upvr[tostring_result1_4]
            end
            if var21 then
                return arg2[var21][2]
            end
        end;
        getProperty = function(arg1_4) -- Line 50, Named "getProperty"
            --[[ Upvalues[3]:
                [1]: var13_upvr (readonly)
                [2]: tbl_upvr_2 (readonly)
                [3]: arg2 (readonly)
            ]]
            local tostring_result1_2 = tostring(arg1_4)
            local var23 = var13_upvr[tostring_result1_2]
            if not var23 then
                var23 = tbl_upvr_2[tostring_result1_2]
            end
            if var23 then
                return arg2[var23][3]
            end
        end;
    }
    for i, v in pairs(arg2) do
        local var27
        if typeof(v) ~= "table" then
            var27 = false
        else
            var27 = true
        end
        assert(var27, "bad argument #2.%s - details must only be comprised of tables!":format(i))
        local _1 = v[1]
        if typeof(_1) ~= "string" then
        else
        end
        var27 = assert
        var27(true, "bad argument #2.%s.1 - detail name must be a string!":format(i))
        var27 = assert
        var27(typeof(not var13_upvr[_1]), "bad argument #2.%s.1 - the detail name '%s' already exists!":format(i, _1))
        var27 = assert
        var27(typeof(not module_3_upvr[_1]), "bad argument #2.%s.1 - that name is reserved.":format(i, _1))
        var27 = tostring(_1)
        var13_upvr[var27] = i
        var27 = v[2]
        local tostring_result1 = tostring(var27)
        assert(typeof(not tbl_upvr_2[tostring_result1]), "bad argument #2.%s.2 - the detail value '%s' already exists!":format(i, tostring_result1))
        tbl_upvr_2[tostring_result1] = i
        local _3 = v[3]
        if _3 then
            assert(typeof(not tbl_upvr[_3]), "bad argument #2.%s.3 - the detail property '%s' already exists!":format(i, tostring(_3)))
            tbl_upvr[tostring(_3)] = i
        end
        module_2[_1] = var27
        setmetatable(module_2, {
            __index = function(arg1_5, arg2_2) -- Line 80, Named "__index"
                --[[ Upvalues[1]:
                    [1]: module_3_upvr (readonly)
                ]]
                return module_3_upvr[arg2_2]
            end;
        })
    end
    module_upvr[arg1] = module_2
    return module_2
end
function module.getEnums() -- Line 90
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return module_upvr
end
for _, v_2 in pairs(script:GetChildren()) do
    if v_2:IsA("ModuleScript") then
        module.createEnum(v_2.Name, require(v_2))
    end
end
return module
ModuleScript Accuracy ReplicatedStorage.engine.modules.Zone.Enum.Accuracy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:47
-- Luau version 6, Types version 3
-- Time taken: 0.000646 seconds

return {{"Low", 1, 1}, {"Medium", 2, 0.5}, {"High", 3, 0.1}, {"Precise", 4, 0}}
ModuleScript Detection ReplicatedStorage.engine.modules.Zone.Enum.Detection
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:48
-- Luau version 6, Types version 3
-- Time taken: 0.000524 seconds

return {{"WholeBody", 1}, {"Centre", 2}}
ModuleScript ZonePlusReference ReplicatedStorage.engine.modules.Zone.ZonePlusReference
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:50
-- Luau version 6, Types version 3
-- Time taken: 0.001952 seconds

local ReplicatedStorage_upvr = game:GetService("ReplicatedStorage")
return {
    addToReplicatedStorage = function() -- Line 9, Named "addToReplicatedStorage"
        --[[ Upvalues[1]:
            [1]: ReplicatedStorage_upvr (readonly)
        ]]
        if ReplicatedStorage_upvr:FindFirstChild(script.Name) then
            return false
        end
        local ObjectValue = Instance.new("ObjectValue")
        ObjectValue.Name = script.Name
        ObjectValue.Value = script.Parent
        ObjectValue.Parent = ReplicatedStorage_upvr
        local var4 = "BoolValue"
        local any = Instance.new(var4)
        if game:GetService("RunService"):IsClient() then
            var4 = "Client"
        else
            var4 = "Server"
        end
        any.Name = var4
        any.Value = true
        any.Parent = ObjectValue
        return ObjectValue
    end;
    getObject = function() -- Line 25, Named "getObject"
        --[[ Upvalues[1]:
            [1]: ReplicatedStorage_upvr (readonly)
        ]]
        local SOME = ReplicatedStorage_upvr:FindFirstChild(script.Name)
        if SOME then
            return SOME
        end
        return false
    end;
}
ModuleScript VERSION ReplicatedStorage.engine.modules.Zone.VERSION
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:51
-- Luau version 6, Types version 3
-- Time taken: 0.000260 seconds
ModuleScript Signal ReplicatedStorage.engine.modules.Zone.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:52
-- Luau version 6, Types version 3
-- Time taken: 0.006943 seconds

local var1_upvw
local function acquireRunnerThreadAndCallEventHandler_upvr(arg1, ...) -- Line 34, Named "acquireRunnerThreadAndCallEventHandler"
    --[[ Upvalues[1]:
        [1]: var1_upvw (read and write)
    ]]
    var1_upvw = nil
    arg1(...)
    var1_upvw = var1_upvw
end
local function runEventHandlerInFreeThread_upvr(...) -- Line 45, Named "runEventHandlerInFreeThread"
    --[[ Upvalues[1]:
        [1]: acquireRunnerThreadAndCallEventHandler_upvr (readonly)
    ]]
    acquireRunnerThreadAndCallEventHandler_upvr(...)
    while true do
        acquireRunnerThreadAndCallEventHandler_upvr(coroutine.yield())
    end
end
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local function new(arg1, arg2) -- Line 56
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local module = {
        _connected = true;
    }
    module._signal = arg1
    module._fn = arg2
    module._next = false
    return setmetatable(module, tbl_upvr)
end
tbl_upvr.new = new
function tbl_upvr.Disconnect(arg1) -- Line 65
    -- KONSTANTERROR: [0] 1. Error Block 17 start (CF ANALYSIS FAILED)
    assert(arg1._connected, "Can't disconnect a connection twice.", 2)
    arg1._connected = false
    local _signal = arg1._signal
    local var5
    if var5 == arg1 then
        var5 = arg1._next
        _signal._handlerListHead = var5
        -- KONSTANTWARNING: GOTO [37] #24
    end
    -- KONSTANTERROR: [0] 1. Error Block 17 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 15. Error Block 25 start (CF ANALYSIS FAILED)
    var5 = _signal._handlerListHead
    while var5 and var5._next ~= arg1 do
        var5 = var5._next
    end
    if var5 then
        var5._next = arg1._next
    end
    var5 = _signal.connectionsChanged
    if var5 then
        var5 = _signal.totalConnections
        var5 -= 1
        _signal.totalConnections = var5
        var5 = _signal.connectionsChanged:Fire
        var5(-1)
    end
    -- KONSTANTERROR: [22] 15. Error Block 25 end (CF ANALYSIS FAILED)
end
setmetatable(tbl_upvr, {
    __index = function(arg1, arg2) -- Line 94, Named "__index"
        error("Attempt to get Connection::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
    __newindex = function(arg1, arg2, arg3) -- Line 97, Named "__newindex"
        error("Attempt to set Connection::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
})
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 106
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({
        _handlerListHead = false;
    }, module_2_upvr)
    if arg1 then
        setmetatable_result1.totalConnections = 0
        setmetatable_result1.connectionsChanged = module_2_upvr.new()
    end
    return setmetatable_result1
end
function module_2_upvr.Connect(arg1, arg2) -- Line 117
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local any_new_result1 = tbl_upvr.new(arg1, arg2)
    if arg1._handlerListHead then
        any_new_result1._next = arg1._handlerListHead
        arg1._handlerListHead = any_new_result1
    else
        arg1._handlerListHead = any_new_result1
    end
    if arg1.connectionsChanged then
        arg1.totalConnections += 1
        arg1.connectionsChanged:Fire(1)
    end
    return any_new_result1
end
function module_2_upvr.DisconnectAll(arg1) -- Line 135
    arg1._handlerListHead = false
    if arg1.connectionsChanged then
        arg1.connectionsChanged:Fire(-arg1.totalConnections)
        arg1.connectionsChanged:Destroy()
        arg1.connectionsChanged = nil
        arg1.totalConnections = 0
    end
end
module_2_upvr.Destroy = module_2_upvr.DisconnectAll
module_2_upvr.destroy = module_2_upvr.DisconnectAll
function module_2_upvr.Fire(arg1, ...) -- Line 152
    --[[ Upvalues[2]:
        [1]: var1_upvw (read and write)
        [2]: runEventHandlerInFreeThread_upvr (readonly)
    ]]
    local _handlerListHead = arg1._handlerListHead
    while _handlerListHead do
        if _handlerListHead._connected then
            if not var1_upvw then
                var1_upvw = coroutine.create(runEventHandlerInFreeThread_upvr)
            end
            task.spawn(var1_upvw, _handlerListHead._fn, ...)
        end
    end
end
function module_2_upvr.Wait(arg1) -- Line 167
    local var13_upvw
    local current_thread_upvr = coroutine.running()
    var13_upvw = arg1:Connect(function(...) -- Line 170
        --[[ Upvalues[2]:
            [1]: var13_upvw (read and write)
            [2]: current_thread_upvr (readonly)
        ]]
        var13_upvw:Disconnect()
        task.spawn(current_thread_upvr, ...)
    end)
    return coroutine.yield()
end
return module_2_upvr
ModuleScript Janitor ReplicatedStorage.engine.modules.Zone.Janitor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:54
-- Luau version 6, Types version 3
-- Time taken: 0.014119 seconds

local newproxy_result1_3_upvr = newproxy(true)
getmetatable(newproxy_result1_3_upvr).__tostring = function() -- Line 11
    return "IndicesReference"
end
local newproxy_result1_5_upvr = newproxy(true)
getmetatable(newproxy_result1_5_upvr).__tostring = function() -- Line 16
    return "LinkToInstanceIndex"
end
local module_upvr = {
    ClassName = "Janitor";
    __index = {
        CurrentlyCleaning = true;
        [newproxy_result1_3_upvr] = nil;
    };
}
local tbl_upvr = {
    ["function"] = true;
    RBXScriptConnection = "Disconnect";
}
function module_upvr.new() -- Line 40
    --[[ Upvalues[2]:
        [1]: newproxy_result1_3_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    return setmetatable({
        CurrentlyCleaning = false;
        [newproxy_result1_3_upvr] = nil;
    }, module_upvr)
end
function module_upvr.Is(arg1) -- Line 52
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var13 = false
    if type(arg1) == "table" then
        if getmetatable(arg1) ~= module_upvr then
            var13 = false
        else
            var13 = true
        end
    end
    return var13
end
module_upvr.is = module_upvr.Is
module_upvr.__index.Add = function(arg1, arg2, arg3, arg4) -- Line 65, Named "Add"
    --[[ Upvalues[2]:
        [1]: newproxy_result1_3_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    if arg4 == nil then
        local newproxy_result1 = newproxy(false)
    end
    if newproxy_result1 then
        arg1:Remove(newproxy_result1)
        local var19 = arg1[newproxy_result1_3_upvr]
        if not var19 then
            var19 = {}
            arg1[newproxy_result1_3_upvr] = var19
        end
        var19[newproxy_result1] = arg2
    end
    var19 = arg3
    local var20 = var19
    if not var20 then
        var20 = tbl_upvr[typeof(arg2)]
        if not var20 then
            var20 = "Destroy"
        end
    end
    local var21 = var20
    if type(arg2) ~= "function" then
        if not arg2[var21] then
            warn(string.format("Object %s doesn't have method %s, are you sure you want to add it? Traceback: %s", tostring(arg2), tostring(var21), debug.traceback(nil, 2)))
        end
    end
    arg1[arg2] = var21
    return arg2, newproxy_result1
end
module_upvr.__index.Give = module_upvr.__index.Add
module_upvr.__index.AddObject = function(arg1, arg2) -- Line 131, Named "AddObject"
    local newproxy_result1_2 = newproxy(false)
    return arg1:Add(arg2, false, newproxy_result1_2), newproxy_result1_2
end
module_upvr.__index.GiveObject = module_upvr.__index.AddObject
module_upvr.__index.Remove = function(arg1, arg2) -- Line 155, Named "Remove"
    --[[ Upvalues[1]:
        [1]: newproxy_result1_3_upvr (readonly)
    ]]
    local var27 = arg1[newproxy_result1_3_upvr]
    if var27 then
        local var28 = var27[arg2]
        if var28 then
            local var29 = arg1[var28]
            if var29 then
                if var29 == true then
                    var28()
                else
                    local var30 = var28[var29]
                    if var30 then
                        var30(var28)
                    end
                end
                arg1[var28] = nil
            end
            var27[arg2] = nil
        end
    end
    return arg1
end
module_upvr.__index.Get = function(arg1, arg2) -- Line 189, Named "Get"
    --[[ Upvalues[1]:
        [1]: newproxy_result1_3_upvr (readonly)
    ]]
    local var31 = arg1[newproxy_result1_3_upvr]
    if var31 then
        return var31[arg2]
    end
end
module_upvr.__index.Cleanup = function(arg1) -- Line 200, Named "Cleanup"
    --[[ Upvalues[1]:
        [1]: newproxy_result1_3_upvr (readonly)
    ]]
    if not arg1.CurrentlyCleaning then
        arg1.CurrentlyCleaning = nil
        for i, v in next, arg1 do
            if i ~= newproxy_result1_3_upvr then
                local type_result1 = type(i)
                if type_result1 == "string" or type_result1 == "number" then
                    arg1[i] = nil
                else
                    if v == true then
                        i()
                    else
                        local var39 = i[v]
                        if var39 then
                            var39(i)
                        end
                    end
                    arg1[i] = nil
                end
            end
        end
        local var40 = arg1[newproxy_result1_3_upvr]
        if var40 then
            i = nil
            for i_2 in next, var40, i do
                var40[i_2] = nil
                local _
            end
            arg1[newproxy_result1_3_upvr] = {}
        end
        arg1.CurrentlyCleaning = false
    end
end
module_upvr.__index.Clean = module_upvr.__index.Cleanup
module_upvr.__index.Destroy = function(arg1) -- Line 246, Named "Destroy"
    arg1:Cleanup()
end
module_upvr.__call = module_upvr.__index.Cleanup
local tbl_upvr_2 = {
    Connected = true;
}
tbl_upvr_2.__index = tbl_upvr_2
function tbl_upvr_2.Disconnect(arg1) -- Line 260
    if arg1.Connected then
        arg1.Connected = false
        arg1.Connection:Disconnect()
    end
end
function tbl_upvr_2.__tostring(arg1) -- Line 267
    return "Disconnect<"..tostring(arg1.Connected)..'>'
end
local Heartbeat_upvr = game:GetService("RunService").Heartbeat
module_upvr.__index.LinkToInstance = function(arg1, arg2, arg3) -- Line 277, Named "LinkToInstance"
    --[[ Upvalues[3]:
        [1]: newproxy_result1_5_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
        [3]: Heartbeat_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var44_upvw
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var44_upvw = false
        return newproxy(var44_upvw)
    end
    if not arg3 or not INLINED() then
    end
    if arg2.Parent ~= nil then
        var44_upvw = false
    else
        var44_upvw = true
    end
    local setmetatable_result1_upvr = setmetatable({}, tbl_upvr_2)
    local var46_upvw
    var46_upvw = arg2.AncestryChanged:Connect(function(arg1_2, arg2_2) -- Line 283, Named "ChangedFunction"
        --[[ Upvalues[5]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: var44_upvw (read and write)
            [3]: Heartbeat_upvr (copied, readonly)
            [4]: var46_upvw (read and write)
            [5]: arg1 (readonly)
        ]]
        local Connected = setmetatable_result1_upvr.Connected
        if Connected then
            if arg2_2 ~= nil then
                Connected = false
            else
                Connected = true
            end
            var44_upvw = Connected
            Connected = var44_upvw
            if Connected then
                Connected = coroutine.wrap
                Connected = Connected(function() -- Line 289
                    --[[ Upvalues[5]:
                        [1]: Heartbeat_upvr (copied, readonly)
                        [2]: setmetatable_result1_upvr (copied, readonly)
                        [3]: var46_upvw (copied, read and write)
                        [4]: arg1 (copied, readonly)
                        [5]: var44_upvw (copied, read and write)
                    ]]
                    Heartbeat_upvr:Wait()
                    if not setmetatable_result1_upvr.Connected then
                    else
                        if not var46_upvw.Connected then
                            arg1:Cleanup()
                            return
                        end
                        while var44_upvw and var46_upvw.Connected and setmetatable_result1_upvr.Connected do
                            Heartbeat_upvr:Wait()
                        end
                        if setmetatable_result1_upvr.Connected and var44_upvw then
                            arg1:Cleanup()
                        end
                    end
                end)
                Connected()
            end
        end
    end)
    local var49_upvw = var46_upvw
    setmetatable_result1_upvr.Connection = var49_upvw
    if var44_upvw and setmetatable_result1_upvr.Connected then
        if arg2.Parent ~= nil then
            var44_upvw = false
        else
            var44_upvw = true
        end
        if var44_upvw then
            coroutine.wrap(function() -- Line 289
                --[[ Upvalues[5]:
                    [1]: Heartbeat_upvr (copied, readonly)
                    [2]: setmetatable_result1_upvr (readonly)
                    [3]: var49_upvw (read and write)
                    [4]: arg1 (readonly)
                    [5]: var44_upvw (read and write)
                ]]
                Heartbeat_upvr:Wait()
                if not setmetatable_result1_upvr.Connected then
                else
                    if not var49_upvw.Connected then
                        arg1:Cleanup()
                        return
                    end
                    while var44_upvw and var49_upvw.Connected and setmetatable_result1_upvr.Connected do
                        Heartbeat_upvr:Wait()
                    end
                    if setmetatable_result1_upvr.Connected and var44_upvw then
                        arg1:Cleanup()
                    end
                end
            end)()
        end
    end
    return arg1:Add(setmetatable_result1_upvr, "Disconnect", newproxy_result1_5_upvr)
end
module_upvr.__index.LinkToInstances = function(arg1, ...) -- Line 325, Named "LinkToInstances"
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local any_new_result1 = module_upvr.new()
    for _, v_2 in ipairs({...}) do
        any_new_result1:Add(arg1:LinkToInstance(v_2, true), "Disconnect")
    end
    return any_new_result1
end
for i_4, v_3 in next, module_upvr.__index do
    module_upvr.__index[string.sub(string.lower(i_4), 1, 1)..string.sub(i_4, 2)] = v_3
end
return module_upvr
ModuleScript OldSignal ReplicatedStorage.engine.modules.Zone.OldSignal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:55
-- Luau version 6, Types version 3
-- Time taken: 0.005073 seconds

local HttpService_upvr = game:GetService("HttpService")
local module_upvr = {}
module_upvr.__index = module_upvr
module_upvr.ClassName = "Signal"
module_upvr.totalConnections = 0
function module_upvr.new(arg1) -- Line 12
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    if arg1 then
        setmetatable_result1.connectionsChanged = module_upvr.new()
    end
    setmetatable_result1.connections = {}
    setmetatable_result1.totalConnections = 0
    setmetatable_result1.waiting = {}
    setmetatable_result1.totalWaiting = 0
    return setmetatable_result1
end
function module_upvr.Fire(arg1, ...) -- Line 30
    for _, v in pairs(arg1.connections) do
        task.spawn(v.Handler, ...)
    end
    if 0 < arg1.totalWaiting then
        for i_2, _ in pairs(arg1.waiting) do
            arg1.waiting[i_2] = table.pack(...)
            local _
        end
    end
end
module_upvr.fire = module_upvr.Fire
function module_upvr.Connect(arg1, arg2) -- Line 44
    --[[ Upvalues[1]:
        [1]: HttpService_upvr (readonly)
    ]]
    if type(arg2) ~= "function" then
        error("connect(%s)":format(typeof(arg2)), 2)
    end
    local any_GenerateGUID_result1_2_upvr = HttpService_upvr:GenerateGUID(false)
    local module_upvr_2 = {
        Connected = true;
        ConnectionId = any_GenerateGUID_result1_2_upvr;
    }
    module_upvr_2.Handler = arg2
    arg1.connections[any_GenerateGUID_result1_2_upvr] = module_upvr_2
    function module_upvr_2.Disconnect(arg1_2) -- Line 57
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: any_GenerateGUID_result1_2_upvr (readonly)
            [3]: module_upvr_2 (readonly)
        ]]
        arg1.connections[any_GenerateGUID_result1_2_upvr] = nil
        module_upvr_2.Connected = false
        local var21 = arg1
        var21.totalConnections -= 1
        if arg1.connectionsChanged then
            arg1.connectionsChanged:Fire(-1)
        end
    end
    module_upvr_2.Destroy = module_upvr_2.Disconnect
    module_upvr_2.destroy = module_upvr_2.Disconnect
    module_upvr_2.disconnect = module_upvr_2.Disconnect
    arg1.totalConnections += 1
    if arg1.connectionsChanged then
        arg1.connectionsChanged:Fire(1)
    end
    return module_upvr_2
end
module_upvr.connect = module_upvr.Connect
local Heartbeat_upvr = game:GetService("RunService").Heartbeat
function module_upvr.Wait(arg1) -- Line 77
    --[[ Upvalues[2]:
        [1]: HttpService_upvr (readonly)
        [2]: Heartbeat_upvr (readonly)
    ]]
    local any_GenerateGUID_result1 = HttpService_upvr:GenerateGUID(false)
    arg1.waiting[any_GenerateGUID_result1] = true
    arg1.totalWaiting += 1
    repeat
        Heartbeat_upvr:Wait()
    until arg1.waiting[any_GenerateGUID_result1] ~= true
    arg1.totalWaiting -= 1
    arg1.waiting[any_GenerateGUID_result1] = nil
    return unpack(arg1.waiting[any_GenerateGUID_result1])
end
module_upvr.wait = module_upvr.Wait
function module_upvr.Destroy(arg1) -- Line 89
    if arg1.bindableEvent then
        arg1.bindableEvent:Destroy()
        arg1.bindableEvent = nil
    end
    if arg1.connectionsChanged then
        arg1.connectionsChanged:Fire(-arg1.totalConnections)
        arg1.connectionsChanged:Destroy()
        arg1.connectionsChanged = nil
    end
    arg1.totalConnections = 0
    for i_3, _ in pairs(arg1.connections) do
        arg1.connections[i_3] = nil
    end
end
module_upvr.destroy = module_upvr.Destroy
module_upvr.Disconnect = module_upvr.Destroy
module_upvr.disconnect = module_upvr.Destroy
return module_upvr
ModuleScript ZoneController ReplicatedStorage.engine.modules.Zone.ZoneController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:56
-- Luau version 6, Types version 3
-- Time taken: 0.033818 seconds

-- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
local Tracker_upvr = require(script.Tracker)
local CollectiveWorldModel_upvr = require(script.CollectiveWorldModel)
local enums_upvr = require(script.Parent.Enum).enums
local Players_upvr = game:GetService("Players")
local tbl_upvr = {}
local var6_upvw = 0
local tbl_upvr_5 = {}
local tbl_upvr_4 = {}
local tbl_upvw_2 = {}
local tbl_2_upvw = {}
local tbl_upvw = {}
local tbl_5_upvw = {}
local var13_upvw = 0
local RunService = game:GetService("RunService")
local tbl_upvr_2 = {}
local any_IsClient_result1_upvr = RunService:IsClient()
if any_IsClient_result1_upvr then
    any_IsClient_result1_upvr = Players_upvr.LocalPlayer
end
local module_upvr = {}
local tbl_4_upvr = {
    player = Tracker_upvr.new("player");
    item = Tracker_upvr.new("item");
}
module_upvr.trackers = tbl_4_upvr
local function _(arg1) -- Line 40, Named "dictLength"
    local var23 = 0
    for _, _ in pairs(arg1) do
        var23 += 1
    end
    return var23
end
local function _(arg1, arg2, arg3) -- Line 48, Named "fillOccupants"
    local var27 = arg1[arg2]
    if not var27 then
        var27 = {}
        arg1[arg2] = var27
    end
    local children_3 = arg3:IsA("Player")
    if children_3 then
        children_3 = arg3.Character
    end
    var27[arg3] = children_3 or true
end
local tbl_upvr_3 = {
    player = function(arg1) -- Line 59
        --[[ Upvalues[3]:
            [1]: module_upvr (readonly)
            [2]: tbl_upvr (readonly)
            [3]: var6_upvw (read and write)
        ]]
        return module_upvr._getZonesAndItems("player", tbl_upvr, var6_upvw, true, arg1)
    end;
    localPlayer = function(arg1) -- Line 62
        --[[ Upvalues[3]:
            [1]: any_IsClient_result1_upvr (readonly)
            [2]: module_upvr (readonly)
            [3]: tbl_4_upvr (readonly)
        ]]
        local module = {}
        local Character = any_IsClient_result1_upvr.Character
        if not Character then
            return module
        end
        for _, v_2 in pairs(module_upvr.getTouchingZones(Character, true, arg1, tbl_4_upvr.player)) do
            if v_2.activeTriggers.localPlayer then
                local var41 = any_IsClient_result1_upvr
                local var42 = module[v_2]
                if not var42 then
                    var42 = {}
                    module[v_2] = var42
                end
                local children = var41:IsA("Player")
                if children then
                    children = var41.Character
                end
                var42[var41] = children or true
            end
        end
        return module
    end;
    item = function(arg1) -- Line 76
        --[[ Upvalues[3]:
            [1]: module_upvr (readonly)
            [2]: tbl_upvr (readonly)
            [3]: var6_upvw (read and write)
        ]]
        return module_upvr._getZonesAndItems("item", tbl_upvr, var6_upvw, true, arg1)
    end;
}
local Janitor_upvr = require(script.Parent.Janitor)
function module_upvr._registerZone(arg1) -- Line 84
    --[[ Upvalues[3]:
        [1]: tbl_upvr_4 (readonly)
        [2]: Janitor_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    tbl_upvr_4[arg1] = true
    local any_add_result1 = arg1.janitor:add(Janitor_upvr.new(), "destroy")
    arg1._registeredJanitor = any_add_result1
    any_add_result1:add(arg1.updated:Connect(function() -- Line 88
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr._updateZoneDetails()
    end), "Disconnect")
    module_upvr._updateZoneDetails()
end
function module_upvr._deregisterZone(arg1) -- Line 94
    --[[ Upvalues[2]:
        [1]: tbl_upvr_4 (readonly)
        [2]: module_upvr (readonly)
    ]]
    tbl_upvr_4[arg1] = nil
    arg1._registeredJanitor:destroy()
    arg1._registeredJanitor = nil
    module_upvr._updateZoneDetails()
end
function module_upvr._registerConnection(arg1, arg2) -- Line 101
    --[[ Upvalues[5]:
        [1]: var13_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: tbl_upvr_5 (readonly)
        [5]: tbl_upvr_3 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var56 = 0
    for _, _ in pairs(arg1.activeTriggers) do
        var56 += 1
    end
    var13_upvw += 1
    if var56 == 0 then
        var56 = true
        tbl_upvr[arg1] = var56
        var56 = module_upvr
        var56._updateZoneDetails()
    end
    var56 = tbl_upvr_5
    local var60 = var56[arg2]
    var56 = tbl_upvr_5
    if not var60 or not (var60 + 1) then
    end
    var56[arg2] = 1
    var56 = arg1.activeTriggers
    var56[arg2] = true
    var56 = arg1.touchedConnectionActions[arg2]
    if var56 then
        var56 = arg1:_formTouchedConnection
        var56(arg2)
    end
    var56 = tbl_upvr_3[arg2]
    if var56 then
        var56 = module_upvr._formHeartbeat
        var56(arg2)
    end
end
function module_upvr.updateDetection(arg1) -- Line 121
    --[[ Upvalues[2]:
        [1]: Tracker_upvr (readonly)
        [2]: enums_upvr (readonly)
    ]]
    for i_4, v_4 in pairs({
        enterDetection = "_currentEnterDetection";
        exitDetection = "_currentExitDetection";
    }) do
        local var69 = arg1[i_4]
        if var69 == enums_upvr.Detection.Automatic then
            if 729000 < Tracker_upvr.getCombinedTotalVolumes() then
                var69 = enums_upvr.Detection.Centre
            else
                var69 = enums_upvr.Detection.WholeBody
            end
        end
        arg1[v_4] = var69
    end
end
local Heartbeat_upvr = RunService.Heartbeat
function module_upvr._formHeartbeat(arg1) -- Line 140
    --[[ Upvalues[6]:
        [1]: tbl_upvr_2 (readonly)
        [2]: Heartbeat_upvr (readonly)
        [3]: tbl_upvr (readonly)
        [4]: module_upvr (readonly)
        [5]: tbl_upvr_3 (readonly)
        [6]: enums_upvr (readonly)
    ]]
    if tbl_upvr_2[arg1] then
    else
        local const_number_upvw = 0
        tbl_upvr_2[arg1] = Heartbeat_upvr:Connect(function() -- Line 150
            --[[ Upvalues[6]:
                [1]: const_number_upvw (read and write)
                [2]: tbl_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: module_upvr (copied, readonly)
                [5]: tbl_upvr_3 (copied, readonly)
                [6]: enums_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            local var113
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [6] 5. Error Block 85 start (CF ANALYSIS FAILED)
            var113 = nil
            local var114
            for i_15, _ in pairs(tbl_upvr) do
                if i_15.activeTriggers[arg1] then
                    local accuracy = i_15.accuracy
                    if var113 == nil or accuracy < var113 then
                        var113 = accuracy
                    end
                    module_upvr.updateDetection(i_15)
                    local _currentEnterDetection = i_15._currentEnterDetection
                    if var114 == nil or _currentEnterDetection < var114 then
                    end
                end
            end
            local tbl_3 = {}
            for i_16, v_16 in pairs(tbl_upvr_3[arg1](_currentEnterDetection)) do
                local var124
                if var124 then
                    var124 = module_upvr.getGroup(i_16.settingsGroupName)
                end
                if var124 and var124.onlyEnterOnceExitedAll == true then
                    for i_17, _ in pairs(v_16) do
                        local var128 = tbl_3[i_16.settingsGroupName]
                        if not var128 then
                            var128 = {}
                            tbl_3[i_16.settingsGroupName] = var128
                        end
                        var128[i_17] = i_16
                    end
                    ;({})[i_16] = v_16
                end
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            for i_18, v_18 in pairs({}) do
                var124 = tbl_3[i_18.settingsGroupName]
                if var124 then
                    for i_19, _ in pairs(v_18) do
                        local var135 = var124[i_19]
                        if var135 and var135 ~= i_18 then
                            v_18[i_19] = nil
                        end
                    end
                end
            end
            local _ = {{}, {}}
            local _, _, _ = pairs(tbl_upvr)
            -- KONSTANTERROR: [6] 5. Error Block 85 end (CF ANALYSIS FAILED)
        end)
    end
end
function module_upvr._deregisterConnection(arg1, arg2) -- Line 249
    --[[ Upvalues[5]:
        [1]: var13_upvw (read and write)
        [2]: tbl_upvr_5 (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: tbl_upvr (readonly)
        [5]: module_upvr (readonly)
    ]]
    var13_upvw -= 1
    local var144
    if tbl_upvr_5[arg2] == 1 then
        tbl_upvr_5[arg2] = nil
        local var145 = tbl_upvr_2[arg2]
        if var145 then
            var144 = nil
            tbl_upvr_2[arg2] = var144
            var145:Disconnect()
            -- KONSTANTWARNING: GOTO [24] #23
        end
    else
        local var146 = tbl_upvr_5
        var146[arg2] -= 1
    end
    arg1.activeTriggers[arg2] = nil
    var144 = 0
    for _, _ in pairs(arg1.activeTriggers) do
        var144 += 1
    end
    if var144 == 0 then
        tbl_upvr[arg1] = nil
        module_upvr._updateZoneDetails()
    end
    if arg1.touchedConnectionActions[arg2] then
        arg1:_disconnectTouchedConnection(arg2)
    end
end
function module_upvr._updateZoneDetails() -- Line 271
    --[[ Upvalues[7]:
        [1]: tbl_upvw_2 (read and write)
        [2]: tbl_2_upvw (read and write)
        [3]: tbl_upvw (read and write)
        [4]: tbl_5_upvw (read and write)
        [5]: var6_upvw (read and write)
        [6]: tbl_upvr_4 (readonly)
        [7]: tbl_upvr (readonly)
    ]]
    tbl_upvw_2 = {}
    tbl_2_upvw = {}
    tbl_upvw = {}
    tbl_5_upvw = {}
    var6_upvw = 0
    for i_6, _ in pairs(tbl_upvr_4) do
        local var157 = tbl_upvr[i_6]
        if var157 then
            var6_upvw += i_6.volume
        end
        for _, v_7 in pairs(i_6.zoneParts) do
            if var157 then
                table.insert(tbl_upvw_2, v_7)
                tbl_2_upvw[v_7] = i_6
            end
            table.insert(tbl_upvw, v_7)
            tbl_5_upvw[v_7] = i_6
        end
    end
end
function module_upvr._getZonesAndItems(arg1, arg2, arg3, arg4, arg5) -- Line 293
    --[[ Upvalues[4]:
        [1]: tbl_4_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: Players_upvr (readonly)
        [4]: CollectiveWorldModel_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 81 start (CF ANALYSIS FAILED)
    local var173 = arg3
    if not var173 then
        for i_8, _ in pairs(arg2) do
            var173 += i_8.volume
        end
    end
    local module_4 = {}
    local var178 = tbl_4_upvr[arg1]
    if var178.totalVolume < var173 then
        for _, v_9 in pairs(var178.items) do
            local _
            for _, v_10 in pairs(module_upvr.getTouchingZones(v_9, arg4, arg5, var178)) do
                if not arg4 or v_10.activeTriggers[arg1] then
                    local var186 = v_9
                    if arg1 == "player" then
                        var186 = Players_upvr:GetPlayerFromCharacter(v_9)
                    end
                    if var186 then
                        local var187 = var186
                        local var188 = module_4[v_10]
                        if not var188 then
                            var188 = {}
                            module_4[v_10] = var188
                        end
                        local children_2 = var187:IsA("Player")
                        if children_2 then
                            children_2 = var187.Character
                        end
                        var188[var187] = children_2 or true
                    end
                end
            end
        end
        return module_4
    end
    local pairs_result1_13, pairs_result2_2, pairs_result3_4 = pairs(arg2)
    -- KONSTANTERROR: [0] 1. Error Block 81 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [167] 126. Error Block 46 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [167] 126. Error Block 46 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [79] 61. Error Block 23 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [79] 61. Error Block 23 end (CF ANALYSIS FAILED)
end
function module_upvr.getZones() -- Line 354
    --[[ Upvalues[1]:
        [1]: tbl_upvr_4 (readonly)
    ]]
    local module_3 = {}
    for i_11, _ in pairs(tbl_upvr_4) do
        table.insert(module_3, i_11)
    end
    return module_3
end
function module_upvr.getTouchingZones(arg1, arg2, arg3, arg4) -- Line 374
    --[[ Upvalues[7]:
        [1]: enums_upvr (readonly)
        [2]: Tracker_upvr (readonly)
        [3]: tbl_upvw_2 (read and write)
        [4]: tbl_upvw (read and write)
        [5]: tbl_2_upvw (read and write)
        [6]: tbl_5_upvw (read and write)
        [7]: CollectiveWorldModel_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 83 start (CF ANALYSIS FAILED)
    local var217
    local var218
    if arg4 then
        var217 = arg4.exitDetections[arg1]
        arg4.exitDetections[arg1] = nil
    end
    local var219
    local var220
    local tbl = {}
    if arg1:IsA("BasePart") then
        var219 = arg1.Size
        var220 = arg1.CFrame
        var218 = table.insert
        var218(tbl, arg1)
    else
        var218 = enums_upvr.Detection.WholeBody
        if (var217 or arg3) == var218 then
            var218 = Tracker_upvr.getCharacterSize(arg1)
            local any_getCharacterSize_result1, any_getCharacterSize_result2 = Tracker_upvr.getCharacterSize(arg1)
            var219 = any_getCharacterSize_result1
            var220 = any_getCharacterSize_result2
            any_getCharacterSize_result1 = arg1:GetChildren()
            tbl = any_getCharacterSize_result1
        else
            any_getCharacterSize_result1 = arg1:FindFirstChild("HumanoidRootPart")
            if any_getCharacterSize_result1 then
                var219 = any_getCharacterSize_result1.Size
                var220 = any_getCharacterSize_result1.CFrame
                table.insert(tbl, any_getCharacterSize_result1)
            end
        end
    end
    if not var219 or not var220 then
        any_getCharacterSize_result1 = {}
        return any_getCharacterSize_result1
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        any_getCharacterSize_result1 = tbl_upvw_2
        return any_getCharacterSize_result1
    end
    if not arg2 or not INLINED() then
        any_getCharacterSize_result1 = tbl_upvw
    end
    if not arg2 or not tbl_2_upvw then
    end
    local OverlapParams_new_result1 = OverlapParams.new()
    OverlapParams_new_result1.FilterType = Enum.RaycastFilterType.Whitelist
    OverlapParams_new_result1.MaxParts = #any_getCharacterSize_result1
    OverlapParams_new_result1.FilterDescendantsInstances = any_getCharacterSize_result1
    for _, v_12 in pairs(CollectiveWorldModel_upvr:GetPartBoundsInBox(var220, var219, OverlapParams_new_result1)) do
        local var229 = tbl_5_upvw[v_12]
        if var229 and var229.allZonePartsAreBlocks then
            ({})[var229] = true
            ;({})[v_12] = var229
        else
            table.insert({}, v_12)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    -- KONSTANTERROR: [0] 1. Error Block 83 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [192] 145. Error Block 62 start (CF ANALYSIS FAILED)
    local var230
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    for i_13, _ in pairs({}) do
        if var230 == nil or i_13._currentExitDetection < var230 then
            local _currentExitDetection = i_13._currentExitDetection
        end
        table.insert({}, i_13)
    end
    if _currentExitDetection and arg4 then
        arg4.exitDetections[arg1] = _currentExitDetection
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
    do
        return {}, {}
    end
    -- KONSTANTERROR: [192] 145. Error Block 62 end (CF ANALYSIS FAILED)
end
local module_2_upvr = {}
function module_upvr.setGroup(arg1, arg2) -- Line 491
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var244 = module_2_upvr[arg1]
    if not var244 then
        var244 = {}
        module_2_upvr[arg1] = var244
    end
    var244.onlyEnterOnceExitedAll = true
    var244._name = arg1
    var244._memberZones = {}
    if typeof(arg2) == "table" then
        for i_14, v_14 in pairs(arg2) do
            var244[i_14] = v_14
        end
    end
    return var244
end
function module_upvr.getGroup(arg1) -- Line 515
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    return module_2_upvr[arg1]
end
if RunService:IsClient() then
else
end
local var248_upvw
local formatted_upvr = string.format("ZonePlus%sContainer", "Server")
function module_upvr.getWorkspaceContainer() -- Line 521
    --[[ Upvalues[2]:
        [1]: var248_upvw (read and write)
        [2]: formatted_upvr (readonly)
    ]]
    local var250 = var248_upvw
    if not var250 then
        var250 = workspace:FindFirstChild(formatted_upvr)
    end
    if not var250 then
        local Folder = Instance.new("Folder")
        Folder.Name = formatted_upvr
        Folder.Parent = workspace
        var248_upvw = Folder
    end
    return Folder
end
return module_upvr
ModuleScript Tracker ReplicatedStorage.engine.modules.Zone.ZoneController.Tracker
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:57
-- Luau version 6, Types version 3
-- Time taken: 0.014624 seconds

local Signal = require(script.Parent.Parent.Signal)
local Janitor_upvr = require(script.Parent.Parent.Janitor)
local module_upvr = {}
module_upvr.__index = module_upvr
local tbl_upvr = {}
module_upvr.trackers = tbl_upvr
module_upvr.itemAdded = Signal.new()
module_upvr.itemRemoved = Signal.new()
module_upvr.bodyPartsToIgnore = {
    UpperTorso = true;
    LowerTorso = true;
    Torso = true;
    LeftHand = true;
    RightHand = true;
    LeftFoot = true;
    RightFoot = true;
}
function module_upvr.getCombinedTotalVolumes() -- Line 35
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local var10 = 0
    for i, _ in pairs(tbl_upvr) do
        var10 += i.totalVolume
    end
    return var10
end
function module_upvr.getCharacterSize(arg1) -- Line 43
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var14
    if arg1 then
        local Head = arg1:FindFirstChild("Head")
    end
    var14 = arg1
    if var14 then
        var14 = arg1:FindFirstChild("HumanoidRootPart")
    end
    if not var14 or not Head then
        return nil
    end
    if not Head:IsA("BasePart") then
    end
    local Y = var14.Size.Y
    local Size_2 = var14.Size
    return Size_2 * Vector3.new(2, 2, 1) + Vector3.new(0, Y, 0), var14.CFrame * CFrame.new(0, Y / 2 - Size_2.Y / 2, 0)
end
local Players_upvr = game:GetService("Players")
function module_upvr.new(arg1) -- Line 60
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: Janitor_upvr (readonly)
        [3]: Players_upvr (readonly)
        [4]: tbl_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local module_upvr_2 = {}
    setmetatable(module_upvr_2, module_upvr)
    module_upvr_2.name = arg1
    module_upvr_2.totalVolume = 0
    module_upvr_2.parts = {}
    module_upvr_2.partToItem = {}
    module_upvr_2.items = {}
    module_upvr_2.whitelistParams = nil
    module_upvr_2.characters = {}
    module_upvr_2.baseParts = {}
    module_upvr_2.exitDetections = {}
    module_upvr_2.janitor = Janitor_upvr.new()
    if arg1 == "player" then
        local function updateItem_upvr() -- Line 76, Named "updatePlayerCharacters"
            --[[ Upvalues[2]:
                [1]: Players_upvr (copied, readonly)
                [2]: module_upvr_2 (readonly)
            ]]
            for _, v_2 in pairs(Players_upvr:GetPlayers()) do
                local Character = v_2.Character
                if Character then
                    ({})[Character] = true
                end
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            module_upvr_2.characters = {}
        end
        local function playerAdded(arg1_2) -- Line 87
            --[[ Upvalues[2]:
                [1]: updateItem_upvr (readonly)
                [2]: module_upvr_2 (readonly)
            ]]
            local function charAdded_upvr(arg1_3) -- Line 88, Named "charAdded"
                --[[ Upvalues[2]:
                    [1]: updateItem_upvr (copied, readonly)
                    [2]: module_upvr_2 (copied, readonly)
                ]]
                local function trackChar_upvr() -- Line 89, Named "trackChar"
                    --[[ Upvalues[3]:
                        [1]: arg1_3 (readonly)
                        [2]: updateItem_upvr (copied, readonly)
                        [3]: module_upvr_2 (copied, readonly)
                    ]]
                    local Humanoid = arg1_3:WaitForChild("Humanoid", 0.1)
                    if arg1_3:WaitForChild("HumanoidRootPart", 0.1) == nil or Humanoid == nil or arg1_3:WaitForChild("Head", 0.1) == nil then
                    else
                        updateItem_upvr()
                        module_upvr_2:update()
                        for _, v_4 in pairs(Humanoid:GetChildren()) do
                            if v_4:IsA("NumberValue") then
                                v_4.Changed:Connect(function() -- Line 100
                                    --[[ Upvalues[1]:
                                        [1]: module_upvr_2 (copied, readonly)
                                    ]]
                                    module_upvr_2:update()
                                end)
                            end
                        end
                    end
                end
                if arg1_3:FindFirstChild("HumanoidRootPart") then
                    task.delay(0.1, trackChar_upvr)
                else
                    arg1_3.ChildAdded:Connect(function(arg1_4) -- Line 110
                        --[[ Upvalues[1]:
                            [1]: trackChar_upvr (readonly)
                        ]]
                        if arg1_4.Name == "HumanoidRootPart" and arg1_4:IsA("BasePart") then
                            task.delay(0.1, trackChar_upvr)
                        end
                    end)
                end
            end
            if arg1_2.Character then
                charAdded_upvr(arg1_2.Character)
            end
            arg1_2.CharacterAdded:Connect(function(arg1_5) -- Line 120
                --[[ Upvalues[1]:
                    [1]: charAdded_upvr (readonly)
                ]]
                charAdded_upvr(arg1_5)
            end)
            arg1_2.CharacterRemoving:Connect(function(arg1_6) -- Line 123
                --[[ Upvalues[1]:
                    [1]: module_upvr_2 (copied, readonly)
                ]]
                module_upvr_2.exitDetections[arg1_6] = nil
            end)
        end
        Players_upvr.PlayerAdded:Connect(playerAdded)
        for _, v_3 in pairs(Players_upvr:GetPlayers()) do
            playerAdded(v_3)
            local var47
        end
        Players_upvr.PlayerRemoving:Connect(function(arg1_7) -- Line 133
            --[[ Upvalues[2]:
                [1]: updateItem_upvr (readonly)
                [2]: module_upvr_2 (readonly)
            ]]
            updateItem_upvr()
            module_upvr_2:update()
        end)
    elseif arg1 == "item" then
        function updateItem_upvr(arg1_8, arg2) -- Line 140, Named "updateItem"
            --[[ Upvalues[1]:
                [1]: module_upvr_2 (readonly)
            ]]
            if arg1_8.isCharacter then
                module_upvr_2.characters[arg1_8.item] = arg2
            elseif arg1_8.isBasePart then
                module_upvr_2.baseParts[arg1_8.item] = arg2
            end
            module_upvr_2:update()
        end
        var47 = module_upvr.itemAdded
        var47 = var47:Connect
        var47(function(arg1_9) -- Line 148
            --[[ Upvalues[1]:
                [1]: module_upvr_2 (readonly)
            ]]
            if arg1_9.isCharacter then
                module_upvr_2.characters[arg1_9.item] = true
            elseif arg1_9.isBasePart then
                module_upvr_2.baseParts[arg1_9.item] = true
            end
            module_upvr_2:update()
        end)
        var47 = module_upvr.itemRemoved
        var47 = var47:Connect
        var47(function(arg1_10) -- Line 151
            --[[ Upvalues[1]:
                [1]: module_upvr_2 (readonly)
            ]]
            module_upvr_2.exitDetections[arg1_10.item] = nil
            if arg1_10.isCharacter then
                module_upvr_2.characters[arg1_10.item] = nil
            elseif arg1_10.isBasePart then
                module_upvr_2.baseParts[arg1_10.item] = nil
            end
            module_upvr_2:update()
        end)
    end
    updateItem_upvr = tbl_upvr
    updateItem_upvr[module_upvr_2] = true
    updateItem_upvr = task.defer
    updateItem_upvr(module_upvr_2.update, module_upvr_2)
    return module_upvr_2
end
function module_upvr._preventMultiFrameUpdates(arg1, arg2, ...) -- Line 165
    local _preventMultiDetails = arg1._preventMultiDetails
    if not _preventMultiDetails then
        _preventMultiDetails = {}
    end
    arg1._preventMultiDetails = _preventMultiDetails
    _preventMultiDetails = arg1._preventMultiDetails[arg2]
    local var52_upvw = _preventMultiDetails
    if not var52_upvw then
        var52_upvw = {
            calling = false;
            callsThisFrame = 0;
            updatedThisFrame = false;
        }
        arg1._preventMultiDetails[arg2] = var52_upvw
    end
    var52_upvw.callsThisFrame += 1
    if var52_upvw.callsThisFrame == 1 then
        local packed_upvr = table.pack(...)
        task.defer(function() -- Line 182
            --[[ Upvalues[4]:
                [1]: var52_upvw (read and write)
                [2]: arg1 (readonly)
                [3]: arg2 (readonly)
                [4]: packed_upvr (readonly)
            ]]
            var52_upvw.callsThisFrame = 0
            if 1 < var52_upvw.callsThisFrame then
                arg1[arg2](arg1, unpack(packed_upvr))
            end
        end)
        return false
    end
    return true
end
function module_upvr.update(arg1) -- Line 194
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Janitor_upvr (readonly)
    ]]
    if arg1:_preventMultiFrameUpdates("update") then
    else
        arg1.totalVolume = 0
        arg1.parts = {}
        arg1.partToItem = {}
        arg1.items = {}
        for i_5_upvr, _ in pairs(arg1.characters) do
            local any_getCharacterSize_result1 = module_upvr.getCharacterSize(i_5_upvr)
            if any_getCharacterSize_result1 then
                arg1.totalVolume += any_getCharacterSize_result1.X * any_getCharacterSize_result1.Y * any_getCharacterSize_result1.Z
                local any_add_result1_upvw = arg1.janitor:add(Janitor_upvr.new(), "destroy", "trackCharacterParts-"..arg1.name)
                local function _(arg1_11) -- Line 215, Named "updateTrackerOnParentChanged"
                    --[[ Upvalues[2]:
                        [1]: any_add_result1_upvw (read and write)
                        [2]: arg1 (readonly)
                    ]]
                    any_add_result1_upvw:add(arg1_11.AncestryChanged:Connect(function() -- Line 216
                        --[[ Upvalues[3]:
                            [1]: arg1_11 (readonly)
                            [2]: any_add_result1_upvw (copied, read and write)
                            [3]: arg1 (copied, readonly)
                        ]]
                        if not arg1_11:IsDescendantOf(game) and arg1_11.Parent == nil and any_add_result1_upvw ~= nil then
                            any_add_result1_upvw:destroy()
                            any_add_result1_upvw = nil
                            arg1:update()
                        end
                    end), "Disconnect")
                end
                for _, v_6_upvr in pairs(i_5_upvr:GetChildren()) do
                    if v_6_upvr:IsA("BasePart") and not module_upvr.bodyPartsToIgnore[v_6_upvr.Name] then
                        arg1.partToItem[v_6_upvr] = i_5_upvr
                        table.insert(arg1.parts, v_6_upvr)
                        any_add_result1_upvw:add(v_6_upvr.AncestryChanged:Connect(function() -- Line 216
                            --[[ Upvalues[3]:
                                [1]: v_6_upvr (readonly)
                                [2]: any_add_result1_upvw (read and write)
                                [3]: arg1 (readonly)
                            ]]
                            if not v_6_upvr:IsDescendantOf(game) and v_6_upvr.Parent == nil and any_add_result1_upvw ~= nil then
                                any_add_result1_upvw:destroy()
                                any_add_result1_upvw = nil
                                arg1:update()
                            end
                        end), "Disconnect")
                    end
                end
                any_add_result1_upvw:add(i_5_upvr.AncestryChanged:Connect(function() -- Line 216
                    --[[ Upvalues[3]:
                        [1]: i_5_upvr (readonly)
                        [2]: any_add_result1_upvw (read and write)
                        [3]: arg1 (readonly)
                    ]]
                    if not i_5_upvr:IsDescendantOf(game) and i_5_upvr.Parent == nil and any_add_result1_upvw ~= nil then
                        any_add_result1_upvw:destroy()
                        any_add_result1_upvw = nil
                        arg1:update()
                    end
                end), "Disconnect")
                table.insert(arg1.items, i_5_upvr)
            end
        end
        for i_7, _ in pairs(arg1.baseParts) do
            local Size = i_7.Size
            arg1.totalVolume += Size.X * Size.Y * Size.Z
            arg1.partToItem[i_7] = i_7
            table.insert(arg1.parts, i_7)
            table.insert(arg1.items, i_7)
        end
        arg1.whitelistParams = OverlapParams.new()
        arg1.whitelistParams.FilterType = Enum.RaycastFilterType.Whitelist
        arg1.whitelistParams.MaxParts = #arg1.parts
        arg1.whitelistParams.FilterDescendantsInstances = arg1.parts
    end
end
return module_upvr
ModuleScript CollectiveWorldModel ReplicatedStorage.engine.modules.Zone.ZoneController.CollectiveWorldModel
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:53:59
-- Luau version 6, Types version 3
-- Time taken: 0.002978 seconds

local module = {}
local var2_upvw
local RunService_upvr = game:GetService("RunService")
function module.setupWorldModel(arg1) -- Line 8
    --[[ Upvalues[2]:
        [1]: var2_upvw (read and write)
        [2]: RunService_upvr (readonly)
    ]]
    local var4
    if var4 then
        var4 = var2_upvw
        return var4
    end
    if RunService_upvr:IsClient() then
        var4 = "ReplicatedStorage"
    else
        var4 = "ServerStorage"
    end
    var2_upvw = Instance.new("WorldModel")
    var2_upvw.Name = "ZonePlusWorldModel"
    var2_upvw.Parent = game:GetService(var4)
    return var2_upvw
end
function module._getCombinedResults(arg1, arg2, ...) -- Line 22
    --[[ Upvalues[1]:
        [1]: var2_upvw (read and write)
    ]]
    local workspace_any_result1 = workspace[arg2](workspace, ...)
    if var2_upvw then
        for _, v in pairs(var2_upvw[arg2](var2_upvw, ...)) do
            table.insert(workspace_any_result1, v)
        end
    end
    return workspace_any_result1
end
function module.GetPartBoundsInBox(arg1, arg2, arg3, arg4) -- Line 33
    return arg1:_getCombinedResults("GetPartBoundsInBox", arg2, arg3, arg4)
end
function module.GetPartBoundsInRadius(arg1, arg2, arg3, arg4) -- Line 37
    return arg1:_getCombinedResults("GetPartBoundsInRadius", arg2, arg3, arg4)
end
function module.GetPartsInPart(arg1, arg2, arg3) -- Line 41
    return arg1:_getCombinedResults("GetPartsInPart", arg2, arg3)
end
return module
ModuleScript Promise ReplicatedStorage.engine.modules.Promise
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:00
-- Luau version 6, Types version 3
-- Time taken: 0.089498 seconds

local tbl_10_upvr = {
    __mode = 'k';
}
local function makeEnum(arg1, arg2) -- Line 13
    local module_9 = {}
    for _, v in ipairs(arg2) do
        module_9[v] = v
    end
    return setmetatable(module_9, {
        __index = function(arg1_2, arg2_2) -- Line 21, Named "__index"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("%s is not in %s!", arg2_2, arg1), 2)
        end;
        __newindex = function() -- Line 24, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("Creating new members in %s is not allowed!", arg1), 2)
        end;
    })
end
local var13_upvw = {
    Kind = makeEnum("Promise.Error.Kind", {"ExecutionError", "AlreadyCancelled", "NotResolvedInTime", "TimedOut"});
}
var13_upvw.__index = var13_upvw
local function new(arg1, arg2) -- Line 46
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    local var14 = arg1
    if not var14 then
        var14 = {}
    end
    local var15 = var14
    local module_8 = {
        error = tostring(var15.error) or "[This error has no error text.]";
        trace = var15.trace;
        context = var15.context;
        kind = var15.kind;
    }
    module_8.parent = arg2
    module_8.createdTick = os.clock()
    module_8.createdTrace = debug.traceback()
    return setmetatable(module_8, var13_upvw)
end
var13_upvw.new = new
local function is(arg1) -- Line 59
    if type(arg1) == "table" then
        local getmetatable_result1 = getmetatable(arg1)
        if type(getmetatable_result1) == "table" then
            local var20 = false
            if rawget(arg1, "error") ~= nil then
                if type(rawget(getmetatable_result1, "extend")) ~= "function" then
                    var20 = false
                else
                    var20 = true
                end
            end
            return var20
        end
    end
    return false
end
var13_upvw.is = is
function var13_upvw.isKind(arg1, arg2) -- Line 71
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    if arg2 == nil then
    else
    end
    assert(true, "Argument #2 to Promise.Error.isKind must not be nil")
    if var13_upvw.is(arg1) then
        if arg1.kind ~= arg2 then
        else
        end
    end
    return true
end
function var13_upvw.extend(arg1, arg2) -- Line 77
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    local var21 = arg2
    if not var21 then
        var21 = {}
    end
    local var22 = var21
    var21 = var22.kind
    local var23 = var21
    if not var23 then
        var23 = arg1.kind
    end
    var22.kind = var23
    return var13_upvw.new(var22, arg1)
end
function var13_upvw.getErrorChain(arg1) -- Line 85
    local module = {}
    module[1] = arg1
    while module[#module].parent do
        table.insert(module, module[#module].parent)
    end
    return module
end
local function __tostring(arg1) -- Line 95
    local module_10 = {string.format("-- Promise.Error(%s) --", arg1.kind or '?')}
    for _, v_2 in ipairs(arg1:getErrorChain()) do
        local tbl = {}
        local trace = v_2.trace
        if not trace then
            trace = v_2.error
        end
        tbl[1] = trace
        tbl[2] = v_2.context
        table.insert(module_10, table.concat(tbl, '\n'))
    end
    return table.concat(module_10, '\n')
end
var13_upvw.__tostring = __tostring
local function pack_upvr(...) -- Line 116, Named "pack"
    return select('#', ...), {...}
end
local function packResult_upvr(arg1, ...) -- Line 123, Named "packResult"
    return arg1, select('#', ...), {...}
end
local function _(arg1) -- Line 128, Named "makeErrorHandler"
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    if arg1 == nil then
    else
    end
    assert(true)
    return function(arg1_3) -- Line 131
        --[[ Upvalues[2]:
            [1]: var13_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_3) == "table" then
            return arg1_3
        end
        local module_3 = {}
        module_3.error = arg1_3
        module_3.kind = var13_upvw.Kind.ExecutionError
        module_3.trace = debug.traceback(tostring(arg1_3), 2)
        module_3.context = "Promise created at:\n\n"..arg1
        return var13_upvw.new(module_3)
    end
end
local function runExecutor_upvr(arg1, arg2, ...) -- Line 151, Named "runExecutor"
    --[[ Upvalues[2]:
        [1]: packResult_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local var39
    if arg1 == nil then
        var39 = false
    else
        var39 = true
    end
    assert(var39)
    return packResult_upvr(xpcall(arg2, function(arg1_4) -- Line 131
        --[[ Upvalues[2]:
            [1]: var13_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_4) == "table" then
            return arg1_4
        end
        local module_5 = {}
        module_5.error = arg1_4
        module_5.kind = var13_upvw.Kind.ExecutionError
        module_5.trace = debug.traceback(tostring(arg1_4), 2)
        module_5.context = "Promise created at:\n\n"..arg1
        return var13_upvw.new(module_5)
    end, ...))
end
local function _(arg1, arg2, arg3, arg4) -- Line 159, Named "createAdvancer"
    --[[ Upvalues[1]:
        [1]: runExecutor_upvr (readonly)
    ]]
    return function(...) -- Line 160
        --[[ Upvalues[5]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
            [4]: arg3 (readonly)
            [5]: arg4 (readonly)
        ]]
        local runExecutor_result1, runExecutor_result2_2, runExecutor_result3_2 = runExecutor_upvr(arg1, arg2, ...)
        if runExecutor_result1 then
            arg3(unpack(runExecutor_result3_2, 1, runExecutor_result2_2))
        else
            arg4(runExecutor_result3_2[1])
        end
    end
end
local function _(arg1) -- Line 171, Named "isEmpty"
    local var46
    if next(arg1) ~= nil then
        var46 = false
    else
        var46 = true
    end
    return var46
end
local module_6_upvr = {
    Error = var13_upvw;
    Status = makeEnum("Promise.Status", {"Started", "Resolved", "Rejected", "Cancelled"});
    _getTime = os.clock;
    _timeEvent = game:GetService("RunService").Heartbeat;
    prototype = {};
    __index = module_6_upvr.prototype;
}
function module_6_upvr._new(arg1, arg2, arg3) -- Line 196
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: tbl_10_upvr (readonly)
        [3]: runExecutor_upvr (readonly)
    ]]
    if arg3 ~= nil and not module_6_upvr.is(arg3) then
        error("Argument #2 to Promise.new must be a promise or nil", 2)
    end
    local module_2_upvr = {}
    module_2_upvr._source = arg1
    module_2_upvr._status = module_6_upvr.Status.Started
    module_2_upvr._values = nil
    module_2_upvr._valuesLength = -1
    module_2_upvr._unhandledRejection = true
    module_2_upvr._queuedResolve = {}
    module_2_upvr._queuedReject = {}
    module_2_upvr._queuedFinally = {}
    module_2_upvr._cancellationHook = nil
    module_2_upvr._parent = arg3
    module_2_upvr._consumers = setmetatable({}, tbl_10_upvr)
    if arg3 and arg3._status == module_6_upvr.Status.Started then
        arg3._consumers[module_2_upvr] = true
    end
    setmetatable(module_2_upvr, module_6_upvr)
    local function resolve(...) -- Line 241
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        module_2_upvr:_resolve(...)
    end
    local function reject(...) -- Line 245
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        module_2_upvr:_reject(...)
    end
    local function onCancel_upvr(arg1_5) -- Line 249, Named "onCancel"
        --[[ Upvalues[2]:
            [1]: module_2_upvr (readonly)
            [2]: module_6_upvr (copied, readonly)
        ]]
        if arg1_5 then
            if module_2_upvr._status == module_6_upvr.Status.Cancelled then
                arg1_5()
            else
                module_2_upvr._cancellationHook = arg1_5
            end
        end
        if module_2_upvr._status ~= module_6_upvr.Status.Cancelled then
        else
        end
        return true
    end
    coroutine.wrap(function() -- Line 261
        --[[ Upvalues[6]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: module_2_upvr (readonly)
            [3]: arg2 (readonly)
            [4]: resolve (readonly)
            [5]: reject (readonly)
            [6]: onCancel_upvr (readonly)
        ]]
        local runExecutor_result1_2, _, runExecutor_result3_4 = runExecutor_upvr(module_2_upvr._source, arg2, resolve, reject, onCancel_upvr)
        if not runExecutor_result1_2 then
            reject(runExecutor_result3_4[1])
        end
    end)()
    return module_2_upvr
end
function module_6_upvr.new(arg1) -- Line 278
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._new(debug.traceback(nil, 2), arg1)
end
function module_6_upvr.__tostring(arg1) -- Line 282
    return string.format("Promise(%s)", arg1:getStatus())
end
function module_6_upvr.defer(arg1) -- Line 289
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    local call_stack_upvr = debug.traceback(nil, 2)
    return module_6_upvr._new(call_stack_upvr, function(arg1_6, arg2, arg3) -- Line 292
        --[[ Upvalues[4]:
            [1]: module_6_upvr (copied, readonly)
            [2]: runExecutor_upvr (copied, readonly)
            [3]: call_stack_upvr (readonly)
            [4]: arg1 (readonly)
        ]]
        local var57_upvw
        var57_upvw = module_6_upvr._timeEvent:Connect(function() -- Line 294
            --[[ Upvalues[7]:
                [1]: var57_upvw (read and write)
                [2]: runExecutor_upvr (copied, readonly)
                [3]: call_stack_upvr (copied, readonly)
                [4]: arg1 (copied, readonly)
                [5]: arg1_6 (readonly)
                [6]: arg2 (readonly)
                [7]: arg3 (readonly)
            ]]
            var57_upvw:Disconnect()
            local runExecutor_upvr_result1, _, runExecutor_result3_6 = runExecutor_upvr(call_stack_upvr, arg1, arg1_6, arg2, arg3)
            if not runExecutor_upvr_result1 then
                arg2(runExecutor_result3_6[1])
            end
        end)
    end)
end
module_6_upvr.async = module_6_upvr.defer
function module_6_upvr.resolve(...) -- Line 313
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_4_upvr, pack_result2_upvr = pack_upvr(...)
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1) -- Line 315
        --[[ Upvalues[2]:
            [1]: pack_result2_upvr (readonly)
            [2]: pack_result1_4_upvr (readonly)
        ]]
        arg1(unpack(pack_result2_upvr, 1, pack_result1_4_upvr))
    end)
end
function module_6_upvr.reject(...) -- Line 323
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_upvr, pack_result2_2_upvr = pack_upvr(...)
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1, arg2) -- Line 325
        --[[ Upvalues[2]:
            [1]: pack_result2_2_upvr (readonly)
            [2]: pack_result1_upvr (readonly)
        ]]
        arg2(unpack(pack_result2_2_upvr, 1, pack_result1_upvr))
    end)
end
function module_6_upvr._try(arg1, arg2, ...) -- Line 334
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_upvr_3, pack_upvr_result2_upvr = pack_upvr(...)
    return module_6_upvr._new(arg1, function(arg1_7) -- Line 337
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_upvr_result2_upvr (readonly)
            [3]: pack_result1_upvr_3 (readonly)
        ]]
        arg1_7(arg2(unpack(pack_upvr_result2_upvr, 1, pack_result1_upvr_3)))
    end)
end
function module_6_upvr.try(...) -- Line 345
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._try(debug.traceback(nil, 2), ...)
end
function module_6_upvr._all(arg1, arg2, arg3) -- Line 354
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg2) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.all"), 3)
    end
    for i_3, v_3 in pairs(arg2) do
        if not module_6_upvr.is(v_3) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.all", tostring(i_3)), 3)
        end
    end
    if #arg2 == 0 or arg3 == 0 then
        return module_6_upvr.resolve({})
    end
    return module_6_upvr._new(arg1, function(arg1_8, arg2_3, arg3_2) -- Line 372
        --[[ Upvalues[2]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
        ]]
        local tbl_4_upvr = {}
        local var85_upvw = 0
        local var86_upvw = false
        local function cancel() -- Line 383
            --[[ Upvalues[1]:
                [1]: tbl_4_upvr (readonly)
            ]]
            for _, v_4 in ipairs(tbl_4_upvr) do
                v_4:cancel()
            end
        end
        local var92_upvw = 0
        local tbl_13_upvr = {}
        local function resolveOne(arg1_9, ...) -- Line 390
            --[[ Upvalues[7]:
                [1]: var86_upvw (read and write)
                [2]: var92_upvw (read and write)
                [3]: arg3 (copied, readonly)
                [4]: tbl_13_upvr (readonly)
                [5]: arg2 (copied, readonly)
                [6]: arg1_8 (readonly)
                [7]: tbl_4_upvr (readonly)
            ]]
            if var86_upvw then
            else
                var92_upvw += 1
                if arg3 == nil then
                    tbl_13_upvr[arg1_9] = ...
                else
                    tbl_13_upvr[var92_upvw] = ...
                end
                local var98 = arg3
                if not var98 then
                    var98 = #arg2
                end
                if var98 <= var92_upvw then
                    var86_upvw = true
                    arg1_8(tbl_13_upvr)
                    for _, v_24 in ipairs(tbl_4_upvr) do
                        v_24:cancel()
                    end
                end
            end
        end
        arg3_2(cancel)
        for i_5_upvr, v_5 in ipairs(arg2) do
            tbl_4_upvr[i_5_upvr] = v_5:andThen(function(...) -- Line 416
                --[[ Upvalues[2]:
                    [1]: resolveOne (readonly)
                    [2]: i_5_upvr (readonly)
                ]]
                resolveOne(i_5_upvr, ...)
            end, function(...) -- Line 419
                --[[ Upvalues[6]:
                    [1]: var85_upvw (read and write)
                    [2]: arg3 (copied, readonly)
                    [3]: arg2 (copied, readonly)
                    [4]: tbl_4_upvr (readonly)
                    [5]: var86_upvw (read and write)
                    [6]: arg2_3 (readonly)
                ]]
                var85_upvw += 1
                if arg3 == nil or #arg2 - var85_upvw < arg3 then
                    for _, v_6 in ipairs(tbl_4_upvr) do
                        v_6:cancel()
                    end
                    var86_upvw = true
                    arg2_3(...)
                end
            end)
        end
        if var86_upvw then
            for _, v_7 in ipairs(tbl_4_upvr) do
                v_7:cancel()
            end
        end
    end)
end
function module_6_upvr.all(arg1) -- Line 438
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._all(debug.traceback(nil, 2), arg1)
end
function module_6_upvr.fold(arg1, arg2, arg3) -- Line 442
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var115
    if type(arg1) ~= "table" then
        var115 = false
    else
        var115 = true
    end
    assert(var115, "Bad argument #1 to Promise.fold: must be a table")
    if type(arg2) ~= "function" then
        var115 = false
    else
        var115 = true
    end
    assert(var115, "Bad argument #2 to Promise.fold: must be a function")
    var115 = module_6_upvr
    var115 = arg3
    local any_resolve_result1_2_upvw = var115.resolve(var115)
    var115 = module_6_upvr.each
    local function _(arg1_10, arg2_4) -- Line 447
        --[[ Upvalues[2]:
            [1]: any_resolve_result1_2_upvw (read and write)
            [2]: arg2 (readonly)
        ]]
        any_resolve_result1_2_upvw = any_resolve_result1_2_upvw:andThen(function(arg1_11) -- Line 448
            --[[ Upvalues[3]:
                [1]: arg2 (copied, readonly)
                [2]: arg1_10 (readonly)
                [3]: arg2_4 (readonly)
            ]]
            return arg2(arg1_11, arg1_10, arg2_4)
        end)
    end
    var115 = var115(arg1, _):andThenReturn(any_resolve_result1_2_upvw)
    return var115
end
function module_6_upvr.some(arg1, arg2) -- Line 454
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var119
    if type(arg2) ~= "number" then
        var119 = false
    else
        var119 = true
    end
    assert(var119, "Bad argument #2 to Promise.some: must be a number")
    var119 = module_6_upvr
    var119 = debug.traceback(nil, 2)
    return var119._all(var119, arg1, arg2)
end
function module_6_upvr.any(arg1) -- Line 460
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._all(debug.traceback(nil, 2), arg1, 1):andThen(function(arg1_12) -- Line 461
        return arg1_12[1]
    end)
end
function module_6_upvr.allSettled(arg1) -- Line 466
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg1) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.allSettled"), 2)
    end
    for i_8, v_8 in pairs(arg1) do
        if not module_6_upvr.is(v_8) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.allSettled", tostring(i_8)), 2)
        end
    end
    if #arg1 == 0 then
        return module_6_upvr.resolve({})
    end
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1_13, arg2, arg3) -- Line 484
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_3_upvr = {}
        local var132_upvw = 0
        local tbl_12_upvr = {}
        local function resolveOne_upvr(arg1_14, ...) -- Line 494, Named "resolveOne"
            --[[ Upvalues[4]:
                [1]: var132_upvw (read and write)
                [2]: tbl_12_upvr (readonly)
                [3]: arg1 (copied, readonly)
                [4]: arg1_13 (readonly)
            ]]
            var132_upvw += 1
            tbl_12_upvr[arg1_14] = ...
            if #arg1 <= var132_upvw then
                arg1_13(tbl_12_upvr)
            end
        end
        arg3(function() -- Line 504
            --[[ Upvalues[1]:
                [1]: tbl_3_upvr (readonly)
            ]]
            for _, v_9 in ipairs(tbl_3_upvr) do
                v_9:cancel()
            end
        end)
        for i_10_upvr, v_10 in ipairs(arg1) do
            tbl_3_upvr[i_10_upvr] = v_10:finally(function(...) -- Line 514
                --[[ Upvalues[2]:
                    [1]: resolveOne_upvr (readonly)
                    [2]: i_10_upvr (readonly)
                ]]
                resolveOne_upvr(i_10_upvr, ...)
            end)
        end
    end)
end
function module_6_upvr.race(arg1) -- Line 526
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var148
    if type(arg1) ~= "table" then
        var148 = false
    else
        var148 = true
    end
    assert(var148, string.format("Please pass a list of promises to %s", "Promise.race"))
    var148 = arg1
    local pairs_result1, pairs_result2_3, pairs_result3 = pairs(var148)
    for i_11, v_11 in pairs_result1, pairs_result2_3, pairs_result3 do
        assert(module_6_upvr.is(v_11), string.format("Non-promise value passed into %s at index %s", "Promise.race", tostring(i_11)))
    end
    pairs_result2_3 = module_6_upvr
    pairs_result2_3 = debug.traceback(nil, 2)
    return pairs_result2_3._new(pairs_result2_3, function(arg1_15, arg2, arg3) -- Line 533
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_2_upvr = {}
        local var162_upvw = false
        local function cancel() -- Line 537
            --[[ Upvalues[1]:
                [1]: tbl_2_upvr (readonly)
            ]]
            for _, v_12 in ipairs(tbl_2_upvr) do
                v_12:cancel()
            end
        end
        local function _(arg1_16) -- Line 543, Named "finalize"
            --[[ Upvalues[2]:
                [1]: tbl_2_upvr (readonly)
                [2]: var162_upvw (read and write)
            ]]
            return function(...) -- Line 544
                --[[ Upvalues[3]:
                    [1]: tbl_2_upvr (copied, readonly)
                    [2]: var162_upvw (copied, read and write)
                    [3]: arg1_16 (readonly)
                ]]
                for _, v_13 in ipairs(tbl_2_upvr) do
                    v_13:cancel()
                end
                var162_upvw = true
                return arg1_16(...)
            end
        end
        if arg3(function(...) -- Line 544
            --[[ Upvalues[3]:
                [1]: tbl_2_upvr (readonly)
                [2]: var162_upvw (read and write)
                [3]: arg2 (readonly)
            ]]
            for _, v_14 in ipairs(tbl_2_upvr) do
                v_14:cancel()
            end
            var162_upvw = true
            return arg2(...)
        end) then
        else
            for i_25, v_25 in ipairs(arg1) do
                tbl_2_upvr[i_25] = v_25:andThen(function(...) -- Line 544
                    --[[ Upvalues[3]:
                        [1]: tbl_2_upvr (readonly)
                        [2]: var162_upvw (read and write)
                        [3]: arg1_15 (readonly)
                    ]]
                    for _, v_26 in ipairs(tbl_2_upvr) do
                        v_26:cancel()
                    end
                    var162_upvw = true
                    return arg1_15(...)
                end, function(...) -- Line 544
                    --[[ Upvalues[3]:
                        [1]: tbl_2_upvr (readonly)
                        [2]: var162_upvw (read and write)
                        [3]: arg2 (readonly)
                    ]]
                    for _, v_27 in ipairs(tbl_2_upvr) do
                        v_27:cancel()
                    end
                    var162_upvw = true
                    return arg2(...)
                end)
            end
            if var162_upvw then
                for _, v_28 in ipairs(tbl_2_upvr) do
                    v_28:cancel()
                end
            end
        end
    end)
end
function module_6_upvr.each(arg1, arg2) -- Line 573
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local var198
    if type(arg1) ~= "table" then
        var198 = false
    else
        var198 = true
    end
    assert(var198, string.format("Please pass a list of promises to %s", "Promise.each"))
    if type(arg2) ~= "function" then
        var198 = false
    else
        var198 = true
    end
    assert(var198, string.format("Please pass a handler function to %s!", "Promise.each"))
    var198 = module_6_upvr
    var198 = debug.traceback(nil, 2)
    return var198._new(var198, function(arg1_17, arg2_5, arg3) -- Line 577
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: var13_upvw (copied, read and write)
            [4]: arg2 (readonly)
        ]]
        local tbl_7 = {}
        local tbl_6_upvr = {}
        local var266_upvw = false
        local function cancel() -- Line 583
            --[[ Upvalues[1]:
                [1]: tbl_6_upvr (readonly)
            ]]
            for _, v_15 in ipairs(tbl_6_upvr) do
                v_15:cancel()
            end
        end
        arg3(function() -- Line 589
            --[[ Upvalues[2]:
                [1]: var266_upvw (read and write)
                [2]: tbl_6_upvr (readonly)
            ]]
            var266_upvw = true
            for _, v_16 in ipairs(tbl_6_upvr) do
                v_16:cancel()
            end
        end)
        for i_17, v_17 in ipairs(arg1) do
            if module_6_upvr.is(v_17) then
                if v_17:getStatus() == module_6_upvr.Status.Cancelled then
                    for _, v_18 in ipairs(tbl_6_upvr) do
                        v_18:cancel()
                    end
                    return arg2_5(var13_upvw.new({
                        error = "Promise is cancelled";
                        kind = var13_upvw.Kind.AlreadyCancelled;
                        context = string.format("The Promise that was part of the array at index %d passed into Promise.each was already cancelled when Promise.each began.\n\nThat Promise was created at:\n\n%s", i_17, v_17._source);
                    }))
                end
                if v_17:getStatus() == module_6_upvr.Status.Rejected then
                    for _, v_19 in ipairs(tbl_6_upvr) do
                        v_19:cancel()
                    end
                    return arg2_5(select(2, v_17:await()))
                end
                local any_andThen_result1_2 = v_17:andThen(function(...) -- Line 622
                    return ...
                end)
                table.insert(tbl_6_upvr, any_andThen_result1_2)
                ;({})[i_17] = any_andThen_result1_2
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[i_17] = v_17
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        for i_20, v_20 in ipairs({}) do
            if module_6_upvr.is(v_20) then
                local any_await_result1_2, any_await_result2_2 = v_20:await()
                v_20 = any_await_result2_2
                if not any_await_result1_2 then
                    for _, v_21 in ipairs(tbl_6_upvr) do
                        v_21:cancel()
                    end
                    return arg2_5(v_20)
                end
            end
            if var266_upvw then return end
            local any_resolve_result1 = module_6_upvr.resolve(arg2(v_20, i_20))
            table.insert(tbl_6_upvr, any_resolve_result1)
            local any_await_result1_4, any_await_result2_4 = any_resolve_result1:await()
            if not any_await_result1_4 then
                for _, v_22 in ipairs(tbl_6_upvr) do
                    v_22:cancel()
                end
                return arg2_5(any_await_result2_4)
            end
            tbl_7[i_20] = any_await_result2_4
        end
        arg1_17(tbl_7)
    end)
end
function module_6_upvr.is(arg1) -- Line 669
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg1) ~= "table" then
        return false
    end
    local getmetatable_result1_4 = getmetatable(arg1)
    if getmetatable_result1_4 == module_6_upvr then
        do
            return true
        end
        local var307
    end
    if getmetatable_result1_4 == nil then
        if type(arg1.andThen) ~= "function" then
            var307 = false
        else
            var307 = true
        end
        return var307
    end
    if type(getmetatable_result1_4) == "table" then
        if type(rawget(getmetatable_result1_4, "__index")) == "table" then
            if type(rawget(rawget(getmetatable_result1_4, "__index"), "andThen")) == "function" then
                return true
            end
        end
    end
    return false
end
function module_6_upvr.promisify(arg1) -- Line 697
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return function(...) -- Line 698
        --[[ Upvalues[2]:
            [1]: module_6_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        return module_6_upvr._try(debug.traceback(nil, 2), arg1, ...)
    end
end
local var309_upvw
local var310_upvw
function module_6_upvr.delay(arg1) -- Line 713
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: var309_upvw (read and write)
        [3]: var310_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var311
    if type(arg1) ~= "number" then
        var311 = false
    else
        var311 = true
    end
    assert(var311, "Bad argument #1 to Promise.delay, must be a number.")
    if (1/60) > arg1 or arg1 == math.huge then
    end
    var311 = module_6_upvr
    var311 = debug.traceback(nil, 2)
    local const_number_upvw = (1/60)
    return var311._new(var311, function(arg1_18, arg2, arg3) -- Line 721
        --[[ Upvalues[4]:
            [1]: module_6_upvr (copied, readonly)
            [2]: const_number_upvw (read and write)
            [3]: var309_upvw (copied, read and write)
            [4]: var310_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 29 start (CF ANALYSIS FAILED)
        local any__getTime_result1 = module_6_upvr._getTime()
        local var315 = any__getTime_result1 + const_number_upvw
        local tbl_5_upvr = {}
        tbl_5_upvr.resolve = arg1_18
        tbl_5_upvr.startTime = any__getTime_result1
        tbl_5_upvr.endTime = var315
        if var309_upvw == nil then
            var310_upvw = tbl_5_upvr
            var309_upvw = module_6_upvr._timeEvent:Connect(function() -- Line 733
                --[[ Upvalues[3]:
                    [1]: module_6_upvr (copied, readonly)
                    [2]: var310_upvw (copied, read and write)
                    [3]: var309_upvw (copied, read and write)
                ]]
                while var310_upvw ~= nil and var310_upvw.endTime < module_6_upvr._getTime() do
                    local var318 = var310_upvw
                    var310_upvw = var318.next
                    if var310_upvw == nil then
                        var309_upvw:Disconnect()
                        var309_upvw = nil
                    else
                        var310_upvw.previous = nil
                    end
                    var318.resolve(module_6_upvr._getTime() - var318.startTime)
                end
            end)
        else
            local var319
            if var310_upvw.endTime < var315 then
                local next_2 = var310_upvw.next
                while next_2 ~= nil and next_2.endTime < var315 do
                    local var321 = next_2
                    local next = var321.next
                end
                var321.next = tbl_5_upvr
                tbl_5_upvr.previous = var321
                if next ~= nil then
                    tbl_5_upvr.next = next
                    next.previous = tbl_5_upvr
                    -- KONSTANTWARNING: GOTO [65] #45
                end
            else
                tbl_5_upvr.next = var310_upvw
                var310_upvw.previous = tbl_5_upvr
                var310_upvw = tbl_5_upvr
            end
        end
        -- KONSTANTERROR: [0] 1. Error Block 29 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [65] 45. Error Block 14 start (CF ANALYSIS FAILED)
        arg3(function() -- Line 778
            --[[ Upvalues[3]:
                [1]: tbl_5_upvr (readonly)
                [2]: var310_upvw (copied, read and write)
                [3]: var309_upvw (copied, read and write)
            ]]
            local next_3 = tbl_5_upvr.next
            if var310_upvw == tbl_5_upvr then
                if next_3 == nil then
                    var309_upvw:Disconnect()
                    var309_upvw = nil
                else
                    next_3.previous = nil
                end
                var310_upvw = next_3
            else
                local previous = tbl_5_upvr.previous
                previous.next = next_3
                if next_3 ~= nil then
                    next_3.previous = previous
                end
            end
        end)
        -- KONSTANTERROR: [65] 45. Error Block 14 end (CF ANALYSIS FAILED)
    end)
end
module_6_upvr.prototype.timeout = function(arg1, arg2, arg3) -- Line 807, Named "timeout"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local module_7 = {}
    local call_stack_upvr_2 = debug.traceback(nil, 2)
    module_7[1] = module_6_upvr.delay(arg2):andThen(function() -- Line 811
        --[[ Upvalues[5]:
            [1]: module_6_upvr (copied, readonly)
            [2]: arg3 (readonly)
            [3]: var13_upvw (copied, read and write)
            [4]: arg2 (readonly)
            [5]: call_stack_upvr_2 (readonly)
        ]]
        local var329
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var329 = var329(tbl_9)
            tbl_9.context = string.format("Timeout of %d seconds exceeded.\n:timeout() called at:\n\n%s", arg2, call_stack_upvr_2)
            tbl_9.error = "Timed out"
            tbl_9.kind = var13_upvw.Kind.TimedOut
            local tbl_9 = {}
            var329 = var13_upvw.new
            return var329
        end
        if arg3 ~= nil or not INLINED() then
            var329 = arg3
        end
        return module_6_upvr.reject(var329)
    end)
    module_7[2] = arg1
    return module_6_upvr.race(module_7)
end
module_6_upvr.prototype.getStatus = function(arg1) -- Line 826, Named "getStatus"
    return arg1._status
end
module_6_upvr.prototype._andThen = function(arg1, arg2, arg3, arg4) -- Line 835, Named "_andThen"
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
        [3]: var13_upvw (read and write)
    ]]
    arg1._unhandledRejection = false
    return module_6_upvr._new(arg2, function(arg1_19, arg2_6) -- Line 839
        --[[ Upvalues[7]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
            [3]: runExecutor_upvr (copied, readonly)
            [4]: arg4 (readonly)
            [5]: arg1 (readonly)
            [6]: module_6_upvr (copied, readonly)
            [7]: var13_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var333
        if arg3 then
            function var333(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg3 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_result1_4, runExecutor_upvr_result2_2, runExecutor_result3 = runExecutor_upvr(arg2, arg3, ...)
                if runExecutor_result1_4 then
                    arg1_19(unpack(runExecutor_result3, 1, runExecutor_upvr_result2_2))
                else
                    arg2_6(runExecutor_result3[1])
                end
            end
        end
        if arg4 then
            local function var337(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg4 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_result1_5, runExecutor_upvr_result2, runExecutor_result3_3 = runExecutor_upvr(arg2, arg4, ...)
                if runExecutor_result1_5 then
                    arg1_19(unpack(runExecutor_result3_3, 1, runExecutor_upvr_result2))
                else
                    arg2_6(runExecutor_result3_3[1])
                end
            end
        end
        if arg1._status == module_6_upvr.Status.Started then
            table.insert(arg1._queuedResolve, var333)
            table.insert(arg1._queuedReject, var337)
        else
            if arg1._status == module_6_upvr.Status.Resolved then
                var333(unpack(arg1._values, 1, arg1._valuesLength))
                return
            end
            if arg1._status == module_6_upvr.Status.Rejected then
                var337(unpack(arg1._values, 1, arg1._valuesLength))
                return
            end
            if arg1._status == module_6_upvr.Status.Cancelled then
                arg2_6(var13_upvw.new({
                    error = "Promise is cancelled";
                    kind = var13_upvw.Kind.AlreadyCancelled;
                    context = "Promise created at\n\n"..arg2;
                }))
            end
        end
    end, arg1)
end
module_6_upvr.prototype.andThen = function(arg1, arg2, arg3) -- Line 885, Named "andThen"
    local var342
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var342 = false
        else
            var342 = true
        end
    end
    assert(var342, string.format("Please pass a handler function to %s!", "Promise:andThen"))
    var342 = true
    if arg3 ~= nil then
        if type(arg3) ~= "function" then
            var342 = false
        else
            var342 = true
        end
    end
    assert(var342, string.format("Please pass a handler function to %s!", "Promise:andThen"))
    return arg1:_andThen(debug.traceback(nil, 2), arg2, arg3)
end
module_6_upvr.prototype.catch = function(arg1, arg2) -- Line 901, Named "catch"
    local var343 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var343 = false
        else
            var343 = true
        end
    end
    assert(var343, string.format("Please pass a handler function to %s!", "Promise:catch"))
    return arg1:_andThen(debug.traceback(nil, 2), nil, arg2)
end
module_6_upvr.prototype.tap = function(arg1, arg2) -- Line 913, Named "tap"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    local var344
    if type(arg2) ~= "function" then
        var344 = false
    else
        var344 = true
    end
    assert(var344, string.format("Please pass a handler function to %s!", "Promise:tap"))
    return arg1:_andThen(debug.traceback(nil, 2), function(...) -- Line 915
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: pack_upvr (copied, readonly)
        ]]
        local arg2_result1 = arg2(...)
        if module_6_upvr.is(arg2_result1) then
            local pack_upvr_result1_upvr_4, pack_result2_9_upvr = pack_upvr(...)
            return arg2_result1:andThen(function() -- Line 920
                --[[ Upvalues[2]:
                    [1]: pack_result2_9_upvr (readonly)
                    [2]: pack_upvr_result1_upvr_4 (readonly)
                ]]
                return unpack(pack_result2_9_upvr, 1, pack_upvr_result1_upvr_4)
            end)
        end
        pack_upvr_result1_upvr_4 = ...
        return pack_upvr_result1_upvr_4
    end)
end
module_6_upvr.prototype.andThenCall = function(arg1, arg2, ...) -- Line 932, Named "andThenCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var350
    if type(arg2) ~= "function" then
        var350 = false
    else
        var350 = true
    end
    assert(var350, string.format("Please pass a handler function to %s!", "Promise:andThenCall"))
    var350 = ...
    local pack_upvr_result1_upvr_3, pack_result2_5_upvr = pack_upvr(var350)
    return arg1:_andThen(debug.traceback(nil, 2), function() -- Line 935
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_5_upvr (readonly)
            [3]: pack_upvr_result1_upvr_3 (readonly)
        ]]
        return arg2(unpack(pack_result2_5_upvr, 1, pack_upvr_result1_upvr_3))
    end)
end
module_6_upvr.prototype.andThenReturn = function(arg1, ...) -- Line 943, Named "andThenReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_upvr_result1_upvr_2, pack_result2_7_upvr = pack_upvr(...)
    return arg1:_andThen(debug.traceback(nil, 2), function() -- Line 945
        --[[ Upvalues[2]:
            [1]: pack_result2_7_upvr (readonly)
            [2]: pack_upvr_result1_upvr_2 (readonly)
        ]]
        return unpack(pack_result2_7_upvr, 1, pack_upvr_result1_upvr_2)
    end)
end
module_6_upvr.prototype.cancel = function(arg1) -- Line 954, Named "cancel"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._status = module_6_upvr.Status.Cancelled
        if arg1._cancellationHook then
            arg1._cancellationHook()
        end
        if arg1._parent then
            arg1._parent:_consumerCancelled(arg1)
        end
        for i_29 in pairs(arg1._consumers) do
            i_29:cancel()
        end
        arg1:_finalize()
    end
end
module_6_upvr.prototype._consumerCancelled = function(arg1, arg2) -- Line 980, Named "_consumerCancelled"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._consumers[arg2] = nil
        if next(arg1._consumers) == nil then
            arg1:cancel()
        end
    end
end
module_6_upvr.prototype._finally = function(arg1, arg2, arg3, arg4) -- Line 996, Named "_finally"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    if not arg4 then
        arg1._unhandledRejection = false
    end
    return module_6_upvr._new(arg2, function(arg1_20, arg2_7) -- Line 1002
        --[[ Upvalues[6]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
            [3]: runExecutor_upvr (copied, readonly)
            [4]: arg4 (readonly)
            [5]: arg1 (readonly)
            [6]: module_6_upvr (copied, readonly)
        ]]
        local var367_upvr
        if arg3 then
            function var367_upvr(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg3 (readonly)
                    [4]: arg1_20 (readonly)
                    [5]: arg2_7 (readonly)
                ]]
                local runExecutor_result1_3, runExecutor_result2, runExecutor_result3_5 = runExecutor_upvr(arg2, arg3, ...)
                if runExecutor_result1_3 then
                    arg1_20(unpack(runExecutor_result3_5, 1, runExecutor_result2))
                else
                    arg2_7(runExecutor_result3_5[1])
                end
            end
        end
        if arg4 then
            function var367_upvr(...) -- Line 1015
                --[[ Upvalues[4]:
                    [1]: arg1 (copied, readonly)
                    [2]: module_6_upvr (copied, readonly)
                    [3]: arg1_20 (readonly)
                    [4]: var367_upvr (readonly)
                ]]
                if arg1._status == module_6_upvr.Status.Rejected then
                    return arg1_20(arg1)
                end
                return var367_upvr(...)
            end
        end
        if arg1._status == module_6_upvr.Status.Started then
            table.insert(arg1._queuedFinally, var367_upvr)
        else
            var367_upvr(arg1._status)
        end
    end, arg1)
end
module_6_upvr.prototype.finally = function(arg1, arg2) -- Line 1034, Named "finally"
    local var368 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var368 = false
        else
            var368 = true
        end
    end
    assert(var368, string.format("Please pass a handler function to %s!", "Promise:finally"))
    return arg1:_finally(debug.traceback(nil, 2), arg2)
end
module_6_upvr.prototype.finallyCall = function(arg1, arg2, ...) -- Line 1045, Named "finallyCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var369
    if type(arg2) ~= "function" then
        var369 = false
    else
        var369 = true
    end
    assert(var369, string.format("Please pass a handler function to %s!", "Promise:finallyCall"))
    var369 = ...
    local pack_result1_upvr_2, pack_result2_8_upvr = pack_upvr(var369)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1048
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_8_upvr (readonly)
            [3]: pack_result1_upvr_2 (readonly)
        ]]
        return arg2(unpack(pack_result2_8_upvr, 1, pack_result1_upvr_2))
    end)
end
module_6_upvr.prototype.finallyReturn = function(arg1, ...) -- Line 1056, Named "finallyReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_result1_5_upvr, pack_result2_6_upvr = pack_upvr(...)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1058
        --[[ Upvalues[2]:
            [1]: pack_result2_6_upvr (readonly)
            [2]: pack_result1_5_upvr (readonly)
        ]]
        return unpack(pack_result2_6_upvr, 1, pack_result1_5_upvr)
    end)
end
module_6_upvr.prototype.done = function(arg1, arg2) -- Line 1066, Named "done"
    local var376 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var376 = false
        else
            var376 = true
        end
    end
    assert(var376, string.format("Please pass a handler function to %s!", "Promise:done"))
    return arg1:_finally(debug.traceback(nil, 2), arg2, true)
end
module_6_upvr.prototype.doneCall = function(arg1, arg2, ...) -- Line 1077, Named "doneCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var377
    if type(arg2) ~= "function" then
        var377 = false
    else
        var377 = true
    end
    assert(var377, string.format("Please pass a handler function to %s!", "Promise:doneCall"))
    var377 = ...
    local pack_result1_3_upvr, pack_result2_3_upvr = pack_upvr(var377)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1080
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_3_upvr (readonly)
            [3]: pack_result1_3_upvr (readonly)
        ]]
        return arg2(unpack(pack_result2_3_upvr, 1, pack_result1_3_upvr))
    end, true)
end
module_6_upvr.prototype.doneReturn = function(arg1, ...) -- Line 1088, Named "doneReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_upvr_result1_upvr, pack_result2_10_upvr = pack_upvr(...)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1090
        --[[ Upvalues[2]:
            [1]: pack_result2_10_upvr (readonly)
            [2]: pack_upvr_result1_upvr (readonly)
        ]]
        return unpack(pack_result2_10_upvr, 1, pack_upvr_result1_upvr)
    end, true)
end
module_6_upvr.prototype.awaitStatus = function(arg1) -- Line 1100, Named "awaitStatus"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    arg1._unhandledRejection = false
    if arg1._status == module_6_upvr.Status.Started then
        local BindableEvent_upvr = Instance.new("BindableEvent")
        arg1:finally(function() -- Line 1106
            --[[ Upvalues[1]:
                [1]: BindableEvent_upvr (readonly)
            ]]
            BindableEvent_upvr:Fire()
        end)
        BindableEvent_upvr.Event:Wait()
        BindableEvent_upvr:Destroy()
    end
    BindableEvent_upvr = arg1._status
    if BindableEvent_upvr == module_6_upvr.Status.Resolved then
        BindableEvent_upvr = arg1._status
        return BindableEvent_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    BindableEvent_upvr = arg1._status
    if BindableEvent_upvr == module_6_upvr.Status.Rejected then
        BindableEvent_upvr = arg1._status
        return BindableEvent_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    BindableEvent_upvr = arg1._status
    return BindableEvent_upvr
end
local function awaitHelper_upvr(arg1, ...) -- Line 1123, Named "awaitHelper"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var386
    if arg1 ~= module_6_upvr.Status.Resolved then
        var386 = false
    else
        var386 = true
    end
    return var386, ...
end
module_6_upvr.prototype.await = function(arg1) -- Line 1130, Named "await"
    --[[ Upvalues[1]:
        [1]: awaitHelper_upvr (readonly)
    ]]
    return awaitHelper_upvr(arg1:awaitStatus())
end
local function expectHelper_upvr(arg1, ...) -- Line 1134, Named "expectHelper"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local Status = module_6_upvr.Status
    if arg1 ~= Status.Resolved then
        if ... == nil then
            Status = "Expected Promise rejected with no value."
        else
            Status = ...
        end
        error(Status, 3)
    end
    return ...
end
module_6_upvr.prototype.expect = function(arg1) -- Line 1146, Named "expect"
    --[[ Upvalues[1]:
        [1]: expectHelper_upvr (readonly)
    ]]
    return expectHelper_upvr(arg1:awaitStatus())
end
module_6_upvr.prototype.awaitValue = module_6_upvr.prototype.expect
module_6_upvr.prototype._unwrap = function(arg1) -- Line 1160, Named "_unwrap"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var388
    if var388 == module_6_upvr.Status.Started then
        var388 = error
        var388("Promise has not resolved or rejected.", 2)
    end
    if arg1._status ~= module_6_upvr.Status.Resolved then
        var388 = false
    else
        var388 = true
    end
    return var388, unpack(arg1._values, 1, arg1._valuesLength)
end
module_6_upvr.prototype._resolve = function(arg1, ...) -- Line 1170, Named "_resolve"
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
        [3]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
        if module_6_upvr.is(...) then
            ...:_consumerCancelled(arg1)
        end
    else
        if module_6_upvr.is(...) then
            if 1 < select('#', ...) then
                warn(string.format("When returning a Promise from andThen, extra arguments are discarded! See:\n\n%s", arg1._source))
            end
            local var391_upvr = ...
            local any_andThen_result1 = var391_upvr:andThen(function(...) -- Line 1193
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:_resolve(...)
            end, function(...) -- Line 1196
                --[[ Upvalues[3]:
                    [1]: var391_upvr (readonly)
                    [2]: var13_upvw (copied, read and write)
                    [3]: arg1 (readonly)
                ]]
                local _1 = var391_upvr._values[1]
                if var391_upvr._error then
                    _1 = var13_upvw.new({
                        error = var391_upvr._error;
                        kind = var13_upvw.Kind.ExecutionError;
                        context = "[No stack trace available as this Promise originated from an older version of the Promise library (< v2)]";
                    })
                end
                if var13_upvw.isKind(_1, var13_upvw.Kind.ExecutionError) then
                    return arg1:_reject(_1:extend({
                        error = "This Promise was chained to a Promise that errored.";
                        trace = "";
                        context = string.format("The Promise at:\n\n%s\n...Rejected because it was chained to the following Promise, which encountered an error:\n", arg1._source);
                    }))
                end
                arg1:_reject(...)
            end)
            if any_andThen_result1._status == module_6_upvr.Status.Cancelled then
                arg1:cancel()
            elseif any_andThen_result1._status == module_6_upvr.Status.Started then
                arg1._parent = any_andThen_result1
                any_andThen_result1._consumers[arg1] = true
            end
        end
        var391_upvr = module_6_upvr.Status.Resolved
        arg1._status = var391_upvr
        var391_upvr = pack_upvr(...)
        local pack_result1_2, pack_result2_4 = pack_upvr(...)
        arg1._valuesLength = pack_result1_2
        arg1._values = pack_result2_4
        pack_result1_2 = ipairs(arg1._queuedResolve)
        local ipairs_result1, ipairs_result2_7, ipairs_result3 = ipairs(arg1._queuedResolve)
        for _, v_29 in ipairs_result1, ipairs_result2_7, ipairs_result3 do
            coroutine.wrap(v_29)(...)
        end
        ipairs_result1 = arg1:_finalize
        ipairs_result1()
    end
end
module_6_upvr.prototype._reject = function(arg1, ...) -- Line 1245, Named "_reject"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._status = module_6_upvr.Status.Rejected
        local pack_result1, pack_result2 = pack_upvr(...)
        arg1._valuesLength = pack_result1
        arg1._values = pack_result2
        if next(arg1._queuedReject) ~= nil then
            pack_result1 = false
        else
            pack_result1 = true
        end
        if not pack_result1 then
            for _, v_30 in ipairs(arg1._queuedReject) do
                coroutine.wrap(v_30)(...)
            end
        else
            local tostring_result1_upvr = tostring(...)
            coroutine.wrap(function() -- Line 1267
                --[[ Upvalues[3]:
                    [1]: module_6_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: tostring_result1_upvr (readonly)
                ]]
                module_6_upvr._timeEvent:Wait()
                if not arg1._unhandledRejection then
                else
                    if module_6_upvr.TEST then return end
                    warn(string.format("Unhandled Promise rejection:\n\n%s\n\n%s", tostring_result1_upvr, arg1._source))
                end
            end)()
        end
        tostring_result1_upvr = arg1:_finalize
        tostring_result1_upvr()
    end
end
module_6_upvr.prototype._finalize = function(arg1) -- Line 1299, Named "_finalize"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    for _, v_23 in ipairs(arg1._queuedFinally) do
        coroutine.wrap(v_23)(arg1._status)
    end
    arg1._queuedFinally = nil
    arg1._queuedReject = nil
    arg1._queuedResolve = nil
    if not module_6_upvr.TEST then
        arg1._parent = nil
        arg1._consumers = nil
    end
end
module_6_upvr.prototype.now = function(arg1, arg2) -- Line 1322, Named "now"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local call_stack = debug.traceback(nil, 2)
    local var420
    if arg1:getStatus() == var420 then
        return arg1:_andThen(call_stack, function(...) -- Line 1325
            return ...
        end)
    end
    var420 = module_6_upvr
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var420 = var420(tbl_11)
        tbl_11.context = ":now() was called at:\n\n"..call_stack
        tbl_11.error = "This Promise was not resolved in time for :now()"
        tbl_11.kind = var13_upvw.Kind.NotResolvedInTime
        local tbl_11 = {}
        var420 = var13_upvw.new
        return var420
    end
    if arg2 ~= nil or not INLINED_2() then
        var420 = arg2
    end
    return var420.reject(var420)
end
function module_6_upvr.retry(arg1, arg2, ...) -- Line 1340
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var423_upvr
    if type(arg1) ~= "function" then
        var423_upvr = false
    else
        var423_upvr = true
    end
    assert(var423_upvr, "Parameter #1 to Promise.retry must be a function")
    if type(arg2) ~= "number" then
        var423_upvr = false
    else
        var423_upvr = true
    end
    assert(var423_upvr, "Parameter #2 to Promise.retry must be a number")
    local args_list_upvr = {...}
    var423_upvr = select('#', ...)
    return module_6_upvr.resolve(arg1(...)):catch(function(...) -- Line 1346
        --[[ Upvalues[5]:
            [1]: arg2 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: args_list_upvr (readonly)
            [5]: var423_upvr (readonly)
        ]]
        if 0 < arg2 then
            return module_6_upvr.retry(arg1, arg2 - 1, unpack(args_list_upvr, 1, var423_upvr))
        end
        return module_6_upvr.reject(...)
    end)
end
function module_6_upvr.fromEvent(arg1, arg2) -- Line 1358
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var427_upvw = arg2
    if not var427_upvw then
        function var427_upvw() -- Line 1359
            return true
        end
    end
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1_21, arg2_8, arg3) -- Line 1363
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var427_upvw (read and write)
        ]]
        local var429_upvw
        local var430_upvw = false
        var429_upvw = arg1:Connect(function(...) -- Line 1376
            --[[ Upvalues[4]:
                [1]: var427_upvw (copied, read and write)
                [2]: arg1_21 (readonly)
                [3]: var429_upvw (read and write)
                [4]: var430_upvw (read and write)
            ]]
            local var427_upvw_result1 = var427_upvw(...)
            if var427_upvw_result1 == true then
                arg1_21(...)
                if var429_upvw then
                    var429_upvw:Disconnect()
                    var429_upvw = nil
                else
                    var430_upvw = true
                end
            end
            if type(var427_upvw_result1) ~= "boolean" then
                error("Promise.fromEvent predicate should always return a boolean")
            end
        end)
        if var430_upvw and var429_upvw then
            return (function() -- Line 1367, Named "disconnect"
                --[[ Upvalues[1]:
                    [1]: var429_upvw (read and write)
                ]]
                var429_upvw:Disconnect()
                var429_upvw = nil
            end)()
        end
        arg3(function() -- Line 1396
            --[[ Upvalues[1]:
                [1]: var429_upvw (read and write)
            ]]
            var429_upvw:Disconnect()
            var429_upvw = nil
        end)
    end)
end
return module_6_upvr
ModuleScript Ping ReplicatedStorage.engine.modules.Ping
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:02
-- Luau version 6, Types version 3
-- Time taken: 0.004786 seconds

local Players_upvr = game:GetService("Players")
local Postie_upvr = require(script.Postie)
if game:GetService("RunService"):IsClient() then
    Postie_upvr.SetCallback("Ping", function() -- Line 13
        return true
    end)
    local Ping_upvr_2 = Players_upvr.LocalPlayer:WaitForChild("Ping", 100)
    task.spawn(function() -- Line 14
        --[[ Upvalues[1]:
            [1]: Ping_upvr_2 (readonly)
        ]]
        while true do
            if Ping_upvr_2:GetAttribute("Turn") == Ping_upvr_2:GetAttribute("Turn") then
                script.RemoteEvent:FireServer()
            end
            task.wait(1)
        end
    end)
    return true
end
local HttpService_upvr = game:GetService("HttpService")
return function() -- Line 27
    --[[ Upvalues[3]:
        [1]: Players_upvr (readonly)
        [2]: HttpService_upvr (readonly)
        [3]: Postie_upvr (readonly)
    ]]
    local tbl_upvr = {}
    script.RemoteEvent.OnServerEvent:Connect(function(arg1) -- Line 31
        --[[ Upvalues[4]:
            [1]: Players_upvr (copied, readonly)
            [2]: tbl_upvr (readonly)
            [3]: HttpService_upvr (copied, readonly)
            [4]: Postie_upvr (copied, readonly)
        ]]
        if not Players_upvr:FindFirstChild(arg1.Name) or tbl_upvr[arg1] then
        else
            tbl_upvr[arg1] = true
            local Ping_upvr = arg1:WaitForChild("Ping", 100)
            local var15_upvw = false
            task.delay(_G._maxPing / 1000, function() -- Line 44
                --[[ Upvalues[3]:
                    [1]: Ping_upvr (readonly)
                    [2]: var15_upvw (read and write)
                    [3]: HttpService_upvr (copied, readonly)
                ]]
                Ping_upvr:SetAttribute("IsLagging", not var15_upvw)
                if not var15_upvw then
                    Ping_upvr:SetAttribute("LagSession", HttpService_upvr:GenerateGUID(false))
                end
            end)
            var15_upvw = true
            Ping_upvr:SetAttribute("Turn", not Ping_upvr:GetAttribute("Turn"))
            local rounded = math.round((tick() - tick()) * 1000)
            if not Postie_upvr.InvokeClient(arg1, "Ping", 1) then
                arg1:WaitForChild("leaderstats", 100):WaitForChild("Ping", 100).Value = "1K+ ms"
                for i, v in next, workspace.game.balls.server:GetChildren() do
                    if v and (v:GetAttribute("possessor") == arg1.UserId or v:GetAttribute("networkOwner") == arg1.UserId) then
                        v:SetAttribute("possessor", 0)
                        v:SetAttribute("networkOwner", 0)
                        v:SetAttribute("network", 0)
                        v:SetNetworkOwner(nil)
                    end
                end
            else
                v = rounded
                i = tostring(v)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                arg1:WaitForChild("leaderstats", 100):WaitForChild("Ping", 100).Value = i.." ms"
            end
            Ping_upvr.Value = rounded
            tbl_upvr[arg1] = nil
        end
    end)
end
ModuleScript Postie ReplicatedStorage.engine.modules.Ping.Postie
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:03
-- Luau version 6, Types version 3
-- Time taken: 0.004382 seconds

local HttpService_upvr = game:GetService("HttpService")
local Sent_upvr = script.Sent
local Received_upvr = script.Received
local any_IsServer_result1_upvr = game:GetService("RunService"):IsServer()
local tbl_upvr = {}
local tbl_upvr_2 = {}
local module = {
    InvokeClient = function(arg1, arg2, arg3, ...) -- Line 66, Named "InvokeClient"
        --[[ Upvalues[4]:
            [1]: any_IsServer_result1_upvr (readonly)
            [2]: HttpService_upvr (readonly)
            [3]: tbl_upvr_2 (readonly)
            [4]: Sent_upvr (readonly)
        ]]
        assert(any_IsServer_result1_upvr, "Postie.invokeClient can only be called from the server")
        local current_thread_upvr_2 = coroutine.running()
        local var9_upvw = false
        local any_GenerateGUID_result1_upvr_2 = HttpService_upvr:GenerateGUID(false)
        tbl_upvr_2[any_GenerateGUID_result1_upvr_2] = function(arg1_2, arg2_2, ...) -- Line 74
            --[[ Upvalues[5]:
                [1]: arg1 (readonly)
                [2]: var9_upvw (read and write)
                [3]: tbl_upvr_2 (copied, readonly)
                [4]: any_GenerateGUID_result1_upvr_2 (readonly)
                [5]: current_thread_upvr_2 (readonly)
            ]]
            if arg1_2 ~= arg1 then
            else
                var9_upvw = true
                tbl_upvr_2[any_GenerateGUID_result1_upvr_2] = nil
                if arg2_2 then
                    task.spawn(current_thread_upvr_2, true, ...)
                    return
                end
                task.spawn(current_thread_upvr_2, false)
            end
        end
        task.delay(arg3, function() -- Line 89
            --[[ Upvalues[4]:
                [1]: var9_upvw (read and write)
                [2]: tbl_upvr_2 (copied, readonly)
                [3]: any_GenerateGUID_result1_upvr_2 (readonly)
                [4]: current_thread_upvr_2 (readonly)
            ]]
            if var9_upvw then
            else
                tbl_upvr_2[any_GenerateGUID_result1_upvr_2] = nil
                task.spawn(current_thread_upvr_2, false)
            end
        end)
        Sent_upvr:FireClient(arg1, arg2, any_GenerateGUID_result1_upvr_2, ...)
        return coroutine.yield()
    end;
    InvokeServer = function(arg1, arg2, ...) -- Line 103, Named "InvokeServer"
        --[[ Upvalues[4]:
            [1]: any_IsServer_result1_upvr (readonly)
            [2]: HttpService_upvr (readonly)
            [3]: tbl_upvr_2 (readonly)
            [4]: Sent_upvr (readonly)
        ]]
        assert(not any_IsServer_result1_upvr, "Postie.invokeServer can only be called from the client")
        local current_thread_upvr = coroutine.running()
        local var14_upvw = false
        local any_GenerateGUID_result1_upvr = HttpService_upvr:GenerateGUID(false)
        tbl_upvr_2[any_GenerateGUID_result1_upvr] = function(arg1_3, ...) -- Line 111
            --[[ Upvalues[4]:
                [1]: var14_upvw (read and write)
                [2]: tbl_upvr_2 (copied, readonly)
                [3]: any_GenerateGUID_result1_upvr (readonly)
                [4]: current_thread_upvr (readonly)
            ]]
            var14_upvw = true
            tbl_upvr_2[any_GenerateGUID_result1_upvr] = nil
            if arg1_3 then
                task.spawn(current_thread_upvr, true, ...)
            else
                task.spawn(current_thread_upvr, false)
            end
        end
        task.delay(arg2, function() -- Line 122
            --[[ Upvalues[4]:
                [1]: var14_upvw (read and write)
                [2]: tbl_upvr_2 (copied, readonly)
                [3]: any_GenerateGUID_result1_upvr (readonly)
                [4]: current_thread_upvr (readonly)
            ]]
            if var14_upvw then
            else
                tbl_upvr_2[any_GenerateGUID_result1_upvr] = nil
                task.spawn(current_thread_upvr, false)
            end
        end)
        Sent_upvr:FireServer(arg1, any_GenerateGUID_result1_upvr, ...)
        return coroutine.yield()
    end;
    SetCallback = function(arg1, arg2) -- Line 136, Named "SetCallback"
        --[[ Upvalues[1]:
            [1]: tbl_upvr (readonly)
        ]]
        tbl_upvr[arg1] = arg2
    end;
    GetCallback = function(arg1) -- Line 140, Named "GetCallback"
        --[[ Upvalues[1]:
            [1]: tbl_upvr (readonly)
        ]]
        return tbl_upvr[arg1]
    end;
}
if any_IsServer_result1_upvr then
    Received_upvr.OnServerEvent:Connect(function(arg1, arg2, arg3, ...) -- Line 146
        --[[ Upvalues[1]:
            [1]: tbl_upvr_2 (readonly)
        ]]
        local var19 = tbl_upvr_2[arg2]
        if not var19 then
        else
            var19(arg1, arg3, ...)
        end
    end)
    Sent_upvr.OnServerEvent:Connect(function(arg1, arg2, arg3, ...) -- Line 155
        --[[ Upvalues[2]:
            [1]: tbl_upvr (readonly)
            [2]: Received_upvr (readonly)
        ]]
        local var21 = tbl_upvr[arg2]
        if var21 then
            Received_upvr:FireClient(arg1, arg3, true, var21(arg1, ...))
        else
            Received_upvr:FireClient(arg1, arg3, false)
        end
    end)
    return module
end
Received_upvr.OnClientEvent:Connect(function(arg1, arg2, ...) -- Line 165
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local var23 = tbl_upvr_2[arg1]
    if not var23 then
    else
        var23(arg2, ...)
    end
end)
Sent_upvr.OnClientEvent:Connect(function(arg1, arg2, ...) -- Line 174
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: Received_upvr (readonly)
    ]]
    local var25 = tbl_upvr[arg1]
    if var25 then
        Received_upvr:FireServer(arg2, true, var25(...))
    else
        Received_upvr:FireServer(arg2, false)
    end
end)
return module
ModuleScript Ragdoll ReplicatedStorage.engine.modules.Ragdoll
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:05
-- Luau version 6, Types version 3
-- Time taken: 0.001153 seconds

local module_upvr = {
    _npc = require(script:WaitForChild("npc", 100));
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 7
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        return module_upvr._client.new(...)
    end
    return module_upvr._server.new(...)
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.modules.Ragdoll.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:06
-- Luau version 6, Types version 3
-- Time taken: 0.003906 seconds

local module_3_upvr = {}
module_3_upvr.__index = module_3_upvr
function module_3_upvr.new(arg1) -- Line 7
    --[[ Upvalues[1]:
        [1]: module_3_upvr (readonly)
    ]]
    assert(arg1, "ragdoll.server | dataModel 'player' expected, got "..typeof(arg1))
    local module = {}
    module._player = arg1
    module._config = require(script.Parent:WaitForChild("config", 100))
    module._maid = _G._engine:load("Maid").new()
    return setmetatable(module, module_3_upvr)
end
function module_3_upvr.init(arg1, arg2) -- Line 17
    assert(arg2, "ragdoll.server | dataModel 'character' expected, got "..typeof(arg2))
    arg1._maid:DoCleaning()
    arg1._character = arg2
    arg1._humanoid = arg2:WaitForChild("Humanoid", 100)
    arg1._humanoid.BreakJointsOnDeath = false
    arg1._maid.attributeChangedSignal = arg1._character:GetAttributeChangedSignal("serverRagdollBinder"):Connect(function() -- Line 26
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:toggle(arg1._character:GetAttribute("serverRagdollBinder"))
    end)
    arg1._maid.died = arg1._humanoid.Died:Connect(function() -- Line 30
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1._config._ragdollOnDeath then
            for _, v in next, arg1._character:GetChildren() do
                if v:IsA("Accessory") then
                    for _, v_2 in next, v.Handle:GetChildren() do
                        if v_2:IsA("WrapLayer") then
                            local WrapTarget = Instance.new("WrapTarget")
                            WrapTarget.Parent = v_2.Parent
                            WrapTarget:Destroy()
                        end
                    end
                end
            end
            arg1._character:SetAttribute("serverRagdollBinder", true)
        end
    end)
end
local module_2_upvr = require(script.Parent:WaitForChild("motors", 100))
function module_3_upvr.toggle(arg1, arg2) -- Line 49
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local var15
    if typeof(arg2) ~= "boolean" then
        var15 = false
    else
        var15 = true
    end
    assert(var15, "ragdoll.server | boolean 't' expected, got "..typeof(arg2))
    module_2_upvr:toggle(not arg2, arg1._character, arg1._character:GetAttribute("isHolding"))
end
return module_3_upvr
ModuleScript client ReplicatedStorage.engine.modules.Ragdoll.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:07
-- Luau version 6, Types version 3
-- Time taken: 0.011084 seconds

local module_upvr = {
    _limbs = {
        R6 = {"Head", "Torso", "Right Arm", "Left Arm", "Right Leg", "Left Leg"};
        R15 = {"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot"};
    };
}
module_upvr.__index = module_upvr
local module_upvr_2 = require(script.Parent:WaitForChild("spring", 100))
function module_upvr.new() -- Line 14
    --[[ Upvalues[2]:
        [1]: module_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    return setmetatable({
        _toggle = false;
        _config = require(script.Parent:WaitForChild("config", 100));
        _impulseSpring = module_upvr_2:create();
        _maid = _G._engine:load("Maid").new();
        _localMaid = _G._engine:load("Maid").new();
    }, module_upvr)
end
local LocalPlayer_upvr = _G._services.Players.LocalPlayer
function module_upvr.init(arg1) -- Line 24
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    arg1._maid:DoCleaning()
    local Character_upvr = LocalPlayer_upvr.Character
    if not Character_upvr then
        Character_upvr = LocalPlayer_upvr.CharacterAdded:Wait()
    end
    arg1._rigType = Character_upvr:WaitForChild("Humanoid", 100).RigType
    arg1._character = Character_upvr
    arg1._maid.attributeChangedSignal = Character_upvr:GetAttributeChangedSignal("clientRagdollBinder"):Connect(function() -- Line 33
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: Character_upvr (readonly)
        ]]
        arg1:toggle(Character_upvr:GetAttribute("clientRagdollBinder"))
    end)
end
local module_upvr_3 = require(script.Parent:WaitForChild("motors", 100))
function module_upvr.toggle(arg1, arg2) -- Line 38
    --[[ Upvalues[1]:
        [1]: module_upvr_3 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 39 start (CF ANALYSIS FAILED)
    local var15
    if typeof(arg2) ~= "boolean" then
        var15 = false
    else
        var15 = true
    end
    assert(var15, "ragdoll.client | boolean 't' expected, got "..typeof(arg2))
    -- KONSTANTERROR: [0] 1. Error Block 39 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 18. Error Block 41 start (CF ANALYSIS FAILED)
    module_upvr_3:toggle(false, arg1._character, arg1._character:GetAttribute("isHolding"))
    var15 = arg1._character.Humanoid.Animator:GetPlayingAnimationTracks()
    local any_GetPlayingAnimationTracks_result1, any_GetPlayingAnimationTracks_result2 = arg1._character.Humanoid.Animator:GetPlayingAnimationTracks()
    for _, v in next, any_GetPlayingAnimationTracks_result1, any_GetPlayingAnimationTracks_result2 do
        if v and not _G._references.Main.animations.GetUp:FindFirstChild(v.Name, true) and not _G._references.Main.animations.Ball:FindFirstChild(v.Name, true) then
            v:Stop(0.5)
        end
    end
    any_GetPlayingAnimationTracks_result1 = arg1._character
    any_GetPlayingAnimationTracks_result1 = Vector3.new(0, 0, 0)
    any_GetPlayingAnimationTracks_result1.LowerTorso.AssemblyAngularVelocity = any_GetPlayingAnimationTracks_result1
    any_GetPlayingAnimationTracks_result1 = arg1._character
    any_GetPlayingAnimationTracks_result1 = Vector3.new(0, 0, 0)
    any_GetPlayingAnimationTracks_result1.UpperTorso.AssemblyAngularVelocity = any_GetPlayingAnimationTracks_result1
    arg1._toggle = true
    any_GetPlayingAnimationTracks_result1 = arg1._character
    any_GetPlayingAnimationTracks_result1 = true
    any_GetPlayingAnimationTracks_result1.Humanoid.PlatformStand = any_GetPlayingAnimationTracks_result1
    any_GetPlayingAnimationTracks_result1 = _G
    any_GetPlayingAnimationTracks_result1._root:SetAttribute("ignoreRoot", true)
    any_GetPlayingAnimationTracks_result1 = _G._references.Profile.settings.Visual["Performance Mode"]
    if any_GetPlayingAnimationTracks_result1.Value then
        function any_GetPlayingAnimationTracks_result1() -- Line 57
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            while arg1._toggle do
                for _, v_2 in next, arg1._character:GetChildren() do
                    if v_2:IsA("BasePart") then
                        if arg1._rigType == Enum.HumanoidRigType.R6 and table.find(arg1._limbs.R6, v_2.Name) or table.find(arg1._limbs.R15, v_2.Name) then
                            v_2.CanCollide = true
                        end
                    end
                end
                arg1._character.Humanoid.PlatformStand = true
                task.wait(0.5)
            end
        end
        task.spawn(any_GetPlayingAnimationTracks_result1)
    else
        any_GetPlayingAnimationTracks_result1 = _G._services.RunService.RenderStepped
        any_GetPlayingAnimationTracks_result1 = any_GetPlayingAnimationTracks_result1:Connect(function() -- Line 75
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            for _, v_3 in next, arg1._character:GetChildren() do
                if v_3:IsA("BasePart") then
                    if arg1._rigType == Enum.HumanoidRigType.R6 and table.find(arg1._limbs.R6, v_3.Name) or table.find(arg1._limbs.R15, v_3.Name) then
                        v_3.CanCollide = true
                    end
                end
            end
        end)
        arg1._localMaid.updateCollisions = any_GetPlayingAnimationTracks_result1
        any_GetPlayingAnimationTracks_result1 = _G._services.RunService.Heartbeat
        any_GetPlayingAnimationTracks_result1 = any_GetPlayingAnimationTracks_result1:Connect(function() -- Line 83
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._character.Humanoid.PlatformStand = true
        end)
        arg1._localMaid.forcePlatformStand = any_GetPlayingAnimationTracks_result1
    end
    any_GetPlayingAnimationTracks_result1 = arg1._config
    -- KONSTANTERROR: [22] 18. Error Block 41 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript motors ReplicatedStorage.engine.modules.Ragdoll.motors
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:08
-- Luau version 6, Types version 3
-- Time taken: 0.013192 seconds

return {
    transitionTime = 0.5;
    maid = _G._engine:load("Maid").new();
    recordings = _G._engine:load("Maid").new();
    motors = {};
    toggle = function(arg1, arg2, arg3, arg4) -- Line 8, Named "toggle"
        task.spawn(function() -- Line 9
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: arg3 (readonly)
                [3]: arg1 (readonly)
                [4]: arg4 (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 158 start (CF ANALYSIS FAILED)
            local var34
            if typeof(arg2) ~= "boolean" then
                var34 = false
            else
                var34 = true
            end
            assert(var34, "ragdoll.motors | boolean 't' expected, got "..typeof(arg2))
            var34 = arg3
            assert(var34, "ragdoll.motors | dataModel 'character' expected, got "..typeof(arg3))
            local Humanoid = arg3:WaitForChild("Humanoid", 100)
            var34 = arg3:WaitForChild("HumanoidRootPart", 100)
            -- KONSTANTERROR: [0] 1. Error Block 158 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [455] 301. Error Block 130 start (CF ANALYSIS FAILED)
            arg1.motors = {}
            do
                return
            end
            -- KONSTANTERROR: [455] 301. Error Block 130 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [461] 305. Error Block 49 start (CF ANALYSIS FAILED)
            Humanoid.RequiresNeck = false
            Humanoid.AutoRotate = false
            var34.CanCollide = false
            task.delay(0.15, function() -- Line 130
                --[[ Upvalues[2]:
                    [1]: arg3 (copied, readonly)
                    [2]: arg1 (copied, readonly)
                ]]
                if _G._services.RunService:IsServer() then
                    for _, v_upvr in next, arg3:GetChildren() do
                        if v_upvr:IsA("BasePart") and v_upvr.Name ~= "Ball" then
                            arg1.maid[v_upvr.Name.."_Touched"] = v_upvr.Touched:Connect(function(arg1_2) -- Line 134
                                --[[ Upvalues[2]:
                                    [1]: v_upvr (readonly)
                                    [2]: arg1 (copied, readonly)
                                ]]
                                if arg1_2 and arg1_2.Parent and not arg1_2:FindFirstAncestor(v_upvr.Parent.Name) and arg1_2.Transparency == 0 and not arg1_2.Parent:FindFirstChildWhichIsA("Humanoid") and 10 <= v_upvr.AssemblyLinearVelocity.Magnitude then
                                    local children = _G._references.Main.sounds.Fall:GetChildren()
                                    local Sound = Instance.new("Sound", v_upvr)
                                    Sound.SoundId = children[math.random(1, #children)].SoundId
                                    Sound.Volume = 0.25
                                    Sound.PlaybackSpeed = 1
                                    Sound.RollOffMinDistance = 5
                                    Sound.RollOffMaxDistance = 20
                                    Sound:Play()
                                    _G._services.Debris:AddItem(Sound, Sound.TimeLength / Sound.PlaybackSpeed)
                                    arg1.maid:DoCleaning()
                                end
                            end)
                        end
                    end
                end
            end)
            -- KONSTANTERROR: [461] 305. Error Block 49 end (CF ANALYSIS FAILED)
        end)
    end;
}
ModuleScript config ReplicatedStorage.engine.modules.Ragdoll.config
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:10
-- Luau version 6, Types version 3
-- Time taken: 0.010462 seconds

return {
    _lockCameraOnRagdoll = false;
    _impulseCameraOnRagdoll = false;
    _ragdollOnDeath = false;
    _impulseRagdollOnToggle = false;
    _impulseForce = 10;
    R6 = {
        Head = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 30;
            TwistLowerAngle = -40;
            TwistUpperAngle = 40;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "Torso";
                Name = "NeckAttachment";
            };
            Attachment1 = {
                Parent = "Head";
                Name = "NeckAttachment";
                Position = Vector3.new(0, -0.5, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            CreateNoCollisionConstraint = false;
        };
        ["Right Arm"] = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 110;
            TwistLowerAngle = -85;
            TwistUpperAngle = 85;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "Torso";
                Name = "RightShoulderRagdollAttachment";
                Position = Vector3.new(1, 0.5, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            Attachment1 = {
                Parent = "Right Arm";
                Name = "RightShoulderRagdollAttachment";
                Position = Vector3.new(-0.5, 0.5, 0);
                Orientation = Vector3.new(0, 0, -90);
            };
            CreateNoCollisionConstraint = true;
            Part0 = "Head";
            Part1 = "Right Arm";
        };
        ["Left Arm"] = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 110;
            TwistLowerAngle = -85;
            TwistUpperAngle = 85;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "Torso";
                Name = "LeftShoulderRagdollAttachment";
                Position = Vector3.new(-1, 0.5, 0);
                Orientation = Vector3.new(0, 180, 0);
            };
            Attachment1 = {
                Parent = "Left Arm";
                Name = "LeftShoulderRagdollAttachment";
                Position = Vector3.new(0.5, 0.5, 0);
                Orientation = Vector3.new(0, -180, -90);
            };
            CreateNoCollisionConstraint = true;
            Part0 = "Head";
            Part1 = "Left Arm";
        };
        ["Right Leg"] = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 40;
            TwistLowerAngle = -5;
            TwistUpperAngle = 80;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "Torso";
                Name = "RightHipAttachment";
                Position = Vector3.new(0.5, -1, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            Attachment1 = {
                Parent = "Right Leg";
                Name = "RightHipAttachment";
                Position = Vector3.new(0, 1, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            CreateNoCollisionConstraint = true;
            Part0 = "Left Leg";
            Part1 = "Right Leg";
        };
        ["Left Leg"] = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 40;
            TwistLowerAngle = -5;
            TwistUpperAngle = 80;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "Torso";
                Name = "LeftHipAttachment";
                Position = Vector3.new(-0.5, -1, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            Attachment1 = {
                Parent = "Left Leg";
                Name = "LeftHipAttachment";
                Position = Vector3.new(0, 1, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            CreateNoCollisionConstraint = false;
        };
    };
    R15 = {
        Head = {
            MaxFrictionTorque = 471.341;
            Restitution = 0;
            UpperAngle = 30;
            TwistLowerAngle = -40;
            TwistUpperAngle = 40;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "UpperTorso";
                Name = "NeckRigAttachment";
            };
            Attachment1 = {
                Parent = "Head";
                Name = "NeckRigAttachment";
            };
            CreateNoCollisionConstraint = false;
        };
        UpperTorso = {
            MaxFrictionTorque = 587.093;
            Restitution = 0;
            UpperAngle = 20;
            TwistLowerAngle = -40;
            TwistUpperAngle = 20;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LowerTorso";
                Name = "WaistRigAttachment";
            };
            Attachment1 = {
                Parent = "UpperTorso";
                Name = "WaistRigAttachment";
            };
            CreateNoCollisionConstraint = false;
        };
        RightUpperArm = {
            MaxFrictionTorque = 0;
            Restitution = 0;
            UpperAngle = 110;
            TwistLowerAngle = -85;
            TwistUpperAngle = 85;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "UpperTorso";
                Name = "RightShoulderRagdollAttachment";
                Position = Vector3.new(1, 0.56300, 0);
                Orientation = Vector3.new(0, 0, 0);
            };
            Attachment1 = {
                Parent = "RightUpperArm";
                Name = "RightShoulderRagdollAttachment";
                Position = Vector3.new(-0.5, 0.39399, 0);
                Orientation = Vector3.new(0, 0, -90);
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LowerTorso";
                    Part1 = "RightUpperArm";
                };
                ['2'] = {
                    Part0 = "Head";
                    Part1 = "RightUpperArm";
                };
            };
        };
        RightLowerArm = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 20;
            TwistLowerAngle = 5;
            TwistUpperAngle = 120;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "RightUpperArm";
                Name = "RightElbowRigAttachment";
            };
            Attachment1 = {
                Parent = "RightLowerArm";
                Name = "RightElbowRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "UpperTorso";
                    Part1 = "RightLowerArm";
                };
            };
        };
        RightHand = {
            MaxFrictionTorque = 0.15;
            Restitution = 0;
            UpperAngle = 30;
            TwistLowerAngle = -10;
            TwistUpperAngle = 10;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "RightLowerArm";
                Name = "RightWristRigAttachment";
            };
            Attachment1 = {
                Parent = "RightHand";
                Name = "RightWristRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "RightUpperArm";
                    Part1 = "RightHand";
                };
            };
        };
        LeftUpperArm = {
            MaxFrictionTorque = 0;
            Restitution = 0;
            UpperAngle = 110;
            TwistLowerAngle = -85;
            TwistUpperAngle = 85;
            CreateNewAttachment0 = true;
            CreateNewAttachment1 = true;
            Attachment0 = {
                Parent = "UpperTorso";
                Name = "LeftShoulderRagdollAttachment";
                Position = Vector3.new(-1, 0.56300, 0);
                Orientation = Vector3.new(0, 180, 0);
            };
            Attachment1 = {
                Parent = "LeftUpperArm";
                Name = "LeftShoulderRagdollAttachment";
                Position = Vector3.new(0.5, 0.39399, 0);
                Orientation = Vector3.new(0, -180, -90);
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LowerTorso";
                    Part1 = "LeftUpperArm";
                };
                ['2'] = {
                    Part0 = "Head";
                    Part1 = "LeftUpperArm";
                };
            };
        };
        LeftLowerArm = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 20;
            TwistLowerAngle = 5;
            TwistUpperAngle = 120;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LeftUpperArm";
                Name = "LeftElbowRigAttachment";
            };
            Attachment1 = {
                Parent = "LeftLowerArm";
                Name = "LeftElbowRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "UpperTorso";
                    Part1 = "LeftLowerArm";
                };
            };
        };
        LeftHand = {
            MaxFrictionTorque = 0.15;
            Restitution = 0;
            UpperAngle = 30;
            TwistLowerAngle = -10;
            TwistUpperAngle = 10;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LeftLowerArm";
                Name = "LeftWristRigAttachment";
            };
            Attachment1 = {
                Parent = "LeftHand";
                Name = "LeftWristRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LeftUpperArm";
                    Part1 = "LeftHand";
                };
            };
        };
        RightUpperLeg = {
            MaxFrictionTorque = 0;
            Restitution = 0;
            UpperAngle = 40;
            TwistLowerAngle = -5;
            TwistUpperAngle = 80;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LowerTorso";
                Name = "RightHipRigAttachment";
            };
            Attachment1 = {
                Parent = "RightUpperLeg";
                Name = "RightHipRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "UpperTorso";
                    Part1 = "RightUpperLeg";
                };
                ['2'] = {
                    Part0 = "LeftUpperLeg";
                    Part1 = "RightUpperLeg";
                };
            };
        };
        RightLowerLeg = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 5;
            TwistLowerAngle = -120;
            TwistUpperAngle = -5;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "RightUpperLeg";
                Name = "RightKneeRigAttachment";
            };
            Attachment1 = {
                Parent = "RightLowerLeg";
                Name = "RightKneeRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LowerTorso";
                    Part1 = "RightLowerLeg";
                };
                ['2'] = {
                    Part0 = "UpperTorso";
                    Part1 = "RightLowerLeg";
                };
            };
        };
        RightFoot = {
            MaxFrictionTorque = 0.25;
            Restitution = 0;
            UpperAngle = 10;
            TwistLowerAngle = -10;
            TwistUpperAngle = 10;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "RightLowerLeg";
                Name = "RightAnkleRigAttachment";
            };
            Attachment1 = {
                Parent = "RightFoot";
                Name = "RightAnkleRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "RightUpperLeg";
                    Part1 = "RightFoot";
                };
            };
        };
        LeftUpperLeg = {
            MaxFrictionTorque = 0;
            Restitution = 0;
            UpperAngle = 40;
            TwistLowerAngle = -5;
            TwistUpperAngle = 80;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LowerTorso";
                Name = "LeftHipRigAttachment";
            };
            Attachment1 = {
                Parent = "LeftUpperLeg";
                Name = "LeftHipRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "UpperTorso";
                    Part1 = "LeftUpperLeg";
                };
            };
        };
        LeftLowerLeg = {
            MaxFrictionTorque = 0.5;
            Restitution = 0;
            UpperAngle = 5;
            TwistLowerAngle = -120;
            TwistUpperAngle = -5;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LeftUpperLeg";
                Name = "LeftKneeRigAttachment";
            };
            Attachment1 = {
                Parent = "LeftLowerLeg";
                Name = "LeftKneeRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LowerTorso";
                    Part1 = "LeftLowerLeg";
                };
                ['2'] = {
                    Part0 = "UpperTorso";
                    Part1 = "LeftLowerLeg";
                };
            };
        };
        LeftFoot = {
            MaxFrictionTorque = 0.25;
            Restitution = 0;
            UpperAngle = 10;
            TwistLowerAngle = -10;
            TwistUpperAngle = 10;
            CreateNewAttachment0 = false;
            CreateNewAttachment1 = false;
            Attachment0 = {
                Parent = "LeftLowerLeg";
                Name = "LeftAnkleRigAttachment";
            };
            Attachment1 = {
                Parent = "LeftFoot";
                Name = "LeftAnkleRigAttachment";
            };
            CreateNoCollisionConstraint = true;
            NoCollisionConstraints = {
                ['1'] = {
                    Part0 = "LeftUpperLeg";
                    Part1 = "LeftFoot";
                };
            };
        };
    };
}
ModuleScript rig ReplicatedStorage.engine.modules.Ragdoll.rig
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:11
-- Luau version 6, Types version 3
-- Time taken: 0.005945 seconds

local module = {}
local module_upvr = require(script.Parent:WaitForChild("config", 100))
function module.build(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    assert(arg2, "ragdoll.framework | dataModel 'character' expected, got "..typeof(arg2))
    local var11 = "R6"
    if arg2:WaitForChild("Humanoid", 100).RigType ~= Enum.HumanoidRigType.R6 then
        var11 = "R15"
    end
    for i, v in next, module_upvr[var11] do
        assert(v, "ragdoll.framework | no ragdoll data found for "..i)
        assert(arg2:FindFirstChild(i), "ragdoll.framework | could not find part "..i.." in character "..arg2.Name)
        local var12
        local var13
        if v.CreateNewAttachment0 then
            assert(arg2:FindFirstChild(v.Attachment0.Parent), "ragdoll.framework | could not find attachment0 "..v.Attachment0.Name.." in part "..v.Attachment0.Parent)
            var12 = Instance.new("Attachment")
            var12.Parent = arg2[v.Attachment0.Parent]
            var12.Name = v.Attachment0.Name
            var12.Position = v.Attachment0.Position
            var12.Orientation = v.Attachment0.Orientation
        else
            var12 = arg2[v.Attachment0.Parent][v.Attachment0.Name]
        end
        if v.CreateNewAttachment1 then
            assert(arg2:FindFirstChild(v.Attachment0.Parent), "ragdoll.framework | could not find attachment1 "..v.Attachment0.Name.." in part "..v.Attachment0.Parent)
            var13 = Instance.new("Attachment")
            var13.Parent = arg2[v.Attachment1.Parent]
            var13.Name = v.Attachment1.Name
            var13.Position = v.Attachment1.Position
            var13.Orientation = v.Attachment1.Orientation
        else
            var13 = arg2[v.Attachment1.Parent][v.Attachment1.Name]
        end
        local BallSocketConstraint = Instance.new("BallSocketConstraint", arg2[i])
        BallSocketConstraint.Name = "RagdollBallSocket"
        BallSocketConstraint.Attachment0 = var12
        BallSocketConstraint.Attachment1 = var13
        BallSocketConstraint.LimitsEnabled = true
        BallSocketConstraint.TwistLimitsEnabled = true
        BallSocketConstraint.MaxFrictionTorque = v.MaxFrictionTorque
        BallSocketConstraint.Restitution = v.Restitution
        BallSocketConstraint.UpperAngle = v.UpperAngle
        BallSocketConstraint.TwistLowerAngle = v.TwistLowerAngle
        BallSocketConstraint.TwistUpperAngle = v.TwistUpperAngle
        if v.CreateNoCollisionConstraint then
            if var11 == "R15" then
                for _, v_2 in next, v.NoCollisionConstraints do
                    local NoCollisionConstraint_2 = Instance.new("NoCollisionConstraint", arg2[i])
                    NoCollisionConstraint_2.Name = "RagdollNoCollision"
                    NoCollisionConstraint_2.Part0 = arg2[v_2.Part0]
                    NoCollisionConstraint_2.Part1 = arg2[v_2.Part1]
                end
            else
                local NoCollisionConstraint = Instance.new("NoCollisionConstraint", arg2[i])
                NoCollisionConstraint.Name = "RagdollNoCollision"
                NoCollisionConstraint.Part0 = arg2[v.Part0]
                NoCollisionConstraint.Part1 = arg2[v.Part1]
            end
        end
    end
    arg2:SetAttribute("rigged", true)
end
return module
ModuleScript spring ReplicatedStorage.engine.modules.Ragdoll.spring
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:13
-- Luau version 6, Types version 3
-- Time taken: 0.002580 seconds

return {
    create = function(arg1, arg2, arg3, arg4, arg5) -- Line 11, Named "create"
        return {
            Target = Vector3.new();
            Position = Vector3.new();
            Velocity = Vector3.new();
            Mass = arg2 or 5;
            Force = arg3 or 50;
            Damping = arg4 or 4;
            Speed = arg5 or 4;
            shove = function(arg1_2, arg2_2) -- Line 24, Named "shove"
                -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                local X = arg2_2.X
                local Z = arg2_2.Z
                local var5
                if X ~= X or X == math.huge or X == (-math.huge) then
                end
                if var5 ~= var5 or var5 == math.huge or var5 == (-math.huge) then
                    var5 = 0
                end
                if Z ~= Z or Z == math.huge or Z == (-math.huge) then
                end
                arg1_2.Velocity += Vector3.new(0, var5, 0)
            end;
            update = function(arg1_3, arg2_3) -- Line 38, Named "update"
                local var8 = math.min(arg2_3, 1) * arg1_3.Speed / 8
                for _ = 1, 8 do
                    arg1_3.Velocity += ((arg1_3.Target - arg1_3.Position) * arg1_3.Force / arg1_3.Mass - arg1_3.Velocity * arg1_3.Damping) * var8
                    arg1_3.Position += arg1_3.Velocity * var8
                end
                return arg1_3.Position
            end;
        }
    end;
}
ModuleScript npc ReplicatedStorage.engine.modules.Ragdoll.npc
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:14
-- Luau version 6, Types version 3
-- Time taken: 0.021845 seconds

return {
    maid = _G._engine:load("Maid").new();
    getUp = require(script.Parent:WaitForChild("getUp", 100));
    toggle = function(arg1, arg2, arg3) -- Line 6, Named "toggle"
        task.spawn(function() -- Line 7
            --[[ Upvalues[3]:
                [1]: arg2 (readonly)
                [2]: arg3 (readonly)
                [3]: arg1 (readonly)
            ]]
            local var82
            if typeof(arg2) ~= "boolean" then
                var82 = false
            else
                var82 = true
            end
            assert(var82, "ragdoll.npc | boolean 't' expected, got "..typeof(arg2))
            var82 = arg3
            assert(var82, "ragdoll.npc | dataModel 'character' expected, got "..typeof(arg3))
            local Humanoid = arg3:WaitForChild("Humanoid", 100)
            var82 = arg3:WaitForChild("HumanoidRootPart", 100)
            if arg2 then
                var82.CanCollide = true
                arg3:WaitForChild("LowerTorso", 100).CanCollide = true
                arg3:WaitForChild("UpperTorso", 100).CanCollide = true
                if _G._services.RunService:IsServer() then
                    arg1.maid:DoCleaning()
                end
                for _, v in next, arg3:GetChildren() do
                    if v and v:IsA("BasePart") then
                        v.CollisionGroup = "18_npc"
                        v:SetNetworkOwner(nil)
                        if v.Name ~= "HumanoidRootPart" and v.Name ~= "LowerTorso" and v.Name ~= "UpperTorso" then
                            v.CanCollide = false
                        end
                    end
                end
                if Humanoid.RigType == Enum.HumanoidRigType.R6 then
                    for _, v_2 in next, arg3:GetDescendants() do
                        if v_2 and v_2:IsA("Motor6D") and v_2.Name ~= "RootJoint" and not v_2:GetAttribute("ignoreRagdoll") then
                            v_2.Enabled = true
                        end
                    end
                elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
                    for _, v_3 in next, arg3:GetDescendants() do
                        if v_3 and v_3:IsA("Motor6D") and v_3.Name ~= "Root" and not v_3:GetAttribute("ignoreRagdoll") then
                            v_3.Enabled = true
                        end
                    end
                end
                Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics, false)
                arg1.getUp:start(arg3)
            else
                Humanoid.RequiresNeck = false
                Humanoid.AutoRotate = false
                Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics, true)
                Humanoid:ChangeState(Enum.HumanoidStateType.Physics)
                if arg3.Name == "Home" then
                    local tbl_2 = {"UNS UNS UNS", "51-0 AGAIN?!", "CAMMEH BOSH", "ALL ON RED"}
                    _G._services.Chat:Chat(arg3.Head, tbl_2[math.random(1, #tbl_2)], Enum.ChatColor.White)
                end
                arg1.maid.ForcePlatformStand = _G._services.RunService.Heartbeat:Connect(function() -- Line 70
                    --[[ Upvalues[1]:
                        [1]: arg3 (copied, readonly)
                    ]]
                    for _, v_4 in next, arg3:GetChildren() do
                        if v_4 and v_4:IsA("BasePart") and not string.find(v_4.Name, "Boot") then
                            v_4.CollisionGroup = "5_ragdoll"
                            v_4.CanCollide = true
                        end
                    end
                end)
                if Humanoid.RigType == Enum.HumanoidRigType.R6 then
                    for _, v_5 in next, arg3:GetDescendants() do
                        if v_5 and v_5:IsA("Motor6D") and v_5.Part1 and v_5.Name ~= "RootJoint" and not v_5:GetAttribute("ignoreRagdoll") then
                            v_5.Enabled = false
                        end
                    end
                elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
                    for _, v_8 in next, arg3:GetDescendants() do
                        if v_8 and v_8:IsA("Motor6D") and v_8.Part1 and v_8.Name ~= "Root" and not v_8:GetAttribute("ignoreRagdoll") then
                            v_8.Enabled = false
                        elseif v_8 and v_8:IsA("AlignOrientation") then
                            v_8.Enabled = false
                        end
                    end
                end
                for _, v_6 in next, arg3:GetChildren() do
                    if v_6 and v_6:IsA("Accessory") and v_6:FindFirstChild("Handle") then
                        for _, v_7 in next, v_6.Handle:GetChildren() do
                            if v_7:IsA("WrapLayer") then
                                local WrapTarget_2 = Instance.new("WrapTarget")
                                WrapTarget_2.Parent = v_7.Parent
                                WrapTarget_2:Destroy()
                                WrapTarget_2.Parent = nil
                            end
                        end
                    end
                end
            end
        end)
    end;
}
ModuleScript getUp ReplicatedStorage.engine.modules.Ragdoll.getUp
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:15
-- Luau version 6, Types version 3
-- Time taken: 0.031814 seconds

return {
    gettingUp = false;
    maid = _G._engine:load("Maid").new();
    raycast = require(script:WaitForChild("raycast", 100));
    start = function(arg1, arg2) -- Line 7, Named "start"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 101 start (CF ANALYSIS FAILED)
        local var106_upvw
        if arg1.gettingUp then
        else
            local any_raycast_result1_2 = arg1.raycast:raycast(arg2)
            local Animator = arg2.Humanoid:WaitForChild("Animator", 100)
            local CFrame_3 = arg2.HumanoidRootPart.CFrame
            local _, _, _ = CFrame_3:ToOrientation()
            var106_upvw = _
            var106_upvw = (CFrame.new(CFrame_3.Position) * CFrame.Angles(0, var106_upvw, 0)).LookVector
            local cframe = CFrame.new(Vector3.new(), var106_upvw * Vector3.new(1, 0, 1))
            local RaycastParams_new_result1_3 = RaycastParams.new()
            RaycastParams_new_result1_3.FilterType = Enum.RaycastFilterType.Exclude
            local tbl_5 = {}
            var106_upvw = arg2
            tbl_5[1] = var106_upvw
            tbl_5[2] = workspace.game
            RaycastParams_new_result1_3.FilterDescendantsInstances = tbl_5
            local workspace_Raycast_result1 = workspace:Raycast(CFrame_3.Position, Vector3.new(0, -5, 0), RaycastParams_new_result1_3)
            var106_upvw = CFrame.new(Vector3.new(CFrame_3.Position.X, 2.65, CFrame_3.Position.Z)) * cframe
            if workspace_Raycast_result1 and workspace_Raycast_result1.Position then
                var106_upvw = CFrame.new(Vector3.new(CFrame_3.Position.X, workspace_Raycast_result1.Position.Y + 2.2, CFrame_3.Position.Z)) * cframe
            end
            local any_LoadAnimation_result1_2 = Animator:LoadAnimation(_G._references.Main.animations.GetUp.GetUp)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            for _, v in next, Animator:GetPlayingAnimationTracks() do
                if v and _G._references.Main.animations.Tools:FindFirstChild(v.Name, true) then
                    v:Stop(0)
                end
            end
            arg1.gettingUp = true
            arg2.HumanoidRootPart.Anchored = true
            arg2.LowerTorso.Anchored = true
            local clone_upvr = _G._references.Main.rigs.FakeTorso:Clone()
            clone_upvr.Parent = workspace.game.debug
            clone_upvr:SetPrimaryPartCFrame(CFrame_3)
            clone_upvr.Humanoid.PlatformStand = false
            clone_upvr.Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
            if any_raycast_result1_2 == "Front" then
                local FakeTorso_upvr_2 = _G._references.Main.animations.GetUp.FakeTorso
                task.delay(0.05, function() -- Line 53
                    --[[ Upvalues[2]:
                        [1]: clone_upvr (readonly)
                        [2]: FakeTorso_upvr_2 (readonly)
                    ]]
                    clone_upvr.Humanoid.Animator:LoadAnimation(FakeTorso_upvr_2):Play(0.1, nil, 1.1)
                end)
            else
                task.delay(0.05, function() -- Line 57
                    --[[ Upvalues[2]:
                        [1]: clone_upvr (readonly)
                        [2]: FakeTorso_upvr_2 (readonly)
                    ]]
                    clone_upvr.Humanoid.Animator:LoadAnimation(FakeTorso_upvr_2):Play(0.1)
                end)
            end
            arg2.Humanoid.WalkSpeed = 0
            arg2.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
            for _, v_2 in next, arg2:GetChildren() do
                if v_2 and v_2:IsA("BasePart") then
                    v_2.CollisionGroup = "9_getUp"
                end
            end
            for i_3, v_3 in next, {"UpperLeg", "LowerLeg", "Foot"} do
                local var127 = "Right"..v_3
                local var128 = "Left"..v_3
                if arg2:FindFirstChild(var127) then
                    arg2[var127].CanCollide = false
                end
                if arg2:FindFirstChild(var128) then
                    arg2[var128].CanCollide = false
                end
            end
            if any_raycast_result1_2 == "Front" then
                i_3 = nil
                v_3 = 1.1
                any_LoadAnimation_result1_2:Play(0.1, i_3, v_3)
            else
                any_LoadAnimation_result1_2:Play(0.1)
            end
            local AlignOrientation_upvr = Instance.new("AlignOrientation")
            AlignOrientation_upvr.Mode = Enum.OrientationAlignmentMode.OneAttachment
            AlignOrientation_upvr.Attachment0 = arg2.LowerTorso:FindFirstChild("RootRigAttachment")
            AlignOrientation_upvr.MaxTorque = 100000
            AlignOrientation_upvr.Responsiveness = 200
            AlignOrientation_upvr.Enabled = true
            AlignOrientation_upvr.RigidityEnabled = true
            AlignOrientation_upvr.ReactionTorqueEnabled = false
            AlignOrientation_upvr.Parent = arg2.LowerTorso:FindFirstChild("RootRigAttachment")
            AlignOrientation_upvr.CFrame = CFrame_3
            local AlignPosition_upvr = Instance.new("AlignPosition")
            AlignPosition_upvr.Mode = Enum.PositionAlignmentMode.OneAttachment
            AlignPosition_upvr.Attachment0 = arg2.LowerTorso:FindFirstChild("RootRigAttachment")
            AlignPosition_upvr.MaxForce = 100000
            AlignPosition_upvr.Responsiveness = 200
            AlignPosition_upvr.Enabled = true
            AlignPosition_upvr.RigidityEnabled = true
            AlignPosition_upvr.ReactionForceEnabled = false
            AlignPosition_upvr.Parent = arg2.LowerTorso:FindFirstChild("RootRigAttachment")
            AlignPosition_upvr.Position = CFrame_3.Position
            arg1.maid:GiveTask(AlignOrientation_upvr)
            arg1.maid:GiveTask(AlignPosition_upvr)
            arg1.maid:GiveTask(clone_upvr)
            if workspace.pitch.nets:FindFirstChildOfClass("Model") then
                local CFrame_2_upvr = arg2.LowerTorso.CFrame
                local tick_result1_upvr_2 = tick()
                arg1.maid.stepped = _G._services.RunService.Stepped:Connect(function(arg1_3) -- Line 119
                    --[[ Upvalues[7]:
                        [1]: arg2 (readonly)
                        [2]: clone_upvr (readonly)
                        [3]: CFrame_2_upvr (readonly)
                        [4]: tick_result1_upvr_2 (readonly)
                        [5]: var106_upvw (read and write)
                        [6]: AlignPosition_upvr (readonly)
                        [7]: AlignOrientation_upvr (readonly)
                    ]]
                    local RaycastParams_new_result1_2 = RaycastParams.new()
                    RaycastParams_new_result1_2.FilterType = Enum.RaycastFilterType.Exclude
                    RaycastParams_new_result1_2.RespectCanCollide = true
                    local tbl_3 = {}
                    tbl_3[1] = arg2
                    tbl_3[2] = clone_upvr
                    tbl_3[3] = workspace.pitch.main
                    tbl_3[4] = workspace.game.regions
                    tbl_3[5] = workspace.pitch.textures
                    RaycastParams_new_result1_2:AddToFilter(tbl_3)
                    local any_ToEulerAnglesYXZ_result1, any_ToEulerAnglesYXZ_result2_2, any_ToEulerAnglesYXZ_result3_2 = clone_upvr.FakeTorso.CFrame:ToEulerAnglesYXZ()
                    local var144
                    for i_4, v_4 in next, {workspace:Raycast(arg2.HumanoidRootPart.Position, arg2.HumanoidRootPart.CFrame.LookVector * 5, RaycastParams_new_result1_2), workspace:Raycast(arg2.HumanoidRootPart.Position, arg2.HumanoidRootPart.CFrame.UpVector * 5, RaycastParams_new_result1_2)} do
                        if v_4 and v_4.Instance and v_4.Instance.Parent.Name ~= "physics" then
                        end
                    end
                    if not nil then
                        i_4 = 0
                        v_4 = -0.1
                        var106_upvw *= CFrame.new(0, i_4, v_4)
                    end
                    local any_Lerp_result1_2 = CFrame_2_upvr:Lerp(CFrame.new(CFrame_2_upvr.Position) * CFrame.Angles(any_ToEulerAnglesYXZ_result1, any_ToEulerAnglesYXZ_result2_2, any_ToEulerAnglesYXZ_result3_2), math.clamp((tick() - tick_result1_upvr_2) * 1.7, 0, 1)):Lerp(var106_upvw, math.clamp((tick() - tick_result1_upvr_2) * 1.3, 0, 1))
                    arg2.HumanoidRootPart.Anchored = false
                    arg2.LowerTorso.Anchored = false
                    AlignPosition_upvr.Position = any_Lerp_result1_2.Position
                    AlignOrientation_upvr.CFrame = any_Lerp_result1_2
                end)
            end
            if 0.1 > any_LoadAnimation_result1_2.Length or not (any_LoadAnimation_result1_2.Length - 0.2) then
            end
            task.wait(0.95)
            arg1.maid:DoCleaning()
            arg1.gettingUp = false
            arg2.HumanoidRootPart.Anchored = false
            arg2.HumanoidRootPart.CanCollide = true
            arg2.LowerTorso.CanCollide = true
            arg2.UpperTorso.CanCollide = true
            arg2.Humanoid.PlatformStand = false
            arg2.Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
            for _, v_5 in next, {"UpperLeg", "LowerLeg", "Foot"} do
                local var147 = "Right"..v_5
                local var148 = "Left"..v_5
                if arg2:FindFirstChild(var147) then
                    arg2[var147].CanCollide = true
                end
                if arg2:FindFirstChild(var148) then
                    arg2[var148].CanCollide = true
                end
            end
            for _, v_6 in next, arg2:GetChildren() do
                if v_6 and v_6:IsA("BasePart") then
                    v_6.CollisionGroup = "18_npc"
                    if v_6.Name ~= "HumanoidRootPart" and v_6.Name ~= "LowerTorso" and v_6.Name ~= "UpperTorso" then
                        v_6.CanCollide = false
                    end
                end
            end
            arg2.Humanoid.WalkSpeed = _G._services.StarterPlayer.CharacterWalkSpeed
            arg2.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
            -- KONSTANTERROR: [0] 1. Error Block 101 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [614] 403. Error Block 100 start (CF ANALYSIS FAILED)
            if not arg2:FindFirstAncestor("manager") then
                arg2.Humanoid.AutoRotate = true
            else
                -- KONSTANTERROR: [625] 411. Error Block 97 start (CF ANALYSIS FAILED)
                if arg2:FindFirstAncestor("referee") then
                    _G._services.ReplicatedStorage.engine.modules.AI.referee.signal:Fire("update", arg2)
                elseif arg2:FindFirstAncestor("manager") then
                    _G._services.ReplicatedStorage.engine.modules.AI.manager.signal:Fire("update", arg2)
                end
                -- KONSTANTERROR: [625] 411. Error Block 97 end (CF ANALYSIS FAILED)
            end
            -- KONSTANTERROR: [614] 403. Error Block 100 end (CF ANALYSIS FAILED)
        end
    end;
}
ModuleScript raycast ReplicatedStorage.engine.modules.Ragdoll.getUp.raycast
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:17
-- Luau version 6, Types version 3
-- Time taken: 0.001132 seconds

return {
    raycast = function(arg1, arg2) -- Line 3, Named "raycast"
        local Position = arg2.HumanoidRootPart.Position
        local RaycastParams_new_result1 = RaycastParams.new()
        local tbl = {}
        tbl[1] = arg2
        RaycastParams_new_result1.FilterDescendantsInstances = tbl
        RaycastParams_new_result1.FilterType = Enum.RaycastFilterType.Exclude
        RaycastParams_new_result1.IgnoreWater = true
        if workspace:Raycast(Position, arg2.HumanoidRootPart.CFrame.LookVector * -3.5, RaycastParams_new_result1) then
            return "Back"
        end
        if workspace:Raycast(Position, arg2.HumanoidRootPart.CFrame.LookVector * 3.5, RaycastParams_new_result1) then
            return "Front"
        end
        return "Back"
    end;
}
ModuleScript Teleport ReplicatedStorage.engine.modules.Teleport
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:18
-- Luau version 6, Types version 3
-- Time taken: 0.001377 seconds

return {
    start = function(arg1, arg2, arg3, arg4) -- Line 3, Named "start"
        assert(arg2, "TeleportService | dataModel 'player' expected, got "..typeof(arg2))
        assert(arg3, "TeleportService | integer 'placeId' expected, got "..typeof(arg3))
        local pcall_result1, pcall_result2 = pcall(function() -- Line 7
            --[[ Upvalues[3]:
                [1]: arg4 (readonly)
                [2]: arg3 (readonly)
                [3]: arg2 (readonly)
            ]]
            if arg4 then
                return _G._services.TeleportService:TeleportToPlaceInstance(arg3, arg4, arg2)
            end
            return _G._services.TeleportService:Teleport(arg3, arg2)
        end)
        if not pcall_result1 then
            warn("TeleportService | failed to teleport player "..arg2.Name.." ("..pcall_result2..')')
            arg2:Kick("Failed to teleport to place; rejoin.")
        end
    end;
}
ModuleScript ParticleEmitter ReplicatedStorage.engine.modules.ParticleEmitter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:20
-- Luau version 6, Types version 3
-- Time taken: 0.002059 seconds

return {
    emit = function(arg1, arg2, arg3, arg4) -- Line 3, Named "emit"
        assert(arg2, "ParticleEmitter | vector3 'position' expected, got "..typeof(arg2))
        assert(arg3, "ParticleEmitter | particleEmitter 'reference' expected, got "..typeof(arg3))
        if not arg4 then
        end
        local var3 = {
            enum = "emit";
            emit = 5;
        }
        local clone_upvr = _G._references.Main.effects.particle:Clone()
        clone_upvr.Parent = workspace.game.debug
        clone_upvr.Position = arg2
        local clone_upvr_2 = arg3:Clone()
        clone_upvr_2.Parent = clone_upvr
        if var3.enum == "emit" then
            clone_upvr_2:Emit(var3.emit)
            task.delay(5, function() -- Line 19
                --[[ Upvalues[1]:
                    [1]: clone_upvr (readonly)
                ]]
                clone_upvr:Destroy()
            end)
        else
            clone_upvr_2.Enabled = true
            task.delay(var3.lifeTime, function() -- Line 25
                --[[ Upvalues[2]:
                    [1]: clone_upvr_2 (readonly)
                    [2]: clone_upvr (readonly)
                ]]
                clone_upvr_2.Enabled = false
                task.delay(5, function() -- Line 28
                    --[[ Upvalues[1]:
                        [1]: clone_upvr (copied, readonly)
                    ]]
                    clone_upvr:Destroy()
                end)
            end)
        end
    end;
}
ModuleScript Rain ReplicatedStorage.engine.modules.Rain
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:21
-- Luau version 6, Types version 3
-- Time taken: 0.024954 seconds

local tbl_upvr_3 = {
    Rate = 12;
    Size = 0.04;
    Tint = Color3.fromRGB(226, 244, 255);
    Fade = 1.5;
    UpdateFreq = (1/60);
}
local CurrentCamera_upvr = workspace.CurrentCamera
local UserSettings_result1_upvw = UserSettings()
local GameSettings_upvr = UserSettings_result1_upvw.GameSettings
local var6_upvw
if var6_upvw > GameSettings_upvr.SavedQualityLevel.Value then
    UserSettings_result1_upvw = false
else
    UserSettings_result1_upvw = true
end
GameSettings_upvr:GetPropertyChangedSignal("SavedQualityLevel"):Connect(function() -- Line 74
    --[[ Upvalues[2]:
        [1]: UserSettings_result1_upvw (read and write)
        [2]: GameSettings_upvr (readonly)
    ]]
    local var8 = true
    if 8 > GameSettings_upvr.SavedQualityLevel.Value then
        if GameSettings_upvr.SavedQualityLevel.Value ~= 0 then
            var8 = false
        else
            var8 = true
        end
    end
    UserSettings_result1_upvw = var8
end)
var6_upvw = tbl_upvr_3.Rate
tbl_upvr_3.Rate = var6_upvw or 5
var6_upvw = tbl_upvr_3.Size
tbl_upvr_3.Size = var6_upvw or 1.5
local Tint = tbl_upvr_3.Tint
if not Tint then
    Tint = Color3.fromRGB
    var6_upvw = 226
    Tint = Tint(var6_upvw, 244, 255)
end
tbl_upvr_3.Tint = Tint
var6_upvw = tbl_upvr_3.Fade
tbl_upvr_3.Fade = var6_upvw or 1.5
var6_upvw = tbl_upvr_3.UpdateFreq
tbl_upvr_3.UpdateFreq = var6_upvw or 0.022222222222222223
local tbl_upvr = {}
var6_upvw = 0
local Character_upvr = game:GetService("Players").LocalPlayer.Character
if Character_upvr then
    local var15_upvr = var6_upvw + 1
    var6_upvw += 1
    tbl_upvr[var15_upvr] = Character_upvr
    local var17_upvw
    var17_upvw = Character_upvr.AncestryChanged:Connect(function() -- Line 95
        --[[ Upvalues[5]:
            [1]: Character_upvr (readonly)
            [2]: var17_upvw (read and write)
            [3]: tbl_upvr (readonly)
            [4]: var15_upvr (readonly)
            [5]: var6_upvw (read and write)
        ]]
        if Character_upvr:IsDescendantOf(game) then
        else
            var17_upvw:Disconnect()
            tbl_upvr[var15_upvr] = tbl_upvr[var6_upvw]
            tbl_upvr[var6_upvw] = nil
            var6_upvw -= 1
        end
    end)
end
var15_upvr = workspace
Character_upvr = var15_upvr.game
local var18_upvr = Character_upvr
if var18_upvr then
    var15_upvr = var6_upvw + 1
    local var19_upvr = var15_upvr
    var6_upvw += 1
    tbl_upvr[var19_upvr] = var18_upvr
    local var21_upvw
    var21_upvw = var18_upvr.AncestryChanged:Connect(function() -- Line 95
        --[[ Upvalues[5]:
            [1]: var18_upvr (readonly)
            [2]: var21_upvw (read and write)
            [3]: tbl_upvr (readonly)
            [4]: var19_upvr (readonly)
            [5]: var6_upvw (read and write)
        ]]
        if var18_upvr:IsDescendantOf(game) then
        else
            var21_upvw:Disconnect()
            tbl_upvr[var19_upvr] = tbl_upvr[var6_upvw]
            tbl_upvr[var6_upvw] = nil
            var6_upvw -= 1
        end
    end)
end
var19_upvr = workspace
var18_upvr = var19_upvr.pitch
local var22_upvr = var18_upvr
if var22_upvr then
    var19_upvr = var6_upvw + 1
    local var23_upvr = var19_upvr
    var6_upvw += 1
    tbl_upvr[var23_upvr] = var22_upvr
    local var25_upvw
    var25_upvw = var22_upvr.AncestryChanged:Connect(function() -- Line 95
        --[[ Upvalues[5]:
            [1]: var22_upvr (readonly)
            [2]: var25_upvw (read and write)
            [3]: tbl_upvr (readonly)
            [4]: var23_upvr (readonly)
            [5]: var6_upvw (read and write)
        ]]
        if var22_upvr:IsDescendantOf(game) then
        else
            var25_upvw:Disconnect()
            tbl_upvr[var23_upvr] = tbl_upvr[var6_upvw]
            tbl_upvr[var6_upvw] = nil
            var6_upvw -= 1
        end
    end)
end
var22_upvr = game:GetService("Players").LocalPlayer.CharacterAdded:Connect
var22_upvr(function(arg1) -- Line 88, Named "addToIgnore"
    --[[ Upvalues[2]:
        [1]: var6_upvw (read and write)
        [2]: tbl_upvr (readonly)
    ]]
    if arg1 then
        local var11_upvr = var6_upvw + 1
        var6_upvw += 1
        tbl_upvr[var11_upvr] = arg1
        local var13_upvw
        var13_upvw = arg1.AncestryChanged:Connect(function() -- Line 95
            --[[ Upvalues[5]:
                [1]: arg1 (readonly)
                [2]: var13_upvw (read and write)
                [3]: tbl_upvr (copied, readonly)
                [4]: var11_upvr (readonly)
                [5]: var6_upvw (copied, read and write)
            ]]
            if arg1:IsDescendantOf(game) then
            else
                var13_upvw:Disconnect()
                tbl_upvr[var11_upvr] = tbl_upvr[var6_upvw]
                tbl_upvr[var6_upvw] = nil
                var6_upvw -= 1
            end
        end)
    end
end)
var22_upvr = Instance.new
var23_upvr = "Folder"
var22_upvr = var22_upvr(var23_upvr)
local var26_upvr = var22_upvr
var23_upvr = "ScreenDroplets"
var26_upvr.Name = var23_upvr
var26_upvr.Parent = CurrentCamera_upvr
if var26_upvr then
    var23_upvr = var6_upvw + 1
    local var27_upvr = var23_upvr
    var6_upvw += 1
    tbl_upvr[var27_upvr] = var26_upvr
    local var29_upvw
    var29_upvw = var26_upvr.AncestryChanged:Connect(function() -- Line 95
        --[[ Upvalues[5]:
            [1]: var26_upvr (readonly)
            [2]: var29_upvw (read and write)
            [3]: tbl_upvr (readonly)
            [4]: var27_upvr (readonly)
            [5]: var6_upvw (read and write)
        ]]
        if var26_upvr:IsDescendantOf(game) then
        else
            var29_upvw:Disconnect()
            tbl_upvr[var27_upvr] = tbl_upvr[var6_upvw]
            tbl_upvr[var6_upvw] = nil
            var6_upvw -= 1
        end
    end)
end
var27_upvr = {}
local var30_upvr = var27_upvr
local tbl_upvr_2 = {}
local CFrame_upvw = CurrentCamera_upvr.CFrame
local var34_upvw = tbl_upvr_3.Rate * tbl_upvr_3.Fade * 3
game:GetService("RunService"):BindToRenderStep("ScreenRainUpdate", Enum.RenderPriority.Camera.Value + 1, function() -- Line 127
    --[[ Upvalues[4]:
        [1]: CFrame_upvw (read and write)
        [2]: CurrentCamera_upvr (readonly)
        [3]: var34_upvw (read and write)
        [4]: tbl_upvr_2 (readonly)
    ]]
    CFrame_upvw = CurrentCamera_upvr.CFrame
    local table_create_result1_2 = table.create(var34_upvw)
    local table_create_result1 = table.create(var34_upvw)
    local var41 = 0
    for i, v in pairs(tbl_upvr_2) do
        var41 += 1
        table_create_result1[var41] = CFrame_upvw * v
        table_create_result1_2[var41] = i
    end
    var34_upvw = var41
    workspace:BulkMoveTo(table_create_result1_2, table_create_result1, Enum.BulkMoveMode.FireCFrameChanged)
end)
local Part = Instance.new("Part")
Part.Name = "Droplet"
Part.Material = Enum.Material.Glass
Part.CastShadow = false
Part.CanCollide = false
Part.CanQuery = false
Part.CanTouch = false
Part.Anchored = true
Part.Transparency = 0.5
Part.Color = tbl_upvr_3.Tint
Part.Size = Vector3.new(1, 1, 1)
local SpecialMesh = Instance.new("SpecialMesh")
SpecialMesh.Name = "Mesh"
SpecialMesh.MeshType = Enum.MeshType.Sphere
SpecialMesh.Parent = Part
local any_new_result1_upvw = require(script.ObjectPool).new(Part, tbl_upvr_3.Rate * tbl_upvr_3.Fade * 3)
local function _(arg1) -- Line 167, Named "Cleanup"
    --[[ Upvalues[3]:
        [1]: var30_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
        [3]: any_new_result1_upvw (read and write)
    ]]
    var30_upvr[arg1] = nil
    tbl_upvr_2[arg1] = nil
    any_new_result1_upvw:Return(arg1)
end
local function UnderObject_upvr(arg1, arg2) -- Line 174, Named "UnderObject"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: UnderObject_upvr (readonly)
    ]]
    local var48 = arg2 or 120
    local workspace_FindPartOnRayWithIgnoreList_result1, workspace_FindPartOnRayWithIgnoreList_result2_2 = workspace:FindPartOnRayWithIgnoreList(Ray.new(arg1, Vector3.new(0, 1, 0) * var48), tbl_upvr)
    if workspace_FindPartOnRayWithIgnoreList_result1 then
        if workspace_FindPartOnRayWithIgnoreList_result1.Transparency ~= 1 then
            return true
        end
        return UnderObject_upvr(workspace_FindPartOnRayWithIgnoreList_result2_2 + Vector3.new(0, 1, 0), var48 - (arg1 - workspace_FindPartOnRayWithIgnoreList_result2_2).Magnitude)
    end
    return false
end
local function CreateDroplet_upvr() -- Line 186, Named "CreateDroplet"
    --[[ Upvalues[5]:
        [1]: tbl_upvr_3 (readonly)
        [2]: any_new_result1_upvw (read and write)
        [3]: tbl_upvr_2 (readonly)
        [4]: var30_upvr (readonly)
        [5]: var26_upvr (readonly)
    ]]
    local var53 = tbl_upvr_3.Size + math.random(tbl_upvr_3.Size / 3 * -10, tbl_upvr_3.Size / 3 * 10) / 10
    local any_Get_result1_2 = any_new_result1_upvw:Get()
    any_Get_result1_2.Mesh.Scale = Vector3.new(var53, var53, var53)
    any_Get_result1_2.Mesh.Offset = Vector3.new(0, 0, 0)
    any_Get_result1_2.Color = tbl_upvr_3.Tint
    any_Get_result1_2.Transparency = 0.7
    local cframe = CFrame.new(math.random(-120, 120) / 100, math.random(-100, 100) / 100, -1)
    tbl_upvr_2[any_Get_result1_2] = cframe
    var30_upvr[any_Get_result1_2] = {
        startClock = os.clock();
        scale = var53;
        stretch = math.random(5, 10) / 10 * var53;
        mesh = any_Get_result1_2.Mesh;
    }
    any_Get_result1_2.Parent = var26_upvr
    for _ = 1, math.random(4) do
        local var57 = var53 / 1.5 + math.random(var53 / 3 * -100, var53 / 3 * 100) / 100
        local any_Get_result1 = any_new_result1_upvw:Get()
        any_Get_result1.Mesh.Scale = Vector3.new(var57, var57, var57)
        any_Get_result1.Mesh.Offset = Vector3.new(0, 0, 0)
        any_Get_result1.Color = tbl_upvr_3.Tint
        any_Get_result1.Transparency = 0.7
        local var59 = var57 * 60
        tbl_upvr_2[any_Get_result1] = cframe * CFrame.new(math.random(-var59, var59) / 100, math.random(-var59, var59) / 100, 0)
        var30_upvr[any_Get_result1] = {
            startClock = os.clock();
            scale = var57;
            stretch = math.random(5, 10) / 10 * var57;
            mesh = any_Get_result1.Mesh;
        }
        any_Get_result1.Parent = var26_upvr
    end
end
return {
    Enabled = false;
    _activeUpdater = false;
    Enable = function(arg1, arg2) -- Line 237, Named "Enable"
        --[[ Upvalues[9]:
            [1]: tbl_upvr_3 (readonly)
            [2]: var30_upvr (readonly)
            [3]: tbl_upvr_2 (readonly)
            [4]: any_new_result1_upvw (read and write)
            [5]: UserSettings_result1_upvw (read and write)
            [6]: CFrame_upvw (read and write)
            [7]: tbl_upvr (readonly)
            [8]: UnderObject_upvr (readonly)
            [9]: CreateDroplet_upvr (readonly)
        ]]
        arg1.Enabled = true
        arg1:Configure(arg2)
        if arg1._activeUpdater then
        else
            arg1._activeUpdater = true
            local var63_upvw = 0
            task.defer(function() -- Line 248
                --[[ Upvalues[11]:
                    [1]: tbl_upvr_3 (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: var30_upvr (copied, readonly)
                    [4]: tbl_upvr_2 (copied, readonly)
                    [5]: any_new_result1_upvw (copied, read and write)
                    [6]: UserSettings_result1_upvw (copied, read and write)
                    [7]: CFrame_upvw (copied, read and write)
                    [8]: tbl_upvr (copied, readonly)
                    [9]: UnderObject_upvr (copied, readonly)
                    [10]: var63_upvw (read and write)
                    [11]: CreateDroplet_upvr (copied, readonly)
                ]]
                if not task.wait(tbl_upvr_3.UpdateFreq) then
                    -- KONSTANTWARNING: GOTO [195] #154
                end
                if not arg1.Enabled and not next(var30_upvr) then
                    arg1._activeUpdater = false
                    return
                end
                debug.profilebegin("ScreenRainUpdate")
                debug.profilebegin("Animations")
                for i_4, v_3 in pairs(var30_upvr) do
                    local var93 = os.clock() - v_3.startClock
                    if tbl_upvr_3.Fade <= var93 then
                        var30_upvr[i_4] = nil
                        tbl_upvr_2[i_4] = nil
                        any_new_result1_upvw:Return(i_4)
                    else
                        local mesh = v_3.mesh
                        local scale = v_3.scale
                        local var96 = var93 / tbl_upvr_3.Fade
                        local var97 = scale + (v_3.stretch) * (var96 * var96 * var96 * var96)
                        i_4.Transparency = 0.7 + (0.3) * (var96 * var96)
                        mesh.Scale = Vector3.new(scale, var97, scale)
                        mesh.Offset = Vector3.new(0, var97 / -2, 0)
                    end
                end
                debug.profileend()
                debug.profilebegin("Droplet Creation")
                if arg1.Enabled and UserSettings_result1_upvw then
                    local Y = CFrame_upvw.LookVector.Y
                    if -0.7 < Y then
                        local Position_2 = CFrame_upvw.Position
                        local var100 = nil or 120
                        i_4 = workspace:FindPartOnRayWithIgnoreList(Ray.new(Position_2, Vector3.new(0, 1, 0) * var100), tbl_upvr)
                        local workspace_FindPartOnRayWithIgnoreList_result1_2, workspace_FindPartOnRayWithIgnoreList_result2 = workspace:FindPartOnRayWithIgnoreList(Ray.new(Position_2, Vector3.new(0, 1, 0) * var100), tbl_upvr)
                        if workspace_FindPartOnRayWithIgnoreList_result1_2 then
                            if workspace_FindPartOnRayWithIgnoreList_result1_2.Transparency ~= 1 then
                                Y = true
                            else
                                Y = UnderObject_upvr(workspace_FindPartOnRayWithIgnoreList_result2 + Vector3.new(0, 1, 0), var100 - (Position_2 - workspace_FindPartOnRayWithIgnoreList_result2).Magnitude)
                            end
                        else
                            Y = false
                        end
                        if not Y then
                            Y = var63_upvw
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            workspace_FindPartOnRayWithIgnoreList_result2 = tbl_upvr_3
                            workspace_FindPartOnRayWithIgnoreList_result1_2 = workspace_FindPartOnRayWithIgnoreList_result2.Rate
                            Y += (os.clock() - os.clock()) * workspace_FindPartOnRayWithIgnoreList_result1_2
                            var63_upvw = Y
                            workspace_FindPartOnRayWithIgnoreList_result2 = var63_upvw
                            workspace_FindPartOnRayWithIgnoreList_result1_2 = math.floor(workspace_FindPartOnRayWithIgnoreList_result2)
                            Y = workspace_FindPartOnRayWithIgnoreList_result1_2
                            for _ = 1, Y do
                                workspace_FindPartOnRayWithIgnoreList_result1_2 = CreateDroplet_upvr
                                workspace_FindPartOnRayWithIgnoreList_result1_2()
                            end
                            Y = var63_upvw
                            Y %= 1
                            var63_upvw = Y
                        else
                            var63_upvw %= 1
                        end
                        debug.profileend()
                        debug.profileend()
                        -- KONSTANTWARNING: GOTO [3] #3
                    end
                    -- KONSTANTWARNING: GOTO [184] #145
                end
            end)
        end
    end;
    Disable = function(arg1) -- Line 301, Named "Disable"
        arg1.Enabled = false
    end;
    Configure = function(arg1, arg2) -- Line 305, Named "Configure"
        --[[ Upvalues[1]:
            [1]: tbl_upvr_3 (readonly)
        ]]
        if type(arg2) == "table" then
            for i_3, v_2 in pairs(arg2) do
                tbl_upvr_3[i_3] = v_2
            end
        end
    end;
}
ModuleScript ObjectPool ReplicatedStorage.engine.modules.Rain.ObjectPool
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:22
-- Luau version 6, Types version 3
-- Time taken: 0.002006 seconds

local module = {}
local cframe_upvr = CFrame.new(0, 0, 1000000)
function module.new(arg1, arg2) -- Line 9
    --[[ Upvalues[1]:
        [1]: cframe_upvr (readonly)
    ]]
    local module_2_upvr = {
        Object = arg1:Clone();
        Available = {};
    }
    for i = 1, arg2 or 1 do
        module_2_upvr.Available[i] = module_2_upvr.Object:Clone()
    end
    function module_2_upvr.Get(arg1_2) -- Line 19
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        local len = #module_2_upvr.Available
        local var7 = module_2_upvr.Available[len]
        if var7 then
            table.remove(module_2_upvr.Available, len)
            return var7
        end
        return module_2_upvr.Object:Clone()
    end
    function module_2_upvr.Return(arg1_3, arg2_2) -- Line 30
        --[[ Upvalues[2]:
            [1]: cframe_upvr (copied, readonly)
            [2]: module_2_upvr (readonly)
        ]]
        arg2_2.CFrame = cframe_upvr
        table.insert(module_2_upvr.Available, arg2_2)
    end
    return module_2_upvr
end
return module
ModuleScript MouseLock ReplicatedStorage.engine.modules.MouseLock
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:24
-- Luau version 6, Types version 3
-- Time taken: 0.002813 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local module_upvr = {
    Maid = engine:load("Maid").new();
    Enabled = false;
    MaxLength = 900000;
    Offset = {
        Enabled = CFrame.new(1.7, 0, 0);
        Disabled = CFrame.new(-1.7, 0, 0);
    };
    Icons = {
        Enabled = "rbxasset://textures/ui/[email protected]";
        Disabled = "rbxasset://textures/ui/[email protected]";
    };
}
local Services_upvr = engine.Services
local References_upvr = engine.References
function module_upvr.Start(arg1, arg2) -- Line 21
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if arg2 then
        module_upvr.Maid.RenderStepped = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 23
            --[[ Upvalues[2]:
                [1]: References_upvr (copied, readonly)
                [2]: module_upvr (copied, readonly)
            ]]
            if References_upvr.LocalPlayer.Character.Humanoid.AutoRotate then
                References_upvr.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(References_upvr.LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(workspace.CurrentCamera.CFrame.LookVector.X * module_upvr.MaxLength, References_upvr.LocalPlayer.Character.HumanoidRootPart.Position.Y, workspace.CurrentCamera.CFrame.LookVector.Z * module_upvr.MaxLength))
            end
            workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * module_upvr.Offset.Enabled
        end)
    else
        module_upvr.Maid:DoCleaning()
    end
end
return module_upvr
ModuleScript Overhead ReplicatedStorage.engine.modules.Overhead
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:25
-- Luau version 6, Types version 3
-- Time taken: 0.006980 seconds

local Players = game:GetService("Players")
local module_upvr = {
    OnAdded = {};
}
local tbl_upvr_2 = {}
local tbl_upvr = {}
local function remove_upvr(arg1) -- Line 14, Named "remove"
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    if not tbl_upvr[arg1] then
    else
        pcall(tbl_upvr[arg1]._BillboardGui.Destroy, tbl_upvr[arg1]._BillboardGui)
        tbl_upvr[arg1] = nil
    end
end
local OverheadGui_upvr = require(script.OverheadGui)
function module_upvr.Add(arg1, arg2, arg3) -- Line 20
    --[[ Upvalues[3]:
        [1]: OverheadGui_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local SOME = _G._references.Profiles:WaitForChild(tostring(arg3), 100)
    local any_new_result1 = OverheadGui_upvr.new(arg1, arg2)
    local var20
    if SOME then
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var20 = string.format("[%s] %s", tostring(SOME.level.Level.Value), any_new_result1.Player.Name)
            return var20
        end
        if not any_new_result1.Player or not INLINED() then
            var20 = string.format("[%s] %s", tostring(SOME.level.Level.Value), arg1.Name)
        end
        any_new_result1:AddTag("Username", var20)
    else
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var20 = any_new_result1.Player.Name
            return var20
        end
        if not any_new_result1.Player or not INLINED_2() then
            var20 = arg1.Name
        end
        any_new_result1:AddTag("Username", var20)
    end
    any_new_result1._BillboardGui.Destroying:Connect(function() -- Line 30
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr (copied, readonly)
        ]]
        local var22 = arg1
        if not tbl_upvr[var22] then
        else
            pcall(tbl_upvr[var22]._BillboardGui.Destroy, tbl_upvr[var22]._BillboardGui)
            tbl_upvr[var22] = nil
        end
    end)
    tbl_upvr[arg1] = any_new_result1
    for _, v in tbl_upvr_2 do
        task.spawn(v, any_new_result1)
    end
    return any_new_result1
end
function module_upvr.Get(arg1) -- Line 36
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    return tbl_upvr[arg1]
end
module_upvr.OnAdded.Connect = function(arg1, arg2, arg3) -- Line 40, Named "Connect"
    --[[ Upvalues[2]:
        [1]: tbl_upvr_2 (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    local module = {
        Disconnect = function(arg1_2) -- Line 41, Named "Disconnect"
            --[[ Upvalues[1]:
                [1]: tbl_upvr_2 (copied, readonly)
            ]]
            tbl_upvr_2[arg1_2] = nil
        end;
    }
    tbl_upvr_2[module] = arg2
    if not arg3 then
        for _, v_2 in tbl_upvr do
            task.spawn(arg2, v_2)
        end
    end
    return module
end
local function onCharacterAdded_upvr(arg1, arg2) -- Line 49, Named "onCharacterAdded"
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if arg1:FindFirstChild("Head") then
        module_upvr.Add(arg1, arg1.Head, arg2)
    else
        local var27_upvw
        var27_upvw = arg1.ChildAdded:Connect(function(arg1_3) -- Line 52
            --[[ Upvalues[4]:
                [1]: var27_upvw (read and write)
                [2]: module_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: arg2 (readonly)
            ]]
            if arg1_3.Name ~= "Head" then
            else
                var27_upvw:Disconnect()
                module_upvr.Add(arg1, arg1_3, arg2)
            end
        end)
    end
end
local function onPlayerAdded(arg1) -- Line 60
    --[[ Upvalues[2]:
        [1]: onCharacterAdded_upvr (readonly)
        [2]: remove_upvr (readonly)
    ]]
    if arg1:FindFirstChildWhichIsA("PlayerGui") then
        script.DefaultOverheads:Clone().Parent = arg1.PlayerGui
    else
        local var29_upvw
        var29_upvw = arg1.ChildAdded:Connect(function(arg1_4) -- Line 63
            --[[ Upvalues[1]:
                [1]: var29_upvw (read and write)
            ]]
            if not arg1_4:IsA("PlayerGui") then
            else
                var29_upvw:Disconnect()
                script.DefaultOverheads:Clone().Parent = arg1_4
            end
        end)
    end
    arg1.CharacterAdded:Connect(function(arg1_5) -- Line 69
        --[[ Upvalues[2]:
            [1]: onCharacterAdded_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        onCharacterAdded_upvr(arg1.Character, arg1.UserId)
    end)
    arg1.CharacterRemoving:Connect(remove_upvr)
    if arg1.Character then
        onCharacterAdded_upvr(arg1.Character, arg1.UserId)
    end
end
Players.PlayerAdded:Connect(onPlayerAdded)
for _, v_3 in Players:GetPlayers() do
    task.spawn(onPlayerAdded, v_3)
end
return module_upvr
ModuleScript OverheadGui ReplicatedStorage.engine.modules.Overhead.OverheadGui
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:26
-- Luau version 6, Types version 3
-- Time taken: 0.004920 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local Players_upvr = game:GetService("Players")
function module_2_upvr.new(arg1, arg2) -- Line 10
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    local clone = script.BillboardGui:Clone()
    local any_GetPlayerFromCharacter_result1 = Players_upvr:GetPlayerFromCharacter(arg1)
    clone.Adornee = arg2
    clone.PlayerToHideFrom = any_GetPlayerFromCharacter_result1
    clone.Parent = arg1
    local module = {}
    module.Character = arg1
    module.Player = any_GetPlayerFromCharacter_result1
    module._BillboardGui = clone
    module._Container = clone.Container
    module._tags = {}
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr._reorderTags(arg1) -- Line 23
    for i, v in ipairs(arg1._tags) do
        v.LayoutOrder = -i
    end
end
function module_2_upvr._onTagDestroying(arg1, arg2) -- Line 27
    local table_find_result1 = table.find(arg1._tags, arg2)
    if table_find_result1 then
        table.remove(arg1._tags, table_find_result1)
        arg1:_reorderTags()
    end
end
function module_2_upvr.AddTag(arg1, arg2, arg3, arg4) -- Line 32
    local any_GetTag_result1, _ = arg1:GetTag(arg2)
    if any_GetTag_result1 then
        local table_find_result1_2 = table.find(arg1._tags, any_GetTag_result1)
        table.remove(arg1._tags, table_find_result1_2)
        any_GetTag_result1:Destroy()
    end
    local clone_2_upvw = script.TextLabel:Clone()
    clone_2_upvw.Name = arg2
    clone_2_upvw.Text = arg3
    local function var22() -- Line 41
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: clone_2_upvw (read and write)
        ]]
        arg1:_onTagDestroying(clone_2_upvw)
    end
    clone_2_upvw.Destroying:Connect(var22)
    clone_2_upvw.Parent = arg1._Container
    var22 = arg4
    local var23 = var22
    if not var23 then
        var23 = table_find_result1_2
        if not var23 then
            var23 = #arg1._tags + 1
        end
    end
    table.insert(arg1._tags, var23, clone_2_upvw)
    arg1:_reorderTags()
    return clone_2_upvw
end
function module_2_upvr.GetTag(arg1, arg2) -- Line 48
    for _, v_2 in arg1._tags do
        if v_2.Name == arg2 then
            return v_2
        end
    end
end
return module_2_upvr
LocalScript LocalScript ReplicatedStorage.engine.modules.Overhead.DefaultOverheads.LocalScript
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:28
-- Luau version 6, Types version 3
-- Time taken: 0.002793 seconds

local module_upvr = require(script.Parent:WaitForChild("ModuleScript"))
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local function getViewerPosition_upvr() -- Line 4, Named "getViewerPosition"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return LocalPlayer_upvr.Character.Head.Position
end
game:GetService("RunService").Heartbeat:Connect(function() -- Line 8
    --[[ Upvalues[2]:
        [1]: getViewerPosition_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local pcall_result1, pcall_result2 = pcall(getViewerPosition_upvr)
    module_upvr.UpdateAll(pcall_result1 and pcall_result2)
end)
local function onCharacterAdded(arg1) -- Line 18
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if arg1:FindFirstChildWhichIsA("Humanoid") then
        module_upvr.SetDisplayDistance(arg1.Humanoid.NameDisplayDistance)
        arg1.Humanoid.NameDisplayDistance = 0
    else
        local var7_upvw
        var7_upvw = arg1.ChildAdded:Connect(function(arg1_2) -- Line 23
            --[[ Upvalues[3]:
                [1]: var7_upvw (read and write)
                [2]: module_upvr (copied, readonly)
                [3]: arg1 (readonly)
            ]]
            if not arg1_2:IsA("Humanoid") then
            else
                var7_upvw:Disconnect()
                module_upvr.SetDisplayDistance(arg1.Humanoid.NameDisplayDistance)
                arg1.Humanoid.NameDisplayDistance = 0
            end
        end)
    end
end
LocalPlayer_upvr.CharacterAdded:Connect(onCharacterAdded)
if LocalPlayer_upvr.Character then
    onCharacterAdded(LocalPlayer_upvr.Character)
end
ModuleScript ModuleScript ReplicatedStorage.engine.modules.Overhead.DefaultOverheads.ModuleScript
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:29
-- Luau version 6, Types version 3
-- Time taken: 0.009599 seconds

local CollectionService = game:GetService("CollectionService")
local module_upvr_2 = {
    OnAdded = {};
}
local tbl_upvr_2 = {}
local tbl_upvr = {}
local NameDisplayDistance_upvw = game:GetService("StarterPlayer").NameDisplayDistance
local RaycastParams_new_result1_upvr = RaycastParams.new()
RaycastParams_new_result1_upvr.FilterType = Enum.RaycastFilterType.Exclude
local module_upvr = require(script:WaitForChild("OverheadGui"))
local function add_upvr(arg1, arg2, arg3, arg4) -- Line 20, Named "add"
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: tbl_upvr (readonly)
    ]]
    local any_new_result1 = module_upvr.new(arg1, arg2, arg3, arg4)
    module_upvr_2.AddToFilter({any_new_result1.Character})
    tbl_upvr_2[any_new_result1.Character] = any_new_result1
    for _, v in tbl_upvr do
        task.spawn(v, any_new_result1)
    end
end
function module_upvr_2.AddToFilter(arg1) -- Line 27
    --[[ Upvalues[1]:
        [1]: RaycastParams_new_result1_upvr (readonly)
    ]]
    local FilterDescendantsInstances_2 = RaycastParams_new_result1_upvr.FilterDescendantsInstances
    for _, v_2 in arg1 do
        if not table.find(FilterDescendantsInstances_2, v_2) then
            table.insert(FilterDescendantsInstances_2, v_2)
        end
    end
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = FilterDescendantsInstances_2
end
function module_upvr_2.RemoveFromFilter(arg1) -- Line 33
    --[[ Upvalues[1]:
        [1]: RaycastParams_new_result1_upvr (readonly)
    ]]
    local FilterDescendantsInstances = RaycastParams_new_result1_upvr.FilterDescendantsInstances
    for _, v_3 in arg1 do
        local table_find_result1 = table.find(FilterDescendantsInstances, v_3)
        if table_find_result1 then
            table.remove(FilterDescendantsInstances, table_find_result1)
        end
    end
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = FilterDescendantsInstances
end
function module_upvr_2.SetDisplayDistance(arg1) -- Line 39
    --[[ Upvalues[1]:
        [1]: NameDisplayDistance_upvw (read and write)
    ]]
    NameDisplayDistance_upvw = math.max(0, arg1)
end
function module_upvr_2.Get(arg1) -- Line 43
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    return tbl_upvr_2[arg1]
end
module_upvr_2.OnAdded.Connect = function(arg1, arg2, arg3) -- Line 47, Named "Connect"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
    ]]
    local module = {
        Disconnect = function(arg1_2) -- Line 48, Named "Disconnect"
            --[[ Upvalues[1]:
                [1]: tbl_upvr (copied, readonly)
            ]]
            tbl_upvr[arg1_2] = nil
        end;
    }
    tbl_upvr[module] = arg2
    if not arg3 then
        for _, v_4 in tbl_upvr_2 do
            task.spawn(arg2, v_4)
        end
    end
    return module
end
local Camera_upvr = workspace:WaitForChild("Camera")
local function onBillboardGuiAdded(arg1) -- Line 54, Named "UpdateAll"
    --[[ Upvalues[4]:
        [1]: Camera_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
        [3]: NameDisplayDistance_upvw (read and write)
        [4]: RaycastParams_new_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 30 start (CF ANALYSIS FAILED)
    if not arg1 or not arg1 then
    end
    -- KONSTANTERROR: [0] 1. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [86] 66. Error Block 23 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [86] 66. Error Block 23 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 16. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [86.8]
    -- KONSTANTERROR: [19] 16. Error Block 6 end (CF ANALYSIS FAILED)
end
module_upvr_2.UpdateAll = onBillboardGuiAdded
function onBillboardGuiAdded(arg1) -- Line 73
    --[[ Upvalues[3]:
        [1]: tbl_upvr_2 (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: add_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local Container_upvw = arg1:FindFirstChild("Container")
    local var31_upvw
    if var31_upvw then
        var31_upvw = Container_upvw:FindFirstChildWhichIsA("UIScale")
    end
    if Container_upvw then
    end
    arg1.Destroying:Connect(function() -- Line 76
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (copied, readonly)
            [2]: arg1 (readonly)
            [3]: module_upvr_2 (copied, readonly)
        ]]
        for _, v_5 in tbl_upvr_2 do
            if v_5._BillboardGui == arg1 then
                module_upvr_2.RemoveFromFilter({v_5.Character})
                tbl_upvr_2[v_5.Character] = nil
                return
            end
        end
    end)
    if Container_upvw and var31_upvw and Container_upvw:FindFirstChildWhichIsA("UIListLayout") then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        add_upvr(arg1, Container_upvw, var31_upvw, Container_upvw:FindFirstChildWhichIsA("UIListLayout"))
    else
        local class_UIListLayout_upvw = Container_upvw:FindFirstChildWhichIsA("UIListLayout")
        local var38_upvw
        var38_upvw = arg1.DescendantAdded:Connect(function(arg1_3) -- Line 85
            --[[ Upvalues[6]:
                [1]: arg1 (readonly)
                [2]: Container_upvw (read and write)
                [3]: var31_upvw (read and write)
                [4]: class_UIListLayout_upvw (read and write)
                [5]: var38_upvw (read and write)
                [6]: add_upvr (copied, readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 22 start (CF ANALYSIS FAILED)
            if arg1_3.Parent == arg1 and arg1_3.Name == "Container" then
                Container_upvw = arg1_3
                -- KONSTANTWARNING: GOTO [24] #19
            end
            -- KONSTANTERROR: [0] 1. Error Block 22 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [11] 8. Error Block 23 start (CF ANALYSIS FAILED)
            if arg1_3:IsA("UIScale") then
                var31_upvw = arg1_3
            elseif arg1_3:IsA("UIListLayout") then
                class_UIListLayout_upvw = arg1_3
            end
            if not Container_upvw or not var31_upvw or not class_UIListLayout_upvw then
            else
                var38_upvw:Disconnect()
                add_upvr(arg1, Container_upvw, var31_upvw, class_UIListLayout_upvw)
                -- KONSTANTERROR: [11] 8. Error Block 23 end (CF ANALYSIS FAILED)
            end
        end)
    end
end
local var29 = onBillboardGuiAdded
CollectionService:GetInstanceAddedSignal("OverheadGui"):Connect(var29)
for _, v_6 in CollectionService:GetTagged("OverheadGui") do
    task.spawn(var29, v_6)
end
return module_upvr_2
ModuleScript OverheadGui ReplicatedStorage.engine.modules.Overhead.DefaultOverheads.ModuleScript.OverheadGui
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:30
-- Luau version 6, Types version 3
-- Time taken: 0.004786 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local function _(arg1, arg2) -- Line 12, Named "setTagTransparency"
    arg1.TextTransparency = arg2
    arg1.TextStrokeTransparency = arg2 / 2 + 0.5
end
local Players_upvr = game:GetService("Players")
function module_upvr.new(arg1, arg2, arg3, arg4) -- Line 16
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local Parent = arg1.Parent
    local tbl_2_upvr = {}
    local tbl = {
        Character = Parent;
    }
    local PlayerToHideFrom = arg1.PlayerToHideFrom
    if not PlayerToHideFrom then
        PlayerToHideFrom = Players_upvr:GetPlayerFromCharacter(Parent)
    end
    tbl.Player = PlayerToHideFrom
    tbl._BillboardGui = arg1
    tbl._Container = arg2
    tbl._UIScale = arg3
    tbl._UIListLayout = arg4
    tbl._tags = tbl_2_upvr
    tbl._scale = 1
    tbl._transparency = 0
    tbl._maxDistance = arg1.MaxDistance
    local setmetatable_result1_upvr = setmetatable(tbl, module_upvr)
    arg2.ChildAdded:Connect(function(arg1_2) -- Line 24, Named "onTagAdded"
        --[[ Upvalues[2]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: tbl_2_upvr (readonly)
        ]]
        if not arg1_2:IsA("TextLabel") then
        else
            local _transparency_2 = setmetatable_result1_upvr._transparency
            arg1_2.TextTransparency = _transparency_2
            arg1_2.TextStrokeTransparency = _transparency_2 / 2 + 0.5
            tbl_2_upvr[arg1_2] = true
        end
    end)
    arg2.ChildRemoved:Connect(function(arg1_3) -- Line 30
        --[[ Upvalues[1]:
            [1]: tbl_2_upvr (readonly)
        ]]
        tbl_2_upvr[arg1_3] = nil
    end)
    for _, v in arg2:GetChildren() do
        if not v:IsA("TextLabel") then
        else
            local _transparency = setmetatable_result1_upvr._transparency
            v.TextTransparency = _transparency
            v.TextStrokeTransparency = _transparency / 2 + 0.5
            tbl_2_upvr[v] = true
        end
    end
    arg4:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() -- Line 32
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg4 (readonly)
        ]]
        arg1.Size = UDim2.fromOffset(2, 2 + arg4.AbsoluteContentSize.Y)
    end)
    arg1.Size = UDim2.fromOffset(2, 2 + arg4.AbsoluteContentSize.Y)
    return setmetatable_result1_upvr
end
function module_upvr.Scale(arg1, arg2) -- Line 38
    if arg1._scale == arg2 then
    else
        arg1._scale = arg2
        arg1._UIScale.Scale = arg2
    end
end
function module_upvr.SetTransparency(arg1, arg2) -- Line 44
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg2 = math.clamp(arg2, 0, 1)
    local var23 = arg2
    if arg1._transparency == var23 then
    else
        arg1._transparency = var23
        for i_3 in arg1._tags do
            local var24 = var23
            i_3.TextTransparency = var24
            i_3.TextStrokeTransparency = var24 / 2 + 0.5
        end
    end
end
function module_upvr.SetMaxDistance(arg1, arg2) -- Line 51
    local maximum = math.max(0, arg2)
    if arg1._maxDistance == maximum then
    else
        arg1._maxDistance = maximum
        arg1._BillboardGui.MaxDistance = maximum
    end
end
function module_upvr.GetTag(arg1, arg2) -- Line 58
    for i_2 in arg1._tags do
        if i_2.Name == arg2 then
            return i_2
        end
    end
end
return module_upvr
ModuleScript Foul ReplicatedStorage.engine.modules.Foul
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:32
-- Luau version 6, Types version 3
-- Time taken: 0.038079 seconds

local module_upvr = {
    _ai = _G._engine:load("AI");
    _maid = _G._engine:load("Maid").new();
    _systems = {
        freeKick = _G._engine:load("Freekick");
        penalty = _G._engine:load("Penalty");
    };
    isInBox = function(arg1, arg2, arg3) -- Line 10, Named "isInBox"
        local var3 = workspace.game.regions[arg3]
        if var3.Position.X - var3.Size.X / 2 <= arg2.X and arg2.X <= var3.Position.X + var3.Size.X / 2 and var3.Position.Y - var3.Size.Y / 2 <= arg2.Y and arg2.Y <= var3.Position.Y + var3.Size.Y / 2 and var3.Position.Z - var3.Size.Z / 2 <= arg2.Z and arg2.Z <= var3.Position.Z + var3.Size.Z / 2 then
            return true
        end
        return false
    end;
    getClosestBall = function(arg1, arg2) -- Line 20, Named "getClosestBall"
        local var10
        for _, v in next, workspace.game.balls.server:GetChildren() do
            if v and (v.Position - arg2).Magnitude <= math.huge then
            end
        end
        return nil
    end;
}
function module_upvr.confirmFoul(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 34
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 312 start (CF ANALYSIS FAILED)
    _G._references.Main.sounds.CammySounds.Atmosphere.Referee.Foul:Play()
    local var15
    if workspace.game.referee.rigs:FindFirstChild("main") then
        task.spawn(function() -- Line 38
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._ai.referee:animation(workspace.game.referee.rigs.main, "Whistle")
        end)
    end
    local BoolValue_3 = Instance.new("BoolValue")
    BoolValue_3.Name = "NoReact"
    BoolValue_3.Value = true
    BoolValue_3.Parent = _G._references.Main.config.Delay
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = "Break"
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config.Override
    local BoolValue_2 = Instance.new("BoolValue")
    BoolValue_2.Name = "RTP"
    BoolValue_2.Value = true
    BoolValue_2.Parent = module_upvr.Override
    var15 = _G
    var15._references.Main.config.TimerSpeed.Value = 1
    var15 = _G._references
    if var15.Main.config.AutoRall.Value then
        var15 = workspace
        for _, v_2 in next, var15.game.balls.spawns:GetChildren() do
            if v_2 then
                v_2:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    if arg6 == "home" then
        local Fouls = _G._references.Main.config.Stats.Home.Fouls
        Fouls.Value += 1
    elseif arg6 == "away" then
        local Fouls_2 = _G._references.Main.config.Stats.Away.Fouls
        Fouls_2.Value += 1
    end
    local players, NONE_2 = _G._services.Players:GetPlayers()
    -- KONSTANTERROR: [0] 1. Error Block 312 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [294] 178. Error Block 30 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [294] 178. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [207] 121. Error Block 14 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    -- KONSTANTERROR: [207] 121. Error Block 14 end (CF ANALYSIS FAILED)
end
function module_upvr.onFoul(arg1, arg2, arg3, arg4) -- Line 485
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local any_getClosestBall_result1 = arg1:getClosestBall(arg4)
    local var35_upvw = 0
    local BoolValue_4_upvr = Instance.new("BoolValue")
    BoolValue_4_upvr.Name = "DisableFouls"
    BoolValue_4_upvr.Value = true
    BoolValue_4_upvr.Parent = _G._references.Main.config.Override
    local ObjectValue = Instance.new("ObjectValue")
    ObjectValue.Name = "Offender"
    ObjectValue.Parent = _G._references.Main.config.Override
    ObjectValue.Value = arg2
    local StringValue_2_upvr = Instance.new("StringValue")
    StringValue_2_upvr.Name = "Foul"
    StringValue_2_upvr.Parent = _G._references.Main.config.Override
    if string.find(string.lower(arg2.Team.Name), "home") then
        StringValue_2_upvr.Value = "home"
    else
        StringValue_2_upvr.Value = "away"
    end
    local any_isInBox_result1_upvr = arg1:isInBox(arg4, StringValue_2_upvr.Value)
    local RemoteEvent = Instance.new("RemoteEvent", StringValue_2_upvr)
    RemoteEvent.Name = "Event"
    arg1._maid:GiveTask(ObjectValue)
    arg1._maid:GiveTask(StringValue_2_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    if StringValue_2_upvr.Value == "home" and workspace.game.referee.rigs:FindFirstChild("assistant1") and arg4.Z <= 0 then
        task.spawn(function() -- Line 519
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._ai.referee:animation(workspace.game.referee.rigs.assistant1, "FoulRight")
        end)
    elseif StringValue_2_upvr.Value == "home" and workspace.game.referee.rigs:FindFirstChild("assistant2") and 0 < arg4.Z then
        task.spawn(function() -- Line 523
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._ai.referee:animation(workspace.game.referee.rigs.assistant1, "FoulLeft")
        end)
    elseif StringValue_2_upvr.Value == "away" and workspace.game.referee.rigs:FindFirstChild("assistant2") and 0 <= arg4.Z then
        task.spawn(function() -- Line 527
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._ai.referee:animation(workspace.game.referee.rigs.assistant2, "FoulRight")
        end)
    elseif StringValue_2_upvr.Value == "away" and workspace.game.referee.rigs:FindFirstChild("assistant1") and arg4.Z < 0 then
        task.spawn(function() -- Line 531
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1._ai.referee:animation(workspace.game.referee.rigs.assistant1, "FoulLeft")
        end)
    end
    if any_isInBox_result1_upvr then
        if _G._services.ServerScriptService.modules.system.goal:FindFirstChild("debounce") then
            BoolValue_4_upvr:Destroy()
            task.spawn(function() -- Line 539
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1._maid:DoCleaning()
            end)
            return
        end
        local StringValue = Instance.new("StringValue")
        StringValue.Name = "Penalty"
        StringValue.Parent = _G._references.Main.config.Override
        if string.find(string.lower(arg2.Team.Name), "home") then
            StringValue.Value = "home"
        else
            StringValue.Value = "away"
        end
        _G._references.Main.sounds.CammySounds.Atmosphere.Ambience.Foul["Foul 1"]:Play()
        _G._references.RemoteEvent:FireAllClients("advantageStart")
        task.wait(1)
        _G._references.RemoteEvent:FireAllClients("advantageEnd")
        if _G._services.ServerScriptService.modules.system.goal:FindFirstChild("debounce") or not arg2 or not arg3 or arg2 and not arg2.Parent or arg3 and not arg3.Parent then
            BoolValue_4_upvr:Destroy()
            StringValue:Destroy()
            task.spawn(function() -- Line 563
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1._maid:DoCleaning()
            end)
            return
        end
        arg1:confirmFoul(arg2, arg3, arg4, any_isInBox_result1_upvr, StringValue_2_upvr.Value, StringValue)
        arg1._maid:DoCleaning()
        local var48
    else
        if any_getClosestBall_result1 and any_getClosestBall_result1:GetAttribute("lastTouch") then
            for _, v_3 in next, _G._services.Players:GetPlayers() do
                if v_3 and v_3.UserId == any_getClosestBall_result1:GetAttribute("lastTouch") then
                    if string.find(v_3.Team.Name, "Home") then
                        local var51_upvw = nil
                    elseif string.find(v_3.Team.Name, "Away") then
                        var51_upvw = "away"
                    end
                end
            end
        end
        if workspace.game.referee.rigs:FindFirstChild("main") then
            task.spawn(function() -- Line 585
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1._ai.referee:animation(workspace.game.referee.rigs.main, "Advantage")
            end)
        end
        _G._references.RemoteEvent:FireAllClients("advantageStart")
        task.delay(1, function() -- Line 592
            --[[ Upvalues[8]:
                [1]: arg1 (readonly)
                [2]: var51_upvw (read and write)
                [3]: StringValue_2_upvr (readonly)
                [4]: arg2 (readonly)
                [5]: arg3 (readonly)
                [6]: BoolValue_4_upvr (readonly)
                [7]: arg4 (readonly)
                [8]: any_isInBox_result1_upvr (readonly)
            ]]
            if arg1._maid._onDestroying then
                if var51_upvw == "home" and StringValue_2_upvr.Value == "home" or var51_upvw == "away" and StringValue_2_upvr.Value == "away" then
                    if not arg2 or not arg3 or arg2 and not arg2.Parent or arg3 and not arg3.Parent then
                        BoolValue_4_upvr:Destroy()
                        task.spawn(function() -- Line 597
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1._maid:DoCleaning()
                        end)
                    end
                    _G._references.RemoteEvent:FireAllClients("advantageEnd")
                    task.spawn(function() -- Line 603
                        --[[ Upvalues[6]:
                            [1]: arg1 (copied, readonly)
                            [2]: arg2 (copied, readonly)
                            [3]: arg3 (copied, readonly)
                            [4]: arg4 (copied, readonly)
                            [5]: any_isInBox_result1_upvr (copied, readonly)
                            [6]: StringValue_2_upvr (copied, readonly)
                        ]]
                        arg1:confirmFoul(arg2, arg3, arg4, any_isInBox_result1_upvr, StringValue_2_upvr.Value)
                    end)
                    arg1._maid:DoCleaning()
                end
            end
        end)
        arg1._maid._onLeaving = _G._services.Players.PlayerRemoving:Connect(function(arg1_2) -- Line 611
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: arg3 (readonly)
                [3]: BoolValue_4_upvr (readonly)
                [4]: arg1 (readonly)
            ]]
            if arg1_2 == arg2 or arg1_2 == arg3 then
                BoolValue_4_upvr:Destroy()
                task.spawn(function() -- Line 614
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1._maid:DoCleaning()
                end)
                _G._references.RemoteEvent:FireAllClients("advantageEnd")
            end
        end)
        arg1._maid._onDestroying = StringValue_2_upvr.Destroying:Connect(function() -- Line 621
            --[[ Upvalues[2]:
                [1]: BoolValue_4_upvr (readonly)
                [2]: arg1 (readonly)
            ]]
            BoolValue_4_upvr:Destroy()
            task.spawn(function() -- Line 623
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1._maid:DoCleaning()
            end)
        end)
        arg1._maid._onServerEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_3) -- Line 628
            --[[ Upvalues[8]:
                [1]: StringValue_2_upvr (readonly)
                [2]: var35_upvw (read and write)
                [3]: arg2 (readonly)
                [4]: arg3 (readonly)
                [5]: BoolValue_4_upvr (readonly)
                [6]: arg1 (readonly)
                [7]: arg4 (readonly)
                [8]: any_isInBox_result1_upvr (readonly)
            ]]
            if string.find(arg1_3.Team.Name, "Home") and StringValue_2_upvr.Value == "away" or string.find(arg1_3.Team.Name, "Away") and StringValue_2_upvr.Value == "home" then
                var35_upvw += 1
            end
            if not arg2 or not arg3 or arg2 and not arg2.Parent or arg3 and not arg3.Parent then
                BoolValue_4_upvr:Destroy()
                task.spawn(function() -- Line 635
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1._maid:DoCleaning()
                end)
            end
            if arg1_3 then
                if string.find(arg1_3.Team.Name, "Home") and StringValue_2_upvr.Value == "home" or string.find(arg1_3.Team.Name, "Away") and StringValue_2_upvr.Value == "away" then
                    _G._references.RemoteEvent:FireAllClients("advantageEnd")
                    task.spawn(function() -- Line 642
                        --[[ Upvalues[6]:
                            [1]: arg1 (copied, readonly)
                            [2]: arg2 (copied, readonly)
                            [3]: arg3 (copied, readonly)
                            [4]: arg4 (copied, readonly)
                            [5]: any_isInBox_result1_upvr (copied, readonly)
                            [6]: StringValue_2_upvr (copied, readonly)
                        ]]
                        arg1:confirmFoul(arg2, arg3, arg4, any_isInBox_result1_upvr, StringValue_2_upvr.Value)
                    end)
                    task.spawn(function() -- Line 645
                        --[[ Upvalues[1]:
                            [1]: arg1 (copied, readonly)
                        ]]
                        arg1._maid:DoCleaning()
                    end)
                end
            end
        end)
        task.delay(5, function() -- Line 651
            --[[ Upvalues[9]:
                [1]: arg1 (readonly)
                [2]: var51_upvw (read and write)
                [3]: StringValue_2_upvr (readonly)
                [4]: var35_upvw (read and write)
                [5]: BoolValue_4_upvr (readonly)
                [6]: arg2 (readonly)
                [7]: arg3 (readonly)
                [8]: arg4 (readonly)
                [9]: any_isInBox_result1_upvr (readonly)
            ]]
            if arg1._maid._onDestroying then
                if var51_upvw ~= "home" or StringValue_2_upvr.Value ~= "home" or var51_upvw == "away" and StringValue_2_upvr.Value == "away" or var35_upvw == 0 then
                    if _G._references.Main.config.Override:FindFirstChild("Goal") then
                        if _G._references.Main.config.Override.Goal.Value == "home" and StringValue_2_upvr.Value == "away" or _G._references.Main.config.Override.Goal.Value == "away" and StringValue_2_upvr.Value == "home" then
                            BoolValue_4_upvr:Destroy()
                            arg1._maid:DoCleaning()
                            return
                        end
                    end
                    if not arg2 or not arg3 or arg2 and not arg2.Parent or arg3 and not arg3.Parent then
                        BoolValue_4_upvr:Destroy()
                        task.spawn(function() -- Line 662
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1._maid:DoCleaning()
                        end)
                    end
                    task.spawn(function() -- Line 667
                        --[[ Upvalues[6]:
                            [1]: arg1 (copied, readonly)
                            [2]: arg2 (copied, readonly)
                            [3]: arg3 (copied, readonly)
                            [4]: arg4 (copied, readonly)
                            [5]: any_isInBox_result1_upvr (copied, readonly)
                            [6]: StringValue_2_upvr (copied, readonly)
                        ]]
                        arg1:confirmFoul(arg2, arg3, arg4, any_isInBox_result1_upvr, StringValue_2_upvr.Value)
                    end)
                    task.spawn(function() -- Line 670
                        --[[ Upvalues[1]:
                            [1]: arg1 (copied, readonly)
                        ]]
                        arg1._maid:DoCleaning()
                    end)
                    return
                end
                BoolValue_4_upvr:Destroy()
                task.spawn(function() -- Line 675
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1._maid:DoCleaning()
                end)
            end
        end)
    end
end
return module_upvr
ModuleScript Offside ReplicatedStorage.engine.modules.Offside
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:33
-- Luau version 6, Types version 3
-- Time taken: 0.104119 seconds

return {
    _maid = _G._engine:load("Maid").new();
    _ai = _G._engine:load("AI");
    _take = _G._engine:load("Take");
    _partToRegion3 = _G._engine:load("PartToRegion3", "utils");
    createReplayModel = function(arg1, arg2, arg3, arg4) -- Line 8, Named "createReplayModel"
        -- KONSTANTERROR: [0] 1. Error Block 73 start (CF ANALYSIS FAILED)
        local clone = script.visual:Clone()
        clone.Name = arg3.Name
        if arg3.Character:FindFirstChildWhichIsA("Shirt") then
            if clone.attacker:FindFirstChildWhichIsA("Shirt") then
                clone.attacker:FindFirstChildWhichIsA("Shirt"):Destroy()
            end
            arg3.Character:FindFirstChildWhichIsA("Shirt"):Clone().Parent = clone.attacker
        end
        if arg3.Character:FindFirstChildWhichIsA("Pants") then
            if clone.attacker:FindFirstChildWhichIsA("Pants") then
                clone.attacker:FindFirstChildWhichIsA("Pants"):Destroy()
            end
            arg3.Character:FindFirstChildWhichIsA("Pants"):Clone().Parent = clone.attacker
        end
        for _, v in next, clone.attacker:GetChildren() do
            if v and v:IsA("BasePart") and arg3.Character:FindFirstChild(v.Name) then
                v.CFrame = arg3.Character[v.Name].CFrame
            end
        end
        -- KONSTANTERROR: [0] 1. Error Block 73 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [264] 171. Error Block 79 start (CF ANALYSIS FAILED)
        clone.ball.Transparency = 0
        clone.ball.Position = arg2
        if clone.attacker.HumanoidRootPart.Position.Z < 0 then
            clone.line.Position = Vector3.new(clone.line.Position.X, clone.line.Position.Y, math.clamp(arg2.Z - clone.ball.Size.Z / 2, workspace.game.points.lines.home.Position.Z, 0))
        else
            clone.line.Position = Vector3.new(clone.line.Position.X, clone.line.Position.Y, math.clamp(arg2.Z + clone.ball.Size.Z / 2, 0, workspace.game.points.lines.away.Position.Z))
        end
        for _, v_2 in next, clone.defender:GetChildren() do
            if v_2 and v_2:IsA("BasePart") then
                v_2.Transparency = 1
            end
        end
        clone.Parent = _G._references.Main.visuals
        -- KONSTANTERROR: [264] 171. Error Block 79 end (CF ANALYSIS FAILED)
    end;
    check = function(arg1, arg2, arg3, arg4) -- Line 81, Named "check"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 122 start (CF ANALYSIS FAILED)
        assert(arg2, string.format("Offside [check] | dataModel '_playerToExclude' expected, got %s", typeof(arg2)))
        assert(arg3, string.format("Offside [check] | vector3 '_position' expected, got %s", typeof(arg3)))
        assert(arg4, string.format("Offside [check] | table '_teams' expected, got %s", typeof(arg4)))
        arg1._maid:DoCleaning()
        _G._references.Main.visuals:ClearAllChildren()
        local var109
        if arg4._attacking == "home" then
            var109 = "away"
        end
        for _, v_3 in next, _G._services.Players:GetPlayers() do
            if v_3 and v_3.Character and v_3.Character:FindFirstChild("HumanoidRootPart") then
                if v_3.Team.Name == "Home" and var109 == "home" or v_3.Team.Name == "Away" and var109 == "away" then
                    local any_GetBoundingBox_result1_4, any_GetBoundingBox_result2_5 = v_3.Character:GetBoundingBox()
                    local any__get_result1_3 = arg1._partToRegion3._get(any_GetBoundingBox_result1_4, any_GetBoundingBox_result2_5)
                    if var109 == "home" and any__get_result1_3.CFrame.Position.Z - any__get_result1_3.Size.Z / 2 < Vector3.new(arg3.X, arg3.Y, 0).Z and any__get_result1_3.CFrame.Position.Z - any__get_result1_3.Size.Z / 2 < arg3.Z then
                        local _ = v_3
                    elseif var109 == "away" and Vector3.new(v_3.Character.HumanoidRootPart.Position.X, v_3.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_3.CFrame.Position.Z - any__get_result1_3.Size.Z / 2, workspace.game.points.lines[var109].Position.Z, 0)).Z < any__get_result1_3.CFrame.Position.Z + any__get_result1_3.Size.Z / 2 and arg3.Z < any__get_result1_3.CFrame.Position.Z + any__get_result1_3.Size.Z / 2 then
                    end
                end
            end
        end
        for _, v_4 in next, _G._services.Players:GetPlayers() do
            if v_4 and v_4.Character and v_4.Character:FindFirstChild("HumanoidRootPart") then
                if string.find(v_4.Team.Name, "Home GK") and var109 == "home" or string.find(v_4.Team.Name, "Away GK") and var109 == "away" then
                    local any_GetBoundingBox_result1, any_GetBoundingBox_result2_7 = v_4.Character:GetBoundingBox()
                    local any__get_result1_5 = arg1._partToRegion3._get(any_GetBoundingBox_result1, any_GetBoundingBox_result2_7)
                    if var109 == "home" and v_3 and Vector3.new(v_3.Character.HumanoidRootPart.Position.X, v_3.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_3.CFrame.Position.Z + any__get_result1_3.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)).Z < any__get_result1_5.CFrame.Position.Z - any__get_result1_5.Size.Z / 2 and any__get_result1_5.CFrame.Position.Z - any__get_result1_5.Size.Z / 2 < arg3.Z then
                    elseif var109 == "away" then
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                        if v_3 and any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2 < Vector3.new(v_3.Character.HumanoidRootPart.Position.X, v_3.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_3.CFrame.Position.Z + any__get_result1_3.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)).Z and arg3.Z < any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2 then
                        end
                    end
                end
            end
        end
        local players_8, NONE_14 = _G._services.Players:GetPlayers()
        -- KONSTANTERROR: [0] 1. Error Block 122 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [810] 499. Error Block 73 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [810] 499. Error Block 73 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [560] 346. Error Block 148 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if v_4 and any_GetBoundingBox_result1 and any_GetBoundingBox_result1 then
            if any_GetBoundingBox_result1 == "Home" and var109 == "home" or any_GetBoundingBox_result1 == "Away" and var109 == "away" then
                if var109 == "home" and v_4 and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
                    if Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) then
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
                        if Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) < v_4.Character.HumanoidRootPart.Position.X and v_3 ~= v_4 and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) < v_4.Character.HumanoidRootPart.Position.X then
                            -- KONSTANTWARNING: GOTO [810] #499
                        end
                    end
                end
                if var109 == "away" then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x8)
                    if v_4 and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and v_4.Character.HumanoidRootPart.Position.X < Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) and v_3 ~= v_4 and Vector3.new(v_4.Character.HumanoidRootPart.Position.X, v_4.Character.HumanoidRootPart.Position.Y, math.clamp(any__get_result1_5.CFrame.Position.Z + any__get_result1_5.Size.Z / 2, 0, workspace.game.points.lines[var109].Position.Z)) < v_4.Character.HumanoidRootPart.Position.X then
                    end
                end
            end
        end
        -- KONSTANTERROR: [560] 346. Error Block 148 end (CF ANALYSIS FAILED)
    end;
    run = function(arg1, arg2, arg3) -- Line 192, Named "run"
        arg1._maid:DoCleaning()
        local var231
        if not _G._references.Main.visuals:FindFirstChild(arg3.Name) then
        else
            local SOME_2 = _G._references.Main.visuals:WaitForChild(arg3.Name, 100)
            local BoolValue_5 = Instance.new("BoolValue")
            BoolValue_5.Name = "NoReact"
            BoolValue_5.Value = true
            var231 = _G._references
            BoolValue_5.Parent = var231.Main.config.Delay
            local BoolValue_8_upvr = Instance.new("BoolValue")
            BoolValue_8_upvr.Name = "DisableFouls"
            BoolValue_8_upvr.Value = true
            var231 = _G._references.Main
            BoolValue_8_upvr.Parent = var231.config.Override
            local BoolValue_2 = Instance.new("BoolValue")
            BoolValue_2.Name = "Break"
            BoolValue_2.Value = true
            var231 = _G._references.Main.config
            BoolValue_2.Parent = var231.Override
            var231 = SOME_2.attacker:WaitForChild("HumanoidRootPart")
            local Position = var231.Position
            var231 = {}
            var231[1] = BrickColor.new("Storm blue")
            if arg2 == "home" then
                var231 = {BrickColor.new("Crimson")}
            end
            if arg2 == "home" then
                local Offsides_2 = _G._references.Main.config.Stats.Home.Offsides
                Offsides_2.Value += 1
            elseif arg2 == "away" then
                local Offsides = _G._references.Main.config.Stats.Away.Offsides
                Offsides.Value += 1
            end
            _G._references.Main.config.TimerSpeed.Value = 1
            _G._references.Main.sounds.CammySounds.Atmosphere.Referee.Whistle:Play()
            if workspace.game.referee.rigs:FindFirstChild("main") then
                task.spawn(function() -- Line 233
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1._ai.referee:animation(workspace.game.referee.rigs.main, "Whistle")
                end)
            end
            if arg2 == "home" and workspace.game.referee.rigs:FindFirstChild("assistant2") then
                task.spawn(function() -- Line 239
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1._ai.referee:animation(workspace.game.referee.rigs.assistant2, "Offside")
                end)
            elseif arg2 == "away" and workspace.game.referee.rigs:FindFirstChild("assistant1") then
                task.spawn(function() -- Line 243
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1._ai.referee:animation(workspace.game.referee.rigs.assistant1, "Offside")
                end)
            end
            local any_new_result1_3 = arg1._take.new(var231, "Free Kick")
            _G._references.RemoteEvent:FireAllClients("message", "OFFSIDE")
            local BoolValue_6 = Instance.new("BoolValue")
            BoolValue_6.Name = "Offside"
            BoolValue_6.Value = true
            BoolValue_6.Parent = _G._references.Main.config["Set Pieces"]
            task.wait(3)
            for _, v_5 in next, _G._services.Players:GetPlayers() do
                if v_5 then
                    if v_5.TeamColor and table.find(var231, v_5.TeamColor) or _G._services.RunService:IsStudio() then
                        _G._references.RemoteEvent:FireClient(v_5, "shiftLock", false)
                        _G._references.RemoteEvent:FireClient(v_5, "forceDisable", true)
                    end
                end
            end
            if _G._references.Main.config.AutoRall.Value then
                for i_6, v_6 in next, workspace.game.balls.spawns:GetChildren() do
                    if v_6 then
                        v_6:Destroy()
                    end
                end
            end
            _G._references.BindableEvent:Fire("clearSpace")
            BoolValue_5:Destroy()
            local function INLINED_3() -- Internal function, doesn't exist in bytecode
                i_6 = v_6.Position
                v_6 = SOME_2.defender.UpperTorso
                i_6 = v_6.UpperTorso
                v_6 = SOME_2.attacker
                return -35 < i_6.Position.Z - i_6.Z
            end
            local function INLINED_4() -- Internal function, doesn't exist in bytecode
                i_6 = v_6.Position
                v_6 = SOME_2.defender.UpperTorso
                i_6 = v_6.UpperTorso
                v_6 = SOME_2.attacker
                return i_6.Position.Z - i_6.Z < 35
            end
            if arg2 == "away" and SOME_2:FindFirstChild("attacker") and SOME_2:FindFirstChild("defender") and INLINED_3() or arg2 == "home" and SOME_2:FindFirstChild("attacker") and SOME_2:FindFirstChild("defender") and INLINED_4() then
                _G._references.RemoteEvent:FireAllClients("offside", SOME_2)
                task.wait(17)
                _G._references.Main.replay:ClearAllChildren()
                task.wait(0.5)
            else
                task.wait(3)
            end
            local any_getTaker_result1_upvr = any_new_result1_3:getTaker()
            any_new_result1_3:clear()
            for i_7, v_7_upvr in next, _G._services.Players:GetPlayers() do
                if v_7_upvr and v_7_upvr.TeamColor and table.find(var231, v_7_upvr.TeamColor) and any_getTaker_result1_upvr and v_7_upvr ~= any_getTaker_result1_upvr then
                    _G._references.RemoteEvent:FireClient(v_7_upvr, "shiftLock", true)
                    _G._references.RemoteEvent:FireClient(v_7_upvr, "forceDisable", false)
                    _G._references.RemoteEvent:FireClient(v_7_upvr, "canSprint", true)
                    _G._references.RemoteEvent:FireClient(v_7_upvr, "globalOverride", false)
                end
            end
            if any_getTaker_result1_upvr then
                i_7 = _G
                v_7_upvr = "Maid"
                local any_new_result1_upvr = i_7._engine:load(v_7_upvr).new()
                i_7 = Position.X
                v_7_upvr = workspace.game.points.bounds.right.Position.X
                v_7_upvr = Position.Z
                i_7 = math.clamp(v_7_upvr, workspace.game.points.bounds.home.Position.Z, workspace.game.points.bounds.away.Position.Z)
                v_7_upvr = _G._references.Main["set pieces"]["Quick Foul"]:Clone()
                v_7_upvr.Parent = workspace.game.debug
                v_7_upvr.Name = any_getTaker_result1_upvr.Name
                v_7_upvr.Ball.Transparency = 1
                if arg2 == "home" then
                    v_7_upvr:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(math.clamp(i_7, v_7_upvr, workspace.game.points.bounds.left.Position.X), v_7_upvr.Primary.Position.Y, i_7), Vector3.new(workspace.game.points.bounds.home.Position.X, v_7_upvr.Primary.Position.Y, workspace.game.points.bounds.home.Position.Z)))
                    v_7_upvr.Team.Value = "away"
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    v_7_upvr:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(math.clamp(i_7, v_7_upvr, workspace.game.points.bounds.left.Position.X), v_7_upvr.Primary.Position.Y, i_7), Vector3.new(workspace.game.points.bounds.away.Position.X, v_7_upvr.Primary.Position.Y, workspace.game.points.bounds.away.Position.Z)))
                    v_7_upvr.Team.Value = "home"
                end
                _G._references.RemoteEvent:FireClient(any_getTaker_result1_upvr, "shiftLock", true)
                _G._references.RemoteEvent:FireClient(any_getTaker_result1_upvr, "forceDisable", false)
                _G._references.RemoteEvent:FireClient(any_getTaker_result1_upvr, "canSprint", true)
                _G._references.RemoteEvent:FireClient(any_getTaker_result1_upvr, "globalOverride", false)
                _G._references.RemoteEvent:FireClient(any_getTaker_result1_upvr, "quickFoul", v_7_upvr)
                if _G._references.Main.config.AutoRall.Value then
                    for _, v_8 in next, workspace.game.balls.spawns:GetChildren() do
                        if v_8 then
                            v_8:Destroy()
                        end
                    end
                end
                _G._references.BindableEvent:Fire("clearSpace")
                local CFrameValue = Instance.new("CFrameValue")
                CFrameValue.Name = "RF"
                CFrameValue.Value = v_7_upvr.Ball.CFrame
                CFrameValue.Parent = workspace.game.balls.spawns
                local IntValue = Instance.new("IntValue")
                IntValue.Name = "possessor"
                IntValue.Value = any_getTaker_result1_upvr.UserId
                IntValue.Parent = CFrameValue
                for _, v_9 in next, _G._references.Main.config.Override:GetChildren() do
                    if v_9 and v_9.Name == "Break" then
                        v_9:Destroy()
                    end
                end
                local RemoteEvent = Instance.new("RemoteEvent", v_7_upvr)
                RemoteEvent.Name = "Clear"
                local function clear() -- Line 356
                    --[[ Upvalues[2]:
                        [1]: BoolValue_8_upvr (readonly)
                        [2]: any_new_result1_upvr (readonly)
                    ]]
                    if _G._references.Main.config["Set Pieces"]:FindFirstChild("Offside") then
                        _G._references.Main.config["Set Pieces"].Offside:Destroy()
                    end
                    BoolValue_8_upvr:Destroy()
                    _G._references.Main.config.TimerSpeed.Value = 9
                    any_new_result1_upvr:DoCleaning()
                end
                any_new_result1_upvr._onRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_5) -- Line 365
                    --[[ Upvalues[2]:
                        [1]: any_getTaker_result1_upvr (readonly)
                        [2]: clear (readonly)
                    ]]
                    if any_getTaker_result1_upvr and arg1_5 == any_getTaker_result1_upvr then
                        clear()
                    end
                end)
                any_new_result1_upvr._onRespawn = any_getTaker_result1_upvr.CharacterAdded:Connect(function() -- Line 371
                    --[[ Upvalues[1]:
                        [1]: clear (readonly)
                    ]]
                    clear()
                end)
                any_new_result1_upvr._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_6) -- Line 375
                    --[[ Upvalues[2]:
                        [1]: any_getTaker_result1_upvr (readonly)
                        [2]: clear (readonly)
                    ]]
                    if arg1_6 == any_getTaker_result1_upvr then
                        clear()
                    end
                end)
                local tbl_2_upvr = {}
                local function onTouch(arg1_7) -- Line 381
                    --[[ Upvalues[3]:
                        [1]: any_getTaker_result1_upvr (readonly)
                        [2]: tbl_2_upvr (readonly)
                        [3]: v_7_upvr (readonly)
                    ]]
                    if arg1_7 and arg1_7.Parent and arg1_7.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_7:FindFirstAncestor("manager") and not arg1_7:FindFirstAncestor("referee") and any_getTaker_result1_upvr and any_getTaker_result1_upvr.Character and arg1_7.Parent ~= any_getTaker_result1_upvr.Character and not tbl_2_upvr[arg1_7.Parent.Name] then
                        tbl_2_upvr[arg1_7.Parent.Name] = true
                        if _G._services.Players:GetPlayerFromCharacter(arg1_7.Parent) then
                            local BoolValue_3 = Instance.new("BoolValue", _G._services.Players:GetPlayerFromCharacter(arg1_7.Parent))
                            BoolValue_3.Name = "Teleport"
                            BoolValue_3.Value = true
                            _G._services.Debris:AddItem(BoolValue_3, 3)
                        end
                        arg1_7.Parent:SetPrimaryPartCFrame(v_7_upvr.Teleport.CFrame)
                        task.delay(0.5, function() -- Line 394
                            --[[ Upvalues[2]:
                                [1]: tbl_2_upvr (copied, readonly)
                                [2]: arg1_7 (readonly)
                            ]]
                            tbl_2_upvr[arg1_7.Parent.Name] = false
                        end)
                    end
                end
                for _, v_10 in next, v_7_upvr.Area:GetChildren() do
                    if v_10 and v_10:IsA("BasePart") then
                        local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
                        any_new_result1_upvr[any_GenerateGUID_result1.."_onTouched"] = v_10.Touched:Connect(onTouch)
                        any_new_result1_upvr[any_GenerateGUID_result1.."_onTouchEnded"] = v_10.TouchEnded:Connect(onTouch)
                    end
                end
                any_new_result1_upvr:GiveTask(RemoteEvent)
                any_new_result1_upvr:GiveTask(v_7_upvr)
                task.delay(15, function() -- Line 411
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (readonly)
                        [2]: clear (readonly)
                    ]]
                    if any_new_result1_upvr._onRemoteEvent then
                        clear()
                    end
                end)
                return
            end
            any_new_result1_upvr = Position.X
            clear = workspace
            clear = workspace.game
            tbl_2_upvr = math.clamp(any_new_result1_upvr, clear.game.points.bounds.right.Position.X, clear.points.bounds.left.Position.X)
            clear = workspace.game
            clear = workspace.game.points
            any_new_result1_upvr = math.clamp(Position.Z, clear.points.bounds.home.Position.Z, clear.bounds.away.Position.Z)
            if _G._references.Main.config.AutoRall.Value then
                for _, v_11 in next, workspace.game.balls.spawns:GetChildren() do
                    if v_11 then
                        v_11:Destroy()
                    end
                end
            end
            _G._references.BindableEvent:Fire("clearSpace")
            local CFrameValue_2 = Instance.new("CFrameValue")
            CFrameValue_2.Name = "RF"
            clear = _G._references.Main.RF
            CFrameValue_2.Value = CFrame.new(Vector3.new(tbl_2_upvr, clear.Position.Y, any_new_result1_upvr))
            CFrameValue_2.Parent = workspace.game.balls.spawns
            clear = _G
            for _, v_12 in next, clear._references.Main.config.Override:GetChildren() do
                if v_12 then
                    clear = v_12.Name
                    if clear == "Break" then
                        clear = v_12:Destroy
                        clear()
                    end
                end
            end
            _G._references.Main.config.TimerSpeed.Value = 9
            BoolValue_8_upvr:Destroy()
        end
    end;
    clear = function(arg1) -- Line 446, Named "clear"
        arg1._maid:DoCleaning()
        _G._references.Main.visuals:ClearAllChildren()
    end;
}
ModuleScript Freecam ReplicatedStorage.engine.modules.Freecam
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:35
-- Luau version 6, Types version 3
-- Time taken: 0.024830 seconds

local module = {}
local clamp_upvr = math.clamp
local exp_upvr = math.exp
local tan_upvr = math.tan
local ContextActionService_upvr = game:GetService("ContextActionService")
local Players = game:GetService("Players")
local RunService_upvr = game:GetService("RunService")
local StarterGui_upvr = game:GetService("StarterGui")
local UserInputService_upvr = game:GetService("UserInputService")
local Workspace_upvr = game:GetService("Workspace")
local LocalPlayer_upvw = Players.LocalPlayer
if not LocalPlayer_upvw then
    Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
    LocalPlayer_upvw = Players.LocalPlayer
end
local CurrentCamera_2_upvw = Workspace_upvr.CurrentCamera
Workspace_upvr:GetPropertyChangedSignal("CurrentCamera"):Connect(function() -- Line 26
    --[[ Upvalues[2]:
        [1]: Workspace_upvr (readonly)
        [2]: CurrentCamera_2_upvw (read and write)
    ]]
    local CurrentCamera = Workspace_upvr.CurrentCamera
    if CurrentCamera then
        CurrentCamera_2_upvw = CurrentCamera
    end
end)
local _ = {Enum.KeyCode.LeftShift, Enum.KeyCode.P}
local tbl_upvr_3 = {}
tbl_upvr_3.__index = tbl_upvr_3
function tbl_upvr_3.new(arg1, arg2) -- Line 50
    --[[ Upvalues[1]:
        [1]: tbl_upvr_3 (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, tbl_upvr_3)
    setmetatable_result1.f = arg1
    setmetatable_result1.p = arg2
    setmetatable_result1.v = arg2 * 0
    return setmetatable_result1
end
function tbl_upvr_3.Update(arg1, arg2, arg3) -- Line 58
    --[[ Upvalues[1]:
        [1]: exp_upvr (readonly)
    ]]
    local var18 = arg1.f * 2 * math.pi
    local v_9 = arg1.v
    local var20 = arg3 - arg1.p
    local exp_upvr_result1 = exp_upvr(-var18 * arg2)
    local var22 = arg3 + (v_9 * arg2 - var20 * (var18 * arg2 + 1)) * exp_upvr_result1
    arg1.p = var22
    arg1.v = (var18 * arg2 * (var20 * var18 - v_9) + v_9) * exp_upvr_result1
    return var22
end
function tbl_upvr_3.Reset(arg1, arg2) -- Line 75
    arg1.p = arg2
    arg1.v = arg2 * 0
end
local zero_vector3_upvw = Vector3.new()
local zero_vector2_upvw = Vector2.new()
local var25_upvw = 0
local any_new_result1_upvr = tbl_upvr_3.new(1.5, Vector3.new())
local any_new_result1_upvr_3 = tbl_upvr_3.new(1, Vector2.new())
local any_new_result1_upvr_2 = tbl_upvr_3.new(4, 0)
local tbl_upvr_8 = {}
local function _(arg1) -- Line 94, Named "fCurve"
    --[[ Upvalues[1]:
        [1]: exp_upvr (readonly)
    ]]
    return (exp_upvr(2 * arg1) - 1) / 6.38905609893065
end
local function _(arg1) -- Line 98, Named "fDeadzone"
    --[[ Upvalues[1]:
        [1]: exp_upvr (readonly)
    ]]
    return (exp_upvr((2) * ((arg1 - 0.15) / 0.85)) - 1) / 6.38905609893065
end
local sign_upvr = math.sign
local abs_upvr = math.abs
local function thumbstickCurve_upvw(arg1) -- Line 102, Named "thumbstickCurve"
    --[[ Upvalues[4]:
        [1]: sign_upvr (readonly)
        [2]: abs_upvr (readonly)
        [3]: exp_upvr (readonly)
        [4]: clamp_upvr (readonly)
    ]]
    return sign_upvr(arg1) * clamp_upvr((exp_upvr((2) * ((abs_upvr(arg1) - 0.15) / 0.85)) - 1) / 6.38905609893065, 0, 1)
end
local tbl_upvr_9 = {
    ButtonX = 0;
    ButtonY = 0;
    DPadDown = 0;
    DPadUp = 0;
    ButtonL2 = 0;
    ButtonR2 = 0;
    Thumbstick1 = Vector2.new();
    Thumbstick2 = Vector2.new();
}
local tbl_upvr_2 = {
    W = 0;
    A = 0;
    S = 0;
    D = 0;
    E = 0;
    Q = 0;
    U = 0;
    H = 0;
    J = 0;
    K = 0;
    I = 0;
    Y = 0;
    Up = 0;
    Down = 0;
    LeftShift = 0;
    RightShift = 0;
}
local tbl_upvr_4 = {
    Delta = Vector2.new();
    MouseWheel = 0;
}
local var35_upvw = 1
function tbl_upvr_8.Vel(arg1) -- Line 153
    --[[ Upvalues[6]:
        [1]: var35_upvw (read and write)
        [2]: tbl_upvr_2 (readonly)
        [3]: clamp_upvr (readonly)
        [4]: thumbstickCurve_upvw (read and write)
        [5]: tbl_upvr_9 (readonly)
        [6]: UserInputService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    var35_upvw = clamp_upvr(var35_upvw + arg1 * (tbl_upvr_2.Up - tbl_upvr_2.Down) * 0.75, 0.01, 4)
    local any_IsKeyDown_result1 = UserInputService_upvr:IsKeyDown(Enum.KeyCode.LeftShift)
    if not any_IsKeyDown_result1 then
        any_IsKeyDown_result1 = UserInputService_upvr:IsKeyDown(Enum.KeyCode.RightShift)
    end
    if any_IsKeyDown_result1 then
    else
    end
    return (Vector3.new(thumbstickCurve_upvw(tbl_upvr_9.Thumbstick1.X), thumbstickCurve_upvw(tbl_upvr_9.ButtonR2) - thumbstickCurve_upvw(tbl_upvr_9.ButtonL2), thumbstickCurve_upvw(-tbl_upvr_9.Thumbstick1.Y)) * Vector3.new(1, 1, 1) + Vector3.new(tbl_upvr_2.D - tbl_upvr_2.A + tbl_upvr_2.K - tbl_upvr_2.H, tbl_upvr_2.E - tbl_upvr_2.Q + tbl_upvr_2.I - tbl_upvr_2.Y, tbl_upvr_2.S - tbl_upvr_2.W + tbl_upvr_2.J - tbl_upvr_2.U) * Vector3.new(1, 1, 1)) * (var35_upvw * 1)
end
local var37_upvr = Vector2.new(1, 1) * 0.39269908169872414
local var38_upvr = Vector2.new(1, 1) * 0.04908738521234052
function tbl_upvr_8.Pan(arg1) -- Line 173
    --[[ Upvalues[5]:
        [1]: thumbstickCurve_upvw (read and write)
        [2]: tbl_upvr_9 (readonly)
        [3]: var37_upvr (readonly)
        [4]: tbl_upvr_4 (readonly)
        [5]: var38_upvr (readonly)
    ]]
    tbl_upvr_4.Delta = Vector2.new()
    return Vector2.new(thumbstickCurve_upvw(tbl_upvr_9.Thumbstick2.Y), thumbstickCurve_upvw(-tbl_upvr_9.Thumbstick2.X)) * var37_upvr + tbl_upvr_4.Delta * var38_upvr
end
function tbl_upvr_8.Fov(arg1) -- Line 183
    --[[ Upvalues[2]:
        [1]: tbl_upvr_9 (readonly)
        [2]: tbl_upvr_4 (readonly)
    ]]
    tbl_upvr_4.MouseWheel = 0
    return (tbl_upvr_9.ButtonX - tbl_upvr_9.ButtonY) * 0.25 + tbl_upvr_4.MouseWheel * 1
end
local function Keypress_upvr(arg1, arg2, arg3) -- Line 191, Named "Keypress"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local KeyCode_2 = arg3.KeyCode
    if arg2 == Enum.UserInputState.Begin then
        KeyCode_2 = 1
    else
        KeyCode_2 = 0
    end
    tbl_upvr_2[KeyCode_2.Name] = KeyCode_2
    return Enum.ContextActionResult.Sink
end
local function GpButton_upvr(arg1, arg2, arg3) -- Line 196, Named "GpButton"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_9 (readonly)
    ]]
    local KeyCode = arg3.KeyCode
    if arg2 == Enum.UserInputState.Begin then
        KeyCode = 1
    else
        KeyCode = 0
    end
    tbl_upvr_9[KeyCode.Name] = KeyCode
    return Enum.ContextActionResult.Sink
end
local function MousePan_upvr(arg1, arg2, arg3) -- Line 201, Named "MousePan"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_4 (readonly)
    ]]
    local Delta = arg3.Delta
    tbl_upvr_4.Delta = Vector2.new(-Delta.y, -Delta.x)
    return Enum.ContextActionResult.Sink
end
local function Thumb_upvr(arg1, arg2, arg3) -- Line 207, Named "Thumb"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_9 (readonly)
    ]]
    tbl_upvr_9[arg3.KeyCode.Name] = arg3.Position
    return Enum.ContextActionResult.Sink
end
local function Trigger_upvr(arg1, arg2, arg3) -- Line 212, Named "Trigger"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_9 (readonly)
    ]]
    tbl_upvr_9[arg3.KeyCode.Name] = arg3.Position.z
    return Enum.ContextActionResult.Sink
end
local function MouseWheel_upvr(arg1, arg2, arg3) -- Line 217, Named "MouseWheel"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_4 (readonly)
    ]]
    tbl_upvr_4[arg3.UserInputType.Name] = -arg3.Position.z
    return Enum.ContextActionResult.Sink
end
local function _(arg1) -- Line 222, Named "Zero"
    for i, v in pairs(arg1) do
        arg1[i] = v * 0
    end
end
local Value_upvr = Enum.ContextActionPriority.High.Value
function tbl_upvr_8.StartCapture() -- Line 228
    --[[ Upvalues[8]:
        [1]: ContextActionService_upvr (readonly)
        [2]: Keypress_upvr (readonly)
        [3]: Value_upvr (readonly)
        [4]: MousePan_upvr (readonly)
        [5]: MouseWheel_upvr (readonly)
        [6]: GpButton_upvr (readonly)
        [7]: Trigger_upvr (readonly)
        [8]: Thumb_upvr (readonly)
    ]]
    ContextActionService_upvr:BindActionAtPriority("FreecamKeyboard", Keypress_upvr, false, Value_upvr, Enum.KeyCode.W, Enum.KeyCode.U, Enum.KeyCode.A, Enum.KeyCode.H, Enum.KeyCode.S, Enum.KeyCode.J, Enum.KeyCode.D, Enum.KeyCode.K, Enum.KeyCode.E, Enum.KeyCode.I, Enum.KeyCode.Q, Enum.KeyCode.Y, Enum.KeyCode.Up, Enum.KeyCode.Down)
    ContextActionService_upvr:BindActionAtPriority("FreecamMousePan", MousePan_upvr, false, Value_upvr, Enum.UserInputType.MouseMovement)
    ContextActionService_upvr:BindActionAtPriority("FreecamMouseWheel", MouseWheel_upvr, false, Value_upvr, Enum.UserInputType.MouseWheel)
    ContextActionService_upvr:BindActionAtPriority("FreecamGamepadButton", GpButton_upvr, false, Value_upvr, Enum.KeyCode.ButtonX, Enum.KeyCode.ButtonY)
    ContextActionService_upvr:BindActionAtPriority("FreecamGamepadTrigger", Trigger_upvr, false, Value_upvr, Enum.KeyCode.ButtonR2, Enum.KeyCode.ButtonL2)
    ContextActionService_upvr:BindActionAtPriority("FreecamGamepadThumbstick", Thumb_upvr, false, Value_upvr, Enum.KeyCode.Thumbstick1, Enum.KeyCode.Thumbstick2)
end
function tbl_upvr_8.StopCapture() -- Line 245
    --[[ Upvalues[5]:
        [1]: var35_upvw (read and write)
        [2]: tbl_upvr_9 (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: tbl_upvr_4 (readonly)
        [5]: ContextActionService_upvr (readonly)
    ]]
    var35_upvw = 1
    local var60 = tbl_upvr_9
    for i_2, v_2 in pairs(var60) do
        var60[i_2] = v_2 * 0
    end
    for i_3, v_3 in pairs(tbl_upvr_2) do
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        tbl_upvr_2[i_3] = v_3 * 0
        local _
    end
    for i_4, v_4 in pairs(tbl_upvr_4) do
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        tbl_upvr_4[i_4] = v_4 * 0
        local _
    end
    ContextActionService_upvr:UnbindAction("FreecamKeyboard")
    ContextActionService_upvr:UnbindAction("FreecamMousePan")
    ContextActionService_upvr:UnbindAction("FreecamMouseWheel")
    ContextActionService_upvr:UnbindAction("FreecamGamepadButton")
    ContextActionService_upvr:UnbindAction("FreecamGamepadTrigger")
    ContextActionService_upvr:UnbindAction("FreecamGamepadThumbstick")
end
local function GetFocusDistance_upvr(arg1) -- Line 260, Named "GetFocusDistance"
    --[[ Upvalues[4]:
        [1]: CurrentCamera_2_upvw (read and write)
        [2]: var25_upvw (read and write)
        [3]: tan_upvr (readonly)
        [4]: Workspace_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local ViewportSize = CurrentCamera_2_upvw.ViewportSize
    local var81 = tan_upvr(var25_upvw / 2) * 2
    local const_number = 512
    local var83
    for i_5 = 0, 1, 0.5 do
        for i_6 = 0, 1, 0.5 do
            local var84 = (arg1.rightVector) * ((i_5 - 0.5) * (ViewportSize.x / ViewportSize.y * var81)) - (arg1.upVector) * ((i_6 - 0.5) * var81) + arg1.lookVector
            local var85 = arg1.p + var84 * 0.1
            local _, any_FindPartOnRay_result2 = Workspace_upvr:FindPartOnRay(Ray.new(var85, var84.unit * const_number))
            local magnitude = (any_FindPartOnRay_result2 - var85).magnitude
            if magnitude < const_number then
            end
        end
    end
    return arg1.lookVector:Dot(nil) * magnitude
end
local rad_upvr = math.rad
local sqrt_upvr = math.sqrt
local var91_upvr = Vector2.new(0.75, 1) * 8
local function StepFreecam_upvr(arg1) -- Line 290, Named "StepFreecam"
    --[[ Upvalues[14]:
        [1]: any_new_result1_upvr (readonly)
        [2]: tbl_upvr_8 (readonly)
        [3]: any_new_result1_upvr_3 (readonly)
        [4]: any_new_result1_upvr_2 (readonly)
        [5]: var25_upvw (read and write)
        [6]: rad_upvr (readonly)
        [7]: tan_upvr (readonly)
        [8]: sqrt_upvr (readonly)
        [9]: clamp_upvr (readonly)
        [10]: zero_vector2_upvw (read and write)
        [11]: var91_upvr (readonly)
        [12]: zero_vector3_upvw (read and write)
        [13]: CurrentCamera_2_upvw (read and write)
        [14]: GetFocusDistance_upvr (readonly)
    ]]
    local var90_result1 = sqrt_upvr(0.7002075382097097 / tan_upvr(rad_upvr(var25_upvw / 2)))
    var25_upvw = clamp_upvr(var25_upvw + (any_new_result1_upvr_2:Update(arg1, tbl_upvr_8.Fov(arg1)) * 300) * (arg1 / var90_result1), 1, 120)
    zero_vector2_upvw += (any_new_result1_upvr_3:Update(arg1, tbl_upvr_8.Pan(arg1)) * var91_upvr) * (arg1 / var90_result1)
    zero_vector2_upvw = Vector2.new(clamp_upvr(zero_vector2_upvw.x, (-math.pi/2), (math.pi/2)), zero_vector2_upvw.y % (-math.pi*2))
    local var93 = CFrame.new(zero_vector3_upvw) * CFrame.fromOrientation(zero_vector2_upvw.x, zero_vector2_upvw.y, 0) * CFrame.new(any_new_result1_upvr:Update(arg1, tbl_upvr_8.Vel(arg1)) * Vector3.new(64, 64, 64) * arg1)
    zero_vector3_upvw = var93.p
    CurrentCamera_2_upvw.CFrame = var93
    CurrentCamera_2_upvw.Focus = var93 * CFrame.new(0, 0, -GetFocusDistance_upvr(var93))
    CurrentCamera_2_upvw.FieldOfView = var25_upvw
end
local tbl_upvr = {}
local var95_upvw
local var96_upvw
local var97_upvw
local var98_upvw
local var99_upvw
local var100_upvw
local tbl_upvr_7 = {}
local tbl_upvr_6 = {
    Backpack = true;
    Chat = true;
    Health = true;
    PlayerList = true;
}
local tbl_upvr_5 = {
    BadgesNotificationsActive = true;
    PointsNotificationsActive = true;
}
function tbl_upvr.Push() -- Line 328
    --[[ Upvalues[13]:
        [1]: tbl_upvr_6 (readonly)
        [2]: StarterGui_upvr (readonly)
        [3]: tbl_upvr_5 (readonly)
        [4]: LocalPlayer_upvw (read and write)
        [5]: tbl_upvr_7 (readonly)
        [6]: var100_upvw (read and write)
        [7]: CurrentCamera_2_upvw (read and write)
        [8]: var97_upvw (read and write)
        [9]: var99_upvw (read and write)
        [10]: var98_upvw (read and write)
        [11]: var96_upvw (read and write)
        [12]: UserInputService_upvr (readonly)
        [13]: var95_upvw (read and write)
    ]]
    for i_7 in pairs(tbl_upvr_6) do
        tbl_upvr_6[i_7] = StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType[i_7])
        StarterGui_upvr:SetCoreGuiEnabled(Enum.CoreGuiType[i_7], false)
    end
    for i_8 in pairs(tbl_upvr_5) do
        tbl_upvr_5[i_8] = StarterGui_upvr:GetCore(i_8)
        StarterGui_upvr:SetCore(i_8, false)
    end
    local class_PlayerGui = LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui")
    if class_PlayerGui then
        for _, v_5 in pairs(class_PlayerGui:GetChildren()) do
            if v_5:IsA("ScreenGui") and v_5.Enabled and v_5.Name ~= "notifications" then
                tbl_upvr_7[#tbl_upvr_7 + 1] = v_5
                v_5.Enabled = false
            end
        end
    end
    var100_upvw = CurrentCamera_2_upvw.FieldOfView
    CurrentCamera_2_upvw.FieldOfView = 70
    var97_upvw = CurrentCamera_2_upvw.CameraType
    CurrentCamera_2_upvw.CameraType = Enum.CameraType.Custom
    var99_upvw = CurrentCamera_2_upvw.CFrame
    var98_upvw = CurrentCamera_2_upvw.Focus
    var96_upvw = UserInputService_upvr.MouseIconEnabled
    UserInputService_upvr.MouseIconEnabled = true
    var95_upvw = UserInputService_upvr.MouseBehavior
    UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
end
function tbl_upvr.Pop() -- Line 363
    --[[ Upvalues[12]:
        [1]: tbl_upvr_6 (readonly)
        [2]: StarterGui_upvr (readonly)
        [3]: tbl_upvr_5 (readonly)
        [4]: tbl_upvr_7 (readonly)
        [5]: CurrentCamera_2_upvw (read and write)
        [6]: var100_upvw (read and write)
        [7]: var97_upvw (read and write)
        [8]: var99_upvw (read and write)
        [9]: var98_upvw (read and write)
        [10]: UserInputService_upvr (readonly)
        [11]: var96_upvw (read and write)
        [12]: var95_upvw (read and write)
    ]]
    for i_10, v_6 in pairs(tbl_upvr_6) do
        StarterGui_upvr:SetCoreGuiEnabled(Enum.CoreGuiType[i_10], v_6)
    end
    for i_11, v_7 in pairs(tbl_upvr_5) do
        StarterGui_upvr:SetCore(i_11, v_7)
    end
    for _, v_8 in pairs(tbl_upvr_7) do
        if v_8.Parent then
            v_8.Enabled = true
        end
    end
    CurrentCamera_2_upvw.FieldOfView = var100_upvw
    var100_upvw = nil
    CurrentCamera_2_upvw.CameraType = var97_upvw
    var97_upvw = nil
    CurrentCamera_2_upvw.CFrame = var99_upvw
    var99_upvw = nil
    CurrentCamera_2_upvw.Focus = var98_upvw
    var98_upvw = nil
    UserInputService_upvr.MouseIconEnabled = var96_upvw
    var96_upvw = nil
    UserInputService_upvr.MouseBehavior = var95_upvw
    var95_upvw = nil
end
local function StartFreecam_upvr() -- Line 396, Named "StartFreecam"
    --[[ Upvalues[11]:
        [1]: CurrentCamera_2_upvw (read and write)
        [2]: zero_vector2_upvw (read and write)
        [3]: zero_vector3_upvw (read and write)
        [4]: var25_upvw (read and write)
        [5]: any_new_result1_upvr (readonly)
        [6]: any_new_result1_upvr_3 (readonly)
        [7]: any_new_result1_upvr_2 (readonly)
        [8]: tbl_upvr (readonly)
        [9]: RunService_upvr (readonly)
        [10]: StepFreecam_upvr (readonly)
        [11]: tbl_upvr_8 (readonly)
    ]]
    local CFrame = CurrentCamera_2_upvw.CFrame
    zero_vector2_upvw = Vector2.new(CFrame:toEulerAnglesYXZ())
    zero_vector3_upvw = CFrame.p
    var25_upvw = CurrentCamera_2_upvw.FieldOfView
    any_new_result1_upvr:Reset(Vector3.new())
    any_new_result1_upvr_3:Reset(Vector2.new())
    any_new_result1_upvr_2:Reset(0)
    tbl_upvr.Push()
    RunService_upvr:BindToRenderStep("Freecam", Enum.RenderPriority.Camera.Value, StepFreecam_upvr)
    tbl_upvr_8.StartCapture()
end
local function StopFreecam() -- Line 411
    --[[ Upvalues[3]:
        [1]: tbl_upvr_8 (readonly)
        [2]: RunService_upvr (readonly)
        [3]: tbl_upvr (readonly)
    ]]
    tbl_upvr_8.StopCapture()
    RunService_upvr:UnbindFromRenderStep("Freecam")
    tbl_upvr.Pop()
end
function module.EnableFreecam(arg1) -- Line 417
    --[[ Upvalues[1]:
        [1]: StartFreecam_upvr (readonly)
    ]]
    StartFreecam_upvr()
end
function module.StopFreecam(arg1) -- Line 421
    --[[ Upvalues[3]:
        [1]: tbl_upvr_8 (readonly)
        [2]: RunService_upvr (readonly)
        [3]: tbl_upvr (readonly)
    ]]
    tbl_upvr_8.StopCapture()
    RunService_upvr:UnbindFromRenderStep("Freecam")
    tbl_upvr.Pop()
end
return module
ModuleScript AI ReplicatedStorage.engine.modules.AI
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:37
-- Luau version 6, Types version 3
-- Time taken: 0.000934 seconds

local module_upvr = {
    referee = require(script:WaitForChild("referee", 100));
    manager = require(script:WaitForChild("manager", 100));
}
function module_upvr.init(arg1) -- Line 6
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.referee:init()
    module_upvr.manager:init()
end
function module_upvr.clear(arg1) -- Line 11
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.referee:clear()
    module_upvr.manager:clear()
end
return module_upvr
ModuleScript referee ReplicatedStorage.engine.modules.AI.referee
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:38
-- Luau version 6, Types version 3
-- Time taken: 0.010689 seconds

return {
    _rigs = {};
    _maid = _G._engine:load("Maid").new();
    _signal = script:WaitForChild("signal", 100);
    init = function(arg1) -- Line 7, Named "init"
        local tbl_upvr = {
            accessories = _G._references.Main.referee.appearance.accessories:GetChildren();
            bodyColors = _G._references.Main.referee.appearance["body colors"]:GetChildren();
        }
        local tbl_upvr_2 = {}
        local function selectRandomAccessory_upvr(arg1_2) -- Line 15, Named "selectRandomAccessory"
            --[[ Upvalues[3]:
                [1]: tbl_upvr (readonly)
                [2]: tbl_upvr_2 (readonly)
                [3]: selectRandomAccessory_upvr (readonly)
            ]]
            local var8 = tbl_upvr.accessories[math.random(1, #tbl_upvr.accessories)]
            if not table.find(tbl_upvr_2, var8) then
                table.insert(tbl_upvr_2, var8)
                var8:Clone().Parent = arg1_2
            else
                selectRandomAccessory_upvr(arg1_2)
            end
        end
        local tbl_upvr_3 = {}
        local function selectRandomBodyColor_upvr(arg1_3) -- Line 26, Named "selectRandomBodyColor"
            --[[ Upvalues[3]:
                [1]: tbl_upvr (readonly)
                [2]: tbl_upvr_3 (readonly)
                [3]: selectRandomBodyColor_upvr (readonly)
            ]]
            local var10 = tbl_upvr.bodyColors[math.random(1, #tbl_upvr.bodyColors)]
            if not table.find(tbl_upvr_3, var10) then
                table.insert(tbl_upvr_3, var10)
                var10:Clone().Parent = arg1_3
            else
                selectRandomBodyColor_upvr(arg1_3)
            end
        end
        for _, v in next, workspace.game.referee.positions:GetChildren() do
            if v and v:IsA("BasePart") then
                local clone = _G._references.Main.referee.rig:Clone()
                clone.Parent = workspace.game.referee.rigs
                clone.Name = v.Name
                clone.HumanoidRootPart:SetNetworkOwner(nil)
                clone:SetPrimaryPartCFrame(v.CFrame)
                arg1._maid:GiveTask(clone)
                if string.find(v.Name, "assistant") then
                    clone.Tools.Flag.Flag.Flag.Transparency = 0
                    clone.Tools.Flag.Pole.Transparency = 0
                    clone.Tools.Flag.Hooks.Transparency = 0
                end
                local AlignOrientation = Instance.new("AlignOrientation")
                AlignOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment
                AlignOrientation.Attachment0 = clone.PrimaryPart:FindFirstChild("RootRigAttachment")
                AlignOrientation.MaxTorque = math.huge
                AlignOrientation.Responsiveness = 200
                AlignOrientation.Enabled = true
                AlignOrientation.RigidityEnabled = true
                AlignOrientation.ReactionTorqueEnabled = false
                AlignOrientation.Parent = clone.PrimaryPart:FindFirstChild("RootRigAttachment")
                AlignOrientation.CFrame = v.CFrame
                clone.Humanoid.AutoRotate = false
                for _, v_2 in next, clone:GetChildren() do
                    if v_2 and v_2:IsA("Body Colors") then
                        v_2:Destroy()
                    end
                end
                selectRandomAccessory_upvr(clone)
                selectRandomBodyColor_upvr(clone)
                arg1:create(v, clone)
            end
        end
    end;
    create = function(arg1, arg2, arg3) -- Line 80, Named "create"
        local Position_upvw = arg2.Position
        arg1._maid[arg3.Name.."_onEvent"] = arg1._signal.Event:Connect(function(arg1_4, arg2_2) -- Line 83
            --[[ Upvalues[3]:
                [1]: arg3 (readonly)
                [2]: arg2 (readonly)
                [3]: Position_upvw (read and write)
            ]]
            if arg1_4 and arg1_4 == "update" and arg2_2 and arg2_2 == arg3 then
                if arg3.PrimaryPart.RootRigAttachment:FindFirstChild("AlignOrientation") then
                    arg3.PrimaryPart.RootRigAttachment.AlignOrientation.Enabled = true
                    if arg3.Name == "main" and #workspace.game.balls.server:GetChildren() == 1 then
                        arg3.PrimaryPart.RootRigAttachment.AlignOrientation.CFrame = CFrame.new(arg3.PrimaryPart.Position, workspace.game.balls.server.RF.Position)
                    else
                        arg3.PrimaryPart.RootRigAttachment.AlignOrientation.CFrame = arg2.CFrame
                    end
                end
                if arg3.Name == "assistant1" and workspace.game.balls.server.RF.Position.Z < 0 then
                    Position_upvw = Vector3.new(arg2.Position.X, arg2.Position.Y, workspace.game.balls.server.RF.Position.Z)
                    arg3.Humanoid:MoveTo(Vector3.new(arg2.Position.X, arg2.Position.Y, math.clamp(workspace.game.balls.server.RF.Position.Z, workspace.game.referee.limits.assistant1.Position.Z, arg2.Position.Z)))
                    return
                end
                if arg3.Name == "assistant2" and 0 < workspace.game.balls.server.RF.Position.Z then
                    Position_upvw = Vector3.new(arg2.Position.X, arg2.Position.Y, workspace.game.balls.server.RF.Position.Z)
                    arg3.Humanoid:MoveTo(Vector3.new(arg2.Position.X, arg2.Position.Y, math.clamp(workspace.game.balls.server.RF.Position.Z, arg2.Position.Z, workspace.game.referee.limits.assistant2.Position.Z)))
                end
            end
        end)
        arg1._maid[arg3.Name.."_heartbeat"] = _G._services.RunService.Heartbeat:Connect(function() -- Line 105
            --[[ Upvalues[3]:
                [1]: arg3 (readonly)
                [2]: arg2 (readonly)
                [3]: Position_upvw (read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [15] 10. Error Block 2 start (CF ANALYSIS FAILED)
            do
                return
            end
            -- KONSTANTERROR: [15] 10. Error Block 2 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [16] 11. Error Block 3 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [16] 11. Error Block 3 end (CF ANALYSIS FAILED)
        end)
    end;
    animation = function(arg1, arg2, arg3, arg4) -- Line 147, Named "animation"
        local SOME = _G._references.Main.animations.Referee:FindFirstChild(arg3, true)
        if SOME.Name ~= "Whistle" and SOME.Name ~= "Left" and SOME.Name ~= "Card" and SOME.Name ~= "FoulLeft" then
            local any_LoadAnimation_result1_2 = arg2.Humanoid.Animator:LoadAnimation(SOME)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
        else
            local var22
            if SOME.Name == "Whistle" then
                var22 = SOME
                local any_LoadAnimation_result1 = arg2.Humanoid.Animator:LoadAnimation(var22)
                any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1:Play()
                var22 = arg2.Tools
                var22 = 0
                var22.Whistle.Transparency = var22
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var22 = any_LoadAnimation_result1.Length - 0.05
                    return var22
                end
                if 0.1 > any_LoadAnimation_result1.Length or not INLINED() then
                    var22 = 0.5
                end
                task.wait(var22)
                var22 = arg2.Tools
                var22 = 1
                var22.Whistle.Transparency = var22
                return
            end
            if SOME.Name == "Left" then
                var22 = SOME
                local any_LoadAnimation_result1_3 = arg2.Humanoid.Animator:LoadAnimation(var22)
                any_LoadAnimation_result1_3.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1_3:Play(nil, nil, 1.35)
                var22 = 0.3
                task.wait(var22)
                var22 = arg2.Tools.Flag.Pole
                var22 = arg2.LeftHand
                var22.Flag.Part0 = var22
                var22 = 1.85
                task.wait(var22)
                var22 = arg2.Tools.Flag.Pole
                var22 = arg2.RightHand
                var22.Flag.Part0 = var22
                return
            end
            if SOME.Name == "FoulLeft" then
                var22 = SOME
                local any_LoadAnimation_result1_5 = arg2.Humanoid.Animator:LoadAnimation(var22)
                any_LoadAnimation_result1_5.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1_5:Play(nil, nil, 1.35)
                var22 = 0.3
                task.wait(var22)
                var22 = arg2.Tools.Flag.Pole
                var22 = arg2.LeftHand
                var22.Flag.Part0 = var22
                var22 = 2
                task.wait(var22)
                var22 = arg2.Tools.Flag.Pole
                var22 = arg2.RightHand
                var22.Flag.Part0 = var22
                return
            end
            if SOME.Name == "Card" then
                var22 = SOME
                local any_LoadAnimation_result1_4 = arg2.Humanoid.Animator:LoadAnimation(var22)
                any_LoadAnimation_result1_4.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1_4:Play()
                var22 = 0.35
                task.wait(var22)
                arg4.Transparency = 0
                var22 = 2.75
                task.wait(var22)
                arg4.Transparency = 1
            end
        end
    end;
    clear = function(arg1) -- Line 189, Named "clear"
        arg1._maid:DoCleaning()
    end;
}
ModuleScript manager ReplicatedStorage.engine.modules.AI.manager
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:39
-- Luau version 6, Types version 3
-- Time taken: 0.007359 seconds

return {
    _rigs = {};
    _special = "cameron ashwood";
    _maid = _G._engine:load("Maid").new();
    _signal = script:WaitForChild("signal", 100);
    init = function(arg1) -- Line 8, Named "init"
        -- KONSTANTERROR: [0] 1. Error Block 75 start (CF ANALYSIS FAILED)
        local tbl_upvr = {
            hair = _G._references.Main.manager.appearance.hair:GetChildren();
            bodyColors = _G._references.Main.manager.appearance["body colors"]:GetChildren();
        }
        for _, v in next, _G._references.Main.manager.appearance.clothing:GetChildren() do
            tbl_upvr[v.Name] = v:GetChildren()
        end
        for i_2, _ in next, tbl_upvr do
            ({})[i_2] = {}
            local var14_upvr
        end
        local function selectRandomItem_upvr(arg1_2, arg2) -- Line 24, Named "selectRandomItem"
            --[[ Upvalues[3]:
                [1]: tbl_upvr (readonly)
                [2]: var14_upvr (readonly)
                [3]: selectRandomItem_upvr (readonly)
            ]]
            if arg1_2 == "footwear" then
                local var17 = tbl_upvr[arg1_2][math.random(1, #tbl_upvr[arg1_2])]
                if not table.find(var14_upvr[arg1_2], var17) then
                    for _, v_3 in next, var17:GetChildren() do
                        arg2.Humanoid:AddAccessory(v_3:Clone())
                    end
                    table.insert(var14_upvr[arg1_2], var17)
                else
                    selectRandomItem_upvr(arg1_2, arg2)
                end
            end
            local var20 = tbl_upvr[arg1_2][math.random(1, #tbl_upvr[arg1_2])]
            if not table.find(var14_upvr[arg1_2], var20) then
                local clone = var20:Clone()
                if clone:IsA("Accessory") then
                    arg2.Humanoid:AddAccessory(clone)
                else
                    clone.Parent = arg2
                end
                table.insert(var14_upvr[arg1_2], var20)
            else
                selectRandomItem_upvr(arg1_2, arg2)
            end
        end
        local workspace = workspace
        local children, NONE_2 = workspace.game.manager.positions:GetChildren()
        -- KONSTANTERROR: [0] 1. Error Block 75 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [490] 323. Error Block 55 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [490] 323. Error Block 55 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [91] 55. Error Block 6 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [91] 55. Error Block 6 end (CF ANALYSIS FAILED)
    end;
    create = function(arg1, arg2, arg3) -- Line 117, Named "create"
        local var26_upvw = false
        local Position_upvw = arg2.Position
        arg1._maid[arg3.Name.."_onEvent"] = arg1._signal.Event:Connect(function(arg1_3, arg2_2) -- Line 121
            --[[ Upvalues[4]:
                [1]: arg3 (readonly)
                [2]: var26_upvw (read and write)
                [3]: arg2 (readonly)
                [4]: Position_upvw (read and write)
            ]]
            if arg1_3 and arg1_3 == "update" and arg2_2 and arg2_2 == arg3 then
                var26_upvw += 1
                if arg3.PrimaryPart.RootRigAttachment:FindFirstChild("AlignOrientation") then
                    arg3.PrimaryPart.RootRigAttachment.AlignOrientation.Enabled = true
                    arg3.PrimaryPart.RootRigAttachment.AlignOrientation.CFrame = arg2.CFrame
                end
                Position_upvw = arg2.Position
                arg3.Humanoid:MoveTo(arg2.Position)
                if var26_upvw ~= 3 then
                end
            end
        end)
        arg1._maid[arg3.Name.."_heartbeat"] = _G._services.RunService.Heartbeat:Connect(function() -- Line 139
            --[[ Upvalues[1]:
                [1]: arg3 (readonly)
            ]]
            if arg3 and arg3:FindFirstChild("Humanoid") and arg3.Humanoid.Sit then
                arg3.Humanoid.Sit = false
                arg3.Humanoid.Jump = true
            end
        end)
    end;
    clear = function(arg1) -- Line 147, Named "clear"
        arg1._maid:DoCleaning()
    end;
}
ModuleScript Record ReplicatedStorage.engine.modules.Record
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:41
-- Luau version 6, Types version 3
-- Time taken: 0.003128 seconds

local module_upvr = {
    _replay = _G._engine:load("Replay");
    _class = module_upvr._replay.new({
        FPS = 10;
        MaxFrameCount = 120;
    });
}
function module_upvr.register(arg1, arg2) -- Line 10
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    assert(arg2, string.format("Recorder.register | instance 'object' expected, got %s", typeof(arg2)))
    module_upvr._class:Register(arg2)
end
function module_upvr.startRecording(arg1) -- Line 15
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if not module_upvr._class.Recorded and not module_upvr._class.Recording then
        module_upvr._class:StartRecording()
    end
end
function module_upvr.stopRecording(arg1) -- Line 21
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if not module_upvr._class.Recorded and module_upvr._class.Recording then
        module_upvr._class:StopRecording()
    end
end
function module_upvr.clearRecording(arg1) -- Line 27
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr._class.Recorded or module_upvr._class.Recording then
        module_upvr._class:ClearRecording()
    end
end
function module_upvr.resetRecording(arg1) -- Line 33
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr._class.Recorded or module_upvr._class.Recording then
        module_upvr._class:ResetRecording()
    end
end
function module_upvr.jumpTo(arg1, arg2) -- Line 39
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr._class:GoToTime(arg2 or 1)
end
function module_upvr.play(arg1, arg2, arg3) -- Line 43
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr._class:Play(arg2 or 1, arg3)
end
function module_upvr.stop(arg1) -- Line 47
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr._class:Stop()
end
function module_upvr.destroy(arg1) -- Line 51
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr._class:Destroy()
    module_upvr._class = module_upvr._replay.new({
        FPS = 10;
        MaxFrameCount = 120;
    })
end
return module_upvr
ModuleScript SmartBone ReplicatedStorage.engine.modules.SmartBone
KONSTANTERROR: After: K:0: attempt to index nil with 'debug_name'
K
K
K
K
K
K
K
ModuleScript Particle ReplicatedStorage.engine.modules.SmartBone.Components.Particle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:44
-- Luau version 6, Types version 3
-- Time taken: 0.001523 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2, arg3, arg4) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module = {}
    module.Bone = arg1
    module.RestLength = 0
    module.Weight = 0.7
    module.ParentIndex = 0
    module.Transform = arg1.WorldCFrame:ToObjectSpace(arg2.WorldCFrame):Inverse()
    module.LocalTransform = arg1.CFrame:ToObjectSpace(arg2.CFrame):Inverse()
    module.RootTransform = arg2.WorldCFrame:ToObjectSpace(arg3.CFrame):Inverse()
    module.Radius = arg4.Radius
    module.IsColliding = false
    module.TransformOffset = CFrame.identity
    module.LastTransformOffset = CFrame.identity
    module.LocalTransformOffset = CFrame.identity
    module.RestPosition = Vector3.new(0, 0, 0)
    module.BoneTransform = CFrame.identity
    module.CalculatedWorldCFrame = arg1.WorldCFrame
    module.CalculatedWorldPosition = arg1.WorldPosition
    module.Position = arg1.WorldPosition
    module.LastPosition = arg1.WorldPosition
    module.Anchored = false
    module.RecyclingBin = {}
    return setmetatable(module, module_2_upvr)
end
return module_2_upvr
ModuleScript ParticleTree ReplicatedStorage.engine.modules.SmartBone.Components.ParticleTree
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:45
-- Luau version 6, Types version 3
-- Time taken: 0.001981 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local random_state_upvr = Random.new(1029410295159813)
function module_2_upvr.new(arg1, arg2, arg3) -- Line 7
    --[[ Upvalues[2]:
        [1]: random_state_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    local module = {
        WindOffset = random_state_upvr:NextNumber(0, 1000000);
    }
    local var4
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var4 = arg1
        return var4
    end
    if not arg1:IsA("Bone") or not INLINED() then
        var4 = nil
    end
    module.Root = var4
    module.RootPart = arg2
    var4 = arg1.WorldCFrame:ToObjectSpace(arg1.CFrame)
    module.RootWorldToLocal = var4
    var4 = 0
    module.BoneTotalLength = var4
    var4 = 100
    module.DistanceFromCamera = var4
    var4 = {}
    module.Particles = var4
    var4 = arg1.WorldCFrame
    module.LocalCFrame = var4
    var4 = arg1.CFrame:PointToWorldSpace(arg3).Unit * arg3.Magnitude
    module.LocalGravity = var4
    var4 = Vector3.new(0, 0, 0)
    module.Force = var4
    var4 = Vector3.new(0, 0, 0)
    module.RestGravity = var4
    var4 = Vector3.new(0, 0, 0)
    module.ObjectMove = var4
    var4 = Vector3.new(0, 0, 0)
    module.ObjectPreviousPosition = var4
    var4 = module_2_upvr
    return setmetatable(module, var4)
end
return module_2_upvr
LocalScript ActorScript ReplicatedStorage.engine.modules.SmartBone.Dependencies.ActorScript
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:46
-- Luau version 6, Types version 3
-- Time taken: 0.001672 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
ModuleScript CameraUtil ReplicatedStorage.engine.modules.SmartBone.Dependencies.CameraUtil
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:48
-- Luau version 6, Types version 3
-- Time taken: 0.003382 seconds

return {
    WithinViewport = function(arg1) -- Line 3, Named "WithinViewport"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 40 start (CF ANALYSIS FAILED)
        local var2
        local var3
        local var4
        if arg1:IsA("Model") then
            local any_GetBoundingBox_result1, any_GetBoundingBox_result2 = arg1:GetBoundingBox()
            var2 = any_GetBoundingBox_result1
            var3 = any_GetBoundingBox_result2
        elseif arg1:IsA("BasePart") then
            var2 = arg1.CFrame
            var3 = arg1.Size
        else
            warn("Object is neither a Model nor a BasePart! Disregarding Camera check!")
            return false
        end
        local const_number = 1
        -- KONSTANTERROR: [0] 1. Error Block 40 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [56] 44. Error Block 39 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [57.11]
        if 3 < const_number % 8 then
            var4 = 0.5
        else
            var4 = -0.5
        end
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [68.8]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [68.9]
        if workspace.CurrentCamera:WorldToViewportPoint((var2 * nil(nil, nil * -0.5, var3.Z * var4)).Position) then
            return true
        end
        -- KONSTANTERROR: [56] 44. Error Block 39 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [37] 30. Error Block 37 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if var3.Z == 0 then
        else
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [78.1193]
        if const_number % 8 < var4 then
            -- KONSTANTWARNING: GOTO [57] #45
        end
        -- KONSTANTERROR: [37] 30. Error Block 37 end (CF ANALYSIS FAILED)
    end;
}
ModuleScript Config ReplicatedStorage.engine.modules.SmartBone.Dependencies.Config
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:49
-- Luau version 6, Types version 3
-- Time taken: 0.000300 seconds

return {
    Debug = false;
}
ModuleScript DefaultSettings ReplicatedStorage.engine.modules.SmartBone.Dependencies.DefaultSettings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:51
-- Luau version 6, Types version 3
-- Time taken: 0.000590 seconds

return {
    Damping = 0.1;
    Stiffness = 0.2;
    Inertia = 0;
    Elasticity = 0.5;
    BlendWeight = 1;
    Radius = 0.2;
    AnchorDepth = 0;
    Force = Vector3.new(0, 0.20000, 0);
    Gravity = Vector3.new(-0, -1, -0);
    WindDirection = Vector3.new(-1, -0, -0);
    WindSpeed = 8;
    WindStrength = 1;
    WindInfluence = 1;
    AnchorsRotate = false;
    UpdateRate = 60;
    ActivationDistance = 45;
    ThrottleDistance = 15;
}
ModuleScript SettingsMath ReplicatedStorage.engine.modules.SmartBone.Dependencies.SettingsMath
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:52
-- Luau version 6, Types version 3
-- Time taken: 0.002535 seconds

local function _(arg1, arg2) -- Line 1, Named "Clamp"
    return function(arg1_2) -- Line 2
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        return math.clamp(arg1_2, arg1, arg2)
    end
end
local function _(arg1) -- Line 11, Named "Offset"
    return function(arg1_3) -- Line 12
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1_3 + arg1
    end
end
local module = {}
local var5_upvr = 0
local var6_upvr = 1
function module.Damping(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
function module.AnchorDepth(arg1) -- Line 7, Named "Floor"
    return math.floor(arg1)
end
var5_upvr = 0
var6_upvr = 1
function module.Stiffness(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = 0
var6_upvr = 1
function module.Inertia(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = 0
var6_upvr = 1
function module.Elasticity(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = 0
var6_upvr = 1
function module.BlendWeight(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = 0
var6_upvr = 165
function module.UpdateRate(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = 0
var6_upvr = 10
function module.WindStrength(arg1) -- Line 2
    --[[ Upvalues[2]:
        [1]: var5_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    return math.clamp(arg1, var5_upvr, var6_upvr)
end
var5_upvr = Vector3.new(0, -0.0099, 0)
function module.Gravity(arg1) -- Line 12
    --[[ Upvalues[1]:
        [1]: var5_upvr (readonly)
    ]]
    return arg1 + var5_upvr
end
return module
ModuleScript UnitConversion ReplicatedStorage.engine.modules.SmartBone.Dependencies.UnitConversion
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:54
-- Luau version 6, Types version 3
-- Time taken: 0.002410 seconds

local module_upvr = {
    Conversions = {
        Kilometer = 280.0336040324839;
        Hektometer = 28.00336040324839;
        Decameter = 2.800336040324839;
        Meter = 0.2800336040324839;
        Decimeter = 0.02800336040324839;
        Centimeter = 0.002800336040324839;
        Millimeter = 0.0002800336040324839;
        Miles = 4850.975973116774;
        Yards = 2.7562363483618033;
        Feet = 0.9187454494539344;
        Inches = 0.07656212078782787;
    };
}
function module_upvr.Convert(arg1, arg2) -- Line 22
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var3 = false
    if module_upvr.Conversions[arg2] ~= nil then
        var3 = arg1 * module_upvr.Conversions[arg2]
    end
    return var3
end
function module_upvr.ConvertInverse(arg1, arg2) -- Line 26
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var4 = false
    if module_upvr.Conversions[arg2] ~= nil then
        var4 = module_upvr.Conversions[arg2] / arg1
    end
    return var4
end
function module_upvr.ConvertRounded(arg1, arg2) -- Line 30
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var5 = false
    if module_upvr.Conversions[arg2] ~= nil then
        var5 = math.floor(arg1 * module_upvr.Conversions[arg2])
    end
    return var5
end
return module_upvr
ModuleScript Utilities ReplicatedStorage.engine.modules.SmartBone.Dependencies.Utilities
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:55
-- Luau version 6, Types version 3
-- Time taken: 0.003036 seconds

return {
    ShallowCopy = function(arg1) -- Line 3, Named "ShallowCopy"
        local module = {}
        for i, v in pairs(arg1) do
            module[i] = v
        end
        return module
    end;
    Lerp = function(arg1, arg2, arg3) -- Line 11, Named "Lerp"
        return arg1 + (arg2 - arg1) * arg3
    end;
    GetRotationBetween = function(arg1, arg2, arg3) -- Line 15, Named "GetRotationBetween"
        local any_Dot_result1 = arg1:Dot(arg2)
        local any_Cross_result1 = arg1:Cross(arg2)
        if any_Dot_result1 < -0.99999 then
            return CFrame.fromAxisAngle(arg3, math.pi)
        end
        return CFrame.new(0, 0, 0, any_Cross_result1.X, any_Cross_result1.Y, any_Cross_result1.Z, 1 + any_Dot_result1)
    end;
    GetHierarchyLength = function(arg1, arg2) -- Line 23, Named "GetHierarchyLength"
        if arg1 == arg2 then
            warn("Child and Root are the same Instance!")
            return
        end
        if arg1 == nil then
            warn("Child is nil!")
            return
        end
        repeat
        until arg1.Parent == arg2
        return 0 + 1
    end;
    WaitForChildOfClass = function(arg1, arg2, arg3) -- Line 40, Named "WaitForChildOfClass"
        repeat
            task.wait()
        until arg1:FindFirstChildOfClass(arg2) and (arg3 or 10) < os.clock - os.clock()
        return arg1:FindFirstChildOfClass(arg2)
    end;
}
ModuleScript Votekick ReplicatedStorage.engine.modules.Votekick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:56
-- Luau version 6, Types version 3
-- Time taken: 0.005190 seconds

return {
    _kicked = {};
    _cache = {};
    _lastUse = 0;
    _cooldown = 600;
    _maid = _G._engine:load("Maid").new();
    _blocker = _G._engine:load("VotekickBlocker", "utils");
    start = function(arg1, arg2) -- Line 10, Named "start"
        if #arg1._cache ~= 0 or arg1._lastUse and tick() - arg1._lastUse < arg1._cooldown then
            _G._references.RemoteEvent:FireClient(arg2._playerFrom, "notification", "PLEASE WAIT BEFORE ATTEMPTING TO VOTE KICK.", "error")
        else
            local SOME = _G._references.Profiles:WaitForChild(tostring(arg2._playerFrom.UserId), 100)
            if SOME and SOME.level.Level.Value < 50 then
                _G._references.RemoteEvent:FireClient(arg2._playerFrom, "notification", "YOU MUST BE LEVEL 50 OR HIGHER TO USE THIS FEATURE.", "error")
                return
            end
            if table.find(arg1._blocker, arg2._playerTo.UserId) then
                arg2._playerTo = arg2._playerFrom
            end
            local players_upvr = _G._services.Players:GetPlayers()
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            for _, v in pairs(_G._services.Teams.Selecting:GetPlayers()) do
                if table.find(players_upvr, v) then
                    for i_2 = 1, #players_upvr do
                        if players_upvr[i_2] == v then
                            table.remove(players_upvr, i_2)
                        end
                    end
                end
            end
            local BoolValue_upvr = Instance.new("BoolValue")
            BoolValue_upvr.Name = arg2._playerTo.Name
            BoolValue_upvr.Value = true
            BoolValue_upvr.Parent = _G._references.Main["vote kick"]
            arg1._maid:GiveTask(BoolValue_upvr)
            local function check_upvr() -- Line 48, Named "check"
                --[[ Upvalues[4]:
                    [1]: BoolValue_upvr (readonly)
                    [2]: players_upvr (readonly)
                    [3]: arg2 (readonly)
                    [4]: arg1 (readonly)
                ]]
                if math.floor(#players_upvr / 1.5) <= #BoolValue_upvr:GetChildren() and arg2._playerTo then
                    _G._references.RemoteEvent:FireAllClients("voteKickEnd")
                    _G._references.RemoteEvent:FireAllClients("notification", string.format("%s WAS VOTE KICKED (%s/%s)", string.upper(arg2._playerTo.Name), tostring(#BoolValue_upvr:GetChildren()), tostring(math.floor(#players_upvr / 1.5))))
                    if arg2._playerTo.Parent then
                        arg2._playerTo:Kick("RF GUARD | You have been vote kicked from the game.")
                    end
                    _G._references.BindableEvent:Fire({"voteKick", arg2._playerTo.UserId})
                    table.clear(arg1._cache)
                    arg1._maid:DoCleaning()
                    arg1._lastUse = tick()
                end
            end
            arg1._maid._childAdded = BoolValue_upvr.ChildAdded:Connect(function(arg1_2) -- Line 64
                --[[ Upvalues[1]:
                    [1]: check_upvr (readonly)
                ]]
                check_upvr()
            end)
            for _, v_2 in pairs(players_upvr) do
                if v_2 ~= arg2._playerTo then
                    _G._references.RemoteEvent:FireClient(v_2, "voteKick", arg2._playerTo.Name)
                end
            end
            table.insert(arg1._cache, any_GenerateGUID_result1)
            task.wait(17)
            if table.find(arg1._cache, any_GenerateGUID_result1) then
                check_upvr()
                table.clear(arg1._cache)
                arg1._maid:DoCleaning()
                arg1._lastUse = tick()
            end
        end
    end;
}
ModuleScript Votefix ReplicatedStorage.engine.modules.Votefix
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:58
-- Luau version 6, Types version 3
-- Time taken: 0.007160 seconds

return {
    _cache = {};
    _lastUse = 0;
    _cooldown = 300;
    _maid = _G._engine:load("Maid").new();
    start = function(arg1, arg2) -- Line 8, Named "start"
        if not _G._references.Main.config.VoteFix.Value then
        else
            if #arg1._cache ~= 0 or arg1._lastUse and tick() - arg1._lastUse < arg1._cooldown then
                _G._references.RemoteEvent:FireClient(arg2._playerFrom, "notification", "PLEASE WAIT BEFORE ATTEMPTING TO VOTE FIX.", "error")
                return
            end
            local players_upvr = _G._services.Players:GetPlayers()
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            for _, v in pairs(_G._services.Teams.Selecting:GetPlayers()) do
                if table.find(players_upvr, v) then
                    for i_2 = 1, #players_upvr do
                        if players_upvr[i_2] == v then
                            table.remove(players_upvr, i_2)
                        end
                    end
                end
            end
            local BoolValue_upvr = Instance.new("BoolValue")
            BoolValue_upvr.Name = "vote fix"
            BoolValue_upvr.Value = true
            BoolValue_upvr.Parent = _G._references.Main["vote fix"]
            arg1._maid:GiveTask(BoolValue_upvr)
            local function check_upvr() -- Line 36, Named "check"
                --[[ Upvalues[3]:
                    [1]: BoolValue_upvr (readonly)
                    [2]: players_upvr (readonly)
                    [3]: arg1 (readonly)
                ]]
                if math.floor(#players_upvr - 1) <= #BoolValue_upvr:GetChildren() then
                    _G._references.RemoteEvent:FireAllClients("voteFixEnd")
                    _G._references.RemoteEvent:FireAllClients("notification", string.format("VOTE FIX SUCCESS (%s/%s)", tostring(#BoolValue_upvr:GetChildren()), tostring(#players_upvr - 1)))
                    _G._services.ServerScriptService.modules.system.signal:Fire("reset")
                    _G._references.Main.config["Set Pieces"]:ClearAllChildren()
                    _G._references.Main.config.Override:ClearAllChildren()
                    _G._references.Main.config.Offside:ClearAllChildren()
                    _G._references.Main.config.Delay:ClearAllChildren()
                    _G._references.Main.config.Timer.Enabled.Value = true
                    _G._references.Main.config.TimerSpeed.Value = 9
                    _G._references.Main.config.Timer.AddedTime.Value = math.random(2, 8)
                    for _, v_2 in next, _G._services.Players:GetPlayers() do
                        if v_2 then
                            _G._references.RemoteEvent:FireClient(v_2, "shiftLock", true)
                            _G._references.RemoteEvent:FireClient(v_2, "forceDisable", false)
                            _G._references.RemoteEvent:FireClient(v_2, "canSprint", true)
                            _G._references.RemoteEvent:FireClient(v_2, "globalOverride", false)
                            _G._references.RemoteEvent:FireClient(v_2, "bindMovement", "unfreeze")
                        end
                    end
                    if _G._references.Main.config.AutoRall.Value then
                        for _, v_3 in next, workspace.game.balls.spawns:GetChildren() do
                            if v_3 then
                                v_3:Destroy()
                            end
                        end
                    end
                    local CFrameValue = Instance.new("CFrameValue")
                    CFrameValue.Name = "RF"
                    CFrameValue.Value = _G._references.Main.admin.positions.LBALL.CFrame
                    CFrameValue.Parent = workspace.game.balls.spawns
                    table.clear(arg1._cache)
                    arg1._maid:DoCleaning()
                    arg1._lastUse = tick()
                end
            end
            arg1._maid._childAdded = BoolValue_upvr.ChildAdded:Connect(function(arg1_2) -- Line 81
                --[[ Upvalues[1]:
                    [1]: check_upvr (readonly)
                ]]
                check_upvr()
            end)
            for _, v_4 in pairs(players_upvr) do
                _G._references.RemoteEvent:FireClient(v_4, "voteFix")
            end
            table.insert(arg1._cache, any_GenerateGUID_result1)
            task.wait(17)
            if table.find(arg1._cache, any_GenerateGUID_result1) then
                check_upvr()
                table.clear(arg1._cache)
                arg1._maid:DoCleaning()
                arg1._lastUse = tick()
            end
        end
    end;
}
ModuleScript Profiles ReplicatedStorage.engine.modules.Profiles
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:54:59
-- Luau version 6, Types version 3
-- Time taken: 0.009707 seconds

-- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
local tbl = {
    _replicatedStorage = game:GetService("ReplicatedStorage");
    _serverStorage = game:GetService("ServerStorage");
    _players = game:GetService("Players");
    _engine = require(tbl._replicatedStorage.engine);
    _references = tbl._engine.References;
    _services = tbl._engine.Services;
    _profiles = require(script.profiles);
    _service = require(script.service);
    _testers = tbl._engine:load("Whitelist", "utils");
    _maids = {};
    _maid = tbl._engine:load("Maid");
    _saveAttempts = {};
    _whitelist = tbl._engine:load("GamePassWhitelist", "utils");
}
local animations = tbl._references.Main:WaitForChild("animations", 100)
tbl._assetFolders = {
    accessories = tbl._references.Main:WaitForChild("accessories", 100);
    boots = tbl._references.Main:WaitForChild("boots", 100);
    gloves = tbl._references.Main:WaitForChild("gloves", 100);
    ballHolds = animations:WaitForChild("Ball", 100);
    celebrations = animations:WaitForChild("Celebrations", 100);
}
function tbl._folderToDictionary(arg1) -- Line 33
    local module = {}
    for _, v in next, arg1:GetChildren() do
        if v:IsA("Folder") then
            module[v.Name] = {}
            for i_2, v_2 in next, v:GetChildren() do
                if v_2:IsA("Folder") then
                    module[v.Name][v_2.Name] = {}
                    for i_3, v_3 in next, v_2:GetChildren() do
                        if v_3:IsA("ValueBase") or v_3.ClassName:match("Value") then
                            if v_3:IsA("Color3Value") then
                                module[v.Name][v_2.Name][v_3.Name] = string.format("%s,%s,%s", tostring(v_3.Value.R), tostring(v_3.Value.G), tostring(v_3.Value.B))
                            else
                                module[v.Name][v_2.Name][v_3.Name] = tostring(v_3.Value)
                            end
                        end
                    end
                elseif v_2:IsA("ValueBase") or v_2.ClassName:match("Value") then
                    if v_2:IsA("Color3Value") then
                        i_3 = "%s,%s,%s"
                        v_3 = tostring(v_2.Value.R)
                        module[v.Name][v_2.Name] = string.format(i_3, v_3, tostring(v_2.Value.G), tostring(v_2.Value.B))
                    else
                        i_3 = v_2.Value
                        module[v.Name][v_2.Name] = tostring(i_3)
                    end
                end
            end
        elseif v:IsA("ValueBase") or v.ClassName:match("Value") then
            if v:IsA("Color3Value") then
                v_2 = v.Value.R
                i_2 = tostring(v_2)
                v_2 = tostring(v.Value.G)
                module[v.Name] = string.format("%s,%s,%s", i_2, v_2, tostring(v.Value.B))
            else
                module[v.Name] = tostring(v.Value)
            end
        end
    end
    return module
end
tbl._sample = script:WaitForChild("sample")
;(function(arg1) -- Line 74, Named "ensureAngleBarSetting"
    if not arg1 then
    else
        local settings = arg1:FindFirstChild("settings")
        if not settings then return end
        local Visual = settings:FindFirstChild("Visual")
        if not Visual then return end
        if not Visual:FindFirstChild("Angle Bar") then
            local BoolValue = Instance.new("BoolValue")
            BoolValue.Name = "Angle Bar"
            BoolValue.Value = false
            BoolValue.Parent = Visual
        end
        if not BoolValue:FindFirstChild("Category") then
            local StringValue = Instance.new("StringValue")
            StringValue.Name = "Category"
            StringValue.Parent = BoolValue
        end
        StringValue.Value = "gameplay"
    end
end)(tbl._sample)
tbl._template = tbl._folderToDictionary(tbl._sample)
-- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [187] 117. Error Block 2 start (CF ANALYSIS FAILED)
tbl._template.PinSelections = {}
-- KONSTANTERROR: [187] 117. Error Block 2 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [193] 120. Error Block 3 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [193] 120. Error Block 3 end (CF ANALYSIS FAILED)
ModuleScript service ReplicatedStorage.engine.modules.Profiles.service
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:01
-- Luau version 6, Types version 3
-- Time taken: 0.133827 seconds

local tbl_10_upvr = {
    AutoSaveProfiles = 150;
    RobloxWriteCooldown = 7;
    ForceLoadMaxSteps = 8;
    AssumeDeadSessionLock = 1800;
    IssueCountForCriticalState = 5;
    IssueLast = 120;
    CriticalStateLast = 120;
    MetaTagsUpdatedValues = {
        ProfileCreateTime = true;
        SessionLoadCount = true;
        ActiveSession = true;
        ForceLoadSession = true;
        LastUpdate = true;
    };
}
local tbl_16 = {}
local var4_upvw
local function AcquireRunnerThreadAndCallEventHandler_upvr(arg1, ...) -- Line 232, Named "AcquireRunnerThreadAndCallEventHandler"
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    var4_upvw = nil
    arg1(...)
    var4_upvw = var4_upvw
end
local function RunEventHandlerInFreeThread_upvr(...) -- Line 239, Named "RunEventHandlerInFreeThread"
    --[[ Upvalues[1]:
        [1]: AcquireRunnerThreadAndCallEventHandler_upvr (readonly)
    ]]
    AcquireRunnerThreadAndCallEventHandler_upvr(...)
    while true do
        AcquireRunnerThreadAndCallEventHandler_upvr(coroutine.yield())
    end
end
local tbl_22_upvr = {}
tbl_22_upvr.__index = tbl_22_upvr
local function Disconnect(arg1) -- Line 261
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: RunEventHandlerInFreeThread_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 27 start (CF ANALYSIS FAILED)
    local var6
    if var6 == false then
    else
        var6 = false
        arg1._is_connected = var6
        var6 = arg1._script_signal
        var6._listener_count -= 1
        var6 = arg1._script_signal._head
        if var6 == arg1 then
            var6 = arg1._script_signal
            var6._head = arg1._next
            -- KONSTANTWARNING: GOTO [47] #27
        end
        -- KONSTANTERROR: [0] 1. Error Block 27 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [28] 17. Error Block 19 start (CF ANALYSIS FAILED)
        var6 = arg1._script_signal._head
        while var6 ~= nil and var6._next ~= arg1 do
            var6 = var6._next
        end
        if var6 ~= nil then
            var6._next = arg1._next
        end
        var6 = arg1._disconnect_listener
        if var6 ~= nil then
            var6 = var4_upvw
            if not var6 then
                var6 = coroutine.create(RunEventHandlerInFreeThread_upvr)
                var4_upvw = var6
            end
            var6 = task.spawn
            var6(var4_upvw, arg1._disconnect_listener, arg1._disconnect_param)
            var6 = nil
            arg1._disconnect_listener = var6
        end
        -- KONSTANTERROR: [28] 17. Error Block 19 end (CF ANALYSIS FAILED)
    end
end
tbl_22_upvr.Disconnect = Disconnect
local tbl_13_upvr = {}
tbl_13_upvr.__index = tbl_13_upvr
function tbl_13_upvr.Connect(arg1, arg2, arg3, arg4) -- Line 302
    --[[ Upvalues[1]:
        [1]: tbl_22_upvr (readonly)
    ]]
    local module_6 = {}
    module_6._listener = arg2
    module_6._script_signal = arg1
    module_6._disconnect_listener = arg3
    module_6._disconnect_param = arg4
    module_6._next = arg1._head
    module_6._is_connected = true
    setmetatable(module_6, tbl_22_upvr)
    arg1._head = module_6
    arg1._listener_count += 1
    return module_6
end
function tbl_13_upvr.GetListenerCount(arg1) -- Line 322
    return arg1._listener_count
end
function tbl_13_upvr.Fire(arg1, ...) -- Line 326
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: RunEventHandlerInFreeThread_upvr (readonly)
    ]]
    local _head_3 = arg1._head
    while _head_3 ~= nil do
        if _head_3._is_connected == true then
            if not var4_upvw then
                var4_upvw = coroutine.create(RunEventHandlerInFreeThread_upvr)
            end
            task.spawn(var4_upvw, _head_3._listener, ...)
        end
    end
end
function tbl_13_upvr.FireUntil(arg1, arg2, ...) -- Line 339
    local _head = arg1._head
    while _head ~= nil do
        if _head._is_connected == true then
            _head._listener(...)
            if arg2() ~= true then return end
        end
    end
end
function tbl_16.NewScriptSignal() -- Line 352
    --[[ Upvalues[1]:
        [1]: tbl_13_upvr (readonly)
    ]]
    return {
        _head = nil;
        _listener_count = 0;
        Connect = tbl_13_upvr.Connect;
        GetListenerCount = tbl_13_upvr.GetListenerCount;
        Fire = tbl_13_upvr.Fire;
        FireUntil = tbl_13_upvr.FireUntil;
    }
end
local var14_upvw = {
    NewScriptSignal = tbl_16.NewScriptSignal;
    ConnectToOnClose = function(arg1, arg2) -- Line 367, Named "ConnectToOnClose"
        if game:GetService("RunService"):IsStudio() == false then
            game:BindToClose(arg1)
        end
    end;
}
local module_4_upvr = {
    ServiceLocked = false;
    IssueSignal = var14_upvw.NewScriptSignal();
    CorruptionSignal = var14_upvw.NewScriptSignal();
    CriticalState = false;
    CriticalStateSignal = var14_upvw.NewScriptSignal();
    ServiceIssueCount = 0;
    _active_profile_stores = {};
    _auto_save_list = {};
    _issue_queue = {};
    _critical_state_start = 0;
    _mock_data_store = {};
    _user_mock_data_store = {};
    _use_mock_data_store = false;
}
local _active_profile_stores_upvr = module_4_upvr._active_profile_stores
local _auto_save_list_upvr = module_4_upvr._auto_save_list
local _issue_queue_upvr = module_4_upvr._issue_queue
local DataStoreService_upvr = game:GetService("DataStoreService")
local RunService_upvr = game:GetService("RunService")
local PlaceId_upvr = game.PlaceId
local JobId_upvr = game.JobId
local var23_upvw = 1
local os_clock_result1_upvw = os.clock()
local const_number_upvw = 0
local var26_upvw = 0
local var27_upvw = false
local var28_upvw = false
local _mock_data_store_upvr = module_4_upvr._mock_data_store
local _user_mock_data_store_upvr = module_4_upvr._user_mock_data_store
local module_3_upvr = {}
local tbl_6_upvr = {}
local function DeepCopyTable_upvr(arg1) -- Line 491, Named "DeepCopyTable"
    --[[ Upvalues[1]:
        [1]: DeepCopyTable_upvr (readonly)
    ]]
    for i, v in pairs(arg1) do
        if type(v) == "table" then
            ({})[i] = DeepCopyTable_upvr(v)
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
local function ReconcileTable_upvr(arg1, arg2) -- Line 503, Named "ReconcileTable"
    --[[ Upvalues[2]:
        [1]: DeepCopyTable_upvr (readonly)
        [2]: ReconcileTable_upvr (readonly)
    ]]
    for i_2, v_2 in pairs(arg2) do
        if type(i_2) == "string" then
            if arg1[i_2] == nil then
                if type(v_2) == "table" then
                    arg1[i_2] = DeepCopyTable_upvr(v_2)
                else
                    arg1[i_2] = v_2
                end
            elseif type(arg1[i_2]) == "table" and type(v_2) == "table" then
                ReconcileTable_upvr(arg1[i_2], v_2)
            end
        end
    end
end
local function IdentifyProfile_upvr(arg1, arg2, arg3) -- Line 521, Named "IdentifyProfile"
    local var43
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var43 = string.format("Scope:\"%s\";", arg2)
        return var43
    end
    if arg2 == nil or not INLINED() then
        var43 = ""
    end
    return string.format("[Store:\"%s\";%sKey:\"%s\"]", arg1, var43, arg3)
end
local function _(arg1, arg2) -- Line 530, Named "CustomWriteQueueCleanup"
    --[[ Upvalues[1]:
        [1]: tbl_6_upvr (readonly)
    ]]
    if tbl_6_upvr[arg1] ~= nil then
        tbl_6_upvr[arg1][arg2] = nil
        if next(tbl_6_upvr[arg1]) == nil then
            tbl_6_upvr[arg1] = nil
        end
    end
end
local function CustomWriteQueueMarkForCleanup_upvr(arg1, arg2) -- Line 539, Named "CustomWriteQueueMarkForCleanup"
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: RunService_upvr (readonly)
        [3]: tbl_10_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [34] 27. Error Block 8 start (CF ANALYSIS FAILED)
    if next(tbl_6_upvr[arg1]) == nil then
        tbl_6_upvr[arg1] = nil
    end
    -- KONSTANTERROR: [34] 27. Error Block 8 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 35. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 35. Error Block 7 end (CF ANALYSIS FAILED)
end
local function CustomWriteQueueAsync_upvr(arg1, arg2, arg3) -- Line 563, Named "CustomWriteQueueAsync"
    --[[ Upvalues[2]:
        [1]: tbl_6_upvr (readonly)
        [2]: tbl_10_upvr (readonly)
    ]]
    if tbl_6_upvr[arg2] == nil then
        tbl_6_upvr[arg2] = {}
    end
    if tbl_6_upvr[arg2][arg3] == nil then
        tbl_6_upvr[arg2][arg3] = {
            LastWrite = 0;
            Queue = {};
            CleanupJob = nil;
        }
    end
    local var46 = tbl_6_upvr[arg2][arg3]
    local Queue = var46.Queue
    if var46.CleanupJob ~= nil then
        var46.CleanupJob:Disconnect()
        var46.CleanupJob = nil
    end
    if tbl_10_upvr.RobloxWriteCooldown < os.clock() - var46.LastWrite and #Queue == 0 then
        var46.LastWrite = os.clock()
        return arg1()
    end
    table.insert(Queue, arg1)
    while true do
        if tbl_10_upvr.RobloxWriteCooldown < os.clock() - var46.LastWrite and Queue[1] == arg1 then
            table.remove(Queue, 1)
            var46.LastWrite = os.clock()
            return arg1()
        end
        task.wait()
    end
end
local function _(arg1, arg2) -- Line 601, Named "IsCustomWriteQueueEmptyFor"
    --[[ Upvalues[1]:
        [1]: tbl_6_upvr (readonly)
    ]]
    local var48 = tbl_6_upvr[arg1]
    if var48 ~= nil then
        local var49 = var48[arg2]
        local var50 = true
        if var49 ~= nil then
            if #var49.Queue ~= 0 then
                var50 = false
            else
                var50 = true
            end
        end
        return var50
    end
    return true
end
local function _() -- Line 610, Named "WaitForLiveAccessCheck"
    --[[ Upvalues[1]:
        [1]: var27_upvw (read and write)
    ]]
    while var27_upvw == true do
        task.wait()
    end
end
local function _(arg1) -- Line 616, Named "WaitForPendingProfileStore"
    while arg1._is_pending == true do
        task.wait()
    end
end
local function RegisterIssue_upvr(arg1, arg2, arg3, arg4) -- Line 622, Named "RegisterIssue"
    --[[ Upvalues[2]:
        [1]: _issue_queue_upvr (readonly)
        [2]: module_4_upvr (readonly)
    ]]
    local var51
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var51 = string.format("Scope:\"%s\";", arg3)
        return var51
    end
    if arg3 == nil or not INLINED_2() then
        var51 = ""
    end
    warn("[ProfileService]: DataStore API error "..string.format("[Store:\"%s\";%sKey:\"%s\"]", arg2, var51, arg4).." - \""..tostring(arg1)..'"')
    table.insert(_issue_queue_upvr, os.clock())
    module_4_upvr.IssueSignal:Fire(tostring(arg1), arg2, arg4)
end
local function _(arg1, arg2, arg3) -- Line 628, Named "RegisterCorruption"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var52
    local function INLINED_3() -- Internal function, doesn't exist in bytecode
        var52 = string.format("Scope:\"%s\";", arg2)
        return var52
    end
    if arg2 == nil or not INLINED_3() then
        var52 = ""
    end
    warn("[ProfileService]: Resolved profile corruption "..string.format("[Store:\"%s\";%sKey:\"%s\"]", arg1, var52, arg3))
    module_4_upvr.CorruptionSignal:Fire(arg1, arg3)
end
local function NewMockDataStoreKeyInfo_upvr(arg1) -- Line 633, Named "NewMockDataStoreKeyInfo"
    --[[ Upvalues[1]:
        [1]: DeepCopyTable_upvr (readonly)
    ]]
    local tostring_result1 = tostring(arg1.VersionId or 0)
    local MetaData_upvr = arg1.MetaData
    if not MetaData_upvr then
        MetaData_upvr = {}
    end
    local UserIds_upvr = arg1.UserIds
    if not UserIds_upvr then
        UserIds_upvr = {}
    end
    return {
        CreatedTime = arg1.CreatedTime;
        UpdatedTime = arg1.UpdatedTime;
        Version = string.rep('0', 16)..'.'..string.rep('0', 10 - string.len(tostring_result1))..tostring_result1..'.'..string.rep('0', 16)..'.'.."01";
        GetMetadata = function() -- Line 646, Named "GetMetadata"
            --[[ Upvalues[2]:
                [1]: DeepCopyTable_upvr (copied, readonly)
                [2]: MetaData_upvr (readonly)
            ]]
            return DeepCopyTable_upvr(MetaData_upvr)
        end;
        GetUserIds = function() -- Line 650, Named "GetUserIds"
            --[[ Upvalues[2]:
                [1]: DeepCopyTable_upvr (copied, readonly)
                [2]: UserIds_upvr (readonly)
            ]]
            return DeepCopyTable_upvr(UserIds_upvr)
        end;
    }
end
local function MockUpdateAsync_upvr(arg1, arg2, arg3, arg4, arg5) -- Line 657, Named "MockUpdateAsync"
    --[[ Upvalues[2]:
        [1]: NewMockDataStoreKeyInfo_upvr (readonly)
        [2]: DeepCopyTable_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var66 = arg1[arg2]
    if var66 == nil then
        var66 = {}
        arg1[arg2] = var66
    end
    local floored = math.floor(os.time() * 1000)
    local var68 = var66[arg3]
    local var69 = false
    if var68 == nil then
        var69 = true
        if arg5 ~= true then
            var68 = {
                Data = nil;
                CreatedTime = floored;
                UpdatedTime = floored;
                VersionId = 0;
                UserIds = {};
                MetaData = {};
            }
            var66[arg3] = var68
        end
    end
    if var69 ~= false or not NewMockDataStoreKeyInfo_upvr(var68) then
    end
    if var68 then
    end
    local arg4_result1, arg4_result2_2, arg4_result3_2 = arg4(var68.Data, nil)
    if arg4_result1 == nil then
        do
            return nil
        end
        local var74
    end
    if var68 ~= nil and arg5 ~= true then
        var68.Data = arg4_result1
        var74 = arg4_result2_2
        if not var74 then
            var74 = {}
        end
        var68.UserIds = DeepCopyTable_upvr(var74)
        if not arg4_result3_2 then
        end
        var68.MetaData = DeepCopyTable_upvr({})
        var68.VersionId += 1
        var68.UpdatedTime = floored
    end
    if var68 == nil or not NewMockDataStoreKeyInfo_upvr(var68) then
    end
    return DeepCopyTable_upvr(arg4_result1), nil
end
local function _(arg1) -- Line 705, Named "IsThisSession"
    --[[ Upvalues[2]:
        [1]: PlaceId_upvr (readonly)
        [2]: JobId_upvr (readonly)
    ]]
    local var75 = false
    if arg1[1] == PlaceId_upvr then
        if arg1[2] ~= JobId_upvr then
            var75 = false
        else
            var75 = true
        end
    end
    return var75
end
local function StandardProfileUpdateAsyncDataStore_upvr(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 716, Named "StandardProfileUpdateAsyncDataStore"
    --[[ Upvalues[7]:
        [1]: MockUpdateAsync_upvr (readonly)
        [2]: _user_mock_data_store_upvr (readonly)
        [3]: var28_upvw (read and write)
        [4]: _mock_data_store_upvr (readonly)
        [5]: CustomWriteQueueAsync_upvr (readonly)
        [6]: module_4_upvr (readonly)
        [7]: RegisterIssue_upvr (readonly)
    ]]
    local var109_upvw
    local var110_upvw
    local pcall_result1_4, pcall_result2_6 = pcall(function() -- Line 718
        --[[ Upvalues[13]:
            [1]: arg3 (readonly)
            [2]: arg4 (readonly)
            [3]: var109_upvw (read and write)
            [4]: var110_upvw (read and write)
            [5]: MockUpdateAsync_upvr (copied, readonly)
            [6]: _user_mock_data_store_upvr (copied, readonly)
            [7]: arg1 (readonly)
            [8]: arg2 (readonly)
            [9]: arg5 (readonly)
            [10]: var28_upvw (copied, read and write)
            [11]: _mock_data_store_upvr (copied, readonly)
            [12]: CustomWriteQueueAsync_upvr (copied, readonly)
            [13]: arg6 (readonly)
        ]]
        local function var112_upvr(arg1_3) -- Line 719
            --[[ Upvalues[1]:
                [1]: arg3 (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local _ = {0, {}}
            local var114
            if arg1_3 == nil then
                var114 = true
            elseif type(arg1_3) ~= "table" then
                var114 = true
            end
            if type(arg1_3) == "table" then
                if type(arg1_3.Data) == "table" and type(arg1_3.MetaData) == "table" and type(arg1_3.GlobalUpdates) == "table" then
                    arg1_3.WasCorrupted = false
                    if arg3.ExistingProfileHandle ~= nil then
                        arg3.ExistingProfileHandle(arg1_3)
                        -- KONSTANTWARNING: GOTO [95] #65
                    end
                elseif arg1_3.Data == nil and arg1_3.MetaData == nil and type(arg1_3.GlobalUpdates) == "table" then
                    arg1_3.WasCorrupted = false
                    var114 = true
                else
                    var114 = true
                end
            end
            if var114 == true then
                local var116 = {
                    GlobalUpdates = arg1_3.GlobalUpdates or arg1_3.GlobalUpdates;
                }
                if arg3.MissingProfileHandle ~= nil then
                    arg3.MissingProfileHandle(var116)
                end
            end
            if arg3.EditProfile ~= nil then
                arg3.EditProfile(var116)
            end
            if true == true then
                var116.WasCorrupted = true
            end
            return var116, var116.UserIds, var116.RobloxMetaData
        end
        if arg4 == true then
            local MockUpdateAsync_upvr_result1_2, MockUpdateAsync_upvr_result2 = MockUpdateAsync_upvr(_user_mock_data_store_upvr, arg1._profile_store_lookup, arg2, var112_upvr, arg5)
            var109_upvw = MockUpdateAsync_upvr_result1_2
            var110_upvw = MockUpdateAsync_upvr_result2
            task.wait()
        else
            if var28_upvw == true then
                local MockUpdateAsync_upvr_result1_4, MockUpdateAsync_upvr_result2_2 = MockUpdateAsync_upvr(_mock_data_store_upvr, arg1._profile_store_lookup, arg2, var112_upvr, arg5)
                var109_upvw = MockUpdateAsync_upvr_result1_4
                var110_upvw = MockUpdateAsync_upvr_result2_2
                task.wait()
                return
            end
            local CustomWriteQueueAsync_upvr_result1, CustomWriteQueueAsync_result2 = CustomWriteQueueAsync_upvr(function() -- Line 789
                --[[ Upvalues[5]:
                    [1]: arg5 (copied, readonly)
                    [2]: arg6 (copied, readonly)
                    [3]: arg1 (copied, readonly)
                    [4]: arg2 (copied, readonly)
                    [5]: var112_upvr (readonly)
                ]]
                -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [3] 3. Error Block 13 start (CF ANALYSIS FAILED)
                if arg6 ~= nil then
                    local var123_upvw
                    local var124_upvw
                    local pcall_result1_3, pcall_result2_5 = pcall(function() -- Line 793
                        --[[ Upvalues[5]:
                            [1]: var123_upvw (read and write)
                            [2]: var124_upvw (read and write)
                            [3]: arg1 (copied, readonly)
                            [4]: arg2 (copied, readonly)
                            [5]: arg6 (copied, readonly)
                        ]]
                        local any_GetVersionAsync_result1, any_GetVersionAsync_result2 = arg1._global_data_store:GetVersionAsync(arg2, arg6)
                        var123_upvw = any_GetVersionAsync_result1
                        var124_upvw = any_GetVersionAsync_result2
                    end)
                    if pcall_result1_3 == false and type(pcall_result2_5) == "string" and string.find(pcall_result2_5, "not valid") ~= nil then
                        warn("[ProfileService]: Passed version argument is not valid; Traceback:\n"..debug.traceback())
                        -- KONSTANTWARNING: GOTO [51] #40
                    end
                else
                    local any_GetAsync_result1_2, any_GetAsync_result2 = arg1._global_data_store:GetAsync(arg2)
                    var123_upvw = any_GetAsync_result1_2
                    var124_upvw = any_GetAsync_result2
                end
                -- KONSTANTERROR: [3] 3. Error Block 13 end (CF ANALYSIS FAILED)
            end, arg1._profile_store_lookup, arg2)
            var109_upvw = CustomWriteQueueAsync_upvr_result1
            var110_upvw = CustomWriteQueueAsync_result2
        end
    end)
    local var135
    if pcall_result1_4 == true then
        var135 = var109_upvw
        if type(var135) == "table" then
            local var136
            if var109_upvw.WasCorrupted == true and arg5 ~= true then
                local _profile_store_name_3 = arg1._profile_store_name
                var135 = arg1._profile_store_scope
                local function INLINED_6() -- Internal function, doesn't exist in bytecode
                    var136 = string.format("Scope:\"%s\";", var135)
                    return var136
                end
                if var135 == nil or not INLINED_6() then
                    var136 = ""
                end
                warn("[ProfileService]: Resolved profile corruption "..string.format("[Store:\"%s\";%sKey:\"%s\"]", _profile_store_name_3, var136, arg2))
                module_4_upvr.CorruptionSignal:Fire(_profile_store_name_3, arg2)
            end
            return var109_upvw, var110_upvw
        end
    end
    local function INLINED_7() -- Internal function, doesn't exist in bytecode
        var135 = pcall_result2_6
        return var135
    end
    if pcall_result2_6 == nil or not INLINED_7() then
        var135 = "Undefined error"
    end
    RegisterIssue_upvr(var135, arg1._profile_store_name, arg1._profile_store_scope, arg2)
    return nil
end
local function _(arg1) -- Line 836, Named "RemoveProfileFromAutoSave"
    --[[ Upvalues[2]:
        [1]: _auto_save_list_upvr (readonly)
        [2]: var23_upvw (read and write)
    ]]
    local table_find_result1_6 = table.find(_auto_save_list_upvr, arg1)
    if table_find_result1_6 ~= nil then
        table.remove(_auto_save_list_upvr, table_find_result1_6)
        if table_find_result1_6 < var23_upvw then
            var23_upvw -= 1
        end
        if _auto_save_list_upvr[var23_upvw] == nil then
            var23_upvw = 1
        end
    end
end
local function _(arg1) -- Line 849, Named "AddProfileToAutoSave"
    --[[ Upvalues[3]:
        [1]: _auto_save_list_upvr (readonly)
        [2]: var23_upvw (read and write)
        [3]: os_clock_result1_upvw (read and write)
    ]]
    table.insert(_auto_save_list_upvr, var23_upvw, arg1)
    if 1 < #_auto_save_list_upvr then
        var23_upvw += 1
    elseif #_auto_save_list_upvr == 1 then
        os_clock_result1_upvw = os.clock()
    end
end
local function ReleaseProfileInternally_upvr(arg1) -- Line 860, Named "ReleaseProfileInternally"
    --[[ Upvalues[3]:
        [1]: _active_profile_stores_upvr (readonly)
        [2]: _auto_save_list_upvr (readonly)
        [3]: var23_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local _profile_store_2 = arg1._profile_store
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [6] 4. Error Block 29 start (CF ANALYSIS FAILED)
    local _mock_loaded_profiles_2 = _profile_store_2._mock_loaded_profiles
    if not _mock_loaded_profiles_2 then
        -- KONSTANTERROR: [9] 6. Error Block 3 start (CF ANALYSIS FAILED)
        _mock_loaded_profiles_2 = _profile_store_2._loaded_profiles
        -- KONSTANTERROR: [9] 6. Error Block 3 end (CF ANALYSIS FAILED)
    end
    _mock_loaded_profiles_2[arg1._profile_key] = nil
    if next(_profile_store_2._loaded_profiles) == nil then
        if next(_profile_store_2._mock_loaded_profiles) == nil then
            local table_find_result1_4 = table.find(_active_profile_stores_upvr, _profile_store_2)
            if table_find_result1_4 ~= nil then
                table.remove(_active_profile_stores_upvr, table_find_result1_4)
            end
        end
    end
    local table_find_result1 = table.find(_auto_save_list_upvr, arg1)
    if table_find_result1 ~= nil then
        table.remove(_auto_save_list_upvr, table_find_result1)
        if table_find_result1 < var23_upvw then
            var23_upvw -= 1
        end
        if _auto_save_list_upvr[var23_upvw] == nil then
            var23_upvw = 1
        end
    end
    table_find_result1 = nil
    local var150 = table_find_result1
    local var151
    local ActiveSession = arg1.MetaData.ActiveSession
    if ActiveSession ~= nil then
        var150 = ActiveSession[1]
        var151 = ActiveSession[2]
    end
    arg1._release_listeners:Fire(var150, var151)
    -- KONSTANTERROR: [6] 4. Error Block 29 end (CF ANALYSIS FAILED)
end
local function CheckForNewGlobalUpdates_upvr(arg1, arg2, arg3) -- Line 885, Named "CheckForNewGlobalUpdates"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local _ = arg1.GlobalUpdates
    local ipairs_result1, ipairs_result2, ipairs_result3 = ipairs(arg3[2])
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [92] 68. Error Block 26 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [92] 68. Error Block 26 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [11] 8. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [11] 8. Error Block 2 end (CF ANALYSIS FAILED)
end
local function SaveProfileAsync_upvr(arg1, arg2, arg3) -- Line 950, Named "SaveProfileAsync"
    --[[ Upvalues[9]:
        [1]: module_4_upvr (readonly)
        [2]: ReleaseProfileInternally_upvr (readonly)
        [3]: var26_upvw (read and write)
        [4]: StandardProfileUpdateAsyncDataStore_upvr (readonly)
        [5]: PlaceId_upvr (readonly)
        [6]: JobId_upvr (readonly)
        [7]: tbl_10_upvr (readonly)
        [8]: CheckForNewGlobalUpdates_upvr (readonly)
        [9]: CustomWriteQueueMarkForCleanup_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 57 start (CF ANALYSIS FAILED)
    local var157
    if type(arg1.Data) ~= "table" then
        local _profile_store_name_2 = arg1._profile_store._profile_store_name
        local _profile_store_scope = arg1._profile_store._profile_store_scope
        local _profile_key = arg1._profile_key
        local function INLINED_8() -- Internal function, doesn't exist in bytecode
            var157 = string.format("Scope:\"%s\";", _profile_store_scope)
            return var157
        end
        if _profile_store_scope == nil or not INLINED_8() then
            var157 = ""
        end
        warn("[ProfileService]: Resolved profile corruption "..string.format("[Store:\"%s\";%sKey:\"%s\"]", _profile_store_name_2, var157, _profile_key))
        module_4_upvr.CorruptionSignal:Fire(_profile_store_name_2, _profile_key)
        error("[ProfileService]: PROFILE DATA CORRUPTED DURING RUNTIME! Profile: "..arg1:Identify())
    end
    if arg2 == true and arg3 ~= true then
        ReleaseProfileInternally_upvr(arg1)
    end
    var26_upvw += 1
    -- KONSTANTERROR: [0] 1. Error Block 57 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [226] 155. Error Block 40 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [226] 155. Error Block 40 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [69] 50. Error Block 11 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [69] 50. Error Block 11 end (CF ANALYSIS FAILED)
end
local tbl_4_upvr = {}
tbl_4_upvr.__index = tbl_4_upvr
function tbl_4_upvr.GetActiveUpdates(arg1) -- Line 1129
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local ipairs_result1_7, ipairs_result2_6, ipairs_result3_3 = ipairs(arg1._updates_latest[2])
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 30. Error Block 10 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 30. Error Block 10 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [44.7]
    -- KONSTANTERROR: [9] 7. Error Block 2 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.GetLockedUpdates(arg1) -- Line 1150
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local ipairs_result1_5, ipairs_result2_5, ipairs_result3_2 = ipairs(arg1._updates_latest[2])
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 30. Error Block 10 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 30. Error Block 10 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [44.7]
    -- KONSTANTERROR: [9] 7. Error Block 2 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.ListenToNewActiveUpdate(arg1, arg2) -- Line 1172
    if type(arg2) ~= "function" then
        error("[ProfileService]: Only a function can be set as listener in GlobalUpdates:ListenToNewActiveUpdate()")
    end
    if arg1._update_handler_mode == true then
        error("[ProfileService]: Can't listen to new global updates in ProfileStore:GlobalUpdateProfileAsync()")
    elseif arg1._new_active_update_listeners == nil then
        error("[ProfileService]: Can't listen to new global updates in view mode")
    elseif arg1._profile:IsActive() == false then
        local module_2 = {}
        local function Disconnect() -- Line 1183
        end
        module_2.Disconnect = Disconnect
        return module_2
    end
    return arg1._new_active_update_listeners:Connect(arg2)
end
function tbl_4_upvr.ListenToNewLockedUpdate(arg1, arg2) -- Line 1190
    -- KONSTANTERROR: [0] 1. Error Block 18 start (CF ANALYSIS FAILED)
    if type(arg2) ~= "function" then
        error("[ProfileService]: Only a function can be set as listener in GlobalUpdates:ListenToNewLockedUpdate()")
    end
    if arg1._update_handler_mode == true then
        error("[ProfileService]: Can't listen to new global updates in ProfileStore:GlobalUpdateProfileAsync()")
        -- KONSTANTWARNING: GOTO [41] #29
    end
    -- KONSTANTERROR: [0] 1. Error Block 18 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 16. Error Block 15 start (CF ANALYSIS FAILED)
    if arg1._new_locked_update_listeners == nil then
        error("[ProfileService]: Can't listen to new global updates in view mode")
    elseif arg1._profile:IsActive() == false then
        local module = {}
        local function Disconnect() -- Line 1201
        end
        module.Disconnect = Disconnect
        return module
    end
    -- KONSTANTERROR: [22] 16. Error Block 15 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.LockActiveUpdate(arg1, arg2) -- Line 1208
    -- KONSTANTERROR: [0] 1. Error Block 33 start (CF ANALYSIS FAILED)
    if type(arg2) ~= "number" then
        error("[ProfileService]: Invalid update_id")
    end
    if arg1._update_handler_mode == true then
        error("[ProfileService]: Can't lock active global updates in ProfileStore:GlobalUpdateProfileAsync()")
        -- KONSTANTWARNING: GOTO [40] #28
    end
    -- KONSTANTERROR: [0] 1. Error Block 33 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 16. Error Block 30 start (CF ANALYSIS FAILED)
    if arg1._pending_update_lock == nil then
        error("[ProfileService]: Can't lock active global updates in view mode")
    elseif arg1._profile:IsActive() == false then
        error("[ProfileService]: PROFILE EXPIRED - Can't lock active global updates")
    end
    -- KONSTANTERROR: [22] 16. Error Block 30 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.ClearLockedUpdate(arg1, arg2) -- Line 1244
    -- KONSTANTERROR: [0] 1. Error Block 33 start (CF ANALYSIS FAILED)
    if type(arg2) ~= "number" then
        error("[ProfileService]: Invalid update_id")
    end
    if arg1._update_handler_mode == true then
        error("[ProfileService]: Can't clear locked global updates in ProfileStore:GlobalUpdateProfileAsync()")
        -- KONSTANTWARNING: GOTO [40] #28
    end
    -- KONSTANTERROR: [0] 1. Error Block 33 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 16. Error Block 30 start (CF ANALYSIS FAILED)
    if arg1._pending_update_clear == nil then
        error("[ProfileService]: Can't clear locked global updates in view mode")
    elseif arg1._profile:IsActive() == false then
        error("[ProfileService]: PROFILE EXPIRED - Can't clear locked global updates")
    end
    -- KONSTANTERROR: [22] 16. Error Block 30 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.AddActiveUpdate(arg1, arg2) -- Line 1281
    if type(arg2) ~= "table" then
        error("[ProfileService]: Invalid update_data")
    end
    if arg1._new_active_update_listeners ~= nil then
        error("[ProfileService]: Can't add active global updates in loaded Profile; Use ProfileStore:GlobalUpdateProfileAsync()")
    elseif arg1._update_handler_mode ~= true then
        error("[ProfileService]: Can't add active global updates in view mode; Use ProfileStore:GlobalUpdateProfileAsync()")
    end
    local _updates_latest = arg1._updates_latest
    local var171 = _updates_latest[1] + 1
    _updates_latest[1] = var171
    local tbl_21 = {var171, 1, false}
    tbl_21[4] = arg2
    table.insert(_updates_latest[2], tbl_21)
end
function tbl_4_upvr.ChangeActiveUpdate(arg1, arg2, arg3) -- Line 1298
    -- KONSTANTERROR: [0] 1. Error Block 29 start (CF ANALYSIS FAILED)
    if type(arg2) ~= "number" then
        error("[ProfileService]: Invalid update_id")
    end
    if type(arg3) ~= "table" then
        error("[ProfileService]: Invalid update_data")
    end
    if arg1._new_active_update_listeners ~= nil then
        error("[ProfileService]: Can't change active global updates in loaded Profile; Use ProfileStore:GlobalUpdateProfileAsync()")
    elseif arg1._update_handler_mode ~= true then
        error("[ProfileService]: Can't change active global updates in view mode; Use ProfileStore:GlobalUpdateProfileAsync()")
    end
    local ipairs_result1_2, ipairs_result2_4, ipairs_result3_7 = ipairs(arg1._updates_latest[2])
    -- KONSTANTERROR: [0] 1. Error Block 29 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [52] 38. Error Block 13 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [52] 38. Error Block 13 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [47] 34. Error Block 11 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [52.2147483650]
    -- KONSTANTERROR: [47] 34. Error Block 11 end (CF ANALYSIS FAILED)
end
function tbl_4_upvr.ClearActiveUpdate(arg1, arg2) -- Line 1330
    -- KONSTANTERROR: [0] 1. Error Block 26 start (CF ANALYSIS FAILED)
    if type(arg2) ~= "number" then
        error("[ProfileService]: Invalid update_id argument")
    end
    if arg1._new_active_update_listeners ~= nil then
        error("[ProfileService]: Can't clear active global updates in loaded Profile; Use ProfileStore:GlobalUpdateProfileAsync()")
    elseif arg1._update_handler_mode ~= true then
        error("[ProfileService]: Can't clear active global updates in view mode; Use ProfileStore:GlobalUpdateProfileAsync()")
    end
    local ipairs_result1_6, ipairs_result2_3, ipairs_result3_6 = ipairs(arg1._updates_latest[2])
    -- KONSTANTERROR: [0] 1. Error Block 26 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [43] 32. Error Block 11 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [43] 32. Error Block 11 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [37] 27. Error Block 9 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [43.2147483650]
    -- KONSTANTERROR: [37] 27. Error Block 9 end (CF ANALYSIS FAILED)
end
local tbl_18_upvr = {}
tbl_18_upvr.__index = tbl_18_upvr
function tbl_18_upvr.IsActive(arg1) -- Line 1385
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var180
    local function INLINED_9() -- Internal function, doesn't exist in bytecode
        var180 = arg1._profile_store._mock_loaded_profiles
        return var180
    end
    if arg1._is_user_mock ~= true or not INLINED_9() then
        var180 = arg1._profile_store._loaded_profiles
    end
    if var180[arg1._profile_key] ~= arg1 then
    else
    end
    return true
end
function tbl_18_upvr.GetMetaTag(arg1, arg2) -- Line 1390
    if arg1.MetaData == nil then
        return nil
    end
    return arg1.MetaData.MetaTags[arg2]
end
function tbl_18_upvr.SetMetaTag(arg1, arg2, arg3) -- Line 1399
    if type(arg2) ~= "string" then
        error("[ProfileService]: tag_name must be a string")
    elseif string.len(arg2) == 0 then
        error("[ProfileService]: Invalid tag_name")
    end
    arg1.MetaData.MetaTags[arg2] = arg3
end
function tbl_18_upvr.Reconcile(arg1) -- Line 1408
    --[[ Upvalues[1]:
        [1]: ReconcileTable_upvr (readonly)
    ]]
    ReconcileTable_upvr(arg1.Data, arg1._profile_store._profile_template)
end
function tbl_18_upvr.ListenToRelease(arg1, arg2) -- Line 1412
    if type(arg2) ~= "function" then
        error("[ProfileService]: Only a function can be set as listener in Profile:ListenToRelease()")
    end
    if arg1._view_mode == true then
        local module_10 = {}
        local function Disconnect() -- Line 1417
        end
        module_10.Disconnect = Disconnect
        return module_10
    end
    if arg1:IsActive() == false then
        local var182
        Disconnect = nil
        local var183 = Disconnect
        local ActiveSession_3 = arg1.MetaData.ActiveSession
        if ActiveSession_3 ~= nil then
            var182 = ActiveSession_3[1]
            var183 = ActiveSession_3[2]
        end
        arg2(var182, var183)
        local module_9 = {}
        local function Disconnect() -- Line 1429
        end
        module_9.Disconnect = Disconnect
        return module_9
    end
    return arg1._release_listeners:Connect(arg2)
end
function tbl_18_upvr.Save(arg1) -- Line 1435
    --[[ Upvalues[5]:
        [1]: tbl_6_upvr (readonly)
        [2]: _auto_save_list_upvr (readonly)
        [3]: var23_upvw (read and write)
        [4]: os_clock_result1_upvw (read and write)
        [5]: SaveProfileAsync_upvr (readonly)
    ]]
    local var186
    if var186 == true then
        var186 = error
        var186("[ProfileService]: Can't save Profile in view mode - Should you be calling :OverwriteAsync() instead?")
    end
    var186 = arg1:IsActive()
    if var186 == false then
        var186 = warn
        var186("[ProfileService]: Attempted saving an inactive profile "..arg1:Identify().."; Traceback:\n"..debug.traceback())
    else
        local var187 = tbl_6_upvr[arg1._profile_store._profile_store_lookup]
        if var187 ~= nil then
            local var188 = var187[arg1._profile_key]
            var186 = true
            if var188 ~= nil then
                if #var188.Queue ~= 0 then
                    var186 = false
                else
                    var186 = true
                end
                -- KONSTANTWARNING: GOTO [50] #36
            end
        else
            var186 = true
        end
        if var186 == true then
            var186 = table.find(_auto_save_list_upvr, arg1)
            if var186 ~= nil then
                table.remove(_auto_save_list_upvr, var186)
                if var186 < var23_upvw then
                    var23_upvw -= 1
                end
                if _auto_save_list_upvr[var23_upvw] == nil then
                    var23_upvw = 1
                end
            end
            var186 = table.insert
            var186(_auto_save_list_upvr, var23_upvw, arg1)
            var186 = #_auto_save_list_upvr
            if 1 < var186 then
                var186 = var23_upvw + 1
                var23_upvw = var186
            else
                var186 = #_auto_save_list_upvr
                if var186 == 1 then
                    var186 = os.clock()
                    os_clock_result1_upvw = var186
                end
            end
            var186 = task.spawn
            var186(SaveProfileAsync_upvr, arg1)
        end
    end
end
function tbl_18_upvr.Release(arg1) -- Line 1455
    --[[ Upvalues[1]:
        [1]: SaveProfileAsync_upvr (readonly)
    ]]
    if arg1._view_mode == true then
    elseif arg1:IsActive() == true then
        task.spawn(SaveProfileAsync_upvr, arg1, true)
    end
end
function tbl_18_upvr.ListenToHopReady(arg1, arg2) -- Line 1464
    if type(arg2) ~= "function" then
        error("[ProfileService]: Only a function can be set as listener in Profile:ListenToHopReady()")
    end
    if arg1._view_mode == true then
        local module_8 = {}
        local function Disconnect() -- Line 1469
        end
        module_8.Disconnect = Disconnect
        return module_8
    end
    if arg1._hop_ready == true then
        task.spawn(arg2)
        return {
            Disconnect = function() -- Line 1473, Named "Disconnect"
            end;
        }
    end
    return arg1._hop_ready_listeners:Connect(arg2)
end
function tbl_18_upvr.AddUserId(arg1, arg2) -- Line 1479
    --[[ Upvalues[1]:
        [1]: var28_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 17 start (CF ANALYSIS FAILED)
    if arg2 % 1 ~= 0 then
        -- KONSTANTERROR: [10] 8. Error Block 15 start (CF ANALYSIS FAILED)
        warn("[ProfileService]: Invalid UserId argument for :AddUserId() ("..tostring(arg2).."); Traceback:\n"..debug.traceback())
        do
            return
        end
        -- KONSTANTERROR: [10] 8. Error Block 15 end (CF ANALYSIS FAILED)
    end
    if arg2 < 0 and arg1._is_user_mock ~= true and var28_upvw ~= true then
    else
        if table.find(arg1.UserIds, arg2) == nil then
            table.insert(arg1.UserIds, arg2)
        end
        -- KONSTANTERROR: [7] 6. Error Block 17 end (CF ANALYSIS FAILED)
    end
end
function tbl_18_upvr.RemoveUserId(arg1, arg2) -- Line 1497
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 12 start (CF ANALYSIS FAILED)
    if arg2 % 1 ~= 0 then
        -- KONSTANTERROR: [10] 8. Error Block 10 start (CF ANALYSIS FAILED)
        warn("[ProfileService]: Invalid UserId argument for :RemoveUserId() ("..tostring(arg2).."); Traceback:\n"..debug.traceback())
        do
            return
        end
        -- KONSTANTERROR: [10] 8. Error Block 10 end (CF ANALYSIS FAILED)
    end
    local table_find_result1_2 = table.find(arg1.UserIds, arg2)
    if table_find_result1_2 ~= nil then
        table.remove(arg1.UserIds, table_find_result1_2)
    end
    -- KONSTANTERROR: [7] 6. Error Block 12 end (CF ANALYSIS FAILED)
end
function tbl_18_upvr.Identify(arg1) -- Line 1513
    --[[ Upvalues[1]:
        [1]: IdentifyProfile_upvr (readonly)
    ]]
    return IdentifyProfile_upvr(arg1._profile_store._profile_store_name, arg1._profile_store._profile_store_scope, arg1._profile_key)
end
function tbl_18_upvr.ClearGlobalUpdates(arg1) -- Line 1521
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    if arg1._view_mode ~= true then
        error("[ProfileService]: :ClearGlobalUpdates() can only be used in view mode")
    end
    local tbl_11 = {
        _updates_latest = {0, {}};
    }
    tbl_11._profile = arg1
    setmetatable(tbl_11, tbl_4_upvr)
    arg1.GlobalUpdates = tbl_11
end
function tbl_18_upvr.OverwriteAsync(arg1) -- Line 1537
    --[[ Upvalues[1]:
        [1]: SaveProfileAsync_upvr (readonly)
    ]]
    if arg1._view_mode ~= true then
        error("[ProfileService]: :OverwriteAsync() can only be used in view mode")
    end
    SaveProfileAsync_upvr(arg1, nil, true)
end
local tbl_12_upvr = {}
tbl_12_upvr.__index = tbl_12_upvr
function tbl_12_upvr._MoveQueue(arg1) -- Line 1567
    repeat
        if 0 >= #arg1._query_queue then break end
        task.spawn(table.remove(arg1._query_queue, 1))
    until arg1._is_query_yielded == true
end
function tbl_12_upvr.NextAsync(arg1, arg2) -- Line 1577
    -- KONSTANTERROR: [0] 1. Error Block 20 start (CF ANALYSIS FAILED)
    if arg1._profile_store == nil then
        return nil
    end
    local var195_upvw
    local var196_upvw = false
    local function query_job() -- Line 1586
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: var196_upvw (read and write)
            [3]: var195_upvw (read and write)
        ]]
        if arg1._query_failure == true then
            var196_upvw = true
        else
            if arg1._query_pages == nil then
                arg1._is_query_yielded = true
                task.spawn(function() -- Line 1598
                    --[[ Upvalues[3]:
                        [1]: var195_upvw (copied, read and write)
                        [2]: arg1 (copied, readonly)
                        [3]: var196_upvw (copied, read and write)
                    ]]
                    var195_upvw = arg1:NextAsync(true)
                    var196_upvw = true
                end)
                local pcall_result1_5, pcall_result2_2 = pcall(function() -- Line 1603
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1._query_pages = arg1._profile_store._global_data_store:ListVersionsAsync(arg1._profile_key, arg1._sort_direction, arg1._min_date, arg1._max_date)
                    arg1._query_index = 0
                end)
                if pcall_result1_5 == false or arg1._query_pages == nil then
                    warn("[ProfileService]: Version query fail - "..tostring(pcall_result2_2))
                    arg1._query_failure = true
                end
                arg1._is_query_yielded = false
                arg1:_MoveQueue()
                return
            end
            local var201 = arg1._query_pages:GetCurrentPage()[arg1._query_index + 1]
            if arg1._query_pages.IsFinished == true and var201 == nil then
                var196_upvw = true
                return
            end
            if var201 == nil then
                arg1._is_query_yielded = true
                task.spawn(function() -- Line 1640
                    --[[ Upvalues[3]:
                        [1]: var195_upvw (copied, read and write)
                        [2]: arg1 (copied, readonly)
                        [3]: var196_upvw (copied, read and write)
                    ]]
                    var195_upvw = arg1:NextAsync(true)
                    var196_upvw = true
                end)
                if pcall(function() -- Line 1645
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1._query_pages:AdvanceToNextPageAsync()
                    arg1._query_index = 0
                end) == false or #arg1._query_pages:GetCurrentPage() == 0 then
                    arg1._query_failure = true
                end
                arg1._is_query_yielded = false
                arg1:_MoveQueue()
                return
            end
            local var204 = arg1
            var204._query_index += 1
            var195_upvw = arg1._profile_store:ViewProfileAsync(arg1._profile_key, var201.Version)
            var196_upvw = true
        end
    end
    if arg1._is_query_yielded == false then
        query_job()
        -- KONSTANTWARNING: GOTO [39] #29
    end
    -- KONSTANTERROR: [0] 1. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 16. Error Block 24 start (CF ANALYSIS FAILED)
    if arg2 == true then
        table.insert(arg1._query_queue, 1, query_job)
    else
        table.insert(arg1._query_queue, query_job)
    end
    while var196_upvw == false do
        task.wait()
    end
    do
        return var195_upvw
    end
    -- KONSTANTERROR: [19] 16. Error Block 24 end (CF ANALYSIS FAILED)
end
local tbl_15_upvr = {}
tbl_15_upvr.__index = tbl_15_upvr
local const_number_2_upvw = 0
local function LoadProfileAsync(arg1, arg2, arg3, arg4) -- Line 1709
    --[[ Upvalues[17]:
        [1]: module_4_upvr (readonly)
        [2]: module_3_upvr (readonly)
        [3]: _active_profile_stores_upvr (readonly)
        [4]: const_number_upvw (read and write)
        [5]: const_number_2_upvw (read and write)
        [6]: StandardProfileUpdateAsyncDataStore_upvr (readonly)
        [7]: PlaceId_upvr (readonly)
        [8]: JobId_upvr (readonly)
        [9]: tbl_10_upvr (readonly)
        [10]: DeepCopyTable_upvr (readonly)
        [11]: var14_upvw (read and write)
        [12]: tbl_4_upvr (readonly)
        [13]: tbl_18_upvr (readonly)
        [14]: _auto_save_list_upvr (readonly)
        [15]: var23_upvw (read and write)
        [16]: os_clock_result1_upvw (read and write)
        [17]: SaveProfileAsync_upvr (readonly)
    ]]
    -- KONSTANTERROR: [593] 436. Error Block 123 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [593] 436. Error Block 123 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 209 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.4]
    if nil == nil then
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if nil ~= "string" then
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil == 0 then
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if nil ~= "function" and arg3 ~= "ForceLoad" and arg3 ~= "Steal" then
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if nil == true then
    end
    repeat
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    until nil ~= true
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.199675]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.5]
    if arg4 ~= nil then
        -- KONSTANTWARNING: GOTO [67] #48
    end
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.6]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.7]
    for _, _ in nil do
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.10]
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.11]
        if nil == nil then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
            if nil ~= true or not nil then
            end
            if nil ~= nil then
                -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.17]
                local function INLINED_11() -- Internal function, doesn't exist in bytecode
                    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [593.21]
                    return nil
                end
                if nil == nil or not INLINED_11() then
                end
            end
        end
    end
    if arg3 ~= "ForceLoad" then
        -- KONSTANTWARNING: GOTO [123] #88
    end
    if arg3 ~= "Steal" then
    else
    end
    -- KONSTANTERROR: [0] 1. Error Block 209 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [130] 94. Error Block 151 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    -- KONSTANTERROR: [130] 94. Error Block 151 end (CF ANALYSIS FAILED)
end
tbl_15_upvr.LoadProfileAsync = LoadProfileAsync
local function GlobalUpdateProfileAsync(arg1, arg2, arg3, arg4) -- Line 1968
    --[[ Upvalues[5]:
        [1]: module_4_upvr (readonly)
        [2]: StandardProfileUpdateAsyncDataStore_upvr (readonly)
        [3]: tbl_4_upvr (readonly)
        [4]: module_3_upvr (readonly)
        [5]: CustomWriteQueueMarkForCleanup_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 37 start (CF ANALYSIS FAILED)
    if string.len(arg2) == 0 then
        -- KONSTANTERROR: [14] 11. Error Block 27 start (CF ANALYSIS FAILED)
        error("[ProfileService]: Invalid profile_key")
        -- KONSTANTERROR: [14] 11. Error Block 27 end (CF ANALYSIS FAILED)
    end
    if type(arg3) ~= "function" then
        error("[ProfileService]: Invalid update_handler")
    end
    if module_4_upvr.ServiceLocked == true then
        return nil
    end
    while arg1._is_pending == true do
        task.wait()
    end
    while module_4_upvr.ServiceLocked == false do
        local tbl_8 = {
            ExistingProfileHandle = nil;
            MissingProfileHandle = nil;
        }
        local function EditProfile(arg1_4) -- Line 1990
            --[[ Upvalues[2]:
                [1]: tbl_4_upvr (copied, readonly)
                [2]: arg3 (readonly)
            ]]
            local tbl_5 = {
                _updates_latest = arg1_4.GlobalUpdates;
                _update_handler_mode = true;
            }
            setmetatable(tbl_5, tbl_4_upvr)
            arg3(tbl_5)
        end
        tbl_8.EditProfile = EditProfile
        if arg4 ~= module_3_upvr then
            EditProfile = false
        else
            EditProfile = true
        end
        local StandardProfileUpdateAsyncDataStore_upvr_result1_2 = StandardProfileUpdateAsyncDataStore_upvr(arg1, arg2, tbl_8, EditProfile)
        CustomWriteQueueMarkForCleanup_upvr(arg1._profile_store_lookup, arg2)
        if StandardProfileUpdateAsyncDataStore_upvr_result1_2 ~= nil then
            local module_7 = {
                _updates_latest = StandardProfileUpdateAsyncDataStore_upvr_result1_2.GlobalUpdates;
            }
            setmetatable(module_7, tbl_4_upvr)
            return module_7
        end
        task.wait()
    end
    do
        return nil
    end
    -- KONSTANTERROR: [7] 6. Error Block 37 end (CF ANALYSIS FAILED)
end
tbl_15_upvr.GlobalUpdateProfileAsync = GlobalUpdateProfileAsync
local function ViewProfileAsync(arg1, arg2, arg3, arg4) -- Line 2018
    --[[ Upvalues[9]:
        [1]: module_4_upvr (readonly)
        [2]: module_3_upvr (readonly)
        [3]: var28_upvw (read and write)
        [4]: StandardProfileUpdateAsyncDataStore_upvr (readonly)
        [5]: DeepCopyTable_upvr (readonly)
        [6]: CustomWriteQueueMarkForCleanup_upvr (readonly)
        [7]: tbl_4_upvr (readonly)
        [8]: var14_upvw (read and write)
        [9]: tbl_18_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 50 start (CF ANALYSIS FAILED)
    if string.len(arg2) == 0 then
        -- KONSTANTERROR: [14] 11. Error Block 38 start (CF ANALYSIS FAILED)
        error("[ProfileService]: Invalid profile_key")
        -- KONSTANTERROR: [14] 11. Error Block 38 end (CF ANALYSIS FAILED)
    end
    if module_4_upvr.ServiceLocked == true then
        return nil
    end
    while arg1._is_pending == true do
        task.wait()
    end
    if arg3 ~= nil and (arg4 == module_3_upvr or var28_upvw == true) then
        return nil
    end
    while module_4_upvr.ServiceLocked == false do
        local tbl_9 = {
            ExistingProfileHandle = nil;
        }
        local function MissingProfileHandle(arg1_5) -- Line 2040
            --[[ Upvalues[2]:
                [1]: DeepCopyTable_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            arg1_5.Data = DeepCopyTable_upvr(arg1._profile_template)
            arg1_5.MetaData = {
                ProfileCreateTime = os.time();
                SessionLoadCount = 0;
                ActiveSession = nil;
                ForceLoadSession = nil;
                MetaTags = {};
            }
        end
        tbl_9.MissingProfileHandle = MissingProfileHandle
        MissingProfileHandle = nil
        local var221 = MissingProfileHandle
        tbl_9.EditProfile = var221
        if arg4 ~= module_3_upvr then
            var221 = false
        else
            var221 = true
        end
        local StandardProfileUpdateAsyncDataStore_upvr_result1, StandardProfileUpdateAsyncDataStore_upvr_result2 = StandardProfileUpdateAsyncDataStore_upvr(arg1, arg2, tbl_9, var221, true, arg3)
        CustomWriteQueueMarkForCleanup_upvr(arg1._profile_store_lookup, arg2)
        if StandardProfileUpdateAsyncDataStore_upvr_result1 ~= nil then
            if StandardProfileUpdateAsyncDataStore_upvr_result2 == nil then
                return nil
            end
            local tbl_2 = {
                _updates_latest = StandardProfileUpdateAsyncDataStore_upvr_result1.GlobalUpdates;
                _profile = nil;
            }
            setmetatable(tbl_2, tbl_4_upvr)
            local module_5 = {
                Data = StandardProfileUpdateAsyncDataStore_upvr_result1.Data;
                MetaData = StandardProfileUpdateAsyncDataStore_upvr_result1.MetaData;
                MetaTagsUpdated = var14_upvw.NewScriptSignal();
            }
            local RobloxMetaData = StandardProfileUpdateAsyncDataStore_upvr_result1.RobloxMetaData
            if not RobloxMetaData then
                RobloxMetaData = {}
            end
            module_5.RobloxMetaData = RobloxMetaData
            RobloxMetaData = StandardProfileUpdateAsyncDataStore_upvr_result1.UserIds
            local var227 = RobloxMetaData
            if not var227 then
                var227 = {}
            end
            module_5.UserIds = var227
            module_5.KeyInfo = StandardProfileUpdateAsyncDataStore_upvr_result2
            module_5.KeyInfoUpdated = var14_upvw.NewScriptSignal()
            module_5.GlobalUpdates = tbl_2
            module_5._profile_store = arg1
            module_5._profile_key = arg2
            module_5._view_mode = true
            module_5._load_timestamp = os.clock()
            setmetatable(module_5, tbl_18_upvr)
            tbl_2._profile = module_5
            return module_5
        end
        task.wait()
    end
    do
        return nil
    end
    -- KONSTANTERROR: [7] 6. Error Block 50 end (CF ANALYSIS FAILED)
end
tbl_15_upvr.ViewProfileAsync = ViewProfileAsync
function tbl_15_upvr.ProfileVersionQuery(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 2098
    --[[ Upvalues[4]:
        [1]: module_4_upvr (readonly)
        [2]: tbl_12_upvr (readonly)
        [3]: module_3_upvr (readonly)
        [4]: var28_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 58 start (CF ANALYSIS FAILED)
    if string.len(arg2) == 0 then
        -- KONSTANTERROR: [14] 11. Error Block 50 start (CF ANALYSIS FAILED)
        error("[ProfileService]: Invalid profile_key")
        -- KONSTANTERROR: [14] 11. Error Block 50 end (CF ANALYSIS FAILED)
    end
    if module_4_upvr.ServiceLocked == true then
        return setmetatable({}, tbl_12_upvr)
    end
    while arg1._is_pending == true do
        task.wait()
    end
    if arg6 == module_3_upvr or var28_upvw == true then
        error("[ProfileService]: :ProfileVersionQuery() is not supported in mock mode")
        local var232
    end
    local function INLINED_16() -- Internal function, doesn't exist in bytecode
        var232 = typeof(arg3)
        return var232 ~= "EnumItem"
    end
    local function INLINED_17() -- Internal function, doesn't exist in bytecode
        var232 = arg3.EnumType
        return var232 ~= Enum.SortDirection
    end
    if arg3 ~= nil and (INLINED_16() or INLINED_17()) then
        var232 = error
        var232("[ProfileService]: Invalid sort_direction ("..tostring(arg3)..')')
    end
    if arg4 ~= nil then
        var232 = typeof(arg4)
        if var232 ~= "DateTime" then
            var232 = typeof(arg4)
            if var232 ~= "number" then
                var232 = error
                var232("[ProfileService]: Invalid min_date ("..tostring(arg4)..')')
            end
        end
    end
    if arg5 ~= nil then
        var232 = typeof(arg5)
        if var232 ~= "DateTime" then
            var232 = typeof(arg5)
            if var232 ~= "number" then
                var232 = error
                var232("[ProfileService]: Invalid max_date ("..tostring(arg5)..')')
            end
        end
    end
    local function INLINED_18() -- Internal function, doesn't exist in bytecode
        var232 = arg4.UnixTimestampMillis
        return var232
    end
    if typeof(arg4) ~= "DateTime" or not INLINED_18() then
        var232 = arg4
    end
    local function INLINED_19() -- Internal function, doesn't exist in bytecode
        var232 = arg5.UnixTimestampMillis
        return var232
    end
    if typeof(arg5) ~= "DateTime" or not INLINED_19() then
        var232 = arg5
    end
    var232 = {}
    var232._profile_store = arg1
    var232._profile_key = arg2
    var232._sort_direction = arg3
    var232._min_date = var232
    var232._max_date = var232
    var232._query_pages = nil
    var232._query_index = 0
    var232._query_failure = false
    var232._is_query_yielded = false
    var232._query_queue = {}
    setmetatable(var232, tbl_12_upvr)
    do
        return var232
    end
    -- KONSTANTERROR: [7] 6. Error Block 58 end (CF ANALYSIS FAILED)
end
local function WipeProfileAsync(arg1, arg2, arg3) -- Line 2150
    --[[ Upvalues[6]:
        [1]: module_4_upvr (readonly)
        [2]: module_3_upvr (readonly)
        [3]: _user_mock_data_store_upvr (readonly)
        [4]: var28_upvw (read and write)
        [5]: _mock_data_store_upvr (readonly)
        [6]: CustomWriteQueueMarkForCleanup_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 36 start (CF ANALYSIS FAILED)
    if string.len(arg2) == 0 then
        -- KONSTANTERROR: [14] 11. Error Block 29 start (CF ANALYSIS FAILED)
        error("[ProfileService]: Invalid profile_key")
        -- KONSTANTERROR: [14] 11. Error Block 29 end (CF ANALYSIS FAILED)
    end
    if module_4_upvr.ServiceLocked == true then
        return false
    end
    while arg1._is_pending == true do
        task.wait()
    end
    local var233 = false
    if arg3 == module_3_upvr then
        local var234 = _user_mock_data_store_upvr[arg1._profile_store_lookup]
        if var234 ~= nil then
            var234[arg2] = nil
        end
        var233 = true
        task.wait()
    elseif var28_upvw == true then
        local var235 = _mock_data_store_upvr[arg1._profile_store_lookup]
        if var235 ~= nil then
            var235[arg2] = nil
        end
        var233 = true
        task.wait()
    else
        var233 = pcall(function() -- Line 2178
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            arg1._global_data_store:RemoveAsync(arg2)
        end)
    end
    CustomWriteQueueMarkForCleanup_upvr(arg1._profile_store_lookup, arg2)
    do
        return var233
    end
    -- KONSTANTERROR: [7] 6. Error Block 36 end (CF ANALYSIS FAILED)
end
tbl_15_upvr.WipeProfileAsync = WipeProfileAsync
function module_4_upvr.GetProfileStore(arg1, arg2) -- Line 2190
    --[[ Upvalues[5]:
        [1]: module_3_upvr (readonly)
        [2]: tbl_15_upvr (readonly)
        [3]: var27_upvw (read and write)
        [4]: var28_upvw (read and write)
        [5]: DataStoreService_upvr (readonly)
    ]]
    local var237_upvw
    local var238_upvw
    if type(arg1) == "string" then
        var237_upvw = arg1
    elseif type(arg1) == "table" then
        var237_upvw = arg1.Name
        var238_upvw = arg1.Scope
    else
        error("[ProfileService]: Invalid or missing profile_store_index")
    end
    if var237_upvw == nil or type(var237_upvw) ~= "string" then
        error("[ProfileService]: Missing or invalid \"Name\" parameter")
    elseif string.len(var237_upvw) == 0 then
        error("[ProfileService]: ProfileStore name cannot be an empty string")
    end
    if var238_upvw ~= nil and (type(var238_upvw) ~= "string" or string.len(var238_upvw) == 0) then
        error("[ProfileService]: Invalid \"Scope\" parameter")
    end
    if type(arg2) ~= "table" then
        error("[ProfileService]: Invalid profile_template")
    end
    local var239_upvw
    local tbl = {
        Mock = {
            LoadProfileAsync = function(arg1_6, arg2_2, arg3) -- Line 2225, Named "LoadProfileAsync"
                --[[ Upvalues[2]:
                    [1]: var239_upvw (read and write)
                    [2]: module_3_upvr (copied, readonly)
                ]]
                return var239_upvw:LoadProfileAsync(arg2_2, arg3, module_3_upvr)
            end;
            GlobalUpdateProfileAsync = function(arg1_7, arg2_3, arg3) -- Line 2228, Named "GlobalUpdateProfileAsync"
                --[[ Upvalues[2]:
                    [1]: var239_upvw (read and write)
                    [2]: module_3_upvr (copied, readonly)
                ]]
                return var239_upvw:GlobalUpdateProfileAsync(arg2_3, arg3, module_3_upvr)
            end;
            ViewProfileAsync = function(arg1_8, arg2_4, arg3) -- Line 2231, Named "ViewProfileAsync"
                --[[ Upvalues[2]:
                    [1]: var239_upvw (read and write)
                    [2]: module_3_upvr (copied, readonly)
                ]]
                return var239_upvw:ViewProfileAsync(arg2_4, arg3, module_3_upvr)
            end;
            FindProfileVersionAsync = function(arg1_9, arg2_5, arg3, arg4, arg5) -- Line 2234, Named "FindProfileVersionAsync"
                --[[ Upvalues[2]:
                    [1]: var239_upvw (read and write)
                    [2]: module_3_upvr (copied, readonly)
                ]]
                return var239_upvw:FindProfileVersionAsync(arg2_5, arg3, arg4, arg5, module_3_upvr)
            end;
            WipeProfileAsync = function(arg1_10, arg2_6) -- Line 2237, Named "WipeProfileAsync"
                --[[ Upvalues[2]:
                    [1]: var239_upvw (read and write)
                    [2]: module_3_upvr (copied, readonly)
                ]]
                return var239_upvw:WipeProfileAsync(arg2_6, module_3_upvr)
            end;
        };
        _profile_store_name = var237_upvw;
        _profile_store_scope = var238_upvw;
        _profile_store_lookup = var237_upvw..'\x00'..(var238_upvw or "");
    }
    tbl._profile_template = arg2
    tbl._global_data_store = nil
    tbl._loaded_profiles = {}
    tbl._profile_load_jobs = {}
    tbl._mock_loaded_profiles = {}
    tbl._mock_profile_load_jobs = {}
    tbl._is_pending = false
    var239_upvw = tbl
    local var242_upvw = var239_upvw
    setmetatable(var242_upvw, tbl_15_upvr)
    local DataStoreOptions_upvr = Instance.new("DataStoreOptions")
    DataStoreOptions_upvr:SetExperimentalFeatures({
        v2 = true;
    })
    if var27_upvw == true then
        var242_upvw._is_pending = true
        task.spawn(function() -- Line 2261
            --[[ Upvalues[7]:
                [1]: var27_upvw (copied, read and write)
                [2]: var28_upvw (copied, read and write)
                [3]: var242_upvw (read and write)
                [4]: DataStoreService_upvr (copied, readonly)
                [5]: var237_upvw (read and write)
                [6]: var238_upvw (read and write)
                [7]: DataStoreOptions_upvr (readonly)
            ]]
            while var27_upvw == true do
                task.wait()
            end
            if var28_upvw == false then
                var242_upvw._global_data_store = DataStoreService_upvr:GetDataStore(var237_upvw, var238_upvw, DataStoreOptions_upvr)
            end
            var242_upvw._is_pending = false
        end)
    elseif var28_upvw == false then
        var242_upvw._global_data_store = DataStoreService_upvr:GetDataStore(var237_upvw, var238_upvw, DataStoreOptions_upvr)
    end
    return var242_upvw
end
function module_4_upvr.IsLive() -- Line 2277
    --[[ Upvalues[2]:
        [1]: var27_upvw (read and write)
        [2]: var28_upvw (read and write)
    ]]
    while true do
        local var246
        if var246 ~= true then break end
        var246 = task.wait
        var246()
    end
    if var28_upvw ~= false then
        var246 = false
    else
        var246 = true
    end
    return var246
end
if RunService_upvr:IsStudio() == true then
    var27_upvw = true
    task.spawn(function() -- Line 2289
        --[[ Upvalues[4]:
            [1]: DataStoreService_upvr (readonly)
            [2]: var28_upvw (read and write)
            [3]: module_4_upvr (readonly)
            [4]: var27_upvw (read and write)
        ]]
        local pcall_result1, pcall_result2 = pcall(function() -- Line 2290
            --[[ Upvalues[1]:
                [1]: DataStoreService_upvr (copied, readonly)
            ]]
            DataStoreService_upvr:GetDataStore("____PS"):SetAsync("____PS", os.time())
        end)
        local var251 = false
        if pcall_result1 == false then
            if string.find(pcall_result2, "ConnectFail", 1, true) == nil then
                var251 = false
            else
                var251 = true
            end
        end
        if var251 == true then
            warn("[ProfileService]: No internet access - check your network connection")
        end
        if pcall_result1 == false and (string.find(pcall_result2, "403", 1, true) ~= nil or string.find(pcall_result2, "must publish", 1, true) ~= nil or var251 == true) then
            var28_upvw = true
            module_4_upvr._use_mock_data_store = true
            print("[ProfileService]: Roblox API services unavailable - data will not be saved")
        else
            print("[ProfileService]: Roblox API services available - data will be saved")
        end
        var27_upvw = false
    end)
end
local var253_upvw = 0
RunService_upvr.Heartbeat:Connect(function() -- Line 2316
    --[[ Upvalues[8]:
        [1]: _auto_save_list_upvr (readonly)
        [2]: tbl_10_upvr (readonly)
        [3]: os_clock_result1_upvw (read and write)
        [4]: var23_upvw (read and write)
        [5]: SaveProfileAsync_upvr (readonly)
        [6]: module_4_upvr (readonly)
        [7]: _issue_queue_upvr (readonly)
        [8]: var253_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local const_number = 0
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 10. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.2]
    -- KONSTANTERROR: [12] 10. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [73] 60. Error Block 52 start (CF ANALYSIS FAILED)
    if module_4_upvr.CriticalState == false then
        if tbl_10_upvr.IssueCountForCriticalState <= #_issue_queue_upvr then
            module_4_upvr.CriticalState = true
            module_4_upvr.CriticalStateSignal:Fire(true)
            var253_upvw = os.clock()
            warn("[ProfileService]: Entered critical state")
            -- KONSTANTWARNING: GOTO [142] #110
        end
    elseif tbl_10_upvr.IssueCountForCriticalState <= #_issue_queue_upvr then
        var253_upvw = os.clock()
    elseif tbl_10_upvr.CriticalStateLast < os.clock() - var253_upvw then
        module_4_upvr.CriticalState = false
        module_4_upvr.CriticalStateSignal:Fire(false)
        warn("[ProfileService]: Critical state ended")
    end
    -- KONSTANTERROR: [73] 60. Error Block 52 end (CF ANALYSIS FAILED)
end)
task.spawn(function() -- Line 2385
    --[[ Upvalues[8]:
        [1]: var27_upvw (read and write)
        [2]: var14_upvw (read and write)
        [3]: module_4_upvr (readonly)
        [4]: _auto_save_list_upvr (readonly)
        [5]: SaveProfileAsync_upvr (readonly)
        [6]: const_number_upvw (read and write)
        [7]: var26_upvw (read and write)
        [8]: var28_upvw (read and write)
    ]]
    while true do
        local var256
        if var27_upvw ~= true then break end
        task.wait()
    end
    if var28_upvw ~= false then
        var256 = false
    else
        var256 = true
    end
    var14_upvw.ConnectToOnClose(function() -- Line 2388
        --[[ Upvalues[5]:
            [1]: module_4_upvr (copied, readonly)
            [2]: _auto_save_list_upvr (copied, readonly)
            [3]: SaveProfileAsync_upvr (copied, readonly)
            [4]: const_number_upvw (copied, read and write)
            [5]: var26_upvw (copied, read and write)
        ]]
        module_4_upvr.ServiceLocked = true
        local tbl_20 = {}
        local var270_upvw
        for i_4, v_4 in ipairs(_auto_save_list_upvr) do
            tbl_20[i_4] = v_4
        end
        for _, v_5_upvr in ipairs(tbl_20) do
            if v_5_upvr:IsActive() == true then
                var270_upvw += 1
                task.spawn(function() -- Line 2401
                    --[[ Upvalues[3]:
                        [1]: SaveProfileAsync_upvr (copied, readonly)
                        [2]: v_5_upvr (readonly)
                        [3]: var270_upvw (read and write)
                    ]]
                    SaveProfileAsync_upvr(v_5_upvr, true)
                    var270_upvw -= 1
                end)
            end
        end
        while not (0 < var270_upvw or 0 < const_number_upvw or 0 >= var26_upvw) do
            task.wait()
        end
    end, var256)
end)
return module_4_upvr
ModuleScript profiles ReplicatedStorage.engine.modules.Profiles.profiles
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:03
-- Luau version 6, Types version 3
-- Time taken: 0.000235 seconds

return {}
ModuleScript Kick ReplicatedStorage.engine.modules.Kick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:05
-- Luau version 6, Types version 3
-- Time taken: 0.003679 seconds

local _engine = _G._engine
local module = {}
local References_upvr = _engine.References
local Services_upvr = _engine.Services
function module.init(arg1, arg2) -- Line 8
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    References_upvr.PlayerGui.kick.Enabled = true
    References_upvr.PlayerGui.kick.main.description.Text = string.format("You have been kicked // %s", arg2 or "Unspecified reason")
    Services_upvr.TweenService:Create(References_upvr.PlayerGui.kick.background, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        ImageTransparency = 0;
    }):Play()
    task.wait(0.25)
    Services_upvr.TweenService:Create(References_upvr.PlayerGui.kick.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        GroupTransparency = 0;
        Position = UDim2.new(0.5, 0, 0.5, 0);
    }):Play()
    Services_upvr.RunService.RenderStepped:Connect(function() -- Line 15
        --[[ Upvalues[1]:
            [1]: Services_upvr (copied, readonly)
        ]]
        Services_upvr.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)
    end)
    for _, v in next, Services_upvr.ReplicatedStorage:GetChildren() do
        if v:IsA("Folder") then
            v:Destroy()
        end
    end
    for _, v_2 in next, Services_upvr.AssetService:GetChildren() do
        if v_2 then
            v_2:Destroy()
        end
    end
    for _, v_3 in next, Services_upvr.MaterialService:GetChildren() do
        if v_3 then
            v_3:Destroy()
        end
    end
    for _, v_4 in next, workspace:GetChildren() do
        if v_4:IsA("Folder") then
            v_4:Destroy()
        end
    end
end
return module
ModuleScript Celebration ReplicatedStorage.engine.modules.Celebration
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:06
-- Luau version 6, Types version 3
-- Time taken: 0.027296 seconds

return {
    init = function(arg1, arg2) -- Line 3, Named "init"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local _subject_upvr = arg2._subject
        local _side = arg2._side
        local _celebration = arg2._celebration
        local tbl_upvr = {}
        local var66 = _G._references.Main.celebrations[_celebration]
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 18. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 18. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [33] 20. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [33] 20. Error Block 3 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [44] 26. Error Block 4 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [44] 26. Error Block 4 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [46] 27. Error Block 139 start (CF ANALYSIS FAILED)
        local var67
        if 0 < _subject_upvr.Character.PrimaryPart.Position.X and _side == "away" then
            -- KONSTANTERROR: [59] 34. Error Block 8 start (CF ANALYSIS FAILED)
            var67 = "left"
            -- KONSTANTERROR: [59] 34. Error Block 8 end (CF ANALYSIS FAILED)
        end
        local var68_upvr = workspace.game.cutscenes.celebrations[_side][var67]
        local BoolValue_upvr_3 = Instance.new("BoolValue")
        BoolValue_upvr_3.Name = "RTP"
        BoolValue_upvr_3.Value = true
        BoolValue_upvr_3.Parent = _G._references.Main.config.Override
        local BoolValue_upvr = Instance.new("BoolValue")
        BoolValue_upvr.Name = "Teleport"
        BoolValue_upvr.Value = true
        BoolValue_upvr.Parent = _subject_upvr
        _G._references.Main.config.CelebrationInProgress.Value = true
        for _, v in next, _G._services.Players:GetPlayers() do
            if v then
                _G._references.RemoteEvent:FireClient(v, "shiftLock", false)
                _G._references.RemoteEvent:FireClient(v, "forceDisable", true)
                for i_2, v_2 in next, {"serverRagdollBinder", "getUpBinder"} do
                    while v and v.Character and v.Character:GetAttribute(v_2) do
                        task.wait()
                    end
                end
            end
        end
        task.wait(0.15)
        if (function() -- Line 51, Named "doCheck"
            --[[ Upvalues[5]:
                [1]: _subject_upvr (readonly)
                [2]: tbl_upvr (readonly)
                [3]: var68_upvr (readonly)
                [4]: BoolValue_upvr_3 (readonly)
                [5]: BoolValue_upvr (readonly)
            ]]
            if not _subject_upvr or _subject_upvr and not _subject_upvr.Parent then
                for _, v_3 in next, _G._services.Players:GetPlayers() do
                    if v_3 then
                        _G._references.RemoteEvent:FireClient(v_3, "shiftLock", true)
                        _G._references.RemoteEvent:FireClient(v_3, "forceDisable", false)
                        _G._references.RemoteEvent:FireClient(v_3, "canSprint", true)
                        _G._references.RemoteEvent:FireClient(v_3, "globalOverride", false)
                    end
                end
                for i_4, v_4 in next, tbl_upvr do
                    if i_4 and v_4 and v_4._extra and v_4._extra.Character and v_4._track then
                        v_4._track:AdjustSpeed(0)
                        v_4._extra.Character:SetPrimaryPartCFrame(_subject_upvr.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                        v_4._track:Stop(0)
                        v_4._extra.Character.PrimaryPart.Anchored = false
                    end
                end
                var68_upvr.cutsceneSettings.CameraFieldOfView.Value = 15
                _G._references.Main.config.CelebrationInProgress.Value = false
                var68_upvr.cutsceneSettings.LockOnTarget.Value = nil
                BoolValue_upvr_3:Destroy()
                task.delay(3, function() -- Line 76
                    --[[ Upvalues[1]:
                        [1]: BoolValue_upvr (copied, readonly)
                    ]]
                    BoolValue_upvr:Destroy()
                end)
                return true
            end
            return false
        end)() then return end
        local any_LoadAnimation_result1 = _subject_upvr.Character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations.Celebrations[_celebration])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        if _celebration == "Tshabalala" then
            local const_number_2 = 0
            any_LoadAnimation_result1:Play(0)
            var68_upvr.cutsceneSettings.CameraFieldOfView.Value = 75
            _subject_upvr.Character:SetPrimaryPartCFrame(var68_upvr.player1.CFrame)
            for _, v_5 in next, _G._services.Players:GetPlayers() do
                if _subject_upvr and v_5 and v_5 ~= _subject_upvr then
                    i_2 = _subject_upvr.Team
                    if i_2 then
                        i_2 = v_5.Team
                        if i_2 then
                            i_2 = v_5.Character
                            if i_2 then
                                v_2 = v_5.Character
                                i_2 = v_2.PrimaryPart
                                if i_2 then
                                    v_2 = var66.extras.Value
                                    i_2 = tonumber(v_2)
                                    if const_number_2 < i_2 then
                                        i_2 = string.find
                                        v_2 = _subject_upvr.Team.Name
                                        i_2 = i_2(v_2, "Home")
                                        local function INLINED_7() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Home")
                                            v_2 = v_5.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        local function INLINED_8() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Away")
                                            v_2 = _subject_upvr.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        local function INLINED_9() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Away")
                                            v_2 = v_5.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        if i_2 and INLINED_7() or INLINED_8() and INLINED_9() then
                                            local var85 = const_number_2 + 1
                                            i_2 = Instance.new
                                            v_2 = "BoolValue"
                                            i_2 = i_2(v_2)
                                            v_2 = "Teleport"
                                            i_2.Name = v_2
                                            v_2 = true
                                            i_2.Value = v_2
                                            i_2.Parent = v_5
                                            v_2 = _G._services.Debris:AddItem
                                            v_2(i_2, tonumber(var66.duration.Value) + 5)
                                            v_2 = v_5.Character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations.Extras[_celebration..' '..tostring(var85)])
                                            v_2.Priority = Enum.AnimationPriority.Action4
                                            v_5.Character:SetPrimaryPartCFrame(var68_upvr["player"..tostring(var85 + 1)].CFrame)
                                            v_5.Character.PrimaryPart.Anchored = true
                                            table.insert(tbl_upvr, {
                                                _extra = v_5;
                                                _track = v_2;
                                            })
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
            task.spawn(function() -- Line 126
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                if tbl_upvr[1] then
                    tbl_upvr[1]._track:Play(0)
                end
                if tbl_upvr[2] then
                    tbl_upvr[2]._track:Play(0)
                end
            end)
            -- KONSTANTWARNING: GOTO [1057] #675
        end
        if _celebration == "Ice Cold" then
            local const_number = 0
            any_LoadAnimation_result1:Play(0)
            var68_upvr.cutsceneSettings.CameraFieldOfView.Value = 50
            _subject_upvr.Character:SetPrimaryPartCFrame(var68_upvr.positions[_celebration].CFrame)
            for _, v_6 in next, _G._services.Players:GetPlayers() do
                if _subject_upvr and v_6 and v_6 ~= _subject_upvr then
                    i_2 = _subject_upvr.Team
                    if i_2 then
                        i_2 = v_6.Team
                        if i_2 then
                            i_2 = v_6.Character
                            if i_2 then
                                v_2 = v_6.Character
                                i_2 = v_2.PrimaryPart
                                if i_2 then
                                    v_2 = var66.extras.Value
                                    i_2 = tonumber(v_2)
                                    if const_number < i_2 then
                                        i_2 = string.find
                                        v_2 = _subject_upvr.Team.Name
                                        i_2 = i_2(v_2, "Home")
                                        local function INLINED_10() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Home")
                                            v_2 = v_6.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        local function INLINED_11() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Away")
                                            v_2 = _subject_upvr.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        local function INLINED_12() -- Internal function, doesn't exist in bytecode
                                            i_2 = i_2(v_2, "Away")
                                            v_2 = v_6.Team.Name
                                            i_2 = string.find
                                            return i_2
                                        end
                                        if i_2 and INLINED_10() or INLINED_11() and INLINED_12() then
                                            i_2 = Instance.new
                                            v_2 = "BoolValue"
                                            i_2 = i_2(v_2)
                                            v_2 = "Teleport"
                                            i_2.Name = v_2
                                            v_2 = true
                                            i_2.Value = v_2
                                            i_2.Parent = v_6
                                            v_2 = _G._services.Debris:AddItem
                                            v_2(i_2, tonumber(var66.duration.Value) + 5)
                                            v_2 = v_6.Character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations.Extras[_celebration..' '..tostring(const_number + 1)])
                                            v_2.Priority = Enum.AnimationPriority.Action4
                                            v_6.Character:SetPrimaryPartCFrame(var68_upvr.positions[_celebration].CFrame)
                                            v_6.Character.PrimaryPart.Anchored = true
                                            table.insert(tbl_upvr, {
                                                _extra = v_6;
                                                _track = v_2;
                                            })
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
            task.spawn(function() -- Line 163
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                if tbl_upvr[1] then
                    tbl_upvr[1]._track:Play(0)
                end
                if tbl_upvr[2] then
                    tbl_upvr[2]._track:Play(0)
                end
                if tbl_upvr[3] then
                    tbl_upvr[3]._track:Play(0)
                end
            end)
            -- KONSTANTWARNING: GOTO [1057] #675
        end
        -- KONSTANTERROR: [46] 27. Error Block 139 end (CF ANALYSIS FAILED)
    end;
}
ModuleScript GLT ReplicatedStorage.engine.modules.GLT
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:08
-- Luau version 6, Types version 3
-- Time taken: 0.002270 seconds

return {
    create = function(arg1, arg2) -- Line 3, Named "create"
        local var2
        if typeof(arg2) ~= "CFrame" then
            var2 = false
        else
            var2 = true
        end
        assert(var2, string.format("GLT.create | CFrame '_cframe' expected, got %s", typeof(arg2)))
        var2 = _G._references.Main
        var2.glt:ClearAllChildren()
        var2 = _G._references.Main.storage
        local clone = var2.glt:Clone()
        var2 = _G._references.Main.glt
        clone.Parent = var2
        clone.CFrame = arg2
        var2 = _G._services.Debris:AddItem
        var2(clone, 5)
    end;
    isIn = function(arg1) -- Line 15, Named "isIn"
        if _G._references.Main.glt:FindFirstChildWhichIsA("BasePart") and -351.053 <= _G._references.Main.glt:FindFirstChildWhichIsA("BasePart").Position.Z and _G._references.Main.glt:FindFirstChildWhichIsA("BasePart").Position.Z <= 351.053 then
            return false
        end
        return true
    end;
}
ModuleScript LuaExtended ReplicatedStorage.engine.utils.LuaExtended
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:09
-- Luau version 6, Types version 3
-- Time taken: 0.002525 seconds

local module_upvr = {}
function module_upvr.CloneTable(arg1, arg2) -- Line 3
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    assert(arg2, "invalid table passed to CloneTable")
    for i, v in pairs(arg2) do
        if type(v) == "table" then
            ({})[i] = module_upvr:CloneTable(v)
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
function module_upvr.Serialize(arg1, arg2) -- Line 16
    if type(arg2) ~= "table" then
        return arg2
    end
    local module = {}
    for i_2, v_2 in pairs(arg2) do
        if type(v_2) == "table" then
            v_2 = arg1:Serialize(v_2)
        end
        module[tostring(i_2) or i_2] = v_2
    end
    return module
end
function module_upvr.Deserialize(arg1, arg2) -- Line 31
    if type(arg2) ~= "table" then
        return arg2
    end
    local module_2 = {}
    for i_3, v_3 in pairs(arg2) do
        if type(v_3) == "table" then
            v_3 = arg1:Deserialize(v_3)
        end
        module_2[tonumber(i_3) or i_3] = v_3
    end
    return module_2
end
return module_upvr
ModuleScript Maths ReplicatedStorage.engine.utils.Maths
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:10
-- Luau version 6, Types version 3
-- Time taken: 0.003911 seconds

math.random()
local module_upvr = {
    Round = function(arg1, arg2) -- Line 7, Named "Round"
        local var2 = 10 ^ (arg2 or 0)
        return math.floor(arg1 * var2 + 0.5) / var2
    end;
    format_thousand = function(arg1) -- Line 12, Named "format_thousand"
        if type(arg1) == "number" then
            local formatted = string.format("%d", math.floor(arg1))
            local var4 = string.len(formatted) % 3
            if var4 == 0 then
                var4 = 3
            end
            return string.sub(formatted, 1, var4)..string.gsub(string.sub(formatted, var4 + 1), "(...)", ",%1")
        end
        return arg1
    end;
    remove_commas = function(arg1) -- Line 23, Named "remove_commas"
        return string.gsub(arg1, ',', "")
    end;
    roundUpToNearestInt = function(arg1) -- Line 27, Named "roundUpToNearestInt"
        return math.floor(arg1 + 0.5)
    end;
    roundDownToNearestInt = function(arg1) -- Line 31, Named "roundDownToNearestInt"
        return math.floor(arg1 - 0.5)
    end;
    RoundToNearestInteger = function(arg1) -- Line 35, Named "RoundToNearestInteger"
        return math.floor(arg1 + 0.5)
    end;
    roundUpToNearestDecimal = function(arg1, arg2) -- Line 39, Named "roundUpToNearestDecimal"
        return math.floor(arg1 * math.pow(10, arg2) + 0.5) / math.pow(10, arg2)
    end;
    roundDownToNearestDecimal = function(arg1, arg2) -- Line 43, Named "roundDownToNearestDecimal"
        return math.floor(arg1 * math.pow(10, arg2) - 0.5) / math.pow(10, arg2)
    end;
}
local random_state_upvr = Random.new(tick())
function module_upvr.RandomIntegerOmit0(arg1, arg2) -- Line 47
    --[[ Upvalues[2]:
        [1]: random_state_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local any_NextInteger_result1 = random_state_upvr:NextInteger(arg1, arg2)
    local var7
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var7 = any_NextInteger_result1
        return var7
    end
    if any_NextInteger_result1 == 0 or not INLINED() then
        var7 = module_upvr.RandomIntegerOmit0(arg1, arg2)
    end
    return var7
end
return module_upvr
ModuleScript Performance ReplicatedStorage.engine.utils.Performance
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:11
-- Luau version 6, Types version 3
-- Time taken: 0.004262 seconds

local RunService_upvr = game:GetService("RunService")
local module_upvr = {
    AUTO_UPDATE = true;
    AUTOMATIC_UPDATE_INTERVAL = 1;
    LastFPS = 30;
    Grades = {
        A = {
            MinFPS = 51;
            MaxFPS = math.huge;
        };
        B = {
            MinFPS = 31;
            MaxFPS = 50;
        };
        C = {
            MinFPS = 16;
            MaxFPS = 30;
        };
        D = {
            MinFPS = 0;
            MaxFPS = 15;
        };
    };
}
function module_upvr.GetGrade(arg1) -- Line 28
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local pairs_result1, pairs_result2, pairs_result3 = pairs(arg1.Grades)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [25] 16. Error Block 5 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [25] 16. Error Block 5 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [11] 8. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [25.9]
    -- KONSTANTERROR: [11] 8. Error Block 2 end (CF ANALYSIS FAILED)
end
function module_upvr.GetFPS(arg1) -- Line 40
    --[[ Upvalues[1]:
        [1]: RunService_upvr (readonly)
    ]]
    local var11
    repeat
        RunService_upvr.Heartbeat:Wait()
        var11 += 1
    until 1 <= tick() - tick()
    arg1.LastFPS = var11
    return var11
end
function module_upvr.Update(arg1) -- Line 48
    arg1:GetFPS()
    arg1:GetGrade()
end
function module_upvr.Get(arg1, arg2) -- Line 54
    if arg2 then
        arg1:Update()
    end
    return arg1.LastGrade, arg1.LastFPS
end
function module_upvr.IsBetter(arg1, arg2) -- Line 62
    local var12 = arg2 or 'D'
    local var13
    if var12 == 'A' then
        if arg1.LastGrade ~= 'A' then
            var13 = false
        else
            var13 = true
        end
        return var13
    end
    if var12 == 'B' then
        var13 = true
        if arg1.LastGrade ~= 'A' then
            if arg1.LastGrade ~= 'B' then
                var13 = false
            else
                var13 = true
            end
        end
        return var13
    end
    if var12 == 'C' then
        if arg1.LastGrade ~= 'A' and arg1.LastGrade ~= 'B' then
            if arg1.LastGrade ~= 'C' then
            else
            end
        end
        return true
    end
    if var12 == 'D' then
        if arg1.LastGrade ~= 'A' and arg1.LastGrade ~= 'B' and arg1.LastGrade ~= 'C' then
            if arg1.LastGrade ~= 'D' then
            else
            end
        end
        return true
    end
    return true
end
if module_upvr.AUTO_UPDATE and RunService_upvr:IsClient() then
    spawn(function() -- Line 78
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        while wait(module_upvr.AUTOMATIC_UPDATE_INTERVAL) do
            module_upvr:Update()
        end
    end)
end
return module_upvr
ModuleScript RobloxExtended ReplicatedStorage.engine.utils.RobloxExtended
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:13
-- Luau version 6, Types version 3
-- Time taken: 0.003208 seconds

local CollectionService_upvr = game:GetService("CollectionService")
local module_upvr = {
    IsDescendantOfTag = function(arg1, arg2) -- Line 5, Named "IsDescendantOfTag"
        --[[ Upvalues[1]:
            [1]: CollectionService_upvr (readonly)
        ]]
        local var3 = arg1
        repeat
            if CollectionService_upvr:HasTag(var3, arg2) then
                return true, var3
            end
            local Parent = var3.Parent
        until not Parent and not Parent.Parent
        return false
    end;
}
function module_upvr.GetTouching(arg1, arg2, arg3, arg4) -- Line 19
    --[[ Upvalues[2]:
        [1]: CollectionService_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 30 start (CF ANALYSIS FAILED)
    assert(arg1, "Part to check touching is required")
    if not arg1.CanCollide then
        local function _() -- Line 24
        end
    end
    local const_number = 1
    -- KONSTANTERROR: [0] 1. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [77] 65. Error Block 24 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [77] 65. Error Block 24 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [26] 21. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [26] 21. Error Block 4 end (CF ANALYSIS FAILED)
end
if game:GetService("RunService"):IsClient() then
    local CurrentCamera_upvr = workspace.CurrentCamera
    function module_upvr.IsOnScreen(arg1, arg2) -- Line 68
        --[[ Upvalues[1]:
            [1]: CurrentCamera_upvr (readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        assert(arg1, "part or position required to check on screen")
        local var9
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var9 = arg1
            return var9
        end
        if typeof(arg1) ~= "Vector3" or not INLINED() then
            var9 = arg1.Position
        end
        local any_WorldToScreenPoint_result1, any_WorldToScreenPoint_result2 = CurrentCamera_upvr:WorldToScreenPoint(var9)
        if arg2 then
            if any_WorldToScreenPoint_result1.Z > arg2 then
            else
            end
            return true
        end
        return any_WorldToScreenPoint_result2
    end
end
return module_upvr
ModuleScript Tween ReplicatedStorage.engine.utils.Tween
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:14
-- Luau version 6, Types version 3
-- Time taken: 0.025761 seconds

local TweenService_upvr = game:GetService("TweenService")
local module_upvr = {
    GetStyleFromString = function(arg1) -- Line 15, Named "GetStyleFromString"
        if arg1 ~= nil then
            if arg1 == "Linear" then
                return Enum.EasingStyle.Linear
            end
            if arg1 == "Sine" then
                return Enum.EasingStyle.Sine
            end
            if arg1 == "Back" then
                return Enum.EasingStyle.Back
            end
            if arg1 == "Quad" then
                return Enum.EasingStyle.Quad
            end
            if arg1 == "Quart" then
                return Enum.EasingStyle.Quart
            end
            if arg1 == "Quint" then
                return Enum.EasingStyle.Quint
            end
            if arg1 == "Bounce" then
                return Enum.EasingStyle.Bounce
            end
            if arg1 == "Elastic" then
                return Enum.EasingStyle.Elastic
            end
        end
        return Enum.EasingStyle.Quad
    end;
    GetDirectionFromString = function(arg1) -- Line 30, Named "GetDirectionFromString"
        if arg1 ~= nil then
            if arg1 == "In" then
                return Enum.EasingDirection.In
            end
            if arg1 == "Out" then
                return Enum.EasingDirection.Out
            end
        end
        return Enum.EasingDirection.InOut
    end;
}
local module_upvr_2 = require(game:GetService("ReplicatedStorage"):WaitForChild("Util"):WaitForChild("Maths"))
function module_upvr.TweenTextLabelNumber(arg1, arg2, arg3, arg4) -- Line 38
    --[[ Upvalues[3]:
        [1]: module_upvr_2 (readonly)
        [2]: module_upvr (readonly)
        [3]: TweenService_upvr (readonly)
    ]]
    local NumberValue_upvr_2 = Instance.new("NumberValue")
    NumberValue_upvr_2.Value = tonumber(module_upvr_2.remove_commas(arg1.Text))
    local tbl_11 = {}
    tbl_11.Value = arg2
    local any_Create_result1_14_upvr = TweenService_upvr:Create(NumberValue_upvr_2, TweenInfo.new(arg3, module_upvr.GetStyleFromString(arg4), Enum.EasingDirection.Out), tbl_11)
    any_Create_result1_14_upvr:Play()
    NumberValue_upvr_2.Changed:Connect(function() -- Line 46
        --[[ Upvalues[5]:
            [1]: NumberValue_upvr_2 (readonly)
            [2]: module_upvr_2 (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
            [5]: any_Create_result1_14_upvr (readonly)
        ]]
        arg1.Text = module_upvr_2.format_thousand(NumberValue_upvr_2.Value)
        if tostring(arg1.Text) == arg2 then
            NumberValue_upvr_2:Destroy()
            any_Create_result1_14_upvr:Cancel()
        end
    end)
end
function module_upvr.TweenCFrame(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 58
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    local var8_upvw = false
    if arg1 and arg2 then
        local tbl_6 = {}
        tbl_6.CFrame = arg2
        local any_Create_result1 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg5), module_upvr.GetDirectionFromString(arg4)), tbl_6)
        if arg7 ~= nil and arg7 == true then
            arg1.CanCollide = false
        end
        any_Create_result1:Play()
        any_Create_result1.Completed:Connect(function() -- Line 76
            --[[ Upvalues[3]:
                [1]: arg7 (readonly)
                [2]: arg1 (readonly)
                [3]: var8_upvw (read and write)
            ]]
            if arg7 ~= nil and arg7 == true then
                arg1.CanCollide = true
            end
            var8_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var8_upvw == true
        end
    end
    return true
end
function module_upvr.TweenPrimaryPartCFrame(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 91
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        if arg6 == nil or arg6 ~= true then
        end
        local tbl_17 = {}
        tbl_17.Value = arg2
        local CFrameValue_upvr = Instance.new("CFrameValue")
        CFrameValue_upvr.Value = arg1.PrimaryPart.CFrame
        CFrameValue_upvr.Changed:Connect(function() -- Line 103
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: CFrameValue_upvr (readonly)
            ]]
            if arg1.PrimaryPart then
                arg1:SetPrimaryPartCFrame(CFrameValue_upvr.Value)
            end
        end)
        local any_Create_result1_18 = TweenService_upvr:Create(CFrameValue_upvr, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_17)
        any_Create_result1_18:Play()
        if arg6 then
            any_Create_result1_18.Completed:Wait()
            CFrameValue_upvr:Destroy()
            return true
        end
        any_Create_result1_18.Completed:Connect(function() -- Line 119
            --[[ Upvalues[1]:
                [1]: CFrameValue_upvr (readonly)
            ]]
            CFrameValue_upvr:Destroy()
        end)
    end
end
function module_upvr.FadeTransparency(arg1, arg2, arg3, arg4) -- Line 126
    --[[ Upvalues[1]:
        [1]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        if arg4 == nil or arg4 ~= true then
        end
        local var17_upvw = true
        local tbl_2 = {}
        tbl_2.Transparency = arg2
        local any_Create_result1_4 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), tbl_2)
        any_Create_result1_4:Play()
        any_Create_result1_4.Completed:Connect(function() -- Line 139
            --[[ Upvalues[1]:
                [1]: var17_upvw (read and write)
            ]]
            var17_upvw = true
        end)
        if arg4 ~= nil and arg4 == true then
            repeat
                wait()
            until var17_upvw == true
            return true
        end
    end
end
function module_upvr.TweenSize(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 150
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local var21_upvw = false
        local tbl_3 = {}
        tbl_3.Size = arg2
        local any_Create_result1_3 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_3)
        any_Create_result1_3:Play()
        any_Create_result1_3.Completed:Connect(function() -- Line 164
            --[[ Upvalues[1]:
                [1]: var21_upvw (read and write)
            ]]
            var21_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var21_upvw == true
            return true
        end
    end
    return true
end
function module_upvr.BounceSize(arg1, arg2, arg3, arg4, arg5) -- Line 178
    --[[ Upvalues[1]:
        [1]: TweenService_upvr (readonly)
    ]]
    if arg1 then
        local var32
        if var32 then
            var32 = arg3
            if not var32 then
                var32 = arg1.Size
            end
            local var33 = arg4 or 1
            local var34 = arg2 or 1.1
            var32 = {}
            var32.Size = arg1.Size * Vector3.new(var34, var34, var34)
            local any_Create_result1_8_upvr = TweenService_upvr:Create(arg1, TweenInfo.new(var33 * 0.666, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out), var32)
            local any_Create_result1_7_upvr = TweenService_upvr:Create(arg1, TweenInfo.new(var33 * 0.333, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
                Size = var32;
            })
            any_Create_result1_8_upvr:Play()
            if arg5 ~= nil and arg5 == true then
                any_Create_result1_8_upvr.Completed:Wait()
                any_Create_result1_7_upvr:Play()
                any_Create_result1_7_upvr.Completed:Wait()
                return true
            end
            spawn(function() -- Line 200
                --[[ Upvalues[2]:
                    [1]: any_Create_result1_8_upvr (readonly)
                    [2]: any_Create_result1_7_upvr (readonly)
                ]]
                any_Create_result1_8_upvr.Completed:Wait()
                any_Create_result1_7_upvr:Play()
                any_Create_result1_7_upvr.Completed:Wait()
                return true
            end)
        end
    end
    return true
end
function module_upvr.BounceSizeModel(arg1, arg2, arg3, arg4, arg5) -- Line 214
    --[[ Upvalues[1]:
        [1]: TweenService_upvr (readonly)
    ]]
    if arg1:IsA("Model") == false then
        return error("This function requires a model as the target instance")
    end
    if arg1 then
        local var64_upvw
        if arg1.Parent then
            local var65_upvw = arg4 or 1
            local var66 = arg2 or 1.1
            var64_upvw = var65_upvw / 2
            var64_upvw = nil
            for _, v in pairs(arg1:GetChildren()) do
                if v:IsA("BasePart") or v:IsA("UnionOperation") then
                    table.insert({}, v)
                    local any_Create_result1_19 = TweenService_upvr:Create(v, TweenInfo.new(var64_upvw, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out), {
                        Size = v.Size * Vector3.new(var66, var66, var66);
                    })
                    if var64_upvw == nil then
                        var64_upvw = any_Create_result1_19
                    end
                    any_Create_result1_19:Play()
                end
            end
            local tbl_5_upvr = {}
            spawn(function() -- Line 241
                --[[ Upvalues[5]:
                    [1]: var64_upvw (read and write)
                    [2]: var65_upvw (read and write)
                    [3]: tbl_5_upvr (readonly)
                    [4]: arg3 (readonly)
                    [5]: TweenService_upvr (copied, readonly)
                ]]
                var64_upvw.Completed:Wait()
                for _, v_2 in pairs(tbl_5_upvr) do
                    TweenService_upvr:Create(v_2, TweenInfo.new(var65_upvw / 2, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out), {
                        Size = arg3[v_2] or Vector3.new(0, 0, 0);
                    }):Play()
                    if nil == nil then
                    end
                end
            end)
            if arg5 ~= nil and arg5 == true then
                var64_upvw.Completed:Wait()
            end
        end
    end
    return true
end
function module_upvr.TweenModelSize(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 267
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        if arg6 == nil or arg6 ~= true then
        end
        local var81_upvw = true
        local tbl_7 = {}
        tbl_7.Size = arg2
        local any_Create_result1_16 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_7)
        any_Create_result1_16:Play()
        any_Create_result1_16.Completed:Connect(function() -- Line 281
            --[[ Upvalues[1]:
                [1]: var81_upvw (read and write)
            ]]
            var81_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var81_upvw == true
            return true
        end
    end
    return true
end
function module_upvr.TweenPartColour(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 293
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local var85_upvw = false
        local tbl_9 = {}
        tbl_9.Color = arg2
        local any_Create_result1_9 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_9)
        any_Create_result1_9:Play()
        any_Create_result1_9.Completed:Connect(function() -- Line 307
            --[[ Upvalues[1]:
                [1]: var85_upvw (read and write)
            ]]
            var85_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var85_upvw == true
            return true
        end
    end
    return true
end
function module_upvr.TweenVolume(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 319
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local var89_upvw = false
        local tbl_8 = {}
        tbl_8.Volume = arg2
        local any_Create_result1_10 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_8)
        any_Create_result1_10:Play()
        any_Create_result1_10.Completed:Connect(function() -- Line 333
            --[[ Upvalues[1]:
                [1]: var89_upvw (read and write)
            ]]
            var89_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var89_upvw == true
            return true
        end
    end
    return true
end
function module_upvr.TweenRotation(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 345
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local var93_upvw = false
        local tbl_4 = {}
        tbl_4.Rotation = arg2
        local any_Create_result1_6 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_4)
        any_Create_result1_6:Play()
        any_Create_result1_6.Completed:Connect(function() -- Line 359
            --[[ Upvalues[1]:
                [1]: var93_upvw (read and write)
            ]]
            var93_upvw = true
        end)
        if arg6 ~= nil and arg6 == true then
            repeat
                wait()
            until var93_upvw == true
            return true
        end
    end
    return true
end
function module_upvr.TweenCameraRoll(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 373
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local tbl_15 = {}
        tbl_15.Value = arg2
        local NumberValue_upvr = Instance.new("NumberValue")
        NumberValue_upvr.Value = arg1:GetRoll()
        NumberValue_upvr.Changed:Connect(function() -- Line 384
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: NumberValue_upvr (readonly)
            ]]
            if arg1 then
                arg1:SetRoll(NumberValue_upvr.Value)
            end
        end)
        local any_Create_result1_2_upvr = TweenService_upvr:Create(NumberValue_upvr, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_15)
        any_Create_result1_2_upvr:Play()
        any_Create_result1_2_upvr.Completed:Connect(function() -- Line 393
            --[[ Upvalues[2]:
                [1]: NumberValue_upvr (readonly)
                [2]: any_Create_result1_2_upvr (readonly)
            ]]
            NumberValue_upvr:Destroy()
            any_Create_result1_2_upvr:Destroy()
        end)
        if arg6 ~= nil and arg6 == true then
            any_Create_result1_2_upvr.Completed:Wait()
            any_Create_result1_2_upvr:Destroy()
            return true
        end
    end
    return true
end
function module_upvr.TweenColorSequence(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 406
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        local tbl_14 = {}
        tbl_14.Value = arg2
        local Color3Value_upvr_2 = Instance.new("Color3Value")
        Color3Value_upvr_2.Value = arg1.Color.Keypoints[1].Value
        Color3Value_upvr_2.Changed:Connect(function() -- Line 418
            --[[ Upvalues[2]:
                [1]: Color3Value_upvr_2 (readonly)
                [2]: arg1 (readonly)
            ]]
            arg1.Color = ColorSequence.new(Color3Value_upvr_2.Value)
        end)
        local any_Create_result1_17_upvr = TweenService_upvr:Create(Color3Value_upvr_2, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), tbl_14)
        any_Create_result1_17_upvr:Play()
        any_Create_result1_17_upvr.Completed:Connect(function() -- Line 426
            --[[ Upvalues[2]:
                [1]: Color3Value_upvr_2 (readonly)
                [2]: any_Create_result1_17_upvr (readonly)
            ]]
            Color3Value_upvr_2:Destroy()
            any_Create_result1_17_upvr:Destroy()
        end)
        if arg6 ~= nil and arg6 == true then
            any_Create_result1_17_upvr.Completed:Wait()
            any_Create_result1_17_upvr:Destroy()
            return true
        end
    end
end
function module_upvr.TweenProperties(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 439
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        for i_3, v_3 in pairs(arg2) do
            if arg1[i_3] ~= nil then
                ({})[i_3] = v_3
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local any_Create_result1_15 = TweenService_upvr:Create(arg1, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), {})
        any_Create_result1_15:Play()
        if arg6 then
            any_Create_result1_15.Completed:Wait()
        end
        return any_Create_result1_15, any_Create_result1_15.Completed
    end
end
function module_upvr.Make(arg1, arg2, arg3, arg4, arg5) -- Line 461
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    return TweenService_upvr:Create(arg1, TweenInfo.new(arg3, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), arg2)
end
function module_upvr.TweenTerrainMaterials(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 470
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: TweenService_upvr (readonly)
    ]]
    if arg1 and arg2 then
        for i_4, v_4 in pairs(arg2) do
            local var129_upvr = Enum.Material[i_4]
            if var129_upvr then
                local Color3Value_upvr_3 = Instance.new("Color3Value")
                Color3Value_upvr_3.Value = arg1:GetMaterialColor(var129_upvr)
                Color3Value_upvr_3.Changed:Connect(function() -- Line 482
                    --[[ Upvalues[3]:
                        [1]: arg1 (readonly)
                        [2]: var129_upvr (readonly)
                        [3]: Color3Value_upvr_3 (readonly)
                    ]]
                    arg1:SetMaterialColor(var129_upvr, Color3Value_upvr_3.Value)
                end)
                local any_Create_result1_11_upvr = TweenService_upvr:Create(Color3Value_upvr_3, TweenInfo.new(arg3 or 1, module_upvr.GetStyleFromString(arg4), module_upvr.GetDirectionFromString(arg5)), {
                    Value = v_4;
                })
                any_Create_result1_11_upvr:Play()
                spawn(function() -- Line 489
                    --[[ Upvalues[2]:
                        [1]: any_Create_result1_11_upvr (readonly)
                        [2]: Color3Value_upvr_3 (readonly)
                    ]]
                    any_Create_result1_11_upvr.Completed:Wait()
                    Color3Value_upvr_3:Destroy()
                end)
                if not next(arg2, i_4) and arg6 then
                    any_Create_result1_11_upvr.Completed:Wait()
                end
            end
        end
    end
end
return module_upvr
ModuleScript StringManipulation ReplicatedStorage.engine.utils.StringManipulation
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:16
-- Luau version 6, Types version 3
-- Time taken: 0.018850 seconds

math.randomseed(os.time() ^ 5)
local tbl_3_upvr = {' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '?', '#', '$', '%', '&', '+', '-', "'", '"', ',', '.', ';', ':', '(', ')', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}
local module_upvr = {
    GetAlphabetPosition = function(arg1) -- Line 18, Named "GetAlphabetPosition"
        --[[ Upvalues[1]:
            [1]: tbl_3_upvr (readonly)
        ]]
        for i, v in ipairs(tbl_3_upvr) do
            if v == arg1 then
                return i
            end
        end
        return 1
    end;
    IntegerToRank = function(arg1, arg2) -- Line 46, Named "IntegerToRank"
        if arg2 % 10 == 1 and arg2 ~= 11 then
            return arg2.."st"
        end
        if arg2 % 10 == 2 and arg2 ~= 12 then
            return arg2.."nd"
        end
        if arg2 % 10 == 3 and arg2 ~= 13 then
            return arg2.."rd"
        end
        return arg2.."th"
    end;
    IntToStringSuffix = function(arg1) -- Line 60, Named "IntToStringSuffix"
        local tonumber_result1 = tonumber(arg1)
        if 1000000000000000000 <= tonumber_result1 then
            return string.format("%.2fQt", tonumber_result1 / 1000000000000000000)
        end
        if 1000000000000000 <= tonumber_result1 then
            return string.format("%.2fQd", tonumber_result1 / 1000000000000000)
        end
        if 1000000000000 <= tonumber_result1 then
            return string.format("%.2ft", tonumber_result1 / 1000000000000)
        end
        if 1000000000 <= tonumber_result1 then
            return string.format("%.2fb", tonumber_result1 / 1000000000)
        end
        if 1000000 <= tonumber_result1 then
            return string.format("%.2fm", tonumber_result1 / 1000000)
        end
        if 1000 <= tonumber_result1 then
            return string.format("%.2fk", tonumber_result1 / 1000)
        end
        return tostring(tonumber_result1)
    end;
}
function module_upvr.RollingTextLabel(arg1, arg2, arg3, arg4) -- Line 81
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: tbl_3_upvr (readonly)
    ]]
    local tbl_2_upvr = {}
    local tbl = {}
    arg2:gsub('.', function(arg1_2) -- Line 85
        --[[ Upvalues[1]:
            [1]: tbl_2_upvr (readonly)
        ]]
        table.insert(tbl_2_upvr, arg1_2)
    end)
    for i_2 = 1, #tbl_2_upvr do
        local any_GetAlphabetPosition_result1 = module_upvr.GetAlphabetPosition(tbl_2_upvr[i_2])
        for i_3 = any_GetAlphabetPosition_result1 - arg3, any_GetAlphabetPosition_result1 do
            tbl_2_upvr[i_2] = tbl_3_upvr[i_3]
            tbl[i_2] = tbl_3_upvr[i_3]
            arg1.Text = table.concat(tbl, "")
            if arg4 then
                local clone_upvr = arg4:Clone()
                clone_upvr.Parent = arg4.Parent
                local var23_upvw
                var23_upvw = clone_upvr.Stopped:Connect(function() -- Line 97
                    --[[ Upvalues[2]:
                        [1]: var23_upvw (read and write)
                        [2]: clone_upvr (readonly)
                    ]]
                    var23_upvw:Disconnect()
                    var23_upvw = nil
                    clone_upvr:Destroy()
                end)
                clone_upvr:Play()
            end
            clone_upvr = wait
            clone_upvr()
        end
    end
    return true
end
function module_upvr.getday_posfix(arg1) -- Line 112
    if arg1 == 1 and arg1 ~= 11 then
        return "st"
    end
    if arg1 == 2 and arg1 ~= 12 then
        return "nd"
    end
    if arg1 == 3 and arg1 ~= 13 then
        return "rd"
    end
    return "th"
end
function module_upvr.getmonth(arg1) -- Line 116
    return ({"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"})[tonumber(arg1)]
end
function module_upvr.MinutesToDaysHoursMinutes(arg1) -- Line 122
    if arg1 == nil or not tonumber(arg1) then
        local const_number_2 = 0
    end
    if const_number_2 <= 0 then
        return "0 minutes"
    end
    local floored_2 = math.floor(const_number_2 / 1440)
    local var27 = ""
    if 0 < floored_2 then
        var27 = floored_2.." days, "
    end
    local floored = math.floor(const_number_2 / 60 - floored_2 * 24)
    local var29 = ""
    if 0 < floored then
        var29 = floored.." hours, "
    end
    local floored_6 = math.floor(const_number_2 - floored * 60 - floored_2 * 1440)
    local var31 = ""
    if 0 < floored_6 then
        var31 = floored_6.." minutes"
    end
    return var27..var29..var31
end
function module_upvr.SecondsToClock(arg1) -- Line 147
    local tonumber_result1_2 = tonumber(arg1)
    if tonumber_result1_2 <= 0 then
        return "00:00:00"
    end
    local formatted_2 = string.format("%02.f", math.floor(tonumber_result1_2 / 3600))
    local formatted = string.format("%02.f", math.floor(tonumber_result1_2 / 60 - formatted_2 * 60))
    return formatted_2..':'..formatted..':'..string.format("%02.f", math.floor(tonumber_result1_2 - formatted_2 * 3600 - formatted * 60))
end
function module_upvr.SecondsToHoursMinutesSeconds(arg1) -- Line 160
    if arg1 == nil or not tonumber(math.floor(arg1)) then
        local const_number = 0
    end
    if const_number <= 0 then
        return "0 seconds"
    end
    local floored_5 = math.floor(const_number / 3600)
    if 0 >= floored_5 or not floored_5.." hours, " then
    end
    local floored_4 = math.floor(const_number / 60 - floored_5 * 60)
    if 0 >= floored_4 or not floored_4.." minutes, " then
    end
    local floored_3 = math.floor(const_number - floored_5 * 3600 - floored_4 * 60)
    if 0 >= floored_3 or not floored_3.." seconds" then
    end
    return ""..""..""
end
function module_upvr.DateIntsToString(arg1, arg2, arg3) -- Line 178
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return tostring(arg1)..module_upvr.getday_posfix(arg1).." of "..module_upvr.getmonth(arg2)..", "..tostring(arg3)
end
function module_upvr.DayToDate(arg1) -- Line 185
    return nil
end
module_upvr.SizeFromCategory = {}
module_upvr.SizeFromCategory.Phone = 6
module_upvr.SizeFromCategory.Tablet = 10
module_upvr.SizeFromCategory.Average = 13
local function GetScreenCategory_upvr(arg1) -- Line 197, Named "GetScreenCategory"
    -- KONSTANTERROR: [0] 1. Error Block 24 start (CF ANALYSIS FAILED)
    if arg1.X <= 900 and arg1.Y <= 450 then
        -- KONSTANTWARNING: GOTO [58] #39
    end
    -- KONSTANTERROR: [0] 1. Error Block 24 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 10. Error Block 23 start (CF ANALYSIS FAILED)
    if 900 < arg1.X and arg1.X <= 1100 and 450 < arg1.Y and arg1.Y <= 900 then
        -- KONSTANTWARNING: GOTO [58] #39
    end
    -- KONSTANTERROR: [13] 10. Error Block 23 end (CF ANALYSIS FAILED)
end
local function GetMaxTextSize(arg1) -- Line 203
    --[[ Upvalues[2]:
        [1]: GetScreenCategory_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local var39 = 10
    if arg1 then
        var39 = module_upvr.SizeFromCategory[GetScreenCategory_upvr(arg1)] or 10
    end
    return var39
end
module_upvr.GetMaxTextSize = GetMaxTextSize
GetMaxTextSize = {}
local var40_upvr = GetMaxTextSize
for i_4 = 48, 57 do
    table.insert(var40_upvr, string.char(i_4))
end
for i_5 = 65, 90 do
    table.insert(var40_upvr, string.char(i_5))
end
for i_6 = 97, 122 do
    table.insert(var40_upvr, string.char(i_6))
end
local random_state_upvr = Random.new(tick())
function module_upvr.RandomString(arg1) -- Line 218
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: var40_upvr (readonly)
        [3]: random_state_upvr (readonly)
    ]]
    if not arg1 or arg1 <= 0 then
        return ""
    end
    return module_upvr.RandomString(arg1 - 1)..var40_upvr[random_state_upvr:NextInteger(1, #var40_upvr)]
end
function module_upvr.HourFromString(arg1) -- Line 223
    if arg1 and typeof(arg1) == "string" then
        return tonumber(string.match(arg1, "%d+"))
    end
    return nil
end
function module_upvr.SecondsToHours(arg1) -- Line 230
    return arg1 / 3600
end
function module_upvr.remove_commas(arg1) -- Line 235
    return string.gsub(arg1, ',', "")
end
function module_upvr.IntToString(arg1) -- Line 241
end
function module_upvr.EnumFromString(arg1) -- Line 246
    if arg1 then
        local var49
        if var49 < #arg1 then
            var49 = string.match(arg1, "%.%w+%.")
            local string_gsub_result1_upvr = string.gsub(var49, "%.", "")
            var49 = string_gsub_result1_upvr
            if var49 then
                var49 = string.gsub(string.match(arg1, string_gsub_result1_upvr.."%.%w+"), string_gsub_result1_upvr, "")
            end
            local var51_upvw = var49
            if var51_upvw then
                var51_upvw = string.gsub(var49, "%.", "")
            end
            local var53_upvw
            local _, _ = pcall(function() -- Line 252
                --[[ Upvalues[3]:
                    [1]: string_gsub_result1_upvr (readonly)
                    [2]: var51_upvw (read and write)
                    [3]: var53_upvw (read and write)
                ]]
                if Enum[string_gsub_result1_upvr] and Enum[string_gsub_result1_upvr][var51_upvw] then
                    var53_upvw = Enum[string_gsub_result1_upvr][var51_upvw]
                end
            end)
        end
    end
    return var53_upvw
end
function module_upvr.EnumFromEnumValue(arg1, arg2) -- Line 261
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var63
    for _, v_2 in pairs(arg2) do
        var63 = module_upvr.EnumFromString("Enum."..v_2..'.'..arg1)
        if var63 then
            return var63
        end
    end
    return var63
end
return module_upvr
ModuleScript String ReplicatedStorage.engine.utils.String
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:17
-- Luau version 6, Types version 3
-- Time taken: 0.002232 seconds

return {
    generateRandomString = function(arg1) -- Line 2, Named "generateRandomString"
        local tbl = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}
        local var7 = ""
        if arg1 and 2 <= arg1 then
            for i = 1, math.random(1, arg1) do
                var7 = var7..tbl[math.random(1, #tbl)]
            end
            return var7
        end
        if arg1 and arg1 < 2 then
            i = math.random(1, #tbl)
            var7 = var7..tbl[i]
            return var7
        end
        for _ = 1, math.random(50, 70) do
            var7 = var7..tbl[math.random(1, #tbl)]
        end
        return var7
    end;
}
ModuleScript Theme ReplicatedStorage.engine.utils.Theme
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:18
-- Luau version 6, Types version 3
-- Time taken: 0.000501 seconds

return {
    Primary = Color3.fromRGB(247, 247, 247);
    Secondary = Color3.fromRGB(181, 181, 181);
    Accent = Color3.fromRGB(83, 215, 255);
    Text = Color3.fromRGB(35, 39, 50);
}
ModuleScript DraggableObject ReplicatedStorage.engine.utils.DraggableObject
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:20
-- Luau version 6, Types version 3
-- Time taken: 0.006591 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2, arg3) -- Line 17
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module = {}
    module.ObjectSelect = arg1
    module.ObjectDrag = arg2 or arg1
    module.DragStarted = nil
    module.DragEnded = nil
    module.Dragged = nil
    module.Dragging = false
    module.Process = arg3
    setmetatable(module, module_2_upvr)
    return module
end
local new_2_upvr = UDim2.new
local UserInputService_upvr = game:GetService("UserInputService")
function module_2_upvr.Enable(arg1) -- Line 33
    --[[ Upvalues[2]:
        [1]: new_2_upvr (readonly)
        [2]: UserInputService_upvr (readonly)
    ]]
    arg1:Disable()
    local ObjectSelect = arg1.ObjectSelect
    local ObjectDrag_upvr = arg1.ObjectDrag
    local var7_upvw
    local var8_upvw
    local var9_upvw
    local var10_upvw = false
    local function _(arg1_2) -- Line 44, Named "update"
        --[[ Upvalues[4]:
            [1]: var8_upvw (read and write)
            [2]: new_2_upvr (copied, readonly)
            [3]: var9_upvw (read and write)
            [4]: ObjectDrag_upvr (readonly)
        ]]
        local var11 = arg1_2 - var8_upvw
        local new_2_upvr_result1 = new_2_upvr(var9_upvw.X.Scale, var9_upvw.X.Offset + var11.X, var9_upvw.Y.Scale, var9_upvw.Y.Offset + var11.Y)
        ObjectDrag_upvr.Position = new_2_upvr_result1
        return new_2_upvr_result1
    end
    arg1.InputBegan = ObjectSelect.InputBegan:Connect(function(arg1_3) -- Line 52
        --[[ Upvalues[2]:
            [1]: var10_upvw (read and write)
            [2]: arg1 (readonly)
        ]]
        if arg1_3.UserInputType == Enum.UserInputType.MouseButton1 or arg1_3.UserInputType == Enum.UserInputType.Touch then
            var10_upvw = true
            local var15_upvw
            var15_upvw = arg1_3.Changed:Connect(function() -- Line 67
                --[[ Upvalues[4]:
                    [1]: arg1_3 (readonly)
                    [2]: arg1 (copied, readonly)
                    [3]: var10_upvw (copied, read and write)
                    [4]: var15_upvw (read and write)
                ]]
                if arg1_3.UserInputState == Enum.UserInputState.End and (arg1.Dragging or var10_upvw) then
                    arg1.Dragging = false
                    var15_upvw:Disconnect()
                    if arg1.DragEnded and not var10_upvw then
                        arg1.DragEnded()
                    end
                    var10_upvw = false
                end
            end)
        end
    end)
    arg1.InputChanged = ObjectSelect.InputChanged:Connect(function(arg1_4) -- Line 82
        --[[ Upvalues[1]:
            [1]: var7_upvw (read and write)
        ]]
        if arg1_4.UserInputType == Enum.UserInputType.MouseMovement or arg1_4.UserInputType == Enum.UserInputType.dr then
            var7_upvw = arg1_4
        end
    end)
    arg1.InputChanged2 = UserInputService_upvr.InputChanged:Connect(function(arg1_5) -- Line 88
        --[[ Upvalues[7]:
            [1]: ObjectDrag_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: var10_upvw (read and write)
            [4]: var8_upvw (read and write)
            [5]: var7_upvw (read and write)
            [6]: var9_upvw (read and write)
            [7]: new_2_upvr (copied, readonly)
        ]]
        if ObjectDrag_upvr.Parent == nil then
            arg1:Disable()
        else
            if var10_upvw then
                var10_upvw = false
                if arg1.DragStarted then
                    arg1.DragStarted()
                end
                arg1.Dragging = true
                var8_upvw = var7_upvw.Position
                var9_upvw = ObjectDrag_upvr.Position
            end
            if arg1_5 == var7_upvw then
                local var21
                if var21 then
                    var21 = nil
                    if arg1.Process then
                        var21 = arg1.Process(arg1_5.Position)
                    else
                        local var22 = arg1_5.Position - var8_upvw
                        local var3_result1 = new_2_upvr(var9_upvw.X.Scale, var9_upvw.X.Offset + var22.X, var9_upvw.Y.Scale, var9_upvw.Y.Offset + var22.Y)
                        ObjectDrag_upvr.Position = var3_result1
                        var21 = var3_result1
                    end
                    if arg1.Dragged then
                        arg1.Dragged(var21)
                    end
                end
            end
        end
    end)
end
function module_2_upvr.Disable(arg1) -- Line 122
    if arg1.InputBegan then
        arg1.InputBegan:Disconnect()
    end
    if arg1.InputChanged then
        arg1.InputChanged:Disconnect()
    end
    if arg1.InputChanged2 then
        arg1.InputChanged2:Disconnect()
    end
    if arg1.Dragging then
        arg1.Dragging = false
        if arg1.DragEnded then
            arg1.DragEnded()
        end
    end
end
return module_2_upvr
ModuleScript Flags ReplicatedStorage.engine.utils.Flags
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:21
-- Luau version 6, Types version 3
-- Time taken: 0.018456 seconds

return {
    TJ = {
        Emoji = "🇹🇯";
        Name = "Tajikistan";
    };
    HR = {
        Emoji = "🇭🇷";
        Name = "Croatia";
    };
    KE = {
        Emoji = "🇰🇪";
        Name = "Kenya";
    };
    CR = {
        Emoji = "🇨🇷";
        Name = "CostaRica";
    };
    BR = {
        Emoji = "🇧🇷";
        Name = "Brazil";
    };
    SB = {
        Emoji = "🇸🇧";
        Name = "SolomonIslands";
    };
    BJ = {
        Emoji = "🇧🇯";
        Name = "Benin";
    };
    TR = {
        Emoji = "🇹🇷";
        Name = "Turkey";
    };
    PR = {
        Emoji = "🇵🇷";
        Name = "PuertoRico";
    };
    UZ = {
        Emoji = "🇺🇿";
        Name = "Uzbekistan";
    };
    MR = {
        Emoji = "🇲🇷";
        Name = "Mauritania";
    };
    MM = {
        Emoji = "🇲🇲";
        Name = "Myanmar(Burma)";
    };
    OM = {
        Emoji = "🇴🇲";
        Name = "Oman";
    };
    PM = {
        Emoji = "🇵🇲";
        Name = "St.Pierre & Miquelon";
    };
    HU = {
        Emoji = "🇭🇺";
        Name = "Hungary";
    };
    SM = {
        Emoji = "🇸🇲";
        Name = "SanMarino";
    };
    TM = {
        Emoji = "🇹🇲";
        Name = "Turkmenistan";
    };
    PE = {
        Emoji = "🇵🇪";
        Name = "Peru";
    };
    ZM = {
        Emoji = "🇿🇲";
        Name = "Zambia";
    };
    AU = {
        Emoji = "🇦🇺";
        Name = "Australia";
    };
    GE = {
        Emoji = "🇬🇪";
        Name = "Georgia";
    };
    IE = {
        Emoji = "🇮🇪";
        Name = "Ireland";
    };
    JE = {
        Emoji = "🇯🇪";
        Name = "Jersey";
    };
    AM = {
        Emoji = "🇦🇲";
        Name = "Armenia";
    };
    BM = {
        Emoji = "🇧🇲";
        Name = "Bermuda";
    };
    NE = {
        Emoji = "🇳🇪";
        Name = "Niger";
    };
    HM = {
        Emoji = "🇭🇲";
        Name = "Heard & McDonaldIslands";
    };
    IM = {
        Emoji = "🇮🇲";
        Name = "IsleofMan";
    };
    ER = {
        Emoji = "🇪🇷";
        Name = "Eritrea";
    };
    BZ = {
        Emoji = "🇧🇿";
        Name = "Belize";
    };
    RU = {
        Emoji = "🇷🇺";
        Name = "Russia";
    };
    NL = {
        Emoji = "🇳🇱";
        Name = "Netherlands";
    };
    ML = {
        Emoji = "🇲🇱";
        Name = "Mali";
    };
    MU = {
        Emoji = "🇲🇺";
        Name = "Mauritius";
    };
    TL = {
        Emoji = "🇹🇱";
        Name = "Timor-Leste";
    };
    IN = {
        Emoji = "🇮🇳";
        Name = "India";
    };
    UA = {
        Emoji = "🇺🇦";
        Name = "Ukraine";
    };
    TD = {
        Emoji = "🇹🇩";
        Name = "Chad";
    };
    SD = {
        Emoji = "🇸🇩";
        Name = "Sudan";
    };
    AT = {
        Emoji = "🇦🇹";
        Name = "Austria";
    };
    TT = {
        Emoji = "🇹🇹";
        Name = "Trinidad & Tobago";
    };
    ST = {
        Emoji = "🇸🇹";
        Name = "S\xE3oTom\xE9 & Pr\xEDncipe";
    };
    MD = {
        Emoji = "🇲🇩";
        Name = "Moldova";
    };
    AL = {
        Emoji = "🇦🇱";
        Name = "Albania";
    };
    CM = {
        Emoji = "🇨🇲";
        Name = "Cameroon";
    };
    BB = {
        Emoji = "🇧🇧";
        Name = "Barbados";
    };
    BD = {
        Emoji = "🇧🇩";
        Name = "Bangladesh";
    };
    MZ = {
        Emoji = "🇲🇿";
        Name = "Mozambique";
    };
    AD = {
        Emoji = "🇦🇩";
        Name = "Andorra";
    };
    PT = {
        Emoji = "🇵🇹";
        Name = "Portugal";
    };
    IL = {
        Emoji = "🇮🇱";
        Name = "Israel";
    };
    ME = {
        Emoji = "🇲🇪";
        Name = "Montenegro";
    };
    SZ = {
        Emoji = "🇸🇿";
        Name = "Swaziland";
    };
    VG = {
        Emoji = "🇻🇬";
        Name = "BritishVirginIslands";
    };
    KR = {
        Emoji = "🇰🇷";
        Name = "SouthKorea";
    };
    LU = {
        Emoji = "🇱🇺";
        Name = "Luxembourg";
    };
    MO = {
        Emoji = "🇲🇴";
        Name = "MacauSARChina";
    };
    NO = {
        Emoji = "🇳🇴";
        Name = "Norway";
    };
    SO = {
        Emoji = "🇸🇴";
        Name = "Somalia";
    };
    DM = {
        Emoji = "🇩🇲";
        Name = "Dominica";
    };
    DO = {
        Emoji = "🇩🇴";
        Name = "DominicanRepublic";
    };
    VE = {
        Emoji = "🇻🇪";
        Name = "Venezuela";
    };
    GL = {
        Emoji = "🇬🇱";
        Name = "Greenland";
    };
    BW = {
        Emoji = "🇧🇼";
        Name = "Botswana";
    };
    GG = {
        Emoji = "🇬🇬";
        Name = "Guernsey";
    };
    MG = {
        Emoji = "🇲🇬";
        Name = "Madagascar";
    };
    NG = {
        Emoji = "🇳🇬";
        Name = "Nigeria";
    };
    KG = {
        Emoji = "🇰🇬";
        Name = "Kyrgyzstan";
    };
    FO = {
        Emoji = "🇫🇴";
        Name = "FaroeIslands";
    };
    MK = {
        Emoji = "🇲🇰";
        Name = "Macedonia";
    };
    EG = {
        Emoji = "🇪🇬";
        Name = "Egypt";
    };
    CW = {
        Emoji = "🇨🇼";
        Name = "Cura\xE7ao";
    };
    CV = {
        Emoji = "🇨🇻";
        Name = "CapeVerde";
    };
    TN = {
        Emoji = "🇹🇳";
        Name = "Tunisia";
    };
    AX = {
        Emoji = "🇦🇽";
        Name = "\xC5landIslands";
    };
    TF = {
        Emoji = "🇹🇫";
        Name = "FrenchSouthernTerritories";
    };
    GR = {
        Emoji = "🇬🇷";
        Name = "Greece";
    };
    TH = {
        Emoji = "🇹🇭";
        Name = "Thailand";
    };
    RS = {
        Emoji = "🇷🇸";
        Name = "Serbia";
    };
    TV = {
        Emoji = "🇹🇻";
        Name = "Tuvalu";
    };
    SV = {
        Emoji = "🇸🇻";
        Name = "ElSalvador";
    };
    BO = {
        Emoji = "🇧🇴";
        Name = "Bolivia";
    };
    CN = {
        Emoji = "🇨🇳";
        Name = "China";
    };
    BN = {
        Emoji = "🇧🇳";
        Name = "Brunei";
    };
    UG = {
        Emoji = "🇺🇬";
        Name = "Uganda";
    };
    JO = {
        Emoji = "🇯🇴";
        Name = "Jordan";
    };
    GU = {
        Emoji = "🇬🇺";
        Name = "Guam";
    };
    LB = {
        Emoji = "🇱🇧";
        Name = "Lebanon";
    };
    AW = {
        Emoji = "🇦🇼";
        Name = "Aruba";
    };
    BF = {
        Emoji = "🇧🇫";
        Name = "BurkinaFaso";
    };
    RW = {
        Emoji = "🇷🇼";
        Name = "Rwanda";
    };
    KW = {
        Emoji = "🇰🇼";
        Name = "Kuwait";
    };
    SG = {
        Emoji = "🇸🇬";
        Name = "Singapore";
    };
    AF = {
        Emoji = "🇦🇫";
        Name = "Afghanistan";
    };
    YE = {
        Emoji = "🇾🇪";
        Name = "Yemen";
    };
    CG = {
        Emoji = "🇨🇬";
        Name = "Congo-Brazzaville";
    };
    CK = {
        Emoji = "🇨🇰";
        Name = "CookIslands";
    };
    IQ = {
        Emoji = "🇮🇶";
        Name = "Iraq";
    };
    FJ = {
        Emoji = "🇫🇯";
        Name = "Fiji";
    };
    PF = {
        Emoji = "🇵🇫";
        Name = "FrenchPolynesia";
    };
    SN = {
        Emoji = "🇸🇳";
        Name = "Senegal";
    };
    BV = {
        Emoji = "🇧🇻";
        Name = "BouvetIsland";
    };
    DE = {
        Emoji = "🇩🇪";
        Name = "Germany";
    };
    NI = {
        Emoji = "🇳🇮";
        Name = "Nicaragua";
    };
    QA = {
        Emoji = "🇶🇦";
        Name = "Qatar";
    };
    ZA = {
        Emoji = "🇿🇦";
        Name = "SouthAfrica";
    };
    CY = {
        Emoji = "🇨🇾";
        Name = "Cyprus";
    };
    MF = {
        Emoji = "🇲🇫";
        Name = "St.Martin";
    };
    CI = {
        Emoji = "🇨🇮";
        Name = "C\xF4ted’Ivoire";
    };
    NA = {
        Emoji = "🇳🇦";
        Name = "Namibia";
    };
    NU = {
        Emoji = "🇳🇺";
        Name = "Niue";
    };
    IO = {
        Emoji = "🇮🇴";
        Name = "BritishIndianOceanTerritory";
    };
    KZ = {
        Emoji = "🇰🇿";
        Name = "Kazakhstan";
    };
    LY = {
        Emoji = "🇱🇾";
        Name = "Libya";
    };
    MY = {
        Emoji = "🇲🇾";
        Name = "Malaysia";
    };
    BY = {
        Emoji = "🇧🇾";
        Name = "Belarus";
    };
    RO = {
        Emoji = "🇷🇴";
        Name = "Romania";
    };
    VC = {
        Emoji = "🇻🇨";
        Name = "St.Vincent & Grenadines";
    };
    BQ = {
        Emoji = "🇧🇶";
        Name = "CaribbeanNetherlands";
    };
    DJ = {
        Emoji = "🇩🇯";
        Name = "Djibouti";
    };
    TO = {
        Emoji = "🇹🇴";
        Name = "Tonga";
    };
    AI = {
        Emoji = "🇦🇮";
        Name = "Anguilla";
    };
    CZ = {
        Emoji = "🇨🇿";
        Name = "Czechia";
    };
    MT = {
        Emoji = "🇲🇹";
        Name = "Malta";
    };
    GA = {
        Emoji = "🇬🇦";
        Name = "Gabon";
    };
    FR = {
        Emoji = "🇫🇷";
        Name = "France";
    };
    TZ = {
        Emoji = "🇹🇿";
        Name = "Tanzania";
    };
    UM = {
        Emoji = "🇺🇲";
        Name = "U.S.OutlyingIslands";
    };
    FI = {
        Emoji = "🇫🇮";
        Name = "Finland";
    };
    LI = {
        Emoji = "🇱🇮";
        Name = "Liechtenstein";
    };
    JP = {
        Emoji = "🇯🇵";
        Name = "Japan";
    };
    PW = {
        Emoji = "🇵🇼";
        Name = "Palau";
    };
    PH = {
        Emoji = "🇵🇭";
        Name = "Philippines";
    };
    MQ = {
        Emoji = "🇲🇶";
        Name = "Martinique";
    };
    GW = {
        Emoji = "🇬🇼";
        Name = "Guinea-Bissau";
    };
    TG = {
        Emoji = "🇹🇬";
        Name = "Togo";
    };
    NF = {
        Emoji = "🇳🇫";
        Name = "NorfolkIsland";
    };
    JM = {
        Emoji = "🇯🇲";
        Name = "Jamaica";
    };
    HT = {
        Emoji = "🇭🇹";
        Name = "Haiti";
    };
    GT = {
        Emoji = "🇬🇹";
        Name = "Guatemala";
    };
    LV = {
        Emoji = "🇱🇻";
        Name = "Latvia";
    };
    ZW = {
        Emoji = "🇿🇼";
        Name = "Zimbabwe";
    };
    CU = {
        Emoji = "🇨🇺";
        Name = "Cuba";
    };
    LR = {
        Emoji = "🇱🇷";
        Name = "Liberia";
    };
    SH = {
        Emoji = "🇸🇭";
        Name = "St.Helena";
    };
    KI = {
        Emoji = "🇰🇮";
        Name = "Kiribati";
    };
    RE = {
        Emoji = "🇷🇪";
        Name = "R\xE9union";
    };
    CX = {
        Emoji = "🇨🇽";
        Name = "ChristmasIsland";
    };
    WF = {
        Emoji = "🇼🇫";
        Name = "Wallis & Futuna";
    };
    SA = {
        Emoji = "🇸🇦";
        Name = "SaudiArabia";
    };
    HN = {
        Emoji = "🇭🇳";
        Name = "Honduras";
    };
    VN = {
        Emoji = "🇻🇳";
        Name = "Vietnam";
    };
    CH = {
        Emoji = "🇨🇭";
        Name = "Switzerland";
    };
    BT = {
        Emoji = "🇧🇹";
        Name = "Bhutan";
    };
    EH = {
        Emoji = "🇪🇭";
        Name = "WesternSahara";
    };
    TW = {
        Emoji = "🇹🇼";
        Name = "Taiwan";
    };
    GD = {
        Emoji = "🇬🇩";
        Name = "Grenada";
    };
    KH = {
        Emoji = "🇰🇭";
        Name = "Cambodia";
    };
    BA = {
        Emoji = "🇧🇦";
        Name = "Bosnia & Herzegovina";
    };
    VA = {
        Emoji = "🇻🇦";
        Name = "VaticanCity";
    };
    MA = {
        Emoji = "🇲🇦";
        Name = "Morocco";
    };
    GP = {
        Emoji = "🇬🇵";
        Name = "Guadeloupe";
    };
    BL = {
        Emoji = "🇧🇱";
        Name = "St.Barth\xE9lemy";
    };
    GY = {
        Emoji = "🇬🇾";
        Name = "Guyana";
    };
    TK = {
        Emoji = "🇹🇰";
        Name = "Tokelau";
    };
    MH = {
        Emoji = "🇲🇭";
        Name = "MarshallIslands";
    };
    SR = {
        Emoji = "🇸🇷";
        Name = "Suriname";
    };
    AE = {
        Emoji = "🇦🇪";
        Name = "UnitedArabEmirates";
    };
    KP = {
        Emoji = "🇰🇵";
        Name = "NorthKorea";
    };
    GN = {
        Emoji = "🇬🇳";
        Name = "Guinea";
    };
    GB = {
        Emoji = "🇬🇧";
        Name = "UnitedKingdom";
    };
    GH = {
        Emoji = "🇬🇭";
        Name = "Ghana";
    };
    UY = {
        Emoji = "🇺🇾";
        Name = "Uruguay";
    };
    SL = {
        Emoji = "🇸🇱";
        Name = "SierraLeone";
    };
    SJ = {
        Emoji = "🇸🇯";
        Name = "Svalbard & JanMayen";
    };
    IS = {
        Emoji = "🇮🇸";
        Name = "Iceland";
    };
    PN = {
        Emoji = "🇵🇳";
        Name = "PitcairnIslands";
    };
    YT = {
        Emoji = "🇾🇹";
        Name = "Mayotte";
    };
    FM = {
        Emoji = "🇫🇲";
        Name = "Micronesia";
    };
    AZ = {
        Emoji = "🇦🇿";
        Name = "Azerbaijan";
    };
    GI = {
        Emoji = "🇬🇮";
        Name = "Gibraltar";
    };
    CF = {
        Emoji = "🇨🇫";
        Name = "CentralAfricanRepublic";
    };
    PK = {
        Emoji = "🇵🇰";
        Name = "Pakistan";
    };
    SE = {
        Emoji = "🇸🇪";
        Name = "Sweden";
    };
    CL = {
        Emoji = "🇨🇱";
        Name = "Chile";
    };
    FK = {
        Emoji = "🇫🇰";
        Name = "FalklandIslands";
    };
    MW = {
        Emoji = "🇲🇼";
        Name = "Malawi";
    };
    GM = {
        Emoji = "🇬🇲";
        Name = "Gambia";
    };
    SK = {
        Emoji = "🇸🇰";
        Name = "Slovakia";
    };
    GS = {
        Emoji = "🇬🇸";
        Name = "SouthGeorgia & SouthSandwichIslands";
    };
    MV = {
        Emoji = "🇲🇻";
        Name = "Maldives";
    };
    IT = {
        Emoji = "🇮🇹";
        Name = "Italy";
    };
    PY = {
        Emoji = "🇵🇾";
        Name = "Paraguay";
    };
    ES = {
        Emoji = "🇪🇸";
        Name = "Spain";
    };
    NR = {
        Emoji = "🇳🇷";
        Name = "Nauru";
    };
    GQ = {
        Emoji = "🇬🇶";
        Name = "EquatorialGuinea";
    };
    MN = {
        Emoji = "🇲🇳";
        Name = "Mongolia";
    };
    PL = {
        Emoji = "🇵🇱";
        Name = "Poland";
    };
    SC = {
        Emoji = "🇸🇨";
        Name = "Seychelles";
    };
    PG = {
        Emoji = "🇵🇬";
        Name = "PapuaNewGuinea";
    };
    AQ = {
        Emoji = "🇦🇶";
        Name = "Antarctica";
    };
    BG = {
        Emoji = "🇧🇬";
        Name = "Bulgaria";
    };
    TC = {
        Emoji = "🇹🇨";
        Name = "Turks & CaicosIslands";
    };
    VU = {
        Emoji = "🇻🇺";
        Name = "Vanuatu";
    };
    MP = {
        Emoji = "🇲🇵";
        Name = "NorthernMarianaIslands";
    };
    BI = {
        Emoji = "🇧🇮";
        Name = "Burundi";
    };
    AR = {
        Emoji = "🇦🇷";
        Name = "Argentina";
    };
    LT = {
        Emoji = "🇱🇹";
        Name = "Lithuania";
    };
    AO = {
        Emoji = "🇦🇴";
        Name = "Angola";
    };
    NP = {
        Emoji = "🇳🇵";
        Name = "Nepal";
    };
    DK = {
        Emoji = "🇩🇰";
        Name = "Denmark";
    };
    KY = {
        Emoji = "🇰🇾";
        Name = "CaymanIslands";
    };
    CD = {
        Emoji = "🇨🇩";
        Name = "Congo-Kinshasa";
    };
    EE = {
        Emoji = "🇪🇪";
        Name = "Estonia";
    };
    CA = {
        Emoji = "🇨🇦";
        Name = "Canada";
    };
    MC = {
        Emoji = "🇲🇨";
        Name = "Monaco";
    };
    NZ = {
        Emoji = "🇳🇿";
        Name = "NewZealand";
    };
    KN = {
        Emoji = "🇰🇳";
        Name = "St.Kitts & Nevis";
    };
    DZ = {
        Emoji = "🇩🇿";
        Name = "Algeria";
    };
    WS = {
        Emoji = "🇼🇸";
        Name = "Samoa";
    };
    NC = {
        Emoji = "🇳🇨";
        Name = "NewCaledonia";
    };
    GF = {
        Emoji = "🇬🇫";
        Name = "FrenchGuiana";
    };
    PA = {
        Emoji = "🇵🇦";
        Name = "Panama";
    };
    BH = {
        Emoji = "🇧🇭";
        Name = "Bahrain";
    };
    PS = {
        Emoji = "🇵🇸";
        Name = "PalestinianTerritories";
    };
    HK = {
        Emoji = "🇭🇰";
        Name = "HongKongSARChina";
    };
    SI = {
        Emoji = "🇸🇮";
        Name = "Slovenia";
    };
    LK = {
        Emoji = "🇱🇰";
        Name = "SriLanka";
    };
    SS = {
        Emoji = "🇸🇸";
        Name = "SouthSudan";
    };
    CC = {
        Emoji = "🇨🇨";
        Name = "Cocos(Keeling)Islands";
    };
    US = {
        Emoji = "🇺🇸";
        Name = "UnitedStates";
    };
    EC = {
        Emoji = "🇪🇨";
        Name = "Ecuador";
    };
    SY = {
        Emoji = "🇸🇾";
        Name = "Syria";
    };
    IR = {
        Emoji = "🇮🇷";
        Name = "Iran";
    };
    BE = {
        Emoji = "🇧🇪";
        Name = "Belgium";
    };
    AG = {
        Emoji = "🇦🇬";
        Name = "Antigua & Barbuda";
    };
    LS = {
        Emoji = "🇱🇸";
        Name = "Lesotho";
    };
    MS = {
        Emoji = "🇲🇸";
        Name = "Montserrat";
    };
    BS = {
        Emoji = "🇧🇸";
        Name = "Bahamas";
    };
    SX = {
        Emoji = "🇸🇽";
        Name = "SintMaarten";
    };
    KM = {
        Emoji = "🇰🇲";
        Name = "Comoros";
    };
    LA = {
        Emoji = "🇱🇦";
        Name = "Laos";
    };
    ID = {
        Emoji = "🇮🇩";
        Name = "Indonesia";
    };
    CO = {
        Emoji = "🇨🇴";
        Name = "Colombia";
    };
    MX = {
        Emoji = "🇲🇽";
        Name = "Mexico";
    };
    ET = {
        Emoji = "🇪🇹";
        Name = "Ethiopia";
    };
    LC = {
        Emoji = "🇱🇨";
        Name = "St.Lucia";
    };
    VI = {
        Emoji = "🇻🇮";
        Name = "U.S.VirginIslands";
    };
    AS = {
        Emoji = "🇦🇸";
        Name = "AmericanSamoa";
    };
}
ModuleScript CoreMethods ReplicatedStorage.engine.utils.CoreMethods
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:23
-- Luau version 6, Types version 3
-- Time taken: 0.001115 seconds

return {
    SetCoreGui = function(arg1, arg2, ...) -- Line 4, Named "SetCoreGui"
        local var4
        for _ = 1, 8 do
            var4 = {pcall(_G._services.StarterGui[arg2], _G._services.StarterGui, ...)}
            if var4[1] then break end
            _G._services.RunService.Stepped:Wait()
        end
        return unpack(var4)
    end;
}
ModuleScript ThumbnailService ReplicatedStorage.engine.utils.ThumbnailService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:24
-- Luau version 6, Types version 3
-- Time taken: 0.001207 seconds

return {
    get = function(arg1, arg2, arg3) -- Line 3, Named "get"
        if arg3 then
            local any_GetUserThumbnailAsync_result1, any_GetUserThumbnailAsync_result2 = _G._services.Players:GetUserThumbnailAsync(arg2, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
            return any_GetUserThumbnailAsync_result1
        end
        return string.format("rbxthumb://type=AvatarHeadShot&id=%s&w=420&h=420", tostring(arg2))
    end;
}
ModuleScript GuiCollisionService ReplicatedStorage.engine.utils.GuiCollisionService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:26
-- Luau version 6, Types version 3
-- Time taken: 0.026099 seconds

local module_7_upvr = {}
module_7_upvr.__index = module_7_upvr
local function intersects_upvr(arg1, arg2) -- Line 4, Named "intersects"
    local x_2 = arg2.a.x
    local y_4 = arg2.a.y
    local x_3 = arg2.b.x
    local y_5 = arg2.b.y
    local x_4 = arg1.x
    local y_3 = arg1.y
    local var8 = arg1.x + 2147483647
    local y_2 = arg1.y
    local var10 = (x_2 - x_3) * (y_3 - y_2) - (y_4 - y_5) * (x_4 - var8)
    if var10 == 0 then
        return false
    end
    local var11 = ((x_2 - x_4) * (y_3 - y_2) - (y_4 - y_3) * (x_4 - var8)) / var10
    local var12 = -((x_2 - x_3) * (y_4 - y_3) - (y_4 - y_5) * (x_2 - x_4)) / var10
    if var11 and var12 and 0 < var11 and var11 < 1 and 0 < var12 then
        return true
    end
    return false
end
local function solidCollision_upvr(arg1, arg2) -- Line 25, Named "solidCollision"
    --[[ Upvalues[1]:
        [1]: module_7_upvr (readonly)
    ]]
    local AbsolutePosition_2 = arg1.AbsolutePosition
    local AbsoluteSize_2 = arg1.AbsoluteSize
    local AbsolutePosition_4 = arg2.AbsolutePosition
    local AbsoluteSize = arg2.AbsoluteSize
    local any_isColliding_result1, any_isColliding_result2 = module_7_upvr.isColliding(arg1, arg2)
    if any_isColliding_result1 then
        local tbl = {Vector2.new((AbsolutePosition_2.x) - (AbsolutePosition_4.x + AbsoluteSize.x), 0), Vector2.new(AbsolutePosition_2.x + AbsoluteSize_2.x - AbsolutePosition_4.x, 0), Vector2.new(0, (AbsolutePosition_2.y) - (AbsolutePosition_4.y + AbsoluteSize.y)), Vector2.new(0, AbsolutePosition_2.y + AbsoluteSize_2.y - AbsolutePosition_4.y)}
        table.sort(tbl, function(arg1_2, arg2_2) -- Line 37
            local var21
            if arg1_2.magnitude >= arg2_2.magnitude then
                var21 = false
            else
                var21 = true
            end
            return var21
        end)
        any_isColliding_result2 = tbl[1]
    end
    local var22 = any_isColliding_result2
    if not var22 then
        var22 = Vector2.new()
    end
    return any_isColliding_result1, var22
end
local function getCorners_upvr(arg1) -- Line 43, Named "getCorners"
    local AbsolutePosition = arg1.AbsolutePosition
    local AbsoluteSize_3 = arg1.AbsoluteSize
    local Rotation = arg1.Rotation
    return {
        topleft = AbsolutePosition + AbsoluteSize_3 / 2 - math.sqrt((AbsoluteSize_3.X / 2) ^ 2 + (AbsoluteSize_3.Y / 2) ^ 2) * Vector2.new(math.cos(math.rad(Rotation) + math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)), math.sin(math.rad(Rotation) + math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)));
        bottomleft = AbsolutePosition + AbsoluteSize_3 / 2 - math.sqrt((AbsoluteSize_3.X / 2) ^ 2 + (AbsoluteSize_3.Y / 2) ^ 2) * Vector2.new(math.cos(math.rad(Rotation) - math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)), math.sin(math.rad(Rotation) - math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)));
        topright = AbsolutePosition + AbsoluteSize_3 / 2 + math.sqrt((AbsoluteSize_3.X / 2) ^ 2 + (AbsoluteSize_3.Y / 2) ^ 2) * Vector2.new(math.cos(math.rad(Rotation) - math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)), math.sin(math.rad(Rotation) - math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)));
        bottomright = AbsolutePosition + AbsoluteSize_3 / 2 + math.sqrt((AbsoluteSize_3.X / 2) ^ 2 + (AbsoluteSize_3.Y / 2) ^ 2) * Vector2.new(math.cos(math.rad(Rotation) + math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)), math.sin(math.rad(Rotation) + math.atan2(AbsoluteSize_3.Y, AbsoluteSize_3.X)));
    }
end
local function checkCollisions_upvr(arg1, arg2) -- Line 62, Named "checkCollisions"
    --[[ Upvalues[2]:
        [1]: solidCollision_upvr (readonly)
        [2]: module_7_upvr (readonly)
    ]]
    if arg1.solid then
        local solidCollision_result1_2, solidCollision_result2 = solidCollision_upvr(arg2.i, arg1.i)
        if solidCollision_result1_2 then
            if arg2.t then
                for i, v in ipairs(arg2.t) do
                    if v.PlaybackState == Enum.PlaybackState.Playing then
                        v:Pause()
                        table.remove(arg2.t, i)
                    end
                end
            end
            arg2.i.Position = arg2.i.Position - UDim2.new(0, solidCollision_result2.x, 0, solidCollision_result2.y)
        end
    end
    if module_7_upvr.isColliding(arg2.i, arg1.i) then
        return true
    end
    return false
end
local function check_upvr(arg1, arg2, arg3) -- Line 85, Named "check"
    --[[ Upvalues[1]:
        [1]: checkCollisions_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local ipairs_result1_6, ipairs_result2_2, ipairs_result3 = ipairs(arg2)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [45] 33. Error Block 9 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [45] 33. Error Block 9 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 19 start (CF ANALYSIS FAILED)
    if arg3 then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [45.9]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [45.2147483650]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [45.10]
        if nil == nil then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if nil then
                -- KONSTANTWARNING: GOTO [45] #33
            end
            -- KONSTANTWARNING: GOTO [45] #33
        end
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil then
        end
    end
    -- KONSTANTERROR: [7] 6. Error Block 19 end (CF ANALYSIS FAILED)
end
local function _(arg1, arg2) -- Line 109, Named "inRange"
    local var47 = false
    if arg2.Min < arg1 then
        if arg1 >= arg2.Max then
            var47 = false
        else
            var47 = true
        end
    end
    return var47
end
function module_7_upvr.isInCore(arg1, arg2) -- Line 113
    --[[ Upvalues[1]:
        [1]: getCorners_upvr (readonly)
    ]]
    local var52 = false
    local var53
    if typeof(arg1) == "Instance" then
        if typeof(arg2) ~= "Instance" then
            var52 = false
        else
            var52 = true
        end
    end
    assert(var52, "argument must be an instance")
    if arg2.AbsoluteSize.x < arg1.AbsoluteSize.x or arg2.AbsoluteSize.y < arg1.AbsoluteSize.y then
        return false
    end
    local getCorners_result1 = getCorners_upvr(arg2)
    var53 = getCorners_result1[1]
    var53 = getCorners_result1[4].x
    local NumberRange_new_result1_2 = NumberRange.new(var53.x, var53)
    var53 = getCorners_result1[1].y
    local NumberRange_new_result1 = NumberRange.new(var53, getCorners_result1[2].y)
    var53 = 0
    for _, v_2 in ipairs(getCorners_upvr(arg1)) do
        local x = v_2.x
        local var61 = false
        if NumberRange_new_result1_2.Min < x then
            if x >= NumberRange_new_result1_2.Max then
                var61 = false
            else
                var61 = true
            end
        end
        if var61 then
            local y = v_2.y
            var61 = false
            local var63 = var61
            if NumberRange_new_result1.Min < y then
                if y >= NumberRange_new_result1.Max then
                    var63 = false
                else
                    var63 = true
                end
            end
            if var63 then
                var53 += 1
            end
        end
    end
    if var53 == 4 then
        return true
    end
    return false
end
function module_7_upvr.isColliding(arg1, arg2) -- Line 137
    --[[ Upvalues[2]:
        [1]: getCorners_upvr (readonly)
        [2]: intersects_upvr (readonly)
    ]]
    local var72
    if not typeof(arg1) == "Instance" or not typeof(arg2) == "Instance" then
        error("argument must be an instance")
        return
    end
    local AbsolutePosition_3 = arg1.AbsolutePosition
    local var74 = AbsolutePosition_3 + arg1.AbsoluteSize
    local AbsolutePosition_5 = arg2.AbsolutePosition
    local var76 = AbsolutePosition_5 + arg2.AbsoluteSize
    local getCorners_result1_2 = getCorners_upvr(arg2)
    local tbl_6 = {}
    var72 = {}
    var72.a = getCorners_result1_2.topleft
    var72.b = getCorners_result1_2.bottomleft
    tbl_6[1] = var72
    tbl_6[2] = {
        a = getCorners_result1_2.topleft;
        b = getCorners_result1_2.topright;
    }
    tbl_6[3] = {
        a = getCorners_result1_2.bottomleft;
        b = getCorners_result1_2.bottomright;
    }
    tbl_6[4] = {
        a = getCorners_result1_2.topright;
        b = getCorners_result1_2.bottomright;
    }
    var72 = 0
    for _, v_3 in pairs(getCorners_upvr(arg1)) do
        for _, v_4 in pairs(tbl_6) do
            if intersects_upvr(v_3, v_4) then
                var72 += 1
            end
        end
    end
    if var72 % 2 ~= 0 then
        return true
    end
    if AbsolutePosition_3.x < var76.x and AbsolutePosition_5.x < var74.x and AbsolutePosition_3.y < var76.y and AbsolutePosition_5.y < var74.y then
        return true
    end
    return false
end
function module_7_upvr.createCollisionGroup() -- Line 191
    --[[ Upvalues[2]:
        [1]: module_7_upvr (readonly)
        [2]: check_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({
        ColliderTouched = Instance.new("BindableEvent").Event;
    }, module_7_upvr)
    setmetatable_result1_upvr.colliders = {}
    setmetatable_result1_upvr.hitters = {}
    setmetatable_result1_upvr.hierarchy = false
    game:GetService("RunService").RenderStepped:Connect(function(arg1) -- Line 202
        --[[ Upvalues[2]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: check_upvr (copied, readonly)
        ]]
        for _, v_5_upvr in ipairs(setmetatable_result1_upvr.hitters) do
            local check_result1 = check_upvr(v_5_upvr, setmetatable_result1_upvr.colliders, setmetatable_result1_upvr.hierarchy)
            if check_result1 then
                local tbl_5 = {}
                for i_6, v_6 in ipairs(check_result1) do
                    if table.find(tbl_5, v_6) then
                        table.remove(check_result1, i_6)
                    else
                        table.insert(tbl_5, v_6)
                    end
                end
                v_5_upvr.i.CollidersTouched:Fire(check_result1)
                v_5_upvr.i.Colliding.Value = true
                return
            end
            v_5_upvr.i.Colliding.Value = false
            v_5_upvr.i.Colliding:GetPropertyChangedSignal("Value"):Connect(function() -- Line 224
                --[[ Upvalues[1]:
                    [1]: v_5_upvr (readonly)
                ]]
                if not v_5_upvr.i.Colliding.Value then
                    v_5_upvr.i.OnCollisionEnded:Fire()
                    return
                end
            end)
        end
    end)
    return setmetatable_result1_upvr
end
function module_7_upvr.setZIndexHierarchy(arg1, arg2) -- Line 236
    local var104
    if typeof(arg2) ~= "boolean" then
        var104 = false
    else
        var104 = true
    end
    assert(var104, "argument must be a boolean")
    arg1.hierarchy = true
end
function module_7_upvr.addHitter(arg1, arg2, arg3) -- Line 242
    local var105
    if typeof(arg2) ~= "Instance" then
        var105 = false
    else
        var105 = true
    end
    assert(var105, "argument must be an instance")
    var105 = "BindableEvent"
    local any = Instance.new(var105)
    var105 = "CollidersTouched"
    any.Name = var105
    any.Parent = arg2
    var105 = any:Clone()
    var105.Name = "OnCollisionEnded"
    var105.Parent = arg2
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = "Colliding"
    BoolValue.Value = false
    BoolValue.Parent = arg2
    local tbl_4 = {}
    tbl_4.i = arg2
    tbl_4.t = arg3
    table.insert(arg1.hitters, tbl_4)
    local module_5 = {
        index = #arg1.hitters;
    }
    module_5.instance = arg2
    return module_5
end
function module_7_upvr.updateHitter(arg1, arg2, arg3, arg4) -- Line 263
    -- KONSTANTERROR: [0] 1. Error Block 24 start (CF ANALYSIS FAILED)
    local var110
    if typeof(arg2) ~= "number" then
        var110 = false
    else
        var110 = true
    end
    assert(var110, "argument must be a table")
    if typeof(arg3) ~= "Instance" then
        var110 = false
        -- KONSTANTWARNING: GOTO [24] #19
    end
    -- KONSTANTERROR: [0] 1. Error Block 24 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [23] 18. Error Block 26 start (CF ANALYSIS FAILED)
    var110 = true
    assert(var110, "argument must be an instance")
    if typeof(arg4) ~= "table" then
        var110 = false
    else
        var110 = true
    end
    assert(var110, "argument must be a table")
    var110 = {}
    var110.i = arg3
    local var111 = arg4
    if not var111 then
        var111 = {}
    end
    var110.t = var111
    arg1.hitters[arg2] = var110
    local module_4 = {}
    module_4.index = arg2
    var110 = arg1.hitters[arg2].i
    module_4.instance = var110
    do
        return module_4
    end
    -- KONSTANTERROR: [23] 18. Error Block 26 end (CF ANALYSIS FAILED)
end
function module_7_upvr.getHitter(arg1, arg2) -- Line 273
    return arg1.hitters[arg2].i
end
function module_7_upvr.getHitterTweens(arg1, arg2) -- Line 277
    return arg1.hitters[arg2].t
end
function module_7_upvr.getHitters(arg1) -- Line 281
    local module_6 = {}
    for _, v_7 in ipairs(arg1.hitters) do
        table.insert(module_6, v_7.i)
    end
    return module_6
end
function module_7_upvr.removeHitter(arg1, arg2) -- Line 291
    table.remove(arg1.hitters, arg2)
end
function module_7_upvr.addCollider(arg1, arg2, arg3) -- Line 295
    local var121
    if typeof(arg2) ~= "Instance" then
        var121 = false
    else
        var121 = true
    end
    assert(var121, "argument must be an instance")
    if not arg1.colliders then
        arg1.colliders = {}
    end
    if arg3 then
        var121 = arg1.colliders
        local tbl_3 = {}
        tbl_3.i = arg2
        tbl_3.solid = true
        table.insert(var121, tbl_3)
    else
        var121 = arg1.colliders
        local tbl_2 = {}
        tbl_2.i = arg2
        table.insert(var121, tbl_2)
    end
    local module = {}
    var121 = #arg1.colliders
    module.index = var121
    module.instance = arg2
    module.solid = arg3
    return module
end
function module_7_upvr.updateCollider(arg1, arg2, arg3, arg4) -- Line 311
    -- KONSTANTERROR: [0] 1. Error Block 20 start (CF ANALYSIS FAILED)
    local var125
    if typeof(arg2) ~= "number" then
        var125 = false
    else
        var125 = true
    end
    assert(var125, "argument must be a table")
    if typeof(arg3) ~= "Instance" then
        var125 = false
        -- KONSTANTWARNING: GOTO [24] #19
    end
    -- KONSTANTERROR: [0] 1. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [23] 18. Error Block 22 start (CF ANALYSIS FAILED)
    var125 = true
    assert(var125, "argument must be an instance")
    if typeof(arg4) ~= "boolean" then
        var125 = false
    else
        var125 = true
    end
    assert(var125, "argument must be a boolean")
    var125 = {}
    var125.i = arg3
    var125.solid = arg4
    arg1.colliders[arg2] = var125
    local module_2 = {}
    module_2.index = arg2
    module_2.instance = arg1.colliders[arg2].i
    var125 = arg1.colliders[arg2].solid
    module_2[1] = var125
    do
        return module_2
    end
    -- KONSTANTERROR: [23] 18. Error Block 22 end (CF ANALYSIS FAILED)
end
function module_7_upvr.getColliders(arg1) -- Line 321
    local module_3 = {}
    for _, v_8 in ipairs(arg1.colliders) do
        table.insert(module_3, v_8.i)
    end
    return module_3
end
function module_7_upvr.removeCollider(arg1, arg2) -- Line 331
    table.remove(arg1.colliders, arg2)
end
return module_7_upvr
ModuleScript TeamService ReplicatedStorage.engine.utils.TeamService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:27
-- Luau version 6, Types version 3
-- Time taken: 0.013583 seconds

return {
    getTeamColorFromTeam = function(arg1, arg2) -- Line 3, Named "getTeamColorFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v in next, _G._references.Main.kits:GetChildren() do
                if v.Name ~= "Template" then
                    for _, v_2 in next, v:GetChildren() do
                        if v_2 then
                            local var27
                            if var27 == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                var27 = v_2.Home
                                if v_2:FindFirstChild(_G._references.Main.config.Stats[arg2]["Kit Type"].Value) then
                                    var27 = v_2[_G._references.Main.config.Stats[arg2]["Kit Type"].Value]
                                end
                                if var27:FindFirstChild("TeamColour") then
                                    return var27.TeamColour.Value
                                end
                            end
                        end
                    end
                end
            end
        end
    end;
    getTextColorFromTeam = function(arg1, arg2, arg3) -- Line 25, Named "getTextColorFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_3 in next, _G._references.Main.kits:GetChildren() do
                if v_3.Name ~= "Template" then
                    for _, v_4 in next, v_3:GetChildren() do
                        if v_4 then
                            local var40
                            if var40 == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                var40 = v_4.Home
                                if v_4:FindFirstChild(_G._references.Main.config.Stats[arg2]["Kit Type"].Value) then
                                    var40 = v_4[_G._references.Main.config.Stats[arg2]["Kit Type"].Value]
                                end
                                if arg3 and var40:FindFirstChild("GKTextColour") then
                                    return var40.GKTextColour.Value
                                end
                                if var40:FindFirstChild("TextColour") then
                                    return var40.TextColour.Value
                                end
                                return Color3.new(255, 255, 255)
                            end
                        end
                    end
                end
            end
        end
    end;
    getKitFromTeam = function(arg1, arg2) -- Line 53, Named "getKitFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_5 in next, _G._references.Main.kits:GetChildren() do
                if v_5.Name ~= "Template" then
                    for _, v_6 in next, v_5:GetChildren() do
                        if v_6 then
                            if string.lower(v_6.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                local Home = v_6.Home
                                if v_6:FindFirstChild(_G._references.Main.config.Stats[arg2]["Kit Type"].Value) then
                                    Home = v_6[_G._references.Main.config.Stats[arg2]["Kit Type"].Value]
                                end
                                return Home
                            end
                        end
                    end
                end
            end
        end
    end;
    getTeamFolderFromTeam = function(arg1, arg2) -- Line 73, Named "getTeamFolderFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_7 in next, _G._references.Main.kits:GetChildren() do
                if v_7.Name ~= "Template" then
                    for _, v_8 in next, v_7:GetChildren() do
                        if v_8 then
                            if string.lower(v_8.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                return v_8
                            end
                        end
                    end
                end
            end
        end
    end;
    getTeamNameFromTeam = function(arg1, arg2) -- Line 87, Named "getTeamNameFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_9 in next, _G._references.Main.kits:GetChildren() do
                if v_9.Name ~= "Template" then
                    for _, v_10 in next, v_9:GetChildren() do
                        if v_10 then
                            if string.lower(v_10.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                return v_10.Name
                            end
                        end
                    end
                end
            end
        end
    end;
    getAbbreviationFromTeam = function(arg1, arg2) -- Line 101, Named "getAbbreviationFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_11 in next, _G._references.Main.kits:GetChildren() do
                if v_11.Name ~= "Template" then
                    for _, v_12 in next, v_11:GetChildren() do
                        if v_12 then
                            if string.lower(v_12.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) and v_12:FindFirstChild("Abbreviation") then
                                return v_12.Abbreviation.Value
                            end
                        end
                    end
                end
            end
        end
    end;
    getKitTypesFromTeam = function(arg1, arg2) -- Line 115, Named "getKitTypesFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_13 in next, _G._references.Main.kits:GetChildren() do
                if v_13.Name ~= "Template" then
                    for _, v_14 in next, v_13:GetChildren() do
                        if v_14 then
                            if string.lower(v_14.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                local module = {"Home"}
                                for _, v_15 in next, v_14:GetChildren() do
                                    if v_15 and (v_15.Name == "Away" or v_15.Name == "Third") then
                                        table.insert(module, v_15.Name)
                                    end
                                end
                                return module
                            end
                        end
                    end
                end
            end
        end
    end;
    getLeagueFromTeam = function(arg1, arg2) -- Line 137, Named "getLeagueFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_16 in next, _G._references.Main.kits:GetChildren() do
                if v_16.Name ~= "Template" then
                    for _, v_17 in next, v_16:GetChildren() do
                        if v_17 then
                            if string.lower(v_17.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) then
                                return v_16.Name
                            end
                        end
                    end
                end
            end
        end
    end;
    getRegionFromTeam = function(arg1, arg2) -- Line 151, Named "getRegionFromTeam"
        if arg2 == "Home" or arg2 == "Away" then
            for _, v_18 in next, _G._references.Main.kits:GetChildren() do
                if v_18.Name ~= "Template" then
                    for _, v_19 in next, v_18:GetChildren() do
                        if v_19 then
                            if string.lower(v_19.Name) == string.lower(_G._references.Main.config.Stats[arg2].Team.Value) and v_18:GetAttribute("region") then
                                return v_18:GetAttribute("region")
                            end
                        end
                    end
                end
            end
        end
        return "Default"
    end;
}
ModuleScript Regions ReplicatedStorage.engine.utils.Regions
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:28
-- Luau version 6, Types version 3
-- Time taken: 0.002621 seconds

return game:GetService("HttpService"):JSONDecode("{\n \"AF\": \"Afghanistan\",\n \"AX\": \"Aland Islands\",\n \"AL\": \"Albania\",\n \"DZ\": \"Algeria\",\n \"AS\": \"American Samoa\",\n \"AD\": \"Andorra\",\n \"AO\": \"Angola\",\n \"AI\": \"Anguilla\",\n \"AQ\": \"Antarctica\",\n \"AG\": \"Antigua And Barbuda\",\n \"AR\": \"Argentina\",\n \"AM\": \"Armenia\",\n \"AW\": \"Aruba\",\n \"AU\": \"Australia\",\n \"AT\": \"Austria\",\n \"AZ\": \"Azerbaijan\",\n \"BS\": \"Bahamas\",\n \"BH\": \"Bahrain\",\n \"BD\": \"Bangladesh\",\n \"BB\": \"Barbados\",\n \"BY\": \"Belarus\",\n \"BE\": \"Belgium\",\n \"BZ\": \"Belize\",\n \"BJ\": \"Benin\",\n \"BM\": \"Bermuda\",\n \"BT\": \"Bhutan\",\n \"BO\": \"Bolivia\",\n \"BA\": \"Bosnia And Herzegovina\",\n \"BW\": \"Botswana\",\n \"BV\": \"Bouvet Island\",\n \"BR\": \"Brazil\",\n \"IO\": \"British Indian Ocean Territory\",\n \"BN\": \"Brunei Darussalam\",\n \"BG\": \"Bulgaria\",\n \"BF\": \"Burkina Faso\",\n \"BI\": \"Burundi\",\n \"KH\": \"Cambodia\",\n \"CM\": \"Cameroon\",\n \"CA\": \"Canada\",\n \"CV\": \"Cape Verde\",\n \"KY\": \"Cayman Islands\",\n \"CF\": \"Central African Republic\",\n \"TD\": \"Chad\",\n \"CL\": \"Chile\",\n \"CN\": \"China\",\n \"CX\": \"Christmas Island\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CO\": \"Colombia\",\n \"KM\": \"Comoros\",\n \"CG\": \"Congo\",\n \"CD\": \"Congo, Democratic Republic\",\n \"CK\": \"Cook Islands\",\n \"CR\": \"Costa Rica\",\n \"CI\": \"Cote D\\\"Ivoire\",\n \"HR\": \"Croatia\",\n \"CU\": \"Cuba\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DK\": \"Denmark\",\n \"DJ\": \"Djibouti\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"EC\": \"Ecuador\",\n \"EG\": \"Egypt\",\n \"SV\": \"El Salvador\",\n \"GQ\": \"Equatorial Guinea\",\n \"ER\": \"Eritrea\",\n \"EE\": \"Estonia\",\n \"ET\": \"Ethiopia\",\n \"FK\": \"Falkland Islands (Malvinas)\",\n \"FO\": \"Faroe Islands\",\n \"FJ\": \"Fiji\",\n \"FI\": \"Finland\",\n \"FR\": \"France\",\n \"GF\": \"French Guiana\",\n \"PF\": \"French Polynesia\",\n \"TF\": \"French Southern Territories\",\n \"GA\": \"Gabon\",\n \"GM\": \"Gambia\",\n \"GE\": \"Georgia\",\n \"DE\": \"Germany\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GR\": \"Greece\",\n \"GL\": \"Greenland\",\n \"GD\": \"Grenada\",\n \"GP\": \"Guadeloupe\",\n \"GU\": \"Guam\",\n \"GT\": \"Guatemala\",\n \"GG\": \"Guernsey\",\n \"GN\": \"Guinea\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HT\": \"Haiti\",\n \"HM\": \"Heard Island & Mcdonald Islands\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"HN\": \"Honduras\",\n \"HK\": \"Hong Kong\",\n \"HU\": \"Hungary\",\n \"IS\": \"Iceland\",\n \"IN\": \"India\",\n \"ID\": \"Indonesia\",\n \"IR\": \"Iran, Islamic Republic Of\",\n \"IQ\": \"Iraq\",\n \"IE\": \"Ireland\",\n \"IM\": \"Isle Of Man\",\n \"IL\": \"Israel\",\n \"IT\": \"Italy\",\n \"JM\": \"Jamaica\",\n \"JP\": \"Japan\",\n \"JE\": \"Jersey\",\n \"JO\": \"Jordan\",\n \"KZ\": \"Kazakhstan\",\n \"KE\": \"Kenya\",\n \"KI\": \"Kiribati\",\n \"KR\": \"Korea\",\n \"KP\": \"North Korea\",\n \"KW\": \"Kuwait\",\n \"KG\": \"Kyrgyzstan\",\n \"LA\": \"Lao People\\\"s Democratic Republic\",\n \"LV\": \"Latvia\",\n \"LB\": \"Lebanon\",\n \"LS\": \"Lesotho\",\n \"LR\": \"Liberia\",\n \"LY\": \"Libyan Arab Jamahiriya\",\n \"LI\": \"Liechtenstein\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"MO\": \"Macao\",\n \"MK\": \"Macedonia\",\n \"MG\": \"Madagascar\",\n \"MW\": \"Malawi\",\n \"MY\": \"Malaysia\",\n \"MV\": \"Maldives\",\n \"ML\": \"Mali\",\n \"MT\": \"Malta\",\n \"MH\": \"Marshall Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MU\": \"Mauritius\",\n \"YT\": \"Mayotte\",\n \"MX\": \"Mexico\",\n \"FM\": \"Micronesia, Federated States Of\",\n \"MD\": \"Moldova\",\n \"MC\": \"Monaco\",\n \"MN\": \"Mongolia\",\n \"ME\": \"Montenegro\",\n \"MS\": \"Montserrat\",\n \"MA\": \"Morocco\",\n \"MZ\": \"Mozambique\",\n \"MM\": \"Myanmar\",\n \"NA\": \"Namibia\",\n \"NR\": \"Nauru\",\n \"NP\": \"Nepal\",\n \"NL\": \"Netherlands\",\n \"AN\": \"Netherlands Antilles\",\n \"NC\": \"New Caledonia\",\n \"NZ\": \"New Zealand\",\n \"NI\": \"Nicaragua\",\n \"NU\": \"Niue\",\n \"NF\": \"Norfolk Island\",\n \"MP\": \"Northern Mariana Islands\",\n \"NO\": \"Norway\",\n \"OM\": \"Oman\",\n \"PK\": \"Pakistan\",\n \"PW\": \"Palau\",\n \"PS\": \"Palestinian Territory, Occupied\",\n \"PA\": \"Panama\",\n \"PG\": \"Papua New Guinea\",\n \"PY\": \"Paraguay\",\n \"PE\": \"Peru\",\n \"PH\": \"Philippines\",\n \"PN\": \"Pitcairn\",\n \"PL\": \"Poland\",\n \"PT\": \"Portugal\",\n \"PR\": \"Puerto Rico\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RU\": \"Russian Federation\",\n \"RW\": \"Rwanda\",\n \"BL\": \"Saint Barthelemy\",\n \"SH\": \"Saint Helena\",\n \"KN\": \"Saint Kitts And Nevis\",\n \"LC\": \"Saint Lucia\",\n \"MF\": \"Saint Martin\",\n \"PM\": \"Saint Pierre And Miquelon\",\n \"VC\": \"Saint Vincent And Grenadines\",\n \"WS\": \"Samoa\",\n \"SM\": \"San Marino\",\n \"ST\": \"Sao Tome And Principe\",\n \"SA\": \"Saudi Arabia\",\n \"SN\": \"Senegal\",\n \"RS\": \"Serbia\",\n \"SC\": \"Seychelles\",\n \"SL\": \"Sierra Leone\",\n \"SG\": \"Singapore\",\n \"SK\": \"Slovakia\",\n \"SI\": \"Slovenia\",\n \"SB\": \"Solomon Islands\",\n \"SO\": \"Somalia\",\n \"ZA\": \"South Africa\",\n \"GS\": \"South Georgia And Sandwich Isl.\",\n \"ES\": \"Spain\",\n \"LK\": \"Sri Lanka\",\n \"SD\": \"Sudan\",\n \"SR\": \"Suriname\",\n \"SJ\": \"Svalbard And Jan Mayen\",\n \"SZ\": \"Swaziland\",\n \"SE\": \"Sweden\",\n \"CH\": \"Switzerland\",\n \"SY\": \"Syrian Arab Republic\",\n \"TW\": \"Taiwan\",\n \"TJ\": \"Tajikistan\",\n \"TZ\": \"Tanzania\",\n \"TH\": \"Thailand\",\n \"TL\": \"Timor-Leste\",\n \"TG\": \"Togo\",\n \"TK\": \"Tokelau\",\n \"TO\": \"Tonga\",\n \"TT\": \"Trinidad And Tobago\",\n \"TN\": \"Tunisia\",\n \"TR\": \"Turkey\",\n \"TM\": \"Turkmenistan\",\n \"TC\": \"Turks And Caicos Islands\",\n \"TV\": \"Tuvalu\",\n \"UG\": \"Uganda\",\n \"UA\": \"Ukraine\",\n \"AE\": \"United Arab Emirates\",\n \"GB\": \"United Kingdom\",\n \"US\": \"United States\",\n \"UM\": \"United States Outlying Islands\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VU\": \"Vanuatu\",\n \"VE\": \"Venezuela\",\n \"VN\": \"Vietnam\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"WF\": \"Wallis And Futuna\",\n \"EH\": \"Western Sahara\",\n \"YE\": \"Yemen\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\"\n}")
ModuleScript FormatNumber ReplicatedStorage.engine.utils.FormatNumber
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:29
-- Luau version 6, Types version 3
-- Time taken: 0.004441 seconds

local module_upvr = {}
local tbl_upvr = {'k', 'm', 'b', 't', "qa", "qi", "sx", "sp", 'o', 'n', 'd'}
function module_upvr.FormatShort(arg1) -- Line 4
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local absolute = math.abs(arg1)
    if absolute < 1000 then
        return tostring(arg1)
    end
    for i, v in pairs(tbl_upvr) do
        if 10 ^ (3 * i) <= absolute then
            local var20 = 10
            if absolute < var20 ^ (3 * (i + 1)) then
                if arg1 < 0 then
                    var20 = '-'
                else
                    var20 = ""
                end
                return var20..tostring(math.floor(absolute / 10 ^ (3 * i) * 10) / 10)..v
            end
        end
    end
    return module_upvr.FormatLong(arg1)
end
function module_upvr.FormatLong(arg1) -- Line 18
    local var21
    if math.abs(arg1) < var21 then
        var21 = arg1
        return tostring(var21)
    end
    if arg1 < 0 then
        var21 = '-'
    else
        var21 = ""
    end
    local var22 = var21..tostring(math.abs(math.floor(arg1))):reverse():gsub("%d%d%d", "%1,"):gsub(",$", ""):reverse()
    var21 = math.floor(arg1)
    if arg1 ~= var21 then
        var21 = var22
        var22 = var21..'.'..tostring(arg1):match("%d+.$")
    end
    return var22
end
function module_upvr.FormatDecimal(arg1, arg2) -- Line 30
    return string.format("%."..(arg2 or 0)..'f', arg1)
end
function module_upvr.FormatZero(arg1) -- Line 34
    if arg1 < 10 then
        return '0'..tostring(arg1)
    end
    return tostring(arg1)
end
return module_upvr
ModuleScript BulkFade ReplicatedStorage.engine.utils.BulkFade
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:31
-- Luau version 6, Types version 3
-- Time taken: 0.009653 seconds

local tbl_upvr = {
    ImageButton = true;
    ImageLabel = true;
    ViewportFrame = true;
}
local tbl_2_upvr = {
    TextLabel = true;
    TextButton = true;
    TextBox = true;
}
local tbl_upvr_2 = {
    ScrollingFrame = true;
}
local function _(arg1, arg2) -- Line 43, Named "getAttributesAtValue"
    local module_2 = {}
    for i in pairs(arg1) do
        module_2[i] = arg2
    end
    return module_2
end
local TweenService_upvr = game:GetService("TweenService")
local TweenInfo_new_result1_upvr = TweenInfo.new(1, Enum.EasingStyle.Cubic)
local function addElement_upvr(arg1, arg2, arg3) -- Line 51, Named "addElement"
    --[[ Upvalues[5]:
        [1]: TweenService_upvr (readonly)
        [2]: TweenInfo_new_result1_upvr (readonly)
        [3]: tbl_upvr (readonly)
        [4]: tbl_2_upvr (readonly)
        [5]: tbl_upvr_2 (readonly)
    ]]
    local tbl = {}
    if arg2:IsA("UIStroke") then
        tbl.Transparency = arg2.Transparency
        table.insert(arg1.UiElements, arg2)
        local var15 = arg3
        if not var15 then
            var15 = TweenInfo_new_result1_upvr
        end
        arg1.AppearTweens[arg2] = TweenService_upvr:Create(arg2, var15, tbl)
        var15 = arg3
        local var16 = var15
        if not var16 then
            var16 = TweenInfo_new_result1_upvr
        end
        arg1.DisappearTweens[arg2] = TweenService_upvr:Create(arg2, var16, {
            Transparency = 1;
        })
    else
        if not arg2:IsA("GuiObject") then return end
        tbl.BackgroundTransparency = arg2.BackgroundTransparency
        if tbl_upvr[arg2.ClassName] then
            tbl.ImageTransparency = arg2.ImageTransparency
        end
        if tbl_2_upvr[arg2.ClassName] then
            tbl.TextTransparency = arg2.TextTransparency
            tbl.TextStrokeTransparency = arg2.TextStrokeTransparency
        end
        if tbl_upvr_2[arg2.ClassName] then
            tbl.ScrollBarImageTransparency = arg2.ScrollBarImageTransparency
        end
        table.insert(arg1.UiElements, arg2)
        var16 = arg3
        local var18 = var16
        if not var18 then
            var18 = TweenInfo_new_result1_upvr
        end
        arg1.AppearTweens[arg2] = TweenService_upvr:Create(arg2, var18, tbl)
        var18 = arg3
        local var19 = var18
        if not var19 then
            var19 = TweenInfo_new_result1_upvr
        end
        for i_5 in pairs(tbl) do
            ({})[i_5] = 1
            local var24
        end
        arg1.DisappearTweens[arg2] = TweenService_upvr:Create(arg2, var19, var24)
    end
end
local function _(arg1, arg2) -- Line 80, Named "removeElement"
    table.remove(arg1.UiElements, arg2)
    arg1.AppearTweens[arg2] = nil
    arg1.DisappearTweens[arg2] = nil
end
local module_upvr = {}
module_upvr.__index = module_upvr
module_upvr.TweenIn = module_upvr.FadeIn
module_upvr.TweenOut = module_upvr.FadeOut
function module_upvr.CreateGroup(arg1, arg2) -- Line 97
    --[[ Upvalues[2]:
        [1]: addElement_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local module = {
        Faded = false;
        Tweening = false;
        UiElements = {};
        AppearTweens = {};
        DisappearTweens = {};
    }
    module.TweenConfig = arg2
    for _, v in ipairs(arg1) do
        addElement_upvr(module, v, arg2)
    end
    return setmetatable(module, module_upvr)
end
function module_upvr.FadeIn(arg1) -- Line 114
    arg1.Faded = true
    arg1.Tweening = true
    for _, v_2 in pairs(arg1.AppearTweens) do
        v_2:Play()
    end
    task.delay(arg1.TweenConfig.Time, function() -- Line 120
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.Tweening then
            arg1.Tweening = false
        end
    end)
end
function module_upvr.FadeOut(arg1) -- Line 128
    arg1.Faded = false
    arg1.Tweening = true
    for _, v_3 in pairs(arg1.DisappearTweens) do
        v_3:Play()
    end
    task.delay(arg1.TweenConfig.Time, function() -- Line 134
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.Tweening then
            arg1.Tweening = false
        end
    end)
end
function module_upvr.Fade(arg1) -- Line 141
    if arg1.Faded then
        arg1:FadeOut()
    else
        arg1:FadeIn()
    end
end
function module_upvr.UpdateGroup(arg1, arg2) -- Line 149
    --[[ Upvalues[1]:
        [1]: addElement_upvr (readonly)
    ]]
    task.spawn(function() -- Line 150
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
            [3]: addElement_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: Failed to generate AST for unnamed function:
assertion failed!
Traceback:
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K

    end)
end
function module_upvr.GetElements(arg1) -- Line 172
    return arg1.UiElements
end
return module_upvr
ModuleScript Blacklist ReplicatedStorage.engine.utils.Blacklist
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:32
-- Luau version 6, Types version 3
-- Time taken: 0.000775 seconds

return {
    users = {1056227705, 4252321119, 101121556, 451659915, 1025293008, 37156558, 955441885, 350559676, 160641960, 74382858, 5394933147, 5395101065, 110172890, 25407884, 173590717, 1658569508, 83118802, 1251213823, 1804534728, 5668655972, 2981119554, 651315671, 4923907192, 1587641269, 1081630774, 5685695176};
    groups = {2702435};
}
ModuleScript PartToRegion3 ReplicatedStorage.engine.utils.PartToRegion3
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:34
-- Luau version 6, Types version 3
-- Time taken: 0.001920 seconds

return {
    _get = function(arg1, arg2) -- Line 2, Named "_get"
        local abs = math.abs
        local X = arg2.X
        local Y = arg2.Y
        local Z = arg2.Z
        local any_components_result1, any_components_result2, any_components_result3, any_components_result4, any_components_result5, any_components_result6, any_components_result7, any_components_result8, any_components_result9, any_components_result10, any_components_result11, any_components_result12 = arg1:components()
        local var18 = 0.5 * (abs(any_components_result4) * X + abs(any_components_result5) * Y + abs(any_components_result6) * Z)
        local var19 = 0.5 * (abs(any_components_result7) * X + abs(any_components_result8) * Y + abs(any_components_result9) * Z)
        local var20 = 0.5 * (abs(any_components_result10) * X + abs(any_components_result11) * Y + abs(any_components_result12) * Z)
        return Region3.new(Vector3.new(any_components_result1 - var18, any_components_result2 - var19, any_components_result3 - var20), Vector3.new(any_components_result1 + var18, any_components_result2 + var19, any_components_result3 + var20))
    end;
}
ModuleScript Whitelist ReplicatedStorage.engine.utils.Whitelist
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:35
-- Luau version 6, Types version 3
-- Time taken: 0.005541 seconds

return {2731804921, 1908891988, 423168665, 1362265087, 111767931, 509181624, 41607115, 446994904, 197311035, 1000847646, 299461593, 93227546, 3255856431, 1597933495, 307485369, 1303936950, 341741282, 452817166, 360605776, 3797779449, 1592540491, 4302294889, 2067807049, 23613849, 206130108, 3854019298, 4901, 74426352, 3251660127, 1332885367, 2034763232, 95352198, 157265504, 51309635, 30786537, 1299393111, 848861090, 3199110608, 44489748, 3318255627, 5097179173, 523485599, 533554286, 1666506809, 2679165528, 1511210740, 1835142545, 1118956711, 1068498060, 355821765, 594588203, 396571479, 1850098653, 254537817, 1864343129, 204038, 121466290, 347459096, 38734421, 159277206, 13872064, 1148127638, 620852347, 60598534, 484602048, 1996105554, 1448487633, 312059250, 605094285, 1421690239, 199585920, 215270712, 261427725, 6355255, 9318104, 342829100, 223514745, 932675094, 871711320, 30926698, 46117833, 560298806, 96811022, 3161029395, 2387528616, 469383574, 1328036053, 1441528758, 387032714, 4183461363, 632590172, 685617545, 73890916, 2285767528, 4352196409, 3170503957, 239553121, 1384958505, 4092743662, 1051307100, 697214652, 1332299377, 2235147450, 85464637, 1641263221, 1305895505, 1321549475, 5119152233, 1374983284, 839156243, 200344976, 117356367, 56595872, 301817096, 163782162, 3203649514, 2214947130, 96574021, 287881588, 148125725, 805583912, 920388542, 76564976, 24966933, 2689243664, 1133649687, 871711320, 491119602, 3203649514, 371351393, 3222988378, 4481039894, 40545405, 41840059, 1528529258, 3121954352, 112905203, 104231782, 2040808745, 2452552782, 126868490, 83118802, 1887690468, 382618590, 92333450, 255909487, 168097888, 464193287, 4522930297, 4647901787, 1596378562, 2033653631, 111646191, 322596360, 564939, 319130068, 1564738834, 70697358, 721304001, 1214420539, 445452972, 298378127, 1102624604, 3134634063, 1218224520, 1637989549, 72332418, 124287517, 1071554906, 4028649570, 1102683102, 369082358, 84376389, 113951638, 2844523026, 544094141, 2393820200, 2436090039, 742799848, 125823026, 2896112991, 5155695373, 707519272, 38739585333, 1072465942, 138376765, 1919335521, 686409871, 74050714, 39335975, 477532821, 1369717751, 134302790, 195590119, 323067848, 503492589, 2835668856, 4069241411, 5212700718, 275247228, 109529548, 2605325162, 72511014, 50535755, 924060721, 134302790, 73890916, 1643607977, 98508437, 16112202682, 529895862, 1014844209, 57573753, 654801009, 1611220682, 3133211845, 793830058, 808707092, 5162818523, 1415847630, 3079636767, 131550678, 37366891, 582315597, 337826278, 40935648, 5033162823, 2543173988, 1515956039, 1940686389, 1166419362, 123684844, 335976048, 375248897, 793830058, 680956234, 326461849, 123684844, 493454286, 73713764, 2526409996, 147031048, 65748957, 120821610, 1405551775, 1475491013, 147268257, 2565675100, 3979048577, 2562837003, 2526409996, 1379395005, 3540171937, 2750937554, 1211846519, 108921612, 4014411240, 2209152775, 202903251, 35558793, 1057065850, 1944072676, 445993098, 815879452, 20074076, 917360100, 136934, 4662433585, 449090600, 2345662729, 96484540, 2601025704, 5243280499, 829473259, 3469881367, 4565920404, 370524987, 5462780063, 4186834646, 3588035995, 1941356653, 1656813451, 2788219855, 345549765, 1640788941, 59060820, 2349936841, 1881322294, 366202351, 1615259940, 456812556, 200447898, 4327385379, 212515622, 1081319482, 1471824901, 1886145306, 104362044, 1899637865, 3326544875, 4246361892, 3326544875, 2409860688, 1825587458, 494428229, 336249263, 8248895, 4498206534, 2809508090, 1336907125, 5280186073, 1321418068, 104362044, 197739900, 1581970914, 4776340957, 1201733135, 1811040418, 1691446426, 1599015919, 156920011, 2312228701, 43162112, 786279176, 1340211370, 98261647, 1820123520, 1733215112, 4092743662, 36904066, 1346734999, 1949387659, 2308443304, 65900027, 13940463, 135546500, 2000142932, 13940463, 963781322, 183453669, 2301195972, 1918616933, 2016877537, 89754179, 43937559, 4979360607, 3559927451, 2039661022, 292135188, 950933122, 3125925479, 2462437726, 623714014, 327429305, 2670070741, 1195825496, 117947862, 333106059, 86038660, 393635564, 2646798297, 210718549, 246213069, 1425365274, 169530415, 2846920904, 3200306885, 220456332, 10210691, 15010699, 291820, 1899897680, 1637606062, 1296922653, 211153975, 1691864635, 134236959, 677939844, 114834624, 3182304490, 2300803129, 60642460, 63390475, 4379812811, 1963733388, 107923435, 184297807, 90792365, 34448274, 541932636, 837617, 1216759533, 111729984, 2822383268, 1820541405, 632590827, 3985958202, 29491076, 30331483, 71430859, 4309522839, 138608158, 1600924159, 2119303, 173193370, 125413287, 1214557337, 64786025, 29833156, 1133525348, 325015357, 72332210, 2017259636, 1133525348, 2056316143, 2237275251, 2467156757, 3452112090, 4955712808, 4441909897, 504904789, 1215311952, 1127173721, 2724471685, 3881807990, 3794176561, 856476337, 1278726239, 798201246, 15904777, 71319784, 1134878382, 2431853400, 1984998615, 1578329137, 983672956, 1993259360, 4527467077, 3139600040, 721467746, 4464333094, 4464333285, 71165145, 34209320, 61178069, 112946869, 119622240, 1150417329, 156035668, 104144813, 635292343, 543631910, 510689632, 845312395, 956639249, 355407455, 74085892, 373447102, 516195011, 51067999, 679815091, 651635911, 191254588, 138939855, 2252772773, 30280944, 1729111197, 1073148459, 1878419184, 1362762640, 1110896348, 178911095, 1098693605, 435597839, 47913023, 25348573, 88756147, 174197714, 1826091421, 2660886404, 2698009380, 3662710014, 1264112636, 4228376437, 6093662482, 4684817647, 4880539230, 3540328466, 6002803042, 604103186, 4907217754, 1432457397, 341206540, 6177337959, 925872199, 2428197269, 8818419, 3376787745, 4880539230, 1844454366, 256107542, 99576949, 4160744316, 3362796780, 1041608486, 199834259, 860836080, 596543819, 3273053617, 247269966, 290928547, 6048778329}
ModuleScript Monetization ReplicatedStorage.engine.utils.Monetization
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:36
-- Luau version 6, Types version 3
-- Time taken: 0.005395 seconds

local module = {
    gamePasses = {
        ["2x Points"] = {
            gamePassName = "Double Points";
            gamePassDescription = "Earn double the amount of points!";
            gamePassId = 688828432;
        };
        ["2x XP"] = {
            gamePassName = "Double XP";
            gamePassDescription = "Earn double the amount of XP!";
            gamePassId = 688893453;
        };
        ["2x Stamina"] = {
            gamePassName = "Endurance";
            gamePassDescription = "Double the lung capacity means double the stamina!";
            gamePassId = 689086094;
        };
        ["Pitch Teleporter"] = {
            gamePassName = "Pitch Teleporter";
            gamePassDescription = "Instantly teleport to the pitch!";
            gamePassId = 689034149;
        };
        ["Infinite Stamina"] = {
            gamePassName = "Infinite Stamina";
            gamePassDescription = "Never run out of stamina!";
            gamePassId = 689291787;
        };
        ["Kit Creator"] = {
            gamePassName = "Kit Creator";
            gamePassDescription = "Create a custom team and kit to use in-game!";
            gamePassId = 729947382;
        };
        ["Private Training"] = {
            gamePassName = "Private Training";
            gamePassDescription = "Create your own training pitch server!";
            gamePassId = 730467301;
        };
        Captain = {
            gamePassName = "Captain";
            gamePassDescription = "Double your chance of being a team captain in-game!";
            gamePassId = 738547705;
        };
    };
}
local tbl_5 = {}
local tbl_3 = {
    productName = "500 RF Points";
    productDescription = "Adds 500 RF points to your account.";
    productId = 1731951913;
}
local function onPurchaseGranted(arg1, arg2) -- Line 50
    local Cash_4 = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
    Cash_4.Value += 500
    return true
end
tbl_3.onPurchaseGranted = onPurchaseGranted
tbl_5["500 RF Points"] = tbl_3
local tbl_2 = {
    productName = "1,000 RF Points";
    productDescription = "Adds 1,000 RF points to your account.";
    productId = 1731952730;
}
local function onPurchaseGranted(arg1, arg2) -- Line 62
    local Cash_2 = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
    Cash_2.Value += 1000
    return true
end
tbl_2.onPurchaseGranted = onPurchaseGranted
tbl_5["1,000 RF Points"] = tbl_2
local tbl = {
    productName = "2,500 RF Points";
    productDescription = "Adds 2,500 RF points to your account.";
    productId = 1731953327;
}
local function onPurchaseGranted(arg1, arg2) -- Line 74
    local Cash = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
    Cash.Value += 2500
    return true
end
tbl.onPurchaseGranted = onPurchaseGranted
tbl_5["2,500 RF Points"] = tbl
local tbl_6 = {
    productName = "5,000 RF Points";
    productDescription = "Adds 5,000 RF points to your account.";
    productId = 1731953835;
}
local function onPurchaseGranted(arg1, arg2) -- Line 86
    local Cash_5 = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
    Cash_5.Value += 5000
    return true
end
tbl_6.onPurchaseGranted = onPurchaseGranted
tbl_5["5,000 RF Points"] = tbl_6
local tbl_4 = {
    productName = "7,500 RF Points";
    productDescription = "Adds 7,500 RF points to your account.";
    productId = 1731954048;
}
local function onPurchaseGranted(arg1, arg2) -- Line 98
    local Cash_6 = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
    Cash_6.Value += 7500
    return true
end
tbl_4.onPurchaseGranted = onPurchaseGranted
tbl_5["7,500 RF Points"] = tbl_4
tbl_5["10,000 RF Points"] = {
    productName = "10,000 RF Points";
    productDescription = "Adds 10,000 RF points to your account.";
    productId = 1731954391;
    onPurchaseGranted = function(arg1, arg2) -- Line 110, Named "onPurchaseGranted"
        local Cash_3 = _G._references.Profiles[tostring(arg2.UserId)].stats.Cash
        Cash_3.Value += 10000
        return true
    end;
}
module.developerProducts = tbl_5
function module.userOwnsPass(arg1, arg2) -- Line 118
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 119
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        return _G._services.MarketPlaceService:UserOwnsGamePassAsync(arg1.UserId, arg2)
    end)
    if not pcall_result1_2 then
        warn("Monetization.userOwnsPass | an unexpected error occured while running :UserOwnsGamePassAsync(), retrying")
        local pcall_result1, pcall_result2 = pcall(function() -- Line 125
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            return _G._services.MarketPlaceService:UserOwnsGamePassAsync(arg1.UserId, arg2)
        end)
        pcall_result1_2 = pcall_result1
    end
    if not pcall_result1_2 then
        warn(string.format("Monetization.userOwnsPass | an unexpected error occured while running :UserOwnsGamePassAsync() [%s]", pcall_result2))
        return false
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return pcall_result2
end
return module
ModuleScript CanvasSize ReplicatedStorage.engine.utils.CanvasSize
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:37
-- Luau version 6, Types version 3
-- Time taken: 0.006059 seconds

return {
    resizeRow = function(arg1, arg2, arg3) -- Line 3, Named "resizeRow"
        assert(arg2, string.format("CanvasSize [resizeRow] | UIObject 'frame' expected, got %s", typeof(arg2)))
        assert(arg3, string.format("CanvasSize [resizeRow] | integer 'scale' expected, got %s", typeof(arg3)))
        assert(arg2:FindFirstChildWhichIsA("UIListLayout"), "CanvasSize [resizeRow] | unable to find UIListLayout object in frame!")
        local var8
        for _, v in next, arg2:GetChildren() do
            if v:IsA("Frame") or v:IsA("ScrollingFrame") or v:IsA("ImageLabel") then
                var8 = UDim2.new(0, var8.X.Offset + arg2:FindFirstChildWhichIsA("UIListLayout").Padding.Offset + v.AbsoluteSize.X / arg3, 0, 0)
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var8 = UDim2.new(0, var8.X.Offset - arg2:FindFirstChildWhichIsA("UIListLayout").Padding.Offset + 8 * arg3, 0, 0)
        return var8
    end;
    resizeList = function(arg1, arg2, arg3) -- Line 21, Named "resizeList"
        assert(arg2, string.format("CanvasSize [resizeList] | UIObject 'frame' expected, got %s", typeof(arg2)))
        assert(arg3, string.format("CanvasSize [resizeList] | integer 'scale' expected, got %s", typeof(arg3)))
        assert(arg2:FindFirstChildWhichIsA("UIListLayout"), "CanvasSize [resizeList] | unable to find UIListLayout object in frame!")
        local var15
        for _, v_2 in next, arg2:GetChildren() do
            if v_2:IsA("Frame") or v_2:IsA("ScrollingFrame") or v_2:IsA("ImageLabel") then
                var15 = UDim2.new(0, 0, 0, var15.Y.Offset + arg2:FindFirstChildWhichIsA("UIListLayout").Padding.Offset + v_2.AbsoluteSize.Y / arg3)
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var15 = UDim2.new(0, 0, 0, var15.Y.Offset - arg2:FindFirstChildWhichIsA("UIListLayout").Padding.Offset + 8 * arg3)
        return var15
    end;
    resizeGrid = function(arg1, arg2, arg3) -- Line 39, Named "resizeGrid"
        assert(arg2, string.format("CanvasSize [resizeGrid] | UIObject 'frame' expected, got %s", typeof(arg2)))
        assert(arg3, string.format("CanvasSize [resizeGrid] | integer 'cellsPerRow' expected, got %s", typeof(arg3)))
        assert(arg2:FindFirstChildWhichIsA("UIGridLayout"), "CanvasSize [resizeGrid] | unable to find UIGridLayout object in frame!")
        local class_UIGridLayout = arg2:FindFirstChildWhichIsA("UIGridLayout")
        local udim2 = UDim2.new(0, 0, 0, 0)
        for _, v_3 in next, arg2:GetChildren() do
            if v_3:IsA("Frame") or v_3:IsA("ScrollingFrame") or v_3:IsA("ImageLabel") then
                table.insert({}, v_3)
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        for _ = 1, #{} / arg3 do
            udim2 = UDim2.new(0, 0, 0, udim2.Y.Offset + class_UIGridLayout.CellSize.Y.Offset + class_UIGridLayout.CellPadding.Y.Offset)
        end
        udim2 = UDim2.new(0, 0, 0, udim2.Y.Offset - class_UIGridLayout.CellPadding.Y.Offset + 4)
        return udim2
    end;
}
ModuleScript GamePassWhitelist ReplicatedStorage.engine.utils.GamePassWhitelist
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:39
-- Luau version 6, Types version 3
-- Time taken: 0.000508 seconds

return {206130108, 423168665, 848861090, 360605776, 307485369, 1908891988, 299461593, 2731804921, 5752714906, 2237275251, 697214652, 5113313321, 7236171458, 594588203, 2685537824, 10321944}
ModuleScript TextAnimatorService ReplicatedStorage.engine.utils.TextAnimatorService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:40
-- Luau version 6, Types version 3
-- Time taken: 0.002921 seconds

local var1_upvw
local module = {}
local LocalizationService_upvr = game:GetService("LocalizationService")
local Players_upvr = game:GetService("Players")
function module.loadTranslator() -- Line 9
    --[[ Upvalues[3]:
        [1]: var1_upvw (read and write)
        [2]: LocalizationService_upvr (readonly)
        [3]: Players_upvr (readonly)
    ]]
    pcall(function() -- Line 10
        --[[ Upvalues[3]:
            [1]: var1_upvw (copied, read and write)
            [2]: LocalizationService_upvr (copied, readonly)
            [3]: Players_upvr (copied, readonly)
        ]]
        var1_upvw = LocalizationService_upvr:GetTranslatorForPlayerAsync(Players_upvr.LocalPlayer)
    end)
    if not var1_upvw then
        pcall(function() -- Line 14
            --[[ Upvalues[2]:
                [1]: var1_upvw (copied, read and write)
                [2]: LocalizationService_upvr (copied, readonly)
            ]]
            var1_upvw = LocalizationService_upvr:GetTranslatorForLocaleAsync("en")
        end)
    end
end
function module.typeWrite(arg1, arg2, arg3) -- Line 20
    --[[ Upvalues[1]:
        [1]: var1_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg1.Visible = true
    arg1.AutoLocalize = false
    local var15 = arg2
    if var1_upvw then
        var15 = var1_upvw:Translate(arg1, arg2)
    end
    local any_gsub_result1 = var15:gsub("<br%s*/>", '\n'):gsub("<[^<>]->", "")
    arg1.Text = any_gsub_result1
    for _, _ in utf8.graphemes(any_gsub_result1) do
        arg1.MaxVisibleGraphemes = 0 + 1
        task.wait(arg3)
        local _
    end
end
function module.typeWriteWithRichText(arg1, arg2, arg3) -- Line 46
    arg1.Visible = true
    arg1.AutoLocalize = true
    arg1.Text = arg2
    local var25 = 0
    for _, _ in utf8.graphemes(arg2) do
        var25 += 1
        arg1.MaxVisibleGraphemes = var25
        task.wait(arg3)
    end
end
return module
ModuleScript ContentCreators ReplicatedStorage.engine.utils.ContentCreators
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:42
-- Luau version 6, Types version 3
-- Time taken: 0.000546 seconds

return {56283635, 24966933, 1589387047, 2007910441, 697214652, 135357913, 2685537824, 287881588, 1531180933, 2609496477, 6013557455, 212515622, 11076621}
ModuleScript SubscriptionService ReplicatedStorage.engine.utils.SubscriptionService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:43
-- Luau version 6, Types version 3
-- Time taken: 0.002323 seconds

return {
    getSubscriptionStatus = function(arg1, arg2, arg3) -- Line 3, Named "getSubscriptionStatus"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        assert(arg2, string.format("SubscriptionService.getSubscriptionStatus | player '_player' expected, got %s", typeof(arg2)))
        assert(arg3, string.format("SubscriptionService.getSubscriptionStatus | string '_subscriptionId' expected, got %s", typeof(arg3)))
        local pcall_result1, pcall_result2 = pcall(function() -- Line 7
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg3 (readonly)
            ]]
            return _G._services.MarketplaceService:GetUserSubscriptionStatusAsync(arg2, arg3)
        end)
        if not pcall_result1 then
            warn(string.format("SubscriptionService.getSubscriptionStatus | An unexpected error occured while fetching user subscription status, retrying (%s)", pcall_result2))
            local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 14
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: arg3 (readonly)
                ]]
                return _G._services.MarketplaceService:GetUserSubscriptionStatusAsync(arg2, arg3)
            end)
            pcall_result1 = pcall_result1_2
        end
        if pcall_result1 then
            return pcall_result2_2
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        warn(string.format("SubscriptionService.getSubscriptionStatus | An unexpected error occured while fetching user subscription status (%s)", pcall_result2_2))
        return false
    end;
}
ModuleScript BadgeService ReplicatedStorage.engine.utils.BadgeService
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:45
-- Luau version 6, Types version 3
-- Time taken: 0.001591 seconds

return {
    _badges = {
        ["Quest 1"] = 1596511727222884;
        ["Quest 2"] = 2288869350404942;
        ["Quest 3"] = 960938277355101;
        ["Item 1"] = 1433334287721884;
        ["Item 2"] = 1499380754475635;
        ["Item 3"] = 4269565885812124;
        ["Item 4"] = 1570902174358194;
        ["Item 5"] = 2909645730115893;
    };
    hasBadge = function(arg1, arg2, arg3) -- Line 15, Named "hasBadge"
        local pcall_result1, pcall_result2 = pcall(_G._services.BadgeService.UserHasBadgeAsync, _G._services.BadgeService, arg2.UserId, arg3)
        if not pcall_result1 then
            warn("BadgeService | Error while checking if player has badge")
            return false
        end
        return pcall_result2
    end;
    award = function(arg1, arg2, arg3) -- Line 26, Named "award"
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local pcall_result1_2, pcall_result2_2 = pcall(_G._services.BadgeService.UserHasBadgeAsync, _G._services.BadgeService, arg2.UserId, arg3)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [21] 13. Error Block 2 start (CF ANALYSIS FAILED)
        warn("BadgeService | Error while checking if player has badge")
        do
            return
        end
        -- KONSTANTERROR: [21] 13. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [26] 17. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [26] 17. Error Block 3 end (CF ANALYSIS FAILED)
    end;
}
ModuleScript VotekickBlocker ReplicatedStorage.engine.utils.VotekickBlocker
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:46
-- Luau version 6, Types version 3
-- Time taken: 0.000402 seconds

return {206130108, 423168665, 848861090, 360605776, 307485369, 1908891988, 299461593, 2731804921, 5752714906, 2237275251, 594588203, 10321944}
ModuleScript Animator ReplicatedStorage.engine.classes.Animator
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:47
-- Luau version 6, Types version 3
-- Time taken: 0.003574 seconds

local _references_upvr = _G._references
return {
    load = function(arg1, arg2) -- Line 10, Named "load"
        --[[ Upvalues[1]:
            [1]: _references_upvr (readonly)
        ]]
        return _references_upvr.Player.Character.Humanoid.Animator:LoadAnimation(arg2.animation)
    end;
    play = function(arg1, arg2) -- Line 14, Named "play"
        --[[ Upvalues[1]:
            [1]: _references_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [3] 3. Error Block 36 start (CF ANALYSIS FAILED)
        for _, v in next, _references_upvr.Player.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
            if v.Name ~= "WalkAnim" and v.Name ~= "JumpAnim" and v.Name ~= "FallAnim" and v.Name ~= "RunAnim" and v.Name ~= "Animation1" and v.Name ~= "Animation2" and v.Name ~= "ClimbAnim" and v.Name ~= "Front" and v.Name ~= "Back" and v.Name ~= "Right" and v.Name ~= "Left" and not _references_upvr.Assets.Animations.Ball:FindFirstChild(v.Name) then
                v:Stop(0)
            end
        end
        -- KONSTANTERROR: [3] 3. Error Block 36 end (CF ANALYSIS FAILED)
    end;
    stop = function(arg1, arg2) -- Line 46, Named "stop"
        --[[ Upvalues[1]:
            [1]: _references_upvr (readonly)
        ]]
        if arg2.animation then
            for _, v_2 in next, _references_upvr.Player.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v_2.Name == arg2.animation.Name then
                    v_2:Stop(arg2.fadeTime or 0)
                end
            end
        elseif arg2.animationTrack then
            arg2.animationTrack:Stop(arg2.fadeTime or 0)
        end
    end;
    stopAll = function(arg1, arg2) -- Line 58, Named "stopAll"
        --[[ Upvalues[1]:
            [1]: _references_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [56] 33. Error Block 31 start (CF ANALYSIS FAILED)
        local var17
        for _, v_3 in next, _references_upvr.Player.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var17 = arg2.fadeTime
                return var17
            end
            if not arg2 or not INLINED() then
                var17 = 0
            end
            v_3:Stop(var17)
        end
        if arg2 and arg2.callback then
            return true
        end
        -- KONSTANTERROR: [56] 33. Error Block 31 end (CF ANALYSIS FAILED)
    end;
}
ModuleScript Maid ReplicatedStorage.engine.classes.Maid
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:49
-- Luau version 6, Types version 3
-- Time taken: 0.004793 seconds

local module_upvr = {
    ClassName = "Maid";
}
function module_upvr.new() -- Line 12
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _tasks = {};
    }, module_upvr)
end
function module_upvr.isMaid(arg1) -- Line 18
    local var3 = false
    if type(arg1) == "table" then
        if arg1.ClassName ~= "Maid" then
            var3 = false
        else
            var3 = true
        end
    end
    return var3
end
function module_upvr.__index(arg1, arg2) -- Line 24
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr[arg2] then
        return module_upvr[arg2]
    end
    return arg1._tasks[arg2]
end
function module_upvr.__newindex(arg1, arg2, arg3) -- Line 41
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr[arg2] ~= nil then
        error("'%s' is reserved":format(tostring(arg2)), 2)
    end
    local _tasks = arg1._tasks
    local var5 = _tasks[arg2]
    if var5 == arg3 then
    else
        _tasks[arg2] = arg3
        if var5 then
            if type(var5) == "function" then
                var5()
                return
            end
            if typeof(var5) == "RBXScriptConnection" then
                var5:Disconnect()
                return
            end
            if var5.Destroy and var5.Parent then
                var5:Destroy()
            end
        end
    end
end
function module_upvr.GiveTask(arg1, arg2) -- Line 69
    if not arg2 then
        error("Task cannot be false or nil", 2)
    end
    local var6 = #arg1._tasks + 1
    arg1[var6] = arg2
    if type(arg2) == "table" and not arg2.Destroy then
        warn("[Maid.GiveTask] - Gave table task without .Destroy\n\n"..debug.traceback())
    end
    return var6
end
function module_upvr.GivePromise(arg1, arg2) -- Line 84
    if not arg2:IsPending() then
        return arg2
    end
    local any_resolved_result1 = arg2.resolved(arg2)
    local any_GiveTask_result1_upvr = arg1:GiveTask(any_resolved_result1)
    any_resolved_result1:Finally(function() -- Line 93
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: any_GiveTask_result1_upvr (readonly)
        ]]
        arg1[any_GiveTask_result1_upvr] = nil
    end)
    return any_resolved_result1
end
function module_upvr.DoCleaning(arg1) -- Line 102
    local _tasks_2 = arg1._tasks
    for i, v in pairs(_tasks_2) do
        if typeof(v) == "RBXScriptConnection" then
            _tasks_2[i] = nil
            v:Disconnect()
        end
    end
    local next_result1, next_result2 = next(_tasks_2)
    while next_result2 ~= nil do
        _tasks_2[next_result1] = nil
        i = next_result2
        if type(i) == "function" then
            next_result2()
        else
            i = next_result2
            if typeof(i) == "RBXScriptConnection" then
                next_result2:Disconnect()
            elseif next_result2.Destroy and next_result2.Parent then
                next_result2:Destroy()
            end
        end
        i = _tasks_2
        local _, _ = next(i)
    end
end
module_upvr.Destroy = module_upvr.DoCleaning
return module_upvr
ModuleScript Promise ReplicatedStorage.engine.classes.Promise
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:50
-- Luau version 6, Types version 3
-- Time taken: 0.097777 seconds

local tbl_9_upvr = {
    __mode = 'k';
}
local function makeEnum(arg1, arg2) -- Line 13
    local module_10 = {}
    for _, v in ipairs(arg2) do
        module_10[v] = v
    end
    return setmetatable(module_10, {
        __index = function(arg1_2, arg2_2) -- Line 21, Named "__index"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("%s is not in %s!", arg2_2, arg1), 2)
        end;
        __newindex = function() -- Line 24, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("Creating new members in %s is not allowed!", arg1), 2)
        end;
    })
end
local var13_upvw = {
    Kind = makeEnum("Promise.Error.Kind", {"ExecutionError", "AlreadyCancelled", "NotResolvedInTime", "TimedOut"});
}
var13_upvw.__index = var13_upvw
local function new(arg1, arg2) -- Line 46
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    local var14 = arg1
    if not var14 then
        var14 = {}
    end
    local var15 = var14
    local module_8 = {
        error = tostring(var15.error) or "[This error has no error text.]";
        trace = var15.trace;
        context = var15.context;
        kind = var15.kind;
    }
    module_8.parent = arg2
    module_8.createdTick = os.clock()
    module_8.createdTrace = debug.traceback()
    return setmetatable(module_8, var13_upvw)
end
var13_upvw.new = new
local function is(arg1) -- Line 59
    if type(arg1) == "table" then
        local getmetatable_result1 = getmetatable(arg1)
        if type(getmetatable_result1) == "table" then
            local var20 = false
            if rawget(arg1, "error") ~= nil then
                if type(rawget(getmetatable_result1, "extend")) ~= "function" then
                    var20 = false
                else
                    var20 = true
                end
            end
            return var20
        end
    end
    return false
end
var13_upvw.is = is
function var13_upvw.isKind(arg1, arg2) -- Line 71
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    if arg2 == nil then
    else
    end
    assert(true, "Argument #2 to Promise.Error.isKind must not be nil")
    if var13_upvw.is(arg1) then
        if arg1.kind ~= arg2 then
        else
        end
    end
    return true
end
function var13_upvw.extend(arg1, arg2) -- Line 77
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    local var21 = arg2
    if not var21 then
        var21 = {}
    end
    local var22 = var21
    var21 = var22.kind
    local var23 = var21
    if not var23 then
        var23 = arg1.kind
    end
    var22.kind = var23
    return var13_upvw.new(var22, arg1)
end
function var13_upvw.getErrorChain(arg1) -- Line 85
    local module = {}
    module[1] = arg1
    while module[#module].parent do
        table.insert(module, module[#module].parent)
    end
    return module
end
local function __tostring(arg1) -- Line 95
    local module_9 = {string.format("-- Promise.Error(%s) --", arg1.kind or '?')}
    for _, v_2 in ipairs(arg1:getErrorChain()) do
        local tbl = {}
        local trace = v_2.trace
        if not trace then
            trace = v_2.error
        end
        tbl[1] = trace
        tbl[2] = v_2.context
        table.insert(module_9, table.concat(tbl, '\n'))
    end
    return table.concat(module_9, '\n')
end
var13_upvw.__tostring = __tostring
local function pack_upvr(...) -- Line 116, Named "pack"
    return select('#', ...), {...}
end
local function packResult_upvr(arg1, ...) -- Line 123, Named "packResult"
    return arg1, select('#', ...), {...}
end
local function _(arg1) -- Line 128, Named "makeErrorHandler"
    --[[ Upvalues[1]:
        [1]: var13_upvw (read and write)
    ]]
    if arg1 == nil then
    else
    end
    assert(true)
    return function(arg1_3) -- Line 131
        --[[ Upvalues[2]:
            [1]: var13_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_3) == "table" then
            return arg1_3
        end
        local module_3 = {}
        module_3.error = arg1_3
        module_3.kind = var13_upvw.Kind.ExecutionError
        module_3.trace = debug.traceback(tostring(arg1_3), 2)
        module_3.context = "Promise created at:\n\n"..arg1
        return var13_upvw.new(module_3)
    end
end
local function runExecutor_upvr(arg1, arg2, ...) -- Line 151, Named "runExecutor"
    --[[ Upvalues[2]:
        [1]: packResult_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local var39
    if arg1 == nil then
        var39 = false
    else
        var39 = true
    end
    assert(var39)
    return packResult_upvr(xpcall(arg2, function(arg1_4) -- Line 131
        --[[ Upvalues[2]:
            [1]: var13_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_4) == "table" then
            return arg1_4
        end
        local module_5 = {}
        module_5.error = arg1_4
        module_5.kind = var13_upvw.Kind.ExecutionError
        module_5.trace = debug.traceback(tostring(arg1_4), 2)
        module_5.context = "Promise created at:\n\n"..arg1
        return var13_upvw.new(module_5)
    end, ...))
end
local function _(arg1, arg2, arg3, arg4) -- Line 159, Named "createAdvancer"
    --[[ Upvalues[1]:
        [1]: runExecutor_upvr (readonly)
    ]]
    return function(...) -- Line 160
        --[[ Upvalues[5]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
            [4]: arg3 (readonly)
            [5]: arg4 (readonly)
        ]]
        local runExecutor_result1, runExecutor_result2_2, runExecutor_result3_2 = runExecutor_upvr(arg1, arg2, ...)
        if runExecutor_result1 then
            arg3(unpack(runExecutor_result3_2, 1, runExecutor_result2_2))
        else
            arg4(runExecutor_result3_2[1])
        end
    end
end
local function _(arg1) -- Line 171, Named "isEmpty"
    local var46
    if next(arg1) ~= nil then
        var46 = false
    else
        var46 = true
    end
    return var46
end
local module_6_upvr = {
    Error = var13_upvw;
    Status = makeEnum("Promise.Status", {"Started", "Resolved", "Rejected", "Cancelled"});
    _getTime = os.clock;
    _timeEvent = game:GetService("RunService").Heartbeat;
    prototype = {};
    __index = module_6_upvr.prototype;
}
function module_6_upvr._new(arg1, arg2, arg3) -- Line 196
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: tbl_9_upvr (readonly)
        [3]: runExecutor_upvr (readonly)
    ]]
    if arg3 ~= nil and not module_6_upvr.is(arg3) then
        error("Argument #2 to Promise.new must be a promise or nil", 2)
    end
    local module_2_upvr = {}
    module_2_upvr._source = arg1
    module_2_upvr._status = module_6_upvr.Status.Started
    module_2_upvr._values = nil
    module_2_upvr._valuesLength = -1
    module_2_upvr._unhandledRejection = true
    module_2_upvr._queuedResolve = {}
    module_2_upvr._queuedReject = {}
    module_2_upvr._queuedFinally = {}
    module_2_upvr._cancellationHook = nil
    module_2_upvr._parent = arg3
    module_2_upvr._consumers = setmetatable({}, tbl_9_upvr)
    if arg3 and arg3._status == module_6_upvr.Status.Started then
        arg3._consumers[module_2_upvr] = true
    end
    setmetatable(module_2_upvr, module_6_upvr)
    local function resolve(...) -- Line 241
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        module_2_upvr:_resolve(...)
    end
    local function reject(...) -- Line 245
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        module_2_upvr:_reject(...)
    end
    local function onCancel_upvr(arg1_5) -- Line 249, Named "onCancel"
        --[[ Upvalues[2]:
            [1]: module_2_upvr (readonly)
            [2]: module_6_upvr (copied, readonly)
        ]]
        if arg1_5 then
            if module_2_upvr._status == module_6_upvr.Status.Cancelled then
                arg1_5()
            else
                module_2_upvr._cancellationHook = arg1_5
            end
        end
        if module_2_upvr._status ~= module_6_upvr.Status.Cancelled then
        else
        end
        return true
    end
    coroutine.wrap(function() -- Line 261
        --[[ Upvalues[6]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: module_2_upvr (readonly)
            [3]: arg2 (readonly)
            [4]: resolve (readonly)
            [5]: reject (readonly)
            [6]: onCancel_upvr (readonly)
        ]]
        local runExecutor_result1_2, _, runExecutor_result3_4 = runExecutor_upvr(module_2_upvr._source, arg2, resolve, reject, onCancel_upvr)
        if not runExecutor_result1_2 then
            reject(runExecutor_result3_4[1])
        end
    end)()
    return module_2_upvr
end
function module_6_upvr.new(arg1) -- Line 278
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._new(debug.traceback(nil, 2), arg1)
end
function module_6_upvr.__tostring(arg1) -- Line 282
    return string.format("Promise(%s)", arg1:getStatus())
end
function module_6_upvr.defer(arg1) -- Line 289
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    local call_stack_upvr = debug.traceback(nil, 2)
    return module_6_upvr._new(call_stack_upvr, function(arg1_6, arg2, arg3) -- Line 292
        --[[ Upvalues[4]:
            [1]: module_6_upvr (copied, readonly)
            [2]: runExecutor_upvr (copied, readonly)
            [3]: call_stack_upvr (readonly)
            [4]: arg1 (readonly)
        ]]
        local var57_upvw
        var57_upvw = module_6_upvr._timeEvent:Connect(function() -- Line 294
            --[[ Upvalues[7]:
                [1]: var57_upvw (read and write)
                [2]: runExecutor_upvr (copied, readonly)
                [3]: call_stack_upvr (copied, readonly)
                [4]: arg1 (copied, readonly)
                [5]: arg1_6 (readonly)
                [6]: arg2 (readonly)
                [7]: arg3 (readonly)
            ]]
            var57_upvw:Disconnect()
            local runExecutor_upvr_result1, _, runExecutor_result3_6 = runExecutor_upvr(call_stack_upvr, arg1, arg1_6, arg2, arg3)
            if not runExecutor_upvr_result1 then
                arg2(runExecutor_result3_6[1])
            end
        end)
    end)
end
module_6_upvr.async = module_6_upvr.defer
function module_6_upvr.resolve(...) -- Line 313
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_4_upvr, pack_result2_upvr = pack_upvr(...)
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1) -- Line 315
        --[[ Upvalues[2]:
            [1]: pack_result2_upvr (readonly)
            [2]: pack_result1_4_upvr (readonly)
        ]]
        arg1(unpack(pack_result2_upvr, 1, pack_result1_4_upvr))
    end)
end
function module_6_upvr.reject(...) -- Line 323
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_upvr, pack_result2_2_upvr = pack_upvr(...)
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1, arg2) -- Line 325
        --[[ Upvalues[2]:
            [1]: pack_result2_2_upvr (readonly)
            [2]: pack_result1_upvr (readonly)
        ]]
        arg2(unpack(pack_result2_2_upvr, 1, pack_result1_upvr))
    end)
end
function module_6_upvr._try(arg1, arg2, ...) -- Line 334
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_6_upvr (readonly)
    ]]
    local pack_result1_upvr_3, pack_upvr_result2_upvr = pack_upvr(...)
    return module_6_upvr._new(arg1, function(arg1_7) -- Line 337
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_upvr_result2_upvr (readonly)
            [3]: pack_result1_upvr_3 (readonly)
        ]]
        arg1_7(arg2(unpack(pack_upvr_result2_upvr, 1, pack_result1_upvr_3)))
    end)
end
function module_6_upvr.try(...) -- Line 345
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._try(debug.traceback(nil, 2), ...)
end
function module_6_upvr._all(arg1, arg2, arg3) -- Line 354
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg2) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.all"), 3)
    end
    for i_3, v_3 in pairs(arg2) do
        if not module_6_upvr.is(v_3) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.all", tostring(i_3)), 3)
        end
    end
    if #arg2 == 0 or arg3 == 0 then
        return module_6_upvr.resolve({})
    end
    return module_6_upvr._new(arg1, function(arg1_8, arg2_3, arg3_2) -- Line 372
        --[[ Upvalues[2]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
        ]]
        local tbl_3_upvr = {}
        local var85_upvw = 0
        local var86_upvw = false
        local function cancel() -- Line 383
            --[[ Upvalues[1]:
                [1]: tbl_3_upvr (readonly)
            ]]
            for _, v_4 in ipairs(tbl_3_upvr) do
                v_4:cancel()
            end
        end
        local var92_upvw = 0
        local tbl_12_upvr = {}
        local function resolveOne(arg1_9, ...) -- Line 390
            --[[ Upvalues[7]:
                [1]: var86_upvw (read and write)
                [2]: var92_upvw (read and write)
                [3]: arg3 (copied, readonly)
                [4]: tbl_12_upvr (readonly)
                [5]: arg2 (copied, readonly)
                [6]: arg1_8 (readonly)
                [7]: tbl_3_upvr (readonly)
            ]]
            if var86_upvw then
            else
                var92_upvw += 1
                if arg3 == nil then
                    tbl_12_upvr[arg1_9] = ...
                else
                    tbl_12_upvr[var92_upvw] = ...
                end
                local var98 = arg3
                if not var98 then
                    var98 = #arg2
                end
                if var98 <= var92_upvw then
                    var86_upvw = true
                    arg1_8(tbl_12_upvr)
                    for _, v_24 in ipairs(tbl_3_upvr) do
                        v_24:cancel()
                    end
                end
            end
        end
        arg3_2(cancel)
        for i_5_upvr, v_5 in ipairs(arg2) do
            tbl_3_upvr[i_5_upvr] = v_5:andThen(function(...) -- Line 416
                --[[ Upvalues[2]:
                    [1]: resolveOne (readonly)
                    [2]: i_5_upvr (readonly)
                ]]
                resolveOne(i_5_upvr, ...)
            end, function(...) -- Line 419
                --[[ Upvalues[6]:
                    [1]: var85_upvw (read and write)
                    [2]: arg3 (copied, readonly)
                    [3]: arg2 (copied, readonly)
                    [4]: tbl_3_upvr (readonly)
                    [5]: var86_upvw (read and write)
                    [6]: arg2_3 (readonly)
                ]]
                var85_upvw += 1
                if arg3 == nil or #arg2 - var85_upvw < arg3 then
                    for _, v_6 in ipairs(tbl_3_upvr) do
                        v_6:cancel()
                    end
                    var86_upvw = true
                    arg2_3(...)
                end
            end)
        end
        if var86_upvw then
            for _, v_7 in ipairs(tbl_3_upvr) do
                v_7:cancel()
            end
        end
    end)
end
function module_6_upvr.all(arg1) -- Line 438
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._all(debug.traceback(nil, 2), arg1)
end
function module_6_upvr.fold(arg1, arg2, arg3) -- Line 442
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var115
    if type(arg1) ~= "table" then
        var115 = false
    else
        var115 = true
    end
    assert(var115, "Bad argument #1 to Promise.fold: must be a table")
    if type(arg2) ~= "function" then
        var115 = false
    else
        var115 = true
    end
    assert(var115, "Bad argument #2 to Promise.fold: must be a function")
    var115 = module_6_upvr
    var115 = arg3
    local any_resolve_result1_2_upvw = var115.resolve(var115)
    var115 = module_6_upvr.each
    local function _(arg1_10, arg2_4) -- Line 447
        --[[ Upvalues[2]:
            [1]: any_resolve_result1_2_upvw (read and write)
            [2]: arg2 (readonly)
        ]]
        any_resolve_result1_2_upvw = any_resolve_result1_2_upvw:andThen(function(arg1_11) -- Line 448
            --[[ Upvalues[3]:
                [1]: arg2 (copied, readonly)
                [2]: arg1_10 (readonly)
                [3]: arg2_4 (readonly)
            ]]
            return arg2(arg1_11, arg1_10, arg2_4)
        end)
    end
    var115 = var115(arg1, _):andThenReturn(any_resolve_result1_2_upvw)
    return var115
end
function module_6_upvr.some(arg1, arg2) -- Line 454
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var119
    if type(arg2) ~= "number" then
        var119 = false
    else
        var119 = true
    end
    assert(var119, "Bad argument #2 to Promise.some: must be a number")
    var119 = module_6_upvr
    var119 = debug.traceback(nil, 2)
    return var119._all(var119, arg1, arg2)
end
function module_6_upvr.any(arg1) -- Line 460
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return module_6_upvr._all(debug.traceback(nil, 2), arg1, 1):andThen(function(arg1_12) -- Line 461
        return arg1_12[1]
    end)
end
function module_6_upvr.allSettled(arg1) -- Line 466
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg1) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.allSettled"), 2)
    end
    for i_8, v_8 in pairs(arg1) do
        if not module_6_upvr.is(v_8) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.allSettled", tostring(i_8)), 2)
        end
    end
    if #arg1 == 0 then
        return module_6_upvr.resolve({})
    end
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1_13, arg2, arg3) -- Line 484
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_14_upvr = {}
        local var132_upvw = 0
        local tbl_11_upvr = {}
        local function resolveOne_upvr(arg1_14, ...) -- Line 494, Named "resolveOne"
            --[[ Upvalues[4]:
                [1]: var132_upvw (read and write)
                [2]: tbl_11_upvr (readonly)
                [3]: arg1 (copied, readonly)
                [4]: arg1_13 (readonly)
            ]]
            var132_upvw += 1
            tbl_11_upvr[arg1_14] = ...
            if #arg1 <= var132_upvw then
                arg1_13(tbl_11_upvr)
            end
        end
        arg3(function() -- Line 504
            --[[ Upvalues[1]:
                [1]: tbl_14_upvr (readonly)
            ]]
            for _, v_9 in ipairs(tbl_14_upvr) do
                v_9:cancel()
            end
        end)
        for i_10_upvr, v_10 in ipairs(arg1) do
            tbl_14_upvr[i_10_upvr] = v_10:finally(function(...) -- Line 514
                --[[ Upvalues[2]:
                    [1]: resolveOne_upvr (readonly)
                    [2]: i_10_upvr (readonly)
                ]]
                resolveOne_upvr(i_10_upvr, ...)
            end)
        end
    end)
end
function module_6_upvr.race(arg1) -- Line 526
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var148
    if type(arg1) ~= "table" then
        var148 = false
    else
        var148 = true
    end
    assert(var148, string.format("Please pass a list of promises to %s", "Promise.race"))
    var148 = arg1
    local pairs_result1, pairs_result2_3, pairs_result3 = pairs(var148)
    for i_11, v_11 in pairs_result1, pairs_result2_3, pairs_result3 do
        assert(module_6_upvr.is(v_11), string.format("Non-promise value passed into %s at index %s", "Promise.race", tostring(i_11)))
    end
    pairs_result2_3 = module_6_upvr
    pairs_result2_3 = debug.traceback(nil, 2)
    return pairs_result2_3._new(pairs_result2_3, function(arg1_15, arg2, arg3) -- Line 533
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_2_upvr = {}
        local var162_upvw = false
        local function cancel() -- Line 537
            --[[ Upvalues[1]:
                [1]: tbl_2_upvr (readonly)
            ]]
            for _, v_12 in ipairs(tbl_2_upvr) do
                v_12:cancel()
            end
        end
        local function _(arg1_16) -- Line 543, Named "finalize"
            --[[ Upvalues[2]:
                [1]: tbl_2_upvr (readonly)
                [2]: var162_upvw (read and write)
            ]]
            return function(...) -- Line 544
                --[[ Upvalues[3]:
                    [1]: tbl_2_upvr (copied, readonly)
                    [2]: var162_upvw (copied, read and write)
                    [3]: arg1_16 (readonly)
                ]]
                for _, v_13 in ipairs(tbl_2_upvr) do
                    v_13:cancel()
                end
                var162_upvw = true
                return arg1_16(...)
            end
        end
        if arg3(function(...) -- Line 544
            --[[ Upvalues[3]:
                [1]: tbl_2_upvr (readonly)
                [2]: var162_upvw (read and write)
                [3]: arg2 (readonly)
            ]]
            for _, v_14 in ipairs(tbl_2_upvr) do
                v_14:cancel()
            end
            var162_upvw = true
            return arg2(...)
        end) then
        else
            for i_25, v_25 in ipairs(arg1) do
                tbl_2_upvr[i_25] = v_25:andThen(function(...) -- Line 544
                    --[[ Upvalues[3]:
                        [1]: tbl_2_upvr (readonly)
                        [2]: var162_upvw (read and write)
                        [3]: arg1_15 (readonly)
                    ]]
                    for _, v_26 in ipairs(tbl_2_upvr) do
                        v_26:cancel()
                    end
                    var162_upvw = true
                    return arg1_15(...)
                end, function(...) -- Line 544
                    --[[ Upvalues[3]:
                        [1]: tbl_2_upvr (readonly)
                        [2]: var162_upvw (read and write)
                        [3]: arg2 (readonly)
                    ]]
                    for _, v_27 in ipairs(tbl_2_upvr) do
                        v_27:cancel()
                    end
                    var162_upvw = true
                    return arg2(...)
                end)
            end
            if var162_upvw then
                for _, v_28 in ipairs(tbl_2_upvr) do
                    v_28:cancel()
                end
            end
        end
    end)
end
function module_6_upvr.each(arg1, arg2) -- Line 573
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local var198
    if type(arg1) ~= "table" then
        var198 = false
    else
        var198 = true
    end
    assert(var198, string.format("Please pass a list of promises to %s", "Promise.each"))
    if type(arg2) ~= "function" then
        var198 = false
    else
        var198 = true
    end
    assert(var198, string.format("Please pass a handler function to %s!", "Promise.each"))
    var198 = module_6_upvr
    var198 = debug.traceback(nil, 2)
    return var198._new(var198, function(arg1_17, arg2_5, arg3) -- Line 577
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: var13_upvw (copied, read and write)
            [4]: arg2 (readonly)
        ]]
        local tbl_6 = {}
        local tbl_5_upvr = {}
        local var266_upvw = false
        local function cancel() -- Line 583
            --[[ Upvalues[1]:
                [1]: tbl_5_upvr (readonly)
            ]]
            for _, v_15 in ipairs(tbl_5_upvr) do
                v_15:cancel()
            end
        end
        arg3(function() -- Line 589
            --[[ Upvalues[2]:
                [1]: var266_upvw (read and write)
                [2]: tbl_5_upvr (readonly)
            ]]
            var266_upvw = true
            for _, v_16 in ipairs(tbl_5_upvr) do
                v_16:cancel()
            end
        end)
        for i_17, v_17 in ipairs(arg1) do
            if module_6_upvr.is(v_17) then
                if v_17:getStatus() == module_6_upvr.Status.Cancelled then
                    for _, v_18 in ipairs(tbl_5_upvr) do
                        v_18:cancel()
                    end
                    return arg2_5(var13_upvw.new({
                        error = "Promise is cancelled";
                        kind = var13_upvw.Kind.AlreadyCancelled;
                        context = string.format("The Promise that was part of the array at index %d passed into Promise.each was already cancelled when Promise.each began.\n\nThat Promise was created at:\n\n%s", i_17, v_17._source);
                    }))
                end
                if v_17:getStatus() == module_6_upvr.Status.Rejected then
                    for _, v_19 in ipairs(tbl_5_upvr) do
                        v_19:cancel()
                    end
                    return arg2_5(select(2, v_17:await()))
                end
                local any_andThen_result1_2 = v_17:andThen(function(...) -- Line 622
                    return ...
                end)
                table.insert(tbl_5_upvr, any_andThen_result1_2)
                ;({})[i_17] = any_andThen_result1_2
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[i_17] = v_17
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        for i_20, v_20 in ipairs({}) do
            if module_6_upvr.is(v_20) then
                local any_await_result1_2, any_await_result2_2 = v_20:await()
                v_20 = any_await_result2_2
                if not any_await_result1_2 then
                    for _, v_21 in ipairs(tbl_5_upvr) do
                        v_21:cancel()
                    end
                    return arg2_5(v_20)
                end
            end
            if var266_upvw then return end
            local any_resolve_result1 = module_6_upvr.resolve(arg2(v_20, i_20))
            table.insert(tbl_5_upvr, any_resolve_result1)
            local any_await_result1_4, any_await_result2_4 = any_resolve_result1:await()
            if not any_await_result1_4 then
                for _, v_22 in ipairs(tbl_5_upvr) do
                    v_22:cancel()
                end
                return arg2_5(any_await_result2_4)
            end
            tbl_6[i_20] = any_await_result2_4
        end
        arg1_17(tbl_6)
    end)
end
function module_6_upvr.is(arg1) -- Line 669
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if type(arg1) ~= "table" then
        return false
    end
    local getmetatable_result1_4 = getmetatable(arg1)
    if getmetatable_result1_4 == module_6_upvr then
        do
            return true
        end
        local var307
    end
    if getmetatable_result1_4 == nil then
        if type(arg1.andThen) ~= "function" then
            var307 = false
        else
            var307 = true
        end
        return var307
    end
    if type(getmetatable_result1_4) == "table" then
        if type(rawget(getmetatable_result1_4, "__index")) == "table" then
            if type(rawget(rawget(getmetatable_result1_4, "__index"), "andThen")) == "function" then
                return true
            end
        end
    end
    return false
end
function module_6_upvr.promisify(arg1) -- Line 697
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    return function(...) -- Line 698
        --[[ Upvalues[2]:
            [1]: module_6_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        return module_6_upvr._try(debug.traceback(nil, 2), arg1, ...)
    end
end
local var309_upvw
local var310_upvw
function module_6_upvr.delay(arg1) -- Line 713
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: var309_upvw (read and write)
        [3]: var310_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var311
    if type(arg1) ~= "number" then
        var311 = false
    else
        var311 = true
    end
    assert(var311, "Bad argument #1 to Promise.delay, must be a number.")
    if (1/60) > arg1 or arg1 == math.huge then
    end
    var311 = module_6_upvr
    var311 = debug.traceback(nil, 2)
    local const_number_upvw = (1/60)
    return var311._new(var311, function(arg1_18, arg2, arg3) -- Line 721
        --[[ Upvalues[4]:
            [1]: module_6_upvr (copied, readonly)
            [2]: const_number_upvw (read and write)
            [3]: var309_upvw (copied, read and write)
            [4]: var310_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 29 start (CF ANALYSIS FAILED)
        local any__getTime_result1 = module_6_upvr._getTime()
        local var315 = any__getTime_result1 + const_number_upvw
        local tbl_4_upvr = {}
        tbl_4_upvr.resolve = arg1_18
        tbl_4_upvr.startTime = any__getTime_result1
        tbl_4_upvr.endTime = var315
        if var309_upvw == nil then
            var310_upvw = tbl_4_upvr
            var309_upvw = module_6_upvr._timeEvent:Connect(function() -- Line 733
                --[[ Upvalues[3]:
                    [1]: module_6_upvr (copied, readonly)
                    [2]: var310_upvw (copied, read and write)
                    [3]: var309_upvw (copied, read and write)
                ]]
                while var310_upvw ~= nil and var310_upvw.endTime < module_6_upvr._getTime() do
                    local var318 = var310_upvw
                    var310_upvw = var318.next
                    if var310_upvw == nil then
                        var309_upvw:Disconnect()
                        var309_upvw = nil
                    else
                        var310_upvw.previous = nil
                    end
                    var318.resolve(module_6_upvr._getTime() - var318.startTime)
                end
            end)
        else
            local var319
            if var310_upvw.endTime < var315 then
                local next_2 = var310_upvw.next
                while next_2 ~= nil and next_2.endTime < var315 do
                    local var321 = next_2
                    local next = var321.next
                end
                var321.next = tbl_4_upvr
                tbl_4_upvr.previous = var321
                if next ~= nil then
                    tbl_4_upvr.next = next
                    next.previous = tbl_4_upvr
                    -- KONSTANTWARNING: GOTO [65] #45
                end
            else
                tbl_4_upvr.next = var310_upvw
                var310_upvw.previous = tbl_4_upvr
                var310_upvw = tbl_4_upvr
            end
        end
        -- KONSTANTERROR: [0] 1. Error Block 29 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [65] 45. Error Block 14 start (CF ANALYSIS FAILED)
        arg3(function() -- Line 778
            --[[ Upvalues[3]:
                [1]: tbl_4_upvr (readonly)
                [2]: var310_upvw (copied, read and write)
                [3]: var309_upvw (copied, read and write)
            ]]
            local next_3 = tbl_4_upvr.next
            if var310_upvw == tbl_4_upvr then
                if next_3 == nil then
                    var309_upvw:Disconnect()
                    var309_upvw = nil
                else
                    next_3.previous = nil
                end
                var310_upvw = next_3
            else
                local previous = tbl_4_upvr.previous
                previous.next = next_3
                if next_3 ~= nil then
                    next_3.previous = previous
                end
            end
        end)
        -- KONSTANTERROR: [65] 45. Error Block 14 end (CF ANALYSIS FAILED)
    end)
end
module_6_upvr.prototype.timeout = function(arg1, arg2, arg3) -- Line 807, Named "timeout"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local module_7 = {}
    local call_stack_upvr_2 = debug.traceback(nil, 2)
    module_7[1] = module_6_upvr.delay(arg2):andThen(function() -- Line 811
        --[[ Upvalues[5]:
            [1]: module_6_upvr (copied, readonly)
            [2]: arg3 (readonly)
            [3]: var13_upvw (copied, read and write)
            [4]: arg2 (readonly)
            [5]: call_stack_upvr_2 (readonly)
        ]]
        local var329
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var329 = var329(tbl_8)
            tbl_8.context = string.format("Timeout of %d seconds exceeded.\n:timeout() called at:\n\n%s", arg2, call_stack_upvr_2)
            tbl_8.error = "Timed out"
            tbl_8.kind = var13_upvw.Kind.TimedOut
            local tbl_8 = {}
            var329 = var13_upvw.new
            return var329
        end
        if arg3 ~= nil or not INLINED() then
            var329 = arg3
        end
        return module_6_upvr.reject(var329)
    end)
    module_7[2] = arg1
    return module_6_upvr.race(module_7)
end
module_6_upvr.prototype.getStatus = function(arg1) -- Line 826, Named "getStatus"
    return arg1._status
end
module_6_upvr.prototype._andThen = function(arg1, arg2, arg3, arg4) -- Line 835, Named "_andThen"
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
        [3]: var13_upvw (read and write)
    ]]
    arg1._unhandledRejection = false
    return module_6_upvr._new(arg2, function(arg1_19, arg2_6) -- Line 839
        --[[ Upvalues[7]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
            [3]: runExecutor_upvr (copied, readonly)
            [4]: arg4 (readonly)
            [5]: arg1 (readonly)
            [6]: module_6_upvr (copied, readonly)
            [7]: var13_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var333
        if arg3 then
            function var333(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg3 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_result1_4, runExecutor_upvr_result2_2, runExecutor_result3 = runExecutor_upvr(arg2, arg3, ...)
                if runExecutor_result1_4 then
                    arg1_19(unpack(runExecutor_result3, 1, runExecutor_upvr_result2_2))
                else
                    arg2_6(runExecutor_result3[1])
                end
            end
        end
        if arg4 then
            local function var337(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg4 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_result1_5, runExecutor_upvr_result2, runExecutor_result3_3 = runExecutor_upvr(arg2, arg4, ...)
                if runExecutor_result1_5 then
                    arg1_19(unpack(runExecutor_result3_3, 1, runExecutor_upvr_result2))
                else
                    arg2_6(runExecutor_result3_3[1])
                end
            end
        end
        if arg1._status == module_6_upvr.Status.Started then
            table.insert(arg1._queuedResolve, var333)
            table.insert(arg1._queuedReject, var337)
        else
            if arg1._status == module_6_upvr.Status.Resolved then
                var333(unpack(arg1._values, 1, arg1._valuesLength))
                return
            end
            if arg1._status == module_6_upvr.Status.Rejected then
                var337(unpack(arg1._values, 1, arg1._valuesLength))
                return
            end
            if arg1._status == module_6_upvr.Status.Cancelled then
                arg2_6(var13_upvw.new({
                    error = "Promise is cancelled";
                    kind = var13_upvw.Kind.AlreadyCancelled;
                    context = "Promise created at\n\n"..arg2;
                }))
            end
        end
    end, arg1)
end
module_6_upvr.prototype.andThen = function(arg1, arg2, arg3) -- Line 885, Named "andThen"
    local var342
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var342 = false
        else
            var342 = true
        end
    end
    assert(var342, string.format("Please pass a handler function to %s!", "Promise:andThen"))
    var342 = true
    if arg3 ~= nil then
        if type(arg3) ~= "function" then
            var342 = false
        else
            var342 = true
        end
    end
    assert(var342, string.format("Please pass a handler function to %s!", "Promise:andThen"))
    return arg1:_andThen(debug.traceback(nil, 2), arg2, arg3)
end
module_6_upvr.prototype.catch = function(arg1, arg2) -- Line 901, Named "catch"
    local var343 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var343 = false
        else
            var343 = true
        end
    end
    assert(var343, string.format("Please pass a handler function to %s!", "Promise:catch"))
    return arg1:_andThen(debug.traceback(nil, 2), nil, arg2)
end
module_6_upvr.prototype.tap = function(arg1, arg2) -- Line 913, Named "tap"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    local var344
    if type(arg2) ~= "function" then
        var344 = false
    else
        var344 = true
    end
    assert(var344, string.format("Please pass a handler function to %s!", "Promise:tap"))
    return arg1:_andThen(debug.traceback(nil, 2), function(...) -- Line 915
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: pack_upvr (copied, readonly)
        ]]
        local arg2_result1 = arg2(...)
        if module_6_upvr.is(arg2_result1) then
            local pack_upvr_result1_upvr_4, pack_result2_9_upvr = pack_upvr(...)
            return arg2_result1:andThen(function() -- Line 920
                --[[ Upvalues[2]:
                    [1]: pack_result2_9_upvr (readonly)
                    [2]: pack_upvr_result1_upvr_4 (readonly)
                ]]
                return unpack(pack_result2_9_upvr, 1, pack_upvr_result1_upvr_4)
            end)
        end
        pack_upvr_result1_upvr_4 = ...
        return pack_upvr_result1_upvr_4
    end)
end
module_6_upvr.prototype.andThenCall = function(arg1, arg2, ...) -- Line 932, Named "andThenCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var350
    if type(arg2) ~= "function" then
        var350 = false
    else
        var350 = true
    end
    assert(var350, string.format("Please pass a handler function to %s!", "Promise:andThenCall"))
    var350 = ...
    local pack_upvr_result1_upvr_3, pack_result2_5_upvr = pack_upvr(var350)
    return arg1:_andThen(debug.traceback(nil, 2), function() -- Line 935
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_5_upvr (readonly)
            [3]: pack_upvr_result1_upvr_3 (readonly)
        ]]
        return arg2(unpack(pack_result2_5_upvr, 1, pack_upvr_result1_upvr_3))
    end)
end
module_6_upvr.prototype.andThenReturn = function(arg1, ...) -- Line 943, Named "andThenReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_upvr_result1_upvr_2, pack_result2_7_upvr = pack_upvr(...)
    return arg1:_andThen(debug.traceback(nil, 2), function() -- Line 945
        --[[ Upvalues[2]:
            [1]: pack_result2_7_upvr (readonly)
            [2]: pack_upvr_result1_upvr_2 (readonly)
        ]]
        return unpack(pack_result2_7_upvr, 1, pack_upvr_result1_upvr_2)
    end)
end
module_6_upvr.prototype.cancel = function(arg1) -- Line 954, Named "cancel"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._status = module_6_upvr.Status.Cancelled
        if arg1._cancellationHook then
            arg1._cancellationHook()
        end
        if arg1._parent then
            arg1._parent:_consumerCancelled(arg1)
        end
        for i_29 in pairs(arg1._consumers) do
            i_29:cancel()
        end
        arg1:_finalize()
    end
end
module_6_upvr.prototype._consumerCancelled = function(arg1, arg2) -- Line 980, Named "_consumerCancelled"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._consumers[arg2] = nil
        if next(arg1._consumers) == nil then
            arg1:cancel()
        end
    end
end
module_6_upvr.prototype._finally = function(arg1, arg2, arg3, arg4) -- Line 996, Named "_finally"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    if not arg4 then
        arg1._unhandledRejection = false
    end
    return module_6_upvr._new(arg2, function(arg1_20, arg2_7) -- Line 1002
        --[[ Upvalues[6]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
            [3]: runExecutor_upvr (copied, readonly)
            [4]: arg4 (readonly)
            [5]: arg1 (readonly)
            [6]: module_6_upvr (copied, readonly)
        ]]
        local var367_upvr
        if arg3 then
            function var367_upvr(...) -- Line 160
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg3 (readonly)
                    [4]: arg1_20 (readonly)
                    [5]: arg2_7 (readonly)
                ]]
                local runExecutor_result1_3, runExecutor_result2, runExecutor_result3_5 = runExecutor_upvr(arg2, arg3, ...)
                if runExecutor_result1_3 then
                    arg1_20(unpack(runExecutor_result3_5, 1, runExecutor_result2))
                else
                    arg2_7(runExecutor_result3_5[1])
                end
            end
        end
        if arg4 then
            function var367_upvr(...) -- Line 1015
                --[[ Upvalues[4]:
                    [1]: arg1 (copied, readonly)
                    [2]: module_6_upvr (copied, readonly)
                    [3]: arg1_20 (readonly)
                    [4]: var367_upvr (readonly)
                ]]
                if arg1._status == module_6_upvr.Status.Rejected then
                    return arg1_20(arg1)
                end
                return var367_upvr(...)
            end
        end
        if arg1._status == module_6_upvr.Status.Started then
            table.insert(arg1._queuedFinally, var367_upvr)
        else
            var367_upvr(arg1._status)
        end
    end, arg1)
end
module_6_upvr.prototype.finally = function(arg1, arg2) -- Line 1034, Named "finally"
    local var368 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var368 = false
        else
            var368 = true
        end
    end
    assert(var368, string.format("Please pass a handler function to %s!", "Promise:finally"))
    return arg1:_finally(debug.traceback(nil, 2), arg2)
end
module_6_upvr.prototype.finallyCall = function(arg1, arg2, ...) -- Line 1045, Named "finallyCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var369
    if type(arg2) ~= "function" then
        var369 = false
    else
        var369 = true
    end
    assert(var369, string.format("Please pass a handler function to %s!", "Promise:finallyCall"))
    var369 = ...
    local pack_result1_upvr_2, pack_result2_8_upvr = pack_upvr(var369)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1048
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_8_upvr (readonly)
            [3]: pack_result1_upvr_2 (readonly)
        ]]
        return arg2(unpack(pack_result2_8_upvr, 1, pack_result1_upvr_2))
    end)
end
module_6_upvr.prototype.finallyReturn = function(arg1, ...) -- Line 1056, Named "finallyReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_result1_5_upvr, pack_result2_6_upvr = pack_upvr(...)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1058
        --[[ Upvalues[2]:
            [1]: pack_result2_6_upvr (readonly)
            [2]: pack_result1_5_upvr (readonly)
        ]]
        return unpack(pack_result2_6_upvr, 1, pack_result1_5_upvr)
    end)
end
module_6_upvr.prototype.done = function(arg1, arg2) -- Line 1066, Named "done"
    local var376 = true
    if arg2 ~= nil then
        if type(arg2) ~= "function" then
            var376 = false
        else
            var376 = true
        end
    end
    assert(var376, string.format("Please pass a handler function to %s!", "Promise:done"))
    return arg1:_finally(debug.traceback(nil, 2), arg2, true)
end
module_6_upvr.prototype.doneCall = function(arg1, arg2, ...) -- Line 1077, Named "doneCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local var377
    if type(arg2) ~= "function" then
        var377 = false
    else
        var377 = true
    end
    assert(var377, string.format("Please pass a handler function to %s!", "Promise:doneCall"))
    var377 = ...
    local pack_result1_3_upvr, pack_result2_3_upvr = pack_upvr(var377)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1080
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_3_upvr (readonly)
            [3]: pack_result1_3_upvr (readonly)
        ]]
        return arg2(unpack(pack_result2_3_upvr, 1, pack_result1_3_upvr))
    end, true)
end
module_6_upvr.prototype.doneReturn = function(arg1, ...) -- Line 1088, Named "doneReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_upvr_result1_upvr, pack_result2_10_upvr = pack_upvr(...)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1090
        --[[ Upvalues[2]:
            [1]: pack_result2_10_upvr (readonly)
            [2]: pack_upvr_result1_upvr (readonly)
        ]]
        return unpack(pack_result2_10_upvr, 1, pack_upvr_result1_upvr)
    end, true)
end
module_6_upvr.prototype.awaitStatus = function(arg1) -- Line 1100, Named "awaitStatus"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    arg1._unhandledRejection = false
    if arg1._status == module_6_upvr.Status.Started then
        local BindableEvent_upvr = Instance.new("BindableEvent")
        arg1:finally(function() -- Line 1106
            --[[ Upvalues[1]:
                [1]: BindableEvent_upvr (readonly)
            ]]
            BindableEvent_upvr:Fire()
        end)
        BindableEvent_upvr.Event:Wait()
        BindableEvent_upvr:Destroy()
    end
    BindableEvent_upvr = arg1._status
    if BindableEvent_upvr == module_6_upvr.Status.Resolved then
        BindableEvent_upvr = arg1._status
        return BindableEvent_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    BindableEvent_upvr = arg1._status
    if BindableEvent_upvr == module_6_upvr.Status.Rejected then
        BindableEvent_upvr = arg1._status
        return BindableEvent_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    BindableEvent_upvr = arg1._status
    return BindableEvent_upvr
end
local function awaitHelper_upvr(arg1, ...) -- Line 1123, Named "awaitHelper"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var386
    if arg1 ~= module_6_upvr.Status.Resolved then
        var386 = false
    else
        var386 = true
    end
    return var386, ...
end
module_6_upvr.prototype.await = function(arg1) -- Line 1130, Named "await"
    --[[ Upvalues[1]:
        [1]: awaitHelper_upvr (readonly)
    ]]
    return awaitHelper_upvr(arg1:awaitStatus())
end
local function expectHelper_upvr(arg1, ...) -- Line 1134, Named "expectHelper"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local Status = module_6_upvr.Status
    if arg1 ~= Status.Resolved then
        if ... == nil then
            Status = "Expected Promise rejected with no value."
        else
            Status = ...
        end
        error(Status, 3)
    end
    return ...
end
module_6_upvr.prototype.expect = function(arg1) -- Line 1146, Named "expect"
    --[[ Upvalues[1]:
        [1]: expectHelper_upvr (readonly)
    ]]
    return expectHelper_upvr(arg1:awaitStatus())
end
module_6_upvr.prototype.awaitValue = module_6_upvr.prototype.expect
module_6_upvr.prototype._unwrap = function(arg1) -- Line 1160, Named "_unwrap"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var388
    if var388 == module_6_upvr.Status.Started then
        var388 = error
        var388("Promise has not resolved or rejected.", 2)
    end
    if arg1._status ~= module_6_upvr.Status.Resolved then
        var388 = false
    else
        var388 = true
    end
    return var388, unpack(arg1._values, 1, arg1._valuesLength)
end
module_6_upvr.prototype._resolve = function(arg1, ...) -- Line 1170, Named "_resolve"
    --[[ Upvalues[3]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
        [3]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
        if module_6_upvr.is(...) then
            ...:_consumerCancelled(arg1)
        end
    else
        if module_6_upvr.is(...) then
            if 1 < select('#', ...) then
                warn(string.format("When returning a Promise from andThen, extra arguments are discarded! See:\n\n%s", arg1._source))
            end
            local var391_upvr = ...
            local any_andThen_result1 = var391_upvr:andThen(function(...) -- Line 1193
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:_resolve(...)
            end, function(...) -- Line 1196
                --[[ Upvalues[3]:
                    [1]: var391_upvr (readonly)
                    [2]: var13_upvw (copied, read and write)
                    [3]: arg1 (readonly)
                ]]
                local _1 = var391_upvr._values[1]
                if var391_upvr._error then
                    _1 = var13_upvw.new({
                        error = var391_upvr._error;
                        kind = var13_upvw.Kind.ExecutionError;
                        context = "[No stack trace available as this Promise originated from an older version of the Promise library (< v2)]";
                    })
                end
                if var13_upvw.isKind(_1, var13_upvw.Kind.ExecutionError) then
                    return arg1:_reject(_1:extend({
                        error = "This Promise was chained to a Promise that errored.";
                        trace = "";
                        context = string.format("The Promise at:\n\n%s\n...Rejected because it was chained to the following Promise, which encountered an error:\n", arg1._source);
                    }))
                end
                arg1:_reject(...)
            end)
            if any_andThen_result1._status == module_6_upvr.Status.Cancelled then
                arg1:cancel()
            elseif any_andThen_result1._status == module_6_upvr.Status.Started then
                arg1._parent = any_andThen_result1
                any_andThen_result1._consumers[arg1] = true
            end
        end
        var391_upvr = module_6_upvr.Status.Resolved
        arg1._status = var391_upvr
        var391_upvr = pack_upvr(...)
        local pack_result1_2, pack_result2_4 = pack_upvr(...)
        arg1._valuesLength = pack_result1_2
        arg1._values = pack_result2_4
        pack_result1_2 = ipairs(arg1._queuedResolve)
        local ipairs_result1, ipairs_result2_7, ipairs_result3 = ipairs(arg1._queuedResolve)
        for _, v_29 in ipairs_result1, ipairs_result2_7, ipairs_result3 do
            coroutine.wrap(v_29)(...)
        end
        ipairs_result1 = arg1:_finalize
        ipairs_result1()
    end
end
module_6_upvr.prototype._reject = function(arg1, ...) -- Line 1245, Named "_reject"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_6_upvr.Status.Started then
    else
        arg1._status = module_6_upvr.Status.Rejected
        local pack_result1, pack_result2 = pack_upvr(...)
        arg1._valuesLength = pack_result1
        arg1._values = pack_result2
        if next(arg1._queuedReject) ~= nil then
            pack_result1 = false
        else
            pack_result1 = true
        end
        if not pack_result1 then
            for _, v_30 in ipairs(arg1._queuedReject) do
                coroutine.wrap(v_30)(...)
            end
        else
            local tostring_result1_upvr = tostring(...)
            coroutine.wrap(function() -- Line 1267
                --[[ Upvalues[3]:
                    [1]: module_6_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: tostring_result1_upvr (readonly)
                ]]
                module_6_upvr._timeEvent:Wait()
                if not arg1._unhandledRejection then
                else
                    if module_6_upvr.TEST then return end
                    warn(string.format("Unhandled Promise rejection:\n\n%s\n\n%s", tostring_result1_upvr, arg1._source))
                end
            end)()
        end
        tostring_result1_upvr = arg1:_finalize
        tostring_result1_upvr()
    end
end
module_6_upvr.prototype._finalize = function(arg1) -- Line 1299, Named "_finalize"
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    for _, v_23 in ipairs(arg1._queuedFinally) do
        coroutine.wrap(v_23)(arg1._status)
    end
    arg1._queuedFinally = nil
    arg1._queuedReject = nil
    arg1._queuedResolve = nil
    if not module_6_upvr.TEST then
        arg1._parent = nil
        arg1._consumers = nil
    end
end
module_6_upvr.prototype.now = function(arg1, arg2) -- Line 1322, Named "now"
    --[[ Upvalues[2]:
        [1]: module_6_upvr (readonly)
        [2]: var13_upvw (read and write)
    ]]
    local call_stack = debug.traceback(nil, 2)
    local var420
    if arg1:getStatus() == var420 then
        return arg1:_andThen(call_stack, function(...) -- Line 1325
            return ...
        end)
    end
    var420 = module_6_upvr
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var420 = var420(tbl_10)
        tbl_10.context = ":now() was called at:\n\n"..call_stack
        tbl_10.error = "This Promise was not resolved in time for :now()"
        tbl_10.kind = var13_upvw.Kind.NotResolvedInTime
        local tbl_10 = {}
        var420 = var13_upvw.new
        return var420
    end
    if arg2 ~= nil or not INLINED_2() then
        var420 = arg2
    end
    return var420.reject(var420)
end
function module_6_upvr.retry(arg1, arg2, ...) -- Line 1340
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var423_upvr
    if type(arg1) ~= "function" then
        var423_upvr = false
    else
        var423_upvr = true
    end
    assert(var423_upvr, "Parameter #1 to Promise.retry must be a function")
    if type(arg2) ~= "number" then
        var423_upvr = false
    else
        var423_upvr = true
    end
    assert(var423_upvr, "Parameter #2 to Promise.retry must be a number")
    local args_list_upvr = {...}
    var423_upvr = select('#', ...)
    return module_6_upvr.resolve(arg1(...)):catch(function(...) -- Line 1346
        --[[ Upvalues[5]:
            [1]: arg2 (readonly)
            [2]: module_6_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: args_list_upvr (readonly)
            [5]: var423_upvr (readonly)
        ]]
        if 0 < arg2 then
            return module_6_upvr.retry(arg1, arg2 - 1, unpack(args_list_upvr, 1, var423_upvr))
        end
        return module_6_upvr.reject(...)
    end)
end
function module_6_upvr.fromEvent(arg1, arg2) -- Line 1358
    --[[ Upvalues[1]:
        [1]: module_6_upvr (readonly)
    ]]
    local var427_upvw = arg2
    if not var427_upvw then
        function var427_upvw() -- Line 1359
            return true
        end
    end
    return module_6_upvr._new(debug.traceback(nil, 2), function(arg1_21, arg2_8, arg3) -- Line 1363
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var427_upvw (read and write)
        ]]
        local var429_upvw
        local var430_upvw = false
        var429_upvw = arg1:Connect(function(...) -- Line 1376
            --[[ Upvalues[4]:
                [1]: var427_upvw (copied, read and write)
                [2]: arg1_21 (readonly)
                [3]: var429_upvw (read and write)
                [4]: var430_upvw (read and write)
            ]]
            local var427_upvw_result1 = var427_upvw(...)
            if var427_upvw_result1 == true then
                arg1_21(...)
                if var429_upvw then
                    var429_upvw:Disconnect()
                    var429_upvw = nil
                else
                    var430_upvw = true
                end
            end
            if type(var427_upvw_result1) ~= "boolean" then
                error("Promise.fromEvent predicate should always return a boolean")
            end
        end)
        if var430_upvw and var429_upvw then
            return (function() -- Line 1367, Named "disconnect"
                --[[ Upvalues[1]:
                    [1]: var429_upvw (read and write)
                ]]
                var429_upvw:Disconnect()
                var429_upvw = nil
            end)()
        end
        arg3(function() -- Line 1396
            --[[ Upvalues[1]:
                [1]: var429_upvw (read and write)
            ]]
            var429_upvw:Disconnect()
            var429_upvw = nil
        end)
    end)
end
return module_6_upvr
ModuleScript Sounds ReplicatedStorage.engine.classes.Sounds
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:52
-- Luau version 6, Types version 3
-- Time taken: 0.003259 seconds

local module_upvr = {}
if _G._services.RunService:IsClient() then
    module_upvr.network = _G._engine:load("Network").new()
end
module_upvr.__index = module_upvr
function module_upvr.load(arg1, arg2) -- Line 9
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var2
    if typeof(arg2) ~= "table" then
        var2 = false
    else
        var2 = true
    end
    assert(var2, string.format("SoundClass.load | table expected, got %s", typeof(arg2)))
    if arg2.sound then
        local clone = arg2.sound:Clone()
        var2 = arg2.directory
        clone.Parent = var2
        arg2.sound = clone
    else
        var2 = "Sound"
        local any = Instance.new(var2, arg2.directory)
        var2 = arg2.soundId
        any.SoundId = var2
        var2 = arg2.playbackSpeed or 1
        any.PlaybackSpeed = var2
        var2 = arg2.rollOffMaxDistance or 10000
        any.RollOffMaxDistance = var2
        var2 = arg2.rollOffMinDistance or 10
        any.RollOffMinDistance = var2
        var2 = arg2.rollOffMode
        if not var2 then
            var2 = Enum.RollOffMode.Inverse
        end
        any.RollOffMode = var2
        any.Looped = arg2.looped or false
        any.Volume = arg2.volume or 0.5
        any.SoundGroup = arg2.soundGroup
        arg2.sound = any
    end
    local var5
    if arg2.play then
        arg2.sound:Play()
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var5 = arg2.sound.TimeLength
            return var5
        end
        if 0.05 > arg2.sound.TimeLength or not INLINED() then
            var5 = 1
        end
        _G._services.Debris:AddItem(arg2.sound, var5)
    end
    if arg2.replicate then
        var5 = arg2
        module_upvr.network:send("sound", var5)
    end
end
return module_upvr
ModuleScript Sessions ReplicatedStorage.engine.classes.Sessions
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:53
-- Luau version 6, Types version 3
-- Time taken: 0.003995 seconds

local Services_upvr = require(game:GetService("ReplicatedStorage").engine).Services
local module_upvr = {
    new = function(arg1) -- Line 12, Named "new"
        --[[ Upvalues[1]:
            [1]: Services_upvr (readonly)
        ]]
        assert(arg1, "Sessions.new() | string 'constructor' expected, got "..typeof(arg1))
        assert(Services_upvr.RunService:IsServer(), "Sessions.new() | .new() can only be called server-side !")
        script:SetAttribute("init", true)
        script:SetAttribute(arg1, "idle")
    end;
}
function module_upvr.create(arg1, arg2) -- Line 20
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    assert(arg2, "Sessions:create() | string 'constructor' expected, got "..typeof(arg2))
    assert(script:GetAttribute(arg2), "Sessions:create() | you must define a new constructor using .new() before running :create() !")
    module_upvr[arg2] = Services_upvr.HttpService:GenerateGUID(false)
end
function module_upvr.isSession(arg1, arg2) -- Line 27
    assert(arg2, "Sessions:isSession() | table 'args' expected, got "..typeof(arg2))
    local assert = assert
    assert(script:GetAttribute(arg2.constructor), "Sessions:isSession() | you must define a new constructor using .new() before running :isSession() !")
    if script:GetAttribute(arg2.constructor) ~= arg2.session then
        assert = false
    else
        assert = true
    end
    return assert
end
function module_upvr.getSession(arg1, arg2) -- Line 34
    assert(arg2, "Sessions:getSession() | string 'constructor' expected, got "..typeof(arg2))
    assert(script:GetAttribute(arg2), "Sessions:getSession() | you must define a new constructor using .new() before running :getSession() !")
    return script:GetAttribute(arg2)
end
function module_upvr.clear(arg1, arg2) -- Line 41
    assert(arg2, "Sessions:clear() | string 'constructor' expected, got "..typeof(arg2))
    assert(script:GetAttribute(arg2), "Sessions:clear() | you must define a new constructor using .new() before running :clear() !")
    script:SetAttribute(arg2, "idle")
end
function module_upvr.destroy(arg1, arg2) -- Line 48
    assert(arg2, "Sessions:destroy() | string 'constructor' expected, got "..typeof(arg2))
    assert(script:GetAttribute(arg2), "Sessions:destroy() | you must define a new constructor using .new() before running :destroy() !")
    script:SetAttribute(arg2, nil)
end
return module_upvr
ModuleScript Teleporter ReplicatedStorage.engine.classes.Teleporter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:54
-- Luau version 6, Types version 3
-- Time taken: 0.014379 seconds

local _engine = _G._engine
local _references_upvr = _G._references
local _services_upvr = _G._services
local menu_upvr = _references_upvr.PlayerGui:WaitForChild("menu", 100)
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local any_load_result1_upvr_2 = _engine:load("BulkFade", "utils")
local any_load_result1_upvr = _engine:load("Maid")
function module_2_upvr.new(arg1, arg2, arg3, arg4) -- Line 23
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: menu_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: module_2_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl_upvr = {}
    if typeof(arg2) == "table" then
        local tbl_upvw = {}
        for _, v in next, arg2 do
            for _, v_2 in next, v:GetDescendants() do
                if v_2 then
                    table.insert(tbl_upvw, v_2)
                end
            end
        end
        tbl_upvr.origin = any_load_result1_upvr_2.CreateGroup(tbl_upvw, TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
        for i_3, v_3 in next, arg2 do
            v_3.DescendantAdded:Connect(function() -- Line 40
                --[[ Upvalues[3]:
                    [1]: tbl_upvw (read and write)
                    [2]: arg2 (readonly)
                    [3]: tbl_upvr (readonly)
                ]]
                tbl_upvw = {}
                for _, v_4 in next, arg2 do
                    for _, v_5 in next, v_4:GetDescendants() do
                        if v_5 then
                            table.insert(tbl_upvw, v_5)
                        end
                    end
                end
                tbl_upvr.origin:UpdateGroup(tbl_upvw)
            end)
            v_3.DescendantRemoving:Connect(function() -- Line 54
                --[[ Upvalues[3]:
                    [1]: tbl_upvw (read and write)
                    [2]: arg2 (readonly)
                    [3]: tbl_upvr (readonly)
                ]]
                tbl_upvw = {}
                for _, v_6 in next, arg2 do
                    for _, v_7 in next, v_6:GetDescendants() do
                        if v_7 then
                            table.insert(tbl_upvw, v_7)
                        end
                    end
                end
                tbl_upvr.origin:UpdateGroup(tbl_upvw)
            end)
            local _
        end
    elseif typeof(arg2) ~= "table" and typeof(arg2) ~= "string" then
        i_3 = Enum.EasingStyle.Quint
        v_3 = Enum.EasingDirection.Out
        tbl_upvr.origin = any_load_result1_upvr_2.CreateGroup(arg2:GetDescendants(), TweenInfo.new(0.15, i_3, v_3))
        arg2.DescendantAdded:Connect(function() -- Line 71
            --[[ Upvalues[2]:
                [1]: tbl_upvr (readonly)
                [2]: arg2 (readonly)
            ]]
            tbl_upvr.origin:UpdateGroup(arg2:GetDescendants())
        end)
        arg2.DescendantRemoving:Connect(function() -- Line 75
            --[[ Upvalues[2]:
                [1]: tbl_upvr (readonly)
                [2]: arg2 (readonly)
            ]]
            tbl_upvr.origin:UpdateGroup(arg2:GetDescendants())
        end)
    end
    tbl_upvr.page = any_load_result1_upvr_2.CreateGroup(menu_upvr.teleport:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
    tbl_upvr.yes = any_load_result1_upvr_2.CreateGroup(menu_upvr.teleport.main.buttons.yes:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut))
    tbl_upvr.no = any_load_result1_upvr_2.CreateGroup(menu_upvr.teleport.main.buttons.no:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut))
    tbl_upvr.page:FadeOut()
    local module = {
        event = Instance.new("BindableEvent");
        bulkFadeGroups = tbl_upvr;
        maid = any_load_result1_upvr.new();
    }
    module.placeId = arg3
    module.core = arg1
    module.info = arg4
    return setmetatable(module, module_2_upvr)
end
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("Network").new()
function module_2_upvr.prompt(arg1, arg2, arg3, arg4) -- Line 95
    --[[ Upvalues[5]:
        [1]: menu_upvr (readonly)
        [2]: _references_upvr (readonly)
        [3]: _services_upvr (readonly)
        [4]: any_load_result1_upvr_3 (readonly)
        [5]: any_new_result1_upvr (readonly)
    ]]
    assert(arg1.bulkFadeGroups, "Teleporter [prompt]: Run '.new()' before calling :prompt()!")
    arg1.core:SetAttribute("freeze", true)
    if arg4 then
        arg1.bulkFadeGroups.origin = arg4
    end
    menu_upvr.teleport.Visible = true
    menu_upvr.teleport.main.title.Text = string.upper(arg2 or "teleport")
    if arg4 then
        arg1.bulkFadeGroups.origin.buttons:FadeOut()
        arg1.bulkFadeGroups.origin.profile:FadeOut()
        arg1.bulkFadeGroups.origin.origin:FadeOut()
    else
        arg1.bulkFadeGroups.origin:FadeOut()
    end
    arg1.bulkFadeGroups.page:FadeIn()
    if arg1.info and arg1.info == "server" then
        menu_upvr.pages.servers.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    end
    for _, v_8_upvr in next, {"yes", "no"} do
        local var60_upvr = menu_upvr.teleport.main.buttons[v_8_upvr]
        arg1.maid[v_8_upvr.."_mouseEnter"] = var60_upvr.button.MouseEnter:Connect(function() -- Line 124
            --[[ Upvalues[4]:
                [1]: _references_upvr (copied, readonly)
                [2]: _services_upvr (copied, readonly)
                [3]: var60_upvr (readonly)
                [4]: any_load_result1_upvr_3 (copied, readonly)
            ]]
            _references_upvr.Main.sounds.UI.Hover:Play()
            _services_upvr.TweenService:Create(var60_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Accent;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
        end)
        arg1.maid[v_8_upvr.."_mouseLeave"] = var60_upvr.button.MouseLeave:Connect(function() -- Line 131
            --[[ Upvalues[3]:
                [1]: _services_upvr (copied, readonly)
                [2]: var60_upvr (readonly)
                [3]: any_load_result1_upvr_3 (copied, readonly)
            ]]
            _services_upvr.TweenService:Create(var60_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        arg1.maid[v_8_upvr.."_mouseButton1Down"] = var60_upvr.button.MouseButton1Down:Connect(function() -- Line 137
            --[[ Upvalues[2]:
                [1]: _services_upvr (copied, readonly)
                [2]: var60_upvr (readonly)
            ]]
            _services_upvr.TweenService:Create(var60_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end)
        arg1.maid[v_8_upvr.."_inputEnded"] = _services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 141
            if arg1_2.UserInputType ~= Enum.UserInputType.MouseButton1 then
                if arg1_2.UserInputType ~= Enum.UserInputType.Touch then
                else
                end
            end
        end)
        arg1.maid[v_8_upvr.."_mouseButton1Click"] = var60_upvr.button.MouseButton1Click:Connect(function() -- Line 147
            --[[ Upvalues[10]:
                [1]: _references_upvr (copied, readonly)
                [2]: _services_upvr (copied, readonly)
                [3]: var60_upvr (readonly)
                [4]: any_load_result1_upvr_3 (copied, readonly)
                [5]: arg1 (readonly)
                [6]: v_8_upvr (readonly)
                [7]: menu_upvr (copied, readonly)
                [8]: any_new_result1_upvr (copied, readonly)
                [9]: arg3 (readonly)
                [10]: arg4 (readonly)
            ]]
            _references_upvr.Main.sounds.UI.Click:Play()
            _services_upvr.TweenService:Create(var60_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            _services_upvr.TweenService:Create(var60_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
            arg1.event:Fire(v_8_upvr)
            if v_8_upvr == "yes" then
                arg1.maid:DoCleaning()
                arg1.bulkFadeGroups.yes:FadeOut()
                arg1.bulkFadeGroups.no:FadeOut()
                menu_upvr.teleport.main.label.Text = "Teleporting to server"
                task.wait(0.2)
                menu_upvr.teleport.main:TweenSize(UDim2.new(0, 450, 0, 110), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
                any_new_result1_upvr:send("teleport", arg1.placeId, arg3)
            else
                arg1.maid:DoCleaning()
                arg1.core:SetAttribute("freeze", false)
                if arg1.info and arg1.info == "server" then
                    menu_upvr.pages.servers.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                end
                arg1.bulkFadeGroups.page:FadeOut()
                if arg4 then
                    arg1.bulkFadeGroups.origin.buttons:FadeIn()
                    arg1.bulkFadeGroups.origin.profile:FadeIn()
                    arg1.bulkFadeGroups.origin.origin:FadeIn()
                else
                    arg1.bulkFadeGroups.origin:FadeIn()
                end
                task.wait(0.2)
                menu_upvr.teleport.Visible = false
            end
        end)
    end
end
return module_2_upvr
ModuleScript Notification ReplicatedStorage.engine.classes.Notification
KONSTANTERROR: After: K:0: attempt to index nil with 'debug_name'
K
K
K
K
K
K
K
ModuleScript Hitboxes ReplicatedStorage.engine.classes.Hitboxes
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:57
-- Luau version 6, Types version 3
-- Time taken: 0.010454 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Balls")
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local OverlapParams_new_result1_upvr = OverlapParams.new()
OverlapParams_new_result1_upvr.MaxParts = 1
OverlapParams_new_result1_upvr.FilterType = Enum.RaycastFilterType.Include
OverlapParams_new_result1_upvr.FilterDescendantsInstances = any_load_result1_upvr.GetBalls()
any_load_result1_upvr.BallAdded:Connect(function() -- Line 19
    --[[ Upvalues[2]:
        [1]: OverlapParams_new_result1_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    OverlapParams_new_result1_upvr.FilterDescendantsInstances = any_load_result1_upvr.GetBalls()
end)
local tbl_3_upvr = {}
local module_upvr_2 = {
    useExpensives = false;
    correspondingLimbs = {
        body = {"Head", "Torso", "UpperTorso", "LowerTorso"};
        arms = {"Torso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand"};
        legs = {"Collide", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot"};
    };
}
module_upvr_2.__index = module_upvr_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr_2.new(arg1) -- Line 60
    --[[ Upvalues[4]:
        [1]: Services_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: module_upvr_2 (readonly)
        [4]: tbl_3_upvr (readonly)
    ]]
    assert(arg1, "HitboxClass.new() | table 'args' expected, got "..typeof(arg1))
    assert(Services_upvr.RunService:IsClient(), "HitboxClass | module can only be ran via client-side!")
    local tbl = {
        hitboxes = {};
    }
    local limbs = arg1.limbs
    if not limbs then
        limbs = {}
        limbs[1] = "UpperTorso"
    end
    tbl.limbs = limbs
    tbl.limitTrip = arg1.limitTrip
    tbl.hit = false
    tbl.humanoid = arg1.humanoid or false
    tbl.maid = any_load_result1_upvr_2.new()
    local callback = arg1.callback
    if not callback then
        function callback() -- Line 71
        end
    end
    tbl.callback = callback
    local setmetatable_result1 = setmetatable(tbl, module_upvr_2)
    table.insert(tbl_3_upvr, setmetatable_result1)
    return setmetatable_result1
end
function module_upvr_2.onTouched(arg1, arg2, arg3) -- Line 78
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    if arg1.hit then
    else
        if arg2 and arg2:FindFirstAncestor(LocalPlayer_upvr.Name) then return end
        if arg2 and arg2.Parent and arg2.Parent:FindFirstChild("Humanoid") and arg2.Parent ~= LocalPlayer_upvr.Character and arg1.humanoid then
            if arg1.limitTrip and table.find(arg1.correspondingLimbs[arg1.limitTrip], arg3.Name) or not arg1.limitTrip then
                arg1.hit = true
                arg1:clear()
                arg1.callback(arg3, arg2, arg2.Parent)
                return
            end
        end
        if arg2 and any_load_result1_upvr.IsBall(arg2) then
            arg1.hit = true
            arg1:clear()
            arg1.callback(arg3, arg2)
        end
    end
end
local module_upvr = require(script:WaitForChild("Raycast", 100))
function module_upvr_2.init(arg1) -- Line 97
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: module_upvr (readonly)
    ]]
    assert(arg1.maid, "HitboxClass:init() | You must call .new() before running :init() !")
    local tbl_2 = {}
    for _, v in next, arg1.limbs do
        if LocalPlayer_upvr.Character[v] then
            table.insert(tbl_2, LocalPlayer_upvr.Character[v])
        end
    end
    for _, v_2 in next, any_load_result1_upvr.GetBalls() do
        if v_2 then
            table.insert({}, v_2)
        end
    end
    for _, v_3 in next, Services_upvr.Players:GetPlayers() do
        if v_3 and v_3 ~= LocalPlayer_upvr and v_3.Character and v_3.Character.Parent then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            table.insert({}, v_3.Character)
        end
    end
    local RaycastParams_new_result1 = RaycastParams.new()
    RaycastParams_new_result1.FilterType = Enum.RaycastFilterType.Include
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    RaycastParams_new_result1.FilterDescendantsInstances = {}
    local any_new_result1_upvr = module_upvr.new(tbl_2, RaycastParams_new_result1)
    if arg1.useExpensives then
        any_new_result1_upvr:init()
    end
    arg1.hitbox = any_new_result1_upvr
    any_new_result1_upvr.onHit:Connect(function(arg1_2, arg2) -- Line 134
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:onTouched(arg1_2, arg2)
    end)
    if not arg1.useExpensives then
        for _, v_4_upvr in next, tbl_2 do
            if v_4_upvr and v_4_upvr.Parent then
                for _, v_5 in next, v_4_upvr:GetTouchingParts() do
                    if v_5 then
                        any_new_result1_upvr.onHit:Fire(v_5, v_4_upvr)
                    end
                end
                arg1.maid[v_4_upvr.Name.."onTouched"] = v_4_upvr.Touched:Connect(function(arg1_3) -- Line 147
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (readonly)
                        [2]: v_4_upvr (readonly)
                    ]]
                    any_new_result1_upvr.onHit:Fire(arg1_3, v_4_upvr)
                end)
                arg1.maid[v_4_upvr.Name.."onTouchEnded"] = v_4_upvr.TouchEnded:Connect(function(arg1_4) -- Line 151
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (readonly)
                        [2]: v_4_upvr (readonly)
                    ]]
                    any_new_result1_upvr.onHit:Fire(arg1_4, v_4_upvr)
                end)
            end
        end
    end
end
function module_upvr_2.clear(arg1) -- Line 159
    --[[ Upvalues[1]:
        [1]: tbl_3_upvr (readonly)
    ]]
    arg1.maid:DoCleaning()
    arg1.hitbox:clear()
    if table.find(tbl_3_upvr, arg1) then
        table.remove(tbl_3_upvr, table.find(tbl_3_upvr, arg1))
    end
end
function module_upvr_2.clearAll(arg1) -- Line 168
    --[[ Upvalues[1]:
        [1]: tbl_3_upvr (readonly)
    ]]
    for _, v_6 in next, tbl_3_upvr do
        if v_6 then
            v_6:clear()
        end
    end
    table.clear(tbl_3_upvr)
end
return module_upvr_2
ModuleScript Raycast ReplicatedStorage.engine.classes.Hitboxes.Raycast
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:58
-- Luau version 6, Types version 3
-- Time taken: 0.004521 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local any_load_result1_upvr = _G._engine:load("GoodSignal")
local any_load_result1_upvr_2 = _G._engine:load("Maid")
function module_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[3]:
        [1]: any_load_result1_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: module_upvr (readonly)
    ]]
    local var4
    if typeof(arg1) ~= "table" then
        var4 = false
    else
        var4 = true
    end
    assert(var4, "RaycastHitbox.new() | table 'parts' expected, got "..typeof(arg1))
    local var5 = arg2
    if not var5 then
        var5 = RaycastParams.new()
    end
    var4 = {}
    var4.onHit = any_load_result1_upvr.new(1)
    var4.maid = any_load_result1_upvr_2.new()
    var4.parts = arg1
    var4.raycastParams = var5
    return setmetatable(var4, module_upvr)
end
function module_upvr.init(arg1) -- Line 19
    arg1.maid.renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 20
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        for _, v in next, arg1.parts do
            if v and v.Parent then
                ({})[v] = {workspace:Raycast(v.Position, (v.CFrame.LookVector) * (v.Size.Z / 2), arg1.raycastParams), workspace:Raycast(v.Position, v.CFrame.LookVector * -(v.Size.Z / 2), arg1.raycastParams), workspace:Raycast(v.Position, (v.CFrame.RightVector) * (v.Size.X / 2), arg1.raycastParams), workspace:Raycast(v.Position, v.CFrame.RightVector * -(v.Size.X / 2), arg1.raycastParams), workspace:Raycast(v.Position, (v.CFrame.UpVector) * (v.Size.Y / 2), arg1.raycastParams), workspace:Raycast(v.Position, v.CFrame.UpVector * -(v.Size.Y / 2), arg1.raycastParams)}
            end
        end
        for i_2, v_2 in next, {} do
            if i_2 and v_2 then
                for _, v_3 in next, v_2 do
                    if v_3 and v_3.Instance then
                        arg1.onHit:Fire(v_3.Instance, i_2)
                        arg1:clear()
                    end
                end
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        end
    end)
end
function module_upvr.clear(arg1) -- Line 51
    arg1.maid:DoCleaning()
    if arg1.onHit then
        arg1.onHit:Destroy()
    end
end
return module_upvr
ModuleScript GoodSignal ReplicatedStorage.engine.classes.GoodSignal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:55:59
-- Luau version 6, Types version 3
-- Time taken: 0.004894 seconds

local var1_upvw
local function acquireRunnerThreadAndCallEventHandler_upvr(arg1, ...) -- Line 35, Named "acquireRunnerThreadAndCallEventHandler"
    --[[ Upvalues[1]:
        [1]: var1_upvw (read and write)
    ]]
    var1_upvw = nil
    arg1(...)
    var1_upvw = var1_upvw
end
local function runEventHandlerInFreeThread_upvr(...) -- Line 46, Named "runEventHandlerInFreeThread"
    --[[ Upvalues[1]:
        [1]: acquireRunnerThreadAndCallEventHandler_upvr (readonly)
    ]]
    acquireRunnerThreadAndCallEventHandler_upvr(...)
    while true do
        acquireRunnerThreadAndCallEventHandler_upvr(coroutine.yield())
    end
end
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local function new(arg1, arg2) -- Line 57
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local module = {
        _connected = true;
    }
    module._signal = arg1
    module._fn = arg2
    module._next = false
    return setmetatable(module, tbl_upvr)
end
tbl_upvr.new = new
function tbl_upvr.Disconnect(arg1) -- Line 66
    assert(arg1._connected, "Can't disconnect a connection twice.", 2)
    arg1._connected = false
    local var4
    if var4 == arg1 then
        var4 = arg1._signal
        var4._handlerListHead = arg1._next
    else
        var4 = arg1._signal._handlerListHead
        while var4 and var4._next ~= arg1 do
            var4 = var4._next
        end
        if var4 then
            var4._next = arg1._next
        end
    end
end
local tbl = {}
local function __index(arg1, arg2) -- Line 89
    error("Attempt to get Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl.__index = __index
local function __newindex(arg1, arg2, arg3) -- Line 92
    error("Attempt to set Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl.__newindex = __newindex
setmetatable(tbl_upvr, tbl)
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 101
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module_3 = {
        _handlerListHead = false;
    }
    module_3._signalType = arg1
    return setmetatable(module_3, module_2_upvr)
end
function module_2_upvr.Connect(arg1, arg2) -- Line 108
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local any_new_result1 = tbl_upvr.new(arg1, arg2)
    if arg1._signalType == 1 and arg1._handlerListHead then
        any_new_result1._next = arg1._handlerListHead
        arg1._handlerListHead = any_new_result1
        return any_new_result1
    end
    arg1._handlerListHead = any_new_result1
    return any_new_result1
end
function module_2_upvr.Destroy(arg1) -- Line 123
    arg1._handlerListHead = false
end
function module_2_upvr.Fire(arg1, ...) -- Line 131
    --[[ Upvalues[2]:
        [1]: var1_upvw (read and write)
        [2]: runEventHandlerInFreeThread_upvr (readonly)
    ]]
    local _handlerListHead = arg1._handlerListHead
    while _handlerListHead do
        if _handlerListHead._connected then
            if not var1_upvw then
                var1_upvw = coroutine.create(runEventHandlerInFreeThread_upvr)
            end
            task.spawn(var1_upvw, _handlerListHead._fn, ...)
        end
    end
end
function module_2_upvr.Wait(arg1) -- Line 146
    local var11_upvw
    local current_thread_upvr = coroutine.running()
    var11_upvw = arg1:Connect(function(...) -- Line 149
        --[[ Upvalues[2]:
            [1]: var11_upvw (read and write)
            [2]: current_thread_upvr (readonly)
        ]]
        var11_upvw:Disconnect()
        task.spawn(current_thread_upvr, ...)
    end)
    return coroutine.yield()
end
setmetatable(module_2_upvr, {
    __index = function(arg1, arg2) -- Line 158, Named "__index"
        error("Attempt to get Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
    __newindex = function(arg1, arg2, arg3) -- Line 161, Named "__newindex"
        error("Attempt to set Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
})
return module_2_upvr
ModuleScript Icon ReplicatedStorage.engine.classes.Icon
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:02
-- Luau version 6, Types version 3
-- Time taken: 0.227938 seconds

local TweenService_upvr = game:GetService("TweenService")
local UserInputService_upvr = game:GetService("UserInputService")
local TextService_upvr = game:GetService("TextService")
local IconController_upvr = require(script.IconController)
local Signal_upvr = require(script.Signal)
local Maid_upvr = require(script.Maid)
local TopbarPlusGui_upvr = require(script.TopbarPlusGui)
local TopbarPlusReference = require(script.TopbarPlusReference)
local any_getObject_result1 = TopbarPlusReference.getObject()
local ActiveItems_upvr = TopbarPlusGui_upvr.ActiveItems
local TopbarContainer_upvr = TopbarPlusGui_upvr.TopbarContainer
local tbl_7_upvr = {}
local var13_upvr
local function INLINED() -- Internal function, doesn't exist in bytecode
    var13_upvr = require(any_getObject_result1.Value)
    return var13_upvr
end
if not any_getObject_result1 or not INLINED() then
    var13_upvr = {}
end
var13_upvr.__index = var13_upvr
if not any_getObject_result1 then
    TopbarPlusReference.addToReplicatedStorage()
end
local IconContainer_upvr = TopbarContainer_upvr.IconContainer
local StarterGui_upvr = game:GetService("StarterGui")
local Default_upvr = require(script.Themes).Default
local RunService_upvr = game:GetService("RunService")
function var13_upvr.new() -- Line 605
    --[[ Upvalues[12]:
        [1]: var13_upvr (readonly)
        [2]: Maid_upvr (readonly)
        [3]: IconContainer_upvr (readonly)
        [4]: TopbarContainer_upvr (readonly)
        [5]: tbl_7_upvr (readonly)
        [6]: StarterGui_upvr (readonly)
        [7]: IconController_upvr (readonly)
        [8]: TweenService_upvr (readonly)
        [9]: Signal_upvr (readonly)
        [10]: Default_upvr (readonly)
        [11]: UserInputService_upvr (readonly)
        [12]: RunService_upvr (readonly)
    ]]
    local module_upvr = {}
    setmetatable(module_upvr, var13_upvr)
    local any_new_result1 = Maid_upvr.new()
    module_upvr._maid = any_new_result1
    module_upvr._hoveringMaid = any_new_result1:give(Maid_upvr.new())
    module_upvr._dropdownClippingMaid = any_new_result1:give(Maid_upvr.new())
    module_upvr._menuClippingMaid = any_new_result1:give(Maid_upvr.new())
    local tbl_12_upvr = {}
    module_upvr.instances = tbl_12_upvr
    local any_give_result1 = any_new_result1:give(IconContainer_upvr:Clone())
    any_give_result1.Visible = true
    any_give_result1.Parent = TopbarContainer_upvr
    tbl_12_upvr.iconContainer = any_give_result1
    tbl_12_upvr.iconButton = any_give_result1.IconButton
    tbl_12_upvr.iconImage = tbl_12_upvr.iconButton.IconImage
    tbl_12_upvr.iconLabel = tbl_12_upvr.iconButton.IconLabel
    tbl_12_upvr.iconGradient = tbl_12_upvr.iconButton.IconGradient
    tbl_12_upvr.iconCorner = tbl_12_upvr.iconButton.IconCorner
    tbl_12_upvr.iconOverlay = any_give_result1.IconOverlay
    tbl_12_upvr.iconOverlayCorner = tbl_12_upvr.iconOverlay.IconOverlayCorner
    tbl_12_upvr.noticeFrame = tbl_12_upvr.iconButton.NoticeFrame
    tbl_12_upvr.noticeLabel = tbl_12_upvr.noticeFrame.NoticeLabel
    tbl_12_upvr.captionContainer = any_give_result1.CaptionContainer
    tbl_12_upvr.captionFrame = tbl_12_upvr.captionContainer.CaptionFrame
    tbl_12_upvr.captionLabel = tbl_12_upvr.captionContainer.CaptionLabel
    tbl_12_upvr.captionCorner = tbl_12_upvr.captionFrame.CaptionCorner
    tbl_12_upvr.captionOverlineContainer = tbl_12_upvr.captionContainer.CaptionOverlineContainer
    tbl_12_upvr.captionOverline = tbl_12_upvr.captionOverlineContainer.CaptionOverline
    tbl_12_upvr.captionOverlineCorner = tbl_12_upvr.captionOverline.CaptionOverlineCorner
    tbl_12_upvr.captionVisibilityBlocker = tbl_12_upvr.captionFrame.CaptionVisibilityBlocker
    tbl_12_upvr.captionVisibilityCorner = tbl_12_upvr.captionVisibilityBlocker.CaptionVisibilityCorner
    tbl_12_upvr.tipFrame = any_give_result1.TipFrame
    tbl_12_upvr.tipLabel = tbl_12_upvr.tipFrame.TipLabel
    tbl_12_upvr.tipCorner = tbl_12_upvr.tipFrame.TipCorner
    tbl_12_upvr.dropdownContainer = any_give_result1.DropdownContainer
    tbl_12_upvr.dropdownFrame = tbl_12_upvr.dropdownContainer.DropdownFrame
    tbl_12_upvr.dropdownList = tbl_12_upvr.dropdownFrame.DropdownList
    tbl_12_upvr.menuContainer = any_give_result1.MenuContainer
    tbl_12_upvr.menuFrame = tbl_12_upvr.menuContainer.MenuFrame
    tbl_12_upvr.menuList = tbl_12_upvr.menuFrame.MenuList
    tbl_12_upvr.clickSound = any_give_result1.ClickSound
    module_upvr._settings = {
        action = {
            toggleTransitionInfo = {};
            resizeInfo = {};
            repositionInfo = {};
            captionFadeInfo = {};
            tipFadeInfo = {};
            dropdownSlideInfo = {};
            menuSlideInfo = {};
        };
        toggleable = {
            iconBackgroundColor = {
                instanceNames = {"iconButton"};
                propertyName = "BackgroundColor3";
            };
            iconBackgroundTransparency = {
                instanceNames = {"iconButton"};
                propertyName = "BackgroundTransparency";
            };
            iconCornerRadius = {
                instanceNames = {"iconCorner", "iconOverlayCorner"};
                propertyName = "CornerRadius";
            };
            iconGradientColor = {
                instanceNames = {"iconGradient"};
                propertyName = "Color";
            };
            iconGradientRotation = {
                instanceNames = {"iconGradient"};
                propertyName = "Rotation";
            };
            iconImage = {
                callMethods = {module_upvr._updateIconSize};
                instanceNames = {"iconImage"};
                propertyName = "Image";
            };
            iconImageColor = {
                instanceNames = {"iconImage"};
                propertyName = "ImageColor3";
            };
            iconImageTransparency = {
                instanceNames = {"iconImage"};
                propertyName = "ImageTransparency";
            };
            iconScale = {
                instanceNames = {"iconButton"};
                propertyName = "Size";
            };
            forcedIconSize = {};
            iconSize = {
                callSignals = {module_upvr.updated};
                callMethods = {module_upvr._updateIconSize};
                instanceNames = {"iconContainer"};
                propertyName = "Size";
                tweenAction = "resizeInfo";
            };
            iconOffset = {
                instanceNames = {"iconButton"};
                propertyName = "Position";
            };
            iconText = {
                callMethods = {module_upvr._updateIconSize};
                instanceNames = {"iconLabel"};
                propertyName = "Text";
            };
            iconTextColor = {
                instanceNames = {"iconLabel"};
                propertyName = "TextColor3";
            };
            iconFont = {
                instanceNames = {"iconLabel"};
                propertyName = "Font";
            };
            iconImageYScale = {
                callMethods = {module_upvr._updateIconSize};
            };
            iconImageRatio = {
                callMethods = {module_upvr._updateIconSize};
            };
            iconLabelYScale = {
                callMethods = {module_upvr._updateIconSize};
            };
            noticeCircleColor = {
                instanceNames = {"noticeFrame"};
                propertyName = "ImageColor3";
            };
            noticeCircleImage = {
                instanceNames = {"noticeFrame"};
                propertyName = "Image";
            };
            noticeTextColor = {
                instanceNames = {"noticeLabel"};
                propertyName = "TextColor3";
            };
            noticeImageTransparency = {
                instanceNames = {"noticeFrame"};
                propertyName = "ImageTransparency";
            };
            noticeTextTransparency = {
                instanceNames = {"noticeLabel"};
                propertyName = "TextTransparency";
            };
            baseZIndex = {
                callMethods = {module_upvr._updateBaseZIndex};
            };
            order = {
                callSignals = {module_upvr.updated};
                instanceNames = {"iconContainer"};
                propertyName = "LayoutOrder";
            };
            alignment = {
                callSignals = {module_upvr.updated};
                callMethods = {module_upvr._updateDropdown};
            };
            iconImageVisible = {
                instanceNames = {"iconImage"};
                propertyName = "Visible";
            };
            iconImageAnchorPoint = {
                instanceNames = {"iconImage"};
                propertyName = "AnchorPoint";
            };
            iconImagePosition = {
                instanceNames = {"iconImage"};
                propertyName = "Position";
                tweenAction = "resizeInfo";
            };
            iconImageSize = {
                instanceNames = {"iconImage"};
                propertyName = "Size";
                tweenAction = "resizeInfo";
            };
            iconImageTextXAlignment = {
                instanceNames = {"iconImage"};
                propertyName = "TextXAlignment";
            };
            iconLabelVisible = {
                instanceNames = {"iconLabel"};
                propertyName = "Visible";
            };
            iconLabelAnchorPoint = {
                instanceNames = {"iconLabel"};
                propertyName = "AnchorPoint";
            };
            iconLabelPosition = {
                instanceNames = {"iconLabel"};
                propertyName = "Position";
                tweenAction = "resizeInfo";
            };
            iconLabelSize = {
                instanceNames = {"iconLabel"};
                propertyName = "Size";
                tweenAction = "resizeInfo";
            };
            iconLabelTextXAlignment = {
                instanceNames = {"iconLabel"};
                propertyName = "TextXAlignment";
            };
            iconLabelTextSize = {
                instanceNames = {"iconLabel"};
                propertyName = "TextSize";
            };
            noticeFramePosition = {
                instanceNames = {"noticeFrame"};
                propertyName = "Position";
            };
            clickSoundId = {
                instanceNames = {"clickSound"};
                propertyName = "SoundId";
            };
            clickVolume = {
                instanceNames = {"clickSound"};
                propertyName = "Volume";
            };
            clickPlaybackSpeed = {
                instanceNames = {"clickSound"};
                propertyName = "PlaybackSpeed";
            };
            clickTimePosition = {
                instanceNames = {"clickSound"};
                propertyName = "TimePosition";
            };
        };
        other = {
            captionBackgroundColor = {
                instanceNames = {"captionFrame"};
                propertyName = "BackgroundColor3";
            };
            captionBackgroundTransparency = {
                instanceNames = {"captionFrame"};
                propertyName = "BackgroundTransparency";
                group = "caption";
            };
            captionBlockerTransparency = {
                instanceNames = {"captionVisibilityBlocker"};
                propertyName = "BackgroundTransparency";
                group = "caption";
            };
            captionOverlineColor = {
                instanceNames = {"captionOverline"};
                propertyName = "BackgroundColor3";
            };
            captionOverlineTransparency = {
                instanceNames = {"captionOverline"};
                propertyName = "BackgroundTransparency";
                group = "caption";
            };
            captionTextColor = {
                instanceNames = {"captionLabel"};
                propertyName = "TextColor3";
            };
            captionTextTransparency = {
                instanceNames = {"captionLabel"};
                propertyName = "TextTransparency";
                group = "caption";
            };
            captionFont = {
                instanceNames = {"captionLabel"};
                propertyName = "Font";
            };
            captionCornerRadius = {
                instanceNames = {"captionCorner", "captionOverlineCorner", "captionVisibilityCorner"};
                propertyName = "CornerRadius";
            };
            tipBackgroundColor = {
                instanceNames = {"tipFrame"};
                propertyName = "BackgroundColor3";
            };
            tipBackgroundTransparency = {
                instanceNames = {"tipFrame"};
                propertyName = "BackgroundTransparency";
                group = "tip";
            };
            tipTextColor = {
                instanceNames = {"tipLabel"};
                propertyName = "TextColor3";
            };
            tipTextTransparency = {
                instanceNames = {"tipLabel"};
                propertyName = "TextTransparency";
                group = "tip";
            };
            tipFont = {
                instanceNames = {"tipLabel"};
                propertyName = "Font";
            };
            tipCornerRadius = {
                instanceNames = {"tipCorner"};
                propertyName = "CornerRadius";
            };
            dropdownSize = {
                instanceNames = {"dropdownContainer"};
                propertyName = "Size";
                unique = "dropdown";
            };
            dropdownCanvasSize = {
                instanceNames = {"dropdownFrame"};
                propertyName = "CanvasSize";
            };
            dropdownMaxIconsBeforeScroll = {
                callMethods = {module_upvr._updateDropdown};
            };
            dropdownMinWidth = {
                callMethods = {module_upvr._updateDropdown};
            };
            dropdownSquareCorners = {
                callMethods = {module_upvr._updateDropdown};
            };
            dropdownBindToggleToIcon = {};
            dropdownToggleOnLongPress = {};
            dropdownToggleOnRightClick = {};
            dropdownCloseOnTapAway = {};
            dropdownHidePlayerlistOnOverlap = {};
            dropdownListPadding = {
                callMethods = {module_upvr._updateDropdown};
                instanceNames = {"dropdownList"};
                propertyName = "Padding";
            };
            dropdownAlignment = {
                callMethods = {module_upvr._updateDropdown};
            };
            dropdownScrollBarColor = {
                instanceNames = {"dropdownFrame"};
                propertyName = "ScrollBarImageColor3";
            };
            dropdownScrollBarTransparency = {
                instanceNames = {"dropdownFrame"};
                propertyName = "ScrollBarImageTransparency";
            };
            dropdownScrollBarThickness = {
                instanceNames = {"dropdownFrame"};
                propertyName = "ScrollBarThickness";
            };
            dropdownIgnoreClipping = {
                callMethods = {module_upvr._dropdownIgnoreClipping};
            };
            menuSize = {
                instanceNames = {"menuContainer"};
                propertyName = "Size";
                unique = "menu";
            };
            menuCanvasSize = {
                instanceNames = {"menuFrame"};
                propertyName = "CanvasSize";
            };
            menuMaxIconsBeforeScroll = {
                callMethods = {module_upvr._updateMenu};
            };
            menuBindToggleToIcon = {};
            menuToggleOnLongPress = {};
            menuToggleOnRightClick = {};
            menuCloseOnTapAway = {};
            menuListPadding = {
                callMethods = {module_upvr._updateMenu};
                instanceNames = {"menuList"};
                propertyName = "Padding";
            };
            menuDirection = {
                callMethods = {module_upvr._updateMenu};
            };
            menuScrollBarColor = {
                instanceNames = {"menuFrame"};
                propertyName = "ScrollBarImageColor3";
            };
            menuScrollBarTransparency = {
                instanceNames = {"menuFrame"};
                propertyName = "ScrollBarImageTransparency";
            };
            menuScrollBarThickness = {
                instanceNames = {"menuFrame"};
                propertyName = "ScrollBarThickness";
            };
            menuIgnoreClipping = {
                callMethods = {module_upvr._menuIgnoreClipping};
            };
        };
    }
    module_upvr._groupSettings = {}
    for _, v in pairs(module_upvr._settings) do
        for i_2, v_2 in pairs(v) do
            local group = v_2.group
            if group then
                local var209 = module_upvr._groupSettings[group]
                if not var209 then
                    var209 = {}
                    module_upvr._groupSettings[group] = var209
                end
                table.insert(var209, i_2)
                v_2.forcedGroupValue = tbl_7_upvr[group]
                v_2.useForcedGroupValue = true
            end
        end
    end
    module_upvr._settingsDictionary = {}
    module_upvr._uniqueSettings = {}
    module_upvr._uniqueSettingsDictionary = {}
    module_upvr.uniqueValues = {}
    for i_3, v_3 in pairs(module_upvr._settings) do
        for i_4, v_4 in pairs(v_3) do
            if i_3 == "toggleable" then
                if not v_4.values then
                end
                v_4.values = {
                    deselected = nil;
                    selected = nil;
                }
            else
                v_4.value = nil
            end
            v_4.additionalValues = {}
            v_4.type = i_3
            module_upvr._settingsDictionary[i_4] = v_4
            local unique = v_4.unique
            if unique then
                local var261 = module_upvr._uniqueSettings[unique]
                if not var261 then
                    var261 = {}
                end
                table.insert(var261, i_4)
                module_upvr._uniqueSettings[unique] = var261
                module_upvr._uniqueSettingsDictionary[i_4] = ({
                    dropdown = function(arg1, arg2, arg3, arg4) -- Line 783
                        --[[ Upvalues[4]:
                            [1]: module_upvr (readonly)
                            [2]: StarterGui_upvr (copied, readonly)
                            [3]: IconController_upvr (copied, readonly)
                            [4]: TweenService_upvr (copied, readonly)
                        ]]
                        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                        local var223
                        if module_upvr:get("dropdownHidePlayerlistOnOverlap") == true then
                            if module_upvr:get("alignment") ~= "right" then
                            else
                            end
                        end
                        var223 = not module_upvr.isSelected
                        if module_upvr:get("dropdownBindToggleToIcon") == false then
                            var223 = not module_upvr.dropdownOpen
                        end
                        if not module_upvr._longPressing then
                            local _rightClicking = module_upvr._rightClicking
                        end
                        local var225
                        local function INLINED_5() -- Internal function, doesn't exist in bytecode
                            var225 = module_upvr
                            return var225.dropdownOpen
                        end
                        if module_upvr._tappingAway or var223 and not _rightClicking or _rightClicking and INLINED_5() then
                            local any_get_result1_6 = module_upvr:get("dropdownSize")
                            local function INLINED_6() -- Internal function, doesn't exist in bytecode
                                var225 = any_get_result1_6.X.Offset / 1
                                return var225
                            end
                            if not any_get_result1_6 or not INLINED_6() then
                                var225 = 0
                            end
                            local var227 = false
                        end
                        var225 = module_upvr.dropdownIcons
                        var225 = 0
                        if var225 < #var225 then
                            local var228
                            if var227 and true then
                                if StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList) then
                                    StarterGui_upvr:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
                                end
                                local function INLINED_7() -- Internal function, doesn't exist in bytecode
                                    var228 = IconController_upvr._bringBackPlayerlist + 1
                                    return var228
                                end
                                if not IconController_upvr._bringBackPlayerlist or not INLINED_7() then
                                    var228 = 1
                                end
                                IconController_upvr._bringBackPlayerlist = var228
                                var228 = true
                                module_upvr._bringBackPlayerlist = var228
                                -- KONSTANTWARNING: GOTO [166] #126
                            end
                        end
                        if module_upvr._bringBackPlayerlist and not var227 then
                            if IconController_upvr._bringBackPlayerlist then
                                local var229 = IconController_upvr
                                var229._bringBackPlayerlist -= 1
                                if IconController_upvr._bringBackPlayerlist <= 0 then
                                    IconController_upvr._bringBackPlayerlist = nil
                                    StarterGui_upvr:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
                                end
                                module_upvr._bringBackPlayerlist = nil
                            end
                        end
                        local any_Create_result1_3 = TweenService_upvr:Create(arg2, module_upvr:get("dropdownSlideInfo"), {
                            [arg3] = UDim2.new(0, var225, 0, 0);
                        })
                        local var233_upvw
                        var233_upvw = any_Create_result1_3.Completed:Connect(function() -- Line 818
                            --[[ Upvalues[1]:
                                [1]: var233_upvw (read and write)
                            ]]
                            var233_upvw:Disconnect()
                        end)
                        any_Create_result1_3:Play()
                        if var227 then
                            module_upvr.instances.dropdownFrame.CanvasPosition = module_upvr._dropdownCanvasPos
                        else
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            module_upvr._dropdownCanvasPos = module_upvr.instances.dropdownFrame.CanvasPosition
                        end
                        module_upvr.dropdownOpen = var227
                        module_upvr:_decideToCallSignal("dropdown")
                    end;
                    menu = function(arg1, arg2, arg3, arg4) -- Line 831
                        --[[ Upvalues[2]:
                            [1]: module_upvr (readonly)
                            [2]: TweenService_upvr (copied, readonly)
                        ]]
                        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                        -- KONSTANTERROR: [0] 1. Error Block 39 start (CF ANALYSIS FAILED)
                        local any_get_result1_7 = module_upvr:get("menuSlideInfo")
                        local var245
                        if module_upvr:get("menuBindToggleToIcon") == false then
                            var245 = not module_upvr.menuOpen
                        end
                        if not module_upvr._longPressing then
                            local _rightClicking_4 = module_upvr._rightClicking
                        end
                        local var247_upvw
                        local function INLINED_10() -- Internal function, doesn't exist in bytecode
                            var247_upvw = module_upvr
                            return var247_upvw.menuOpen
                        end
                        if module_upvr._tappingAway or var245 and not _rightClicking_4 or _rightClicking_4 and INLINED_10() then
                            local any_get_result1_11 = module_upvr:get("menuSize")
                            local function INLINED_11() -- Internal function, doesn't exist in bytecode
                                var247_upvw = any_get_result1_11.Y.Offset / 1
                                return var247_upvw
                            end
                            if not any_get_result1_11 or not INLINED_11() then
                                var247_upvw = 0
                            end
                            local var249 = false
                        end
                        var247_upvw = module_upvr
                        if var249 ~= var247_upvw.menuOpen then
                            var247_upvw = module_upvr
                            var247_upvw.updated:Fire()
                        end
                        if var249 then
                            var247_upvw = Enum.EasingDirection.Out
                            if any_get_result1_7.EasingDirection == var247_upvw then
                                var247_upvw = any_get_result1_7.Time
                            end
                        end
                        local any_Create_result1 = TweenService_upvr:Create(arg2, TweenInfo.new(var247_upvw, any_get_result1_7.EasingStyle, Enum.EasingDirection.In), {
                            [arg3] = UDim2.new(0, 0, 0, var247_upvw);
                        })
                        var247_upvw = nil
                        var247_upvw = any_Create_result1.Completed:Connect(function() -- Line 857
                            --[[ Upvalues[1]:
                                [1]: var247_upvw (read and write)
                            ]]
                            var247_upvw:Disconnect()
                        end)
                        any_Create_result1:Play()
                        if var249 then
                            if module_upvr._menuCanvasPos then
                                module_upvr.instances.menuFrame.CanvasPosition = module_upvr._menuCanvasPos
                                -- KONSTANTWARNING: GOTO [137] #100
                            end
                        else
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            module_upvr._menuCanvasPos = module_upvr.instances.menuFrame.CanvasPosition
                        end
                        -- KONSTANTERROR: [0] 1. Error Block 39 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [137] 100. Error Block 26 start (CF ANALYSIS FAILED)
                        module_upvr.menuOpen = var249
                        module_upvr:_decideToCallSignal("menu")
                        -- KONSTANTERROR: [137] 100. Error Block 26 end (CF ANALYSIS FAILED)
                    end;
                })[unique]
            end
        end
    end
    module_upvr.updated = any_new_result1:give(Signal_upvr.new())
    module_upvr.selected = any_new_result1:give(Signal_upvr.new())
    module_upvr.deselected = any_new_result1:give(Signal_upvr.new())
    module_upvr.toggled = any_new_result1:give(Signal_upvr.new())
    module_upvr.hoverStarted = any_new_result1:give(Signal_upvr.new())
    module_upvr.hoverEnded = any_new_result1:give(Signal_upvr.new())
    module_upvr.dropdownOpened = any_new_result1:give(Signal_upvr.new())
    module_upvr.dropdownClosed = any_new_result1:give(Signal_upvr.new())
    module_upvr.menuOpened = any_new_result1:give(Signal_upvr.new())
    module_upvr.menuClosed = any_new_result1:give(Signal_upvr.new())
    module_upvr.notified = any_new_result1:give(Signal_upvr.new())
    module_upvr._endNotices = any_new_result1:give(Signal_upvr.new())
    module_upvr._ignoreClippingChanged = any_new_result1:give(Signal_upvr.new())
    local function setFeatureChange_upvr(arg1, arg2) -- Line 915, Named "setFeatureChange"
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        local _parentIcon_3 = module_upvr._parentIcon
        module_upvr:set(arg1.."IgnoreClipping", arg2)
        if arg2 == true and _parentIcon_3 then
            local var265_upvw
            local any_Connect_result1_upvr = _parentIcon_3._ignoreClippingChanged:Connect(function(arg1_2, arg2_2) -- Line 919
                --[[ Upvalues[2]:
                    [1]: module_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                ]]
                module_upvr:set(arg1.."IgnoreClipping", arg2_2)
            end)
            var265_upvw = module_upvr[arg1.."Closed"]:Connect(function() -- Line 923
                --[[ Upvalues[2]:
                    [1]: var265_upvw (read and write)
                    [2]: any_Connect_result1_upvr (readonly)
                ]]
                var265_upvw:Disconnect()
                any_Connect_result1_upvr:Disconnect()
            end)
        end
    end
    module_upvr.dropdownOpened:Connect(function() -- Line 929
        --[[ Upvalues[1]:
            [1]: setFeatureChange_upvr (readonly)
        ]]
        setFeatureChange_upvr("dropdown", true)
    end)
    module_upvr.dropdownClosed:Connect(function() -- Line 932
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr:set("dropdownIgnoreClipping", false)
    end)
    module_upvr.menuOpened:Connect(function() -- Line 935
        --[[ Upvalues[1]:
            [1]: setFeatureChange_upvr (readonly)
        ]]
        setFeatureChange_upvr("menu", true)
    end)
    module_upvr.menuClosed:Connect(function() -- Line 938
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr:set("menuIgnoreClipping", false)
    end)
    module_upvr.deselectWhenOtherIconSelected = true
    module_upvr.name = ""
    module_upvr.isSelected = false
    module_upvr.presentOnTopbar = true
    module_upvr.accountForWhenDisabled = false
    module_upvr.enabled = true
    module_upvr.hovering = false
    module_upvr.tipText = nil
    module_upvr.captionText = nil
    module_upvr.totalNotices = 0
    module_upvr.notices = {}
    module_upvr.dropdownIcons = {}
    module_upvr.menuIcons = {}
    module_upvr.dropdownOpen = false
    module_upvr.menuOpen = false
    module_upvr.locked = false
    module_upvr.topPadding = UDim.new(0, 4)
    module_upvr.targetPosition = nil
    module_upvr.toggleItems = {}
    module_upvr.lockedSettings = {}
    module_upvr._draggingFinger = false
    module_upvr._updatingIconSize = true
    module_upvr._previousDropdownOpen = false
    module_upvr._previousMenuOpen = false
    module_upvr._bindedToggleKeys = {}
    module_upvr._bindedEvents = {}
    module_upvr:setName("UnnamedIcon")
    module_upvr:setTheme(Default_upvr, true)
    tbl_12_upvr.iconButton.MouseButton1Click:Connect(function() -- Line 988
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        if module_upvr.isSelected then
            module_upvr:deselect()
            return true
        end
        module_upvr:select()
    end)
    tbl_12_upvr.iconButton.MouseButton2Click:Connect(function() -- Line 995
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr._rightClicking = true
        if module_upvr:get("dropdownToggleOnRightClick") == true then
            module_upvr:_update("dropdownSize")
        end
        if module_upvr:get("menuToggleOnRightClick") == true then
            module_upvr:_update("menuSize")
        end
        module_upvr._rightClicking = false
    end)
    tbl_12_upvr.iconButton.MouseButton1Down:Connect(function() -- Line 1007
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        if module_upvr.locked then
        else
            module_upvr:_updateStateOverlay(0.7, Color3.new(0, 0, 0))
        end
    end)
    tbl_12_upvr.iconButton.MouseButton1Up:Connect(function() -- Line 1011
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        if module_upvr.locked then
        else
            module_upvr:_updateStateOverlay(0.9, Color3.new(1, 1, 1))
        end
    end)
    UserInputService_upvr.InputBegan:Connect(function(arg1, arg2) -- Line 1017
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        if not arg2 and ({
            [Enum.UserInputType.MouseButton1] = true;
            [Enum.UserInputType.MouseButton2] = true;
            [Enum.UserInputType.MouseButton3] = true;
            [Enum.UserInputType.Touch] = true;
        })[arg1.UserInputType] then
            module_upvr._tappingAway = true
            if module_upvr.dropdownOpen and module_upvr:get("dropdownCloseOnTapAway") == true then
                module_upvr:_update("dropdownSize")
            end
            if module_upvr.menuOpen and module_upvr:get("menuCloseOnTapAway") == true then
                module_upvr:_update("menuSize")
            end
            module_upvr._tappingAway = false
        end
        if module_upvr._bindedToggleKeys[arg1.KeyCode] and not arg2 then
            if module_upvr.isSelected then
                module_upvr:deselect()
                return
            end
            module_upvr:select()
        end
    end)
    module_upvr.hoverStarted:Connect(function(arg1, arg2) -- Line 1048
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hovering = true
        if not module_upvr.locked then
            module_upvr:_updateStateOverlay(0.9, Color3.fromRGB(255, 255, 255))
        end
        module_upvr:_updateHovering()
    end)
    module_upvr.hoverEnded:Connect(function() -- Line 1055
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hovering = false
        module_upvr:_updateStateOverlay(1)
        module_upvr._hoveringMaid:clean()
        module_upvr:_updateHovering()
    end)
    tbl_12_upvr.iconButton.MouseEnter:Connect(function(arg1, arg2) -- Line 1061
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hoverStarted:Fire(arg1, arg2)
    end)
    tbl_12_upvr.iconButton.MouseLeave:Connect(function() -- Line 1064
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hoverEnded:Fire()
    end)
    tbl_12_upvr.iconButton.SelectionGained:Connect(function() -- Line 1067
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hoverStarted:Fire()
    end)
    tbl_12_upvr.iconButton.SelectionLost:Connect(function() -- Line 1070
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr.hoverEnded:Fire()
    end)
    tbl_12_upvr.iconButton.MouseButton1Down:Connect(function() -- Line 1073
        --[[ Upvalues[3]:
            [1]: module_upvr (readonly)
            [2]: RunService_upvr (copied, readonly)
            [3]: tbl_12_upvr (readonly)
        ]]
        if module_upvr._draggingFinger then
            module_upvr.hoverStarted:Fire()
        end
        local var284_upvw
        local var286_upvr = tick() + 0.7
        local var287_upvw
        var287_upvw = RunService_upvr.Heartbeat:Connect(function() -- Line 1082
            --[[ Upvalues[4]:
                [1]: var286_upvr (readonly)
                [2]: var284_upvw (read and write)
                [3]: var287_upvw (read and write)
                [4]: module_upvr (copied, readonly)
            ]]
            if var286_upvr <= tick() then
                var284_upvw:Disconnect()
                var287_upvw:Disconnect()
                module_upvr._longPressing = true
                if module_upvr:get("dropdownToggleOnLongPress") == true then
                    module_upvr:_update("dropdownSize")
                end
                if module_upvr:get("menuToggleOnLongPress") == true then
                    module_upvr:_update("menuSize")
                end
                module_upvr._longPressing = false
            end
        end)
        var284_upvw = tbl_12_upvr.iconButton.MouseButton1Up:Connect(function() -- Line 1096
            --[[ Upvalues[2]:
                [1]: var284_upvw (read and write)
                [2]: var287_upvw (read and write)
            ]]
            var284_upvw:Disconnect()
            var287_upvw:Disconnect()
        end)
    end)
    if UserInputService_upvr.TouchEnabled then
        tbl_12_upvr.iconButton.MouseButton1Up:Connect(function() -- Line 1102
            --[[ Upvalues[1]:
                [1]: module_upvr (readonly)
            ]]
            if module_upvr.hovering then
                module_upvr.hoverEnded:Fire()
            end
        end)
        UserInputService_upvr.TouchMoved:Connect(function(arg1, arg2) -- Line 1110
            --[[ Upvalues[1]:
                [1]: module_upvr (readonly)
            ]]
            if arg2 then
            else
                module_upvr._draggingFinger = true
            end
        end)
        UserInputService_upvr.TouchEnded:Connect(function() -- Line 1116
            --[[ Upvalues[1]:
                [1]: module_upvr (readonly)
            ]]
            module_upvr._draggingFinger = false
        end)
    end
    module_upvr._updatingIconSize = false
    module_upvr:_updateIconSize()
    IconController_upvr.iconAdded:Fire(module_upvr)
    return module_upvr
end
function var13_upvr.mimic(arg1) -- Line 1130
    --[[ Upvalues[2]:
        [1]: IconController_upvr (readonly)
        [2]: var13_upvr (readonly)
    ]]
    local var292 = arg1.."Mimic"
    local any_getIcon_result1 = IconController_upvr.getIcon(var292)
    if any_getIcon_result1 then
        return any_getIcon_result1
    end
    local any_new_result1_4 = var13_upvr.new()
    any_new_result1_4:setName(var292)
    if arg1 == "Chat" then
        any_new_result1_4:setOrder(-1)
        any_new_result1_4:setImage("rbxasset://textures/ui/TopBar/chatOff.png", "deselected")
        any_new_result1_4:setImage("rbxasset://textures/ui/TopBar/chatOn.png", "selected")
        any_new_result1_4:setImageYScale(0.625)
    end
    return any_new_result1_4
end
function var13_upvr.set(arg1, arg2, arg3, arg4, arg5) -- Line 1241
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 105 start (CF ANALYSIS FAILED)
    local var359 = arg1._settingsDictionary[arg2]
    local var360
    if var359 == nil then
        var360 = false
    else
        var360 = true
    end
    assert(var360, "setting '%s' does not exist":format(arg2))
    var360 = arg4
    if type(var360) == "string" then
        local any_lower_result1 = arg4:lower()
    end
    local any_get_result1_8 = arg1:get(arg2, any_lower_result1)
    if any_lower_result1 == "hovering" then
        var359.hoveringValue = arg3
        if arg5 ~= "_ignorePrevious" then
            var360 = var359.additionalValues
            var360["previous_"..any_lower_result1] = any_get_result1_8
        end
        var360 = type(arg5)
        if var360 == "string" then
            var360 = var359.additionalValues
            var360[arg5..'_'..any_lower_result1] = any_get_result1_8
        end
        var360 = arg1:_update
        var360(arg2)
        -- KONSTANTWARNING: GOTO [199] #143
    end
    -- KONSTANTERROR: [0] 1. Error Block 105 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [63] 48. Error Block 103 start (CF ANALYSIS FAILED)
    var360 = any_lower_result1
    if var359.type == "toggleable" then
        local tbl_14 = {}
        if var360 == "deselected" or var360 == "selected" then
            table.insert(tbl_14, var360)
        else
            table.insert(tbl_14, "deselected")
            table.insert(tbl_14, "selected")
            var360 = nil
        end
        for i_5, v_5 in pairs(tbl_14) do
            var359.values[v_5] = arg3
            if arg5 ~= "_ignorePrevious" then
                var359.additionalValues["previous_"..v_5] = any_get_result1_8
            end
            if type(arg5) == "string" then
                var359.additionalValues[arg5..'_'..v_5] = any_get_result1_8
            end
        end
    else
        var359.value = arg3
        if type(arg5) == "string" then
            if arg5 ~= "_ignorePrevious" then
                var359.additionalValues.previous = any_get_result1_8
            end
            var359.additionalValues[arg5] = any_get_result1_8
        end
    end
    if any_get_result1_8 == arg3 then
        return arg1, "Value was already set"
    end
    local function INLINED_13() -- Internal function, doesn't exist in bytecode
        local var367
        return var359.instanceNames
    end
    if not arg1._updateAfterSettingAll and INLINED_13() and (arg1:getToggleState() == var360 or var360 == nil) then
        local var368 = false
        if arg2 == "iconSize" then
            var368 = any_get_result1_8
            if var368 then
                var367 = any_get_result1_8.X.Scale
                if var367 ~= 1 then
                    var368 = false
                else
                    var368 = true
                end
            end
        end
        local function INLINED_14() -- Internal function, doesn't exist in bytecode
            var367 = arg1:get(i_5)
            i_5 = var359.tweenAction
            return var367
        end
        if not var359.tweenAction or var368 or not INLINED_14() then
            var367 = TweenInfo.new(0)
        end
        v_5 = arg2
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        arg1:_update(v_5, arg1:getToggleState(), var367)
    end
    var360 = var359.callMethods
    if var360 then
        var360 = pairs(var359.callMethods)
        local pairs_result1_14, pairs_result2, pairs_result3_21 = pairs(var359.callMethods)
        for _, v_6 in pairs_result1_14, pairs_result2, pairs_result3_21 do
            i_5 = arg1
            v_5 = arg3
            v_6(i_5, v_5, any_lower_result1)
        end
    end
    pairs_result1_14 = var359.callSignals
    if pairs_result1_14 then
        pairs_result1_14 = pairs(var359.callSignals)
        for _, v_7 in pairs(var359.callSignals) do
            v_7:Fire()
        end
    end
    do
        return arg1
    end
    -- KONSTANTERROR: [63] 48. Error Block 103 end (CF ANALYSIS FAILED)
end
function var13_upvr.setAdditionalValue(arg1, arg2, arg3, arg4, arg5) -- Line 1322
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var383 = arg1._settingsDictionary[arg2]
    local var384
    if var383 == nil then
        var384 = false
    else
        var384 = true
    end
    assert(var384, "setting '%s' does not exist":format(arg2))
    var384 = arg3
    if arg5 then
        var384 = var384..'_'
    end
    var384 = pairs(var383.additionalValues)
    for i_8, _ in pairs(var383.additionalValues) do
        if string.match(i_8, var384..arg5) then
            var383.additionalValues[i_8] = arg4
        end
    end
end
function var13_upvr.get(arg1, arg2, arg3, arg4) -- Line 1336
    -- KONSTANTERROR: [0] 1. Error Block 45 start (CF ANALYSIS FAILED)
    local var388
    if arg1._settingsDictionary[arg2] == nil then
        var388 = false
    else
        var388 = true
    end
    assert(var388, "setting '%s' does not exist":format(arg2))
    var388 = nil
    -- KONSTANTERROR: [0] 1. Error Block 45 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [25] 20. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [25] 20. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [29] 23. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [29] 23. Error Block 7 end (CF ANALYSIS FAILED)
end
function var13_upvr.getHovering(arg1, arg2) -- Line 1372
    local var389 = arg1._settingsDictionary[arg2]
    local var390
    if var389 == nil then
        var390 = false
    else
        var390 = true
    end
    assert(var390, "setting '%s' does not exist":format(arg2))
    return var389.hoveringValue
end
function var13_upvr.getToggleState(arg1, arg2) -- Line 1378
    local var391 = arg2
    if not var391 then
        var391 = arg1.isSelected
    end
    if var391 then
        return "selected"
    end
    return "deselected"
end
function var13_upvr.getIconState(arg1) -- Line 1383
    if arg1.hovering then
        return "hovering"
    end
    return arg1:getToggleState()
end
function var13_upvr._update(arg1, arg2, arg3, arg4) -- Line 1391
    --[[ Upvalues[1]:
        [1]: TweenService_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 50 start (CF ANALYSIS FAILED)
    local var392 = arg1._settingsDictionary[arg2]
    local var393
    if var392 == nil then
        var393 = false
    else
        var393 = true
    end
    assert(var393, "setting '%s' does not exist":format(arg2))
    -- KONSTANTERROR: [0] 1. Error Block 50 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 15. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 15. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [21] 17. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [21] 17. Error Block 7 end (CF ANALYSIS FAILED)
end
function var13_upvr._updateAll(arg1, arg2, arg3) -- Line 1435
    for i_9, v_9 in pairs(arg1._settingsDictionary) do
        if v_9.instanceNames then
            arg1:_update(i_9, arg2, arg3)
        end
    end
end
function var13_upvr._updateHovering(arg1, arg2) -- Line 1443
    for i_10, v_10 in pairs(arg1._settingsDictionary) do
        if v_10.instanceNames and v_10.hoveringValue ~= nil then
            arg1:_update(i_10, nil, arg2)
        end
    end
end
function var13_upvr._updateStateOverlay(arg1, arg2, arg3) -- Line 1451
    local iconOverlay = arg1.instances.iconOverlay
    iconOverlay.BackgroundTransparency = arg2 or 1
    local var405 = arg3
    if not var405 then
        var405 = Color3.new(1, 1, 1)
    end
    iconOverlay.BackgroundColor3 = var405
end
function var13_upvr.setTheme(arg1, arg2, arg3) -- Line 1457
    -- KONSTANTERROR: [0] 1. Error Block 44 start (CF ANALYSIS FAILED)
    arg1._updateAfterSettingAll = arg3
    local pairs_result1_25, pairs_result2_16, pairs_result3_12 = pairs(arg2)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [7.6]
    if nil == "toggleable" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [11.7]
        for i_11, v_11 in pairs(nil.deselected) do
            if not arg1.lockedSettings[i_11] then
                arg1:set(i_11, v_11, "both")
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local pairs_result1_32, pairs_result2_23, pairs_result3_3 = pairs(nil.selected)
        for i_12, v_12 in pairs_result1_32, pairs_result2_23, pairs_result3_3 do
            if not arg1.lockedSettings[i_12] then
                arg1:set(i_12, v_12, "selected")
            end
        end
        -- KONSTANTWARNING: GOTO [7] #6
    end
    -- KONSTANTERROR: [0] 1. Error Block 44 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [46] 34. Error Block 32 start (CF ANALYSIS FAILED)
    for _, _ in pairs_result1_32, pairs_result2_23, pairs_result3_3 do
        if not arg1:set(i_12, v_12, "selected") then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
            if nil == "action" and arg1:set(i_12, v_12, "selected") == nil then
            end
        end
    end
    -- KONSTANTERROR: [46] 34. Error Block 32 end (CF ANALYSIS FAILED)
end
function var13_upvr.getInstance(arg1, arg2) -- Line 1491
    return arg1.instances[arg2]
end
function var13_upvr.setInstance(arg1, arg2, arg3) -- Line 1495
    local var421 = arg1.instances[arg2]
    arg1.instances[arg2] = arg3
    if var421 then
        var421:Destroy()
    end
    return arg1
end
function var13_upvr.getSettingDetail(arg1, arg2) -- Line 1504
    for _, v_14 in pairs(arg1._settings) do
        for i_15, v_15 in pairs(v_14) do
            if i_15 == arg2 then
                return v_15
            end
        end
    end
    return false
end
function var13_upvr.modifySetting(arg1, arg2, arg3) -- Line 1515
    local any_getSettingDetail_result1 = arg1:getSettingDetail(arg2)
    for i_16, v_16 in pairs(arg3) do
        any_getSettingDetail_result1[i_16] = v_16
    end
    return arg1
end
function var13_upvr.convertLabelToNumberSpinner(arg1, arg2) -- Line 1523
    arg1:set("iconLabelSize", UDim2.new(1, 0, 1, 0))
    arg2.Parent = arg1:getInstance("iconButton")
    local tbl_2 = {}
    setmetatable(tbl_2, {
        __newindex = function(arg1_3, arg2_3, arg3) -- Line 1530, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            for _, v_17 in pairs(arg2.Frame:GetDescendants()) do
                if v_17:IsA("TextLabel") then
                    v_17[arg2_3] = arg3
                end
            end
        end;
    })
    arg1:getInstance("iconButton").ZIndex = 0
    arg1:setInstance("iconLabel", tbl_2)
    arg1:modifySetting("iconText", {
        instanceNames = {};
    })
    arg1:setInstance("iconLabelSpinner", arg2.Frame)
    for _, v_18 in pairs({"iconLabelVisible", "iconLabelAnchorPoint", "iconLabelPosition", "iconLabelSize"}) do
        arg1:modifySetting(v_18, {
            instanceNames = {"iconLabelSpinner"};
        })
    end
    arg1:_updateAll()
    return arg1
end
function var13_upvr.setEnabled(arg1, arg2) -- Line 1554
    arg1.enabled = arg2
    arg1.instances.iconContainer.Visible = arg2
    arg1.updated:Fire()
    return arg1
end
function var13_upvr.setName(arg1, arg2) -- Line 1561
    arg1.name = arg2
    arg1.instances.iconContainer.Name = arg2
    return arg1
end
function var13_upvr.setProperty(arg1, arg2, arg3) -- Line 1567
    arg1[arg2] = arg3
    return arg1
end
local Debris_upvr = game:GetService("Debris")
function var13_upvr._playClickSound(arg1) -- Line 1572
    --[[ Upvalues[1]:
        [1]: Debris_upvr (readonly)
    ]]
    local clickSound = arg1.instances.clickSound
    if clickSound.SoundId ~= nil and 0 < #clickSound.SoundId and 0 < clickSound.Volume then
        local clone = clickSound:Clone()
        clone.Parent = clickSound.Parent
        clone:Play()
        Debris_upvr:AddItem(clone, clickSound.TimeLength)
    end
end
function var13_upvr.select(arg1, arg2) -- Line 1582
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    if arg1.locked then
        return arg1
    end
    arg1.isSelected = true
    arg1:_setToggleItemsVisible(true, arg2)
    arg1:_updateNotice()
    arg1:_updateAll()
    arg1:_playClickSound()
    if 0 < #arg1.dropdownIcons or 0 < #arg1.menuIcons then
        IconController_upvr:_updateSelectionGroup()
    end
    arg1.selected:Fire()
    arg1.toggled:Fire(arg1.isSelected)
    return arg1
end
function var13_upvr.deselect(arg1, arg2) -- Line 1597
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    if arg1.locked then
        return arg1
    end
    arg1.isSelected = false
    arg1:_setToggleItemsVisible(false, arg2)
    arg1:_updateNotice()
    arg1:_updateAll()
    arg1:_playClickSound()
    if 0 < #arg1.dropdownIcons or 0 < #arg1.menuIcons then
        IconController_upvr:_updateSelectionGroup()
    end
    arg1.deselected:Fire()
    arg1.toggled:Fire(arg1.isSelected)
    return arg1
end
local HttpService_upvr = game:GetService("HttpService")
function var13_upvr.notify(arg1, arg2, arg3) -- Line 1612
    --[[ Upvalues[2]:
        [1]: Signal_upvr (readonly)
        [2]: HttpService_upvr (readonly)
    ]]
    coroutine.wrap(function() -- Line 1613
        --[[ Upvalues[5]:
            [1]: arg2 (read and write)
            [2]: arg1 (readonly)
            [3]: Signal_upvr (copied, readonly)
            [4]: arg3 (read and write)
            [5]: HttpService_upvr (copied, readonly)
        ]]
        if not arg2 then
            arg2 = arg1.deselected
        end
        if arg1._parentIcon then
            arg1._parentIcon:notify(arg2)
        end
        local any_new_result1_upvr = Signal_upvr.new()
        local function var462() -- Line 1622
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:Fire()
        end
        var462 = arg3
        local var464 = var462
        if not var464 then
            var464 = HttpService_upvr:GenerateGUID(true)
        end
        arg3 = var464
        local tbl_9 = {
            completeSignal = any_new_result1_upvr;
        }
        tbl_9.clearNoticeEvent = arg2
        arg1.notices[arg3] = tbl_9
        local var466 = arg1
        var466.totalNotices += 1
        arg1:_updateNotice()
        arg1.notified:Fire(arg3)
        any_new_result1_upvr:Wait()
        arg1._endNotices:Connect(var462):Disconnect()
        arg2:Connect(function() -- Line 1625
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:Fire()
        end):Disconnect()
        any_new_result1_upvr:Disconnect()
        local var467 = arg1
        var467.totalNotices -= 1
        arg1.notices[arg3] = nil
        arg1:_updateNotice()
    end)()
    return arg1
end
function var13_upvr._updateNotice(arg1) -- Line 1651
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg1.totalNotices < 1 then
    end
    if not arg1.isSelected and (0 < #arg1.dropdownIcons or 0 < #arg1.menuIcons) or 0 < arg1.totalNotices then
    end
    local var468
    if arg1.isSelected and (0 < #arg1.dropdownIcons or 0 < #arg1.menuIcons) then
        var468 = false
    end
    if var468 then
        local _ = 0
    else
    end
    arg1:set("noticeImageTransparency", 1)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    arg1:set("noticeTextTransparency", 1)
    if arg1.totalNotices >= 100 or not arg1.totalNotices then
    end
    arg1.instances.noticeLabel.Text = "99+"
end
function var13_upvr.clearNotices(arg1) -- Line 1674
    arg1._endNotices:Fire()
    return arg1
end
function var13_upvr.disableStateOverlay(arg1, arg2) -- Line 1679
    if arg2 == nil then
    end
    arg1.instances.iconOverlay.Visible = not true
    return arg1
end
function var13_upvr.setLabel(arg1, arg2, arg3) -- Line 1691
    arg1:set("iconText", arg2 or "", arg3)
    return arg1
end
function var13_upvr.setCornerRadius(arg1, arg2, arg3, arg4) -- Line 1697
    local CornerRadius = arg1.instances.iconCorner.CornerRadius
    local var471 = arg2
    if not var471 then
        var471 = CornerRadius.Scale
    end
    local var472 = arg3
    if not var472 then
        var472 = CornerRadius.Offset
    end
    arg1:set("iconCornerRadius", UDim.new(var471, var472), arg4)
    return arg1
end
function var13_upvr.setImage(arg1, arg2, arg3) -- Line 1704
    local var473
    local function INLINED_15() -- Internal function, doesn't exist in bytecode
        var473 = "http://www.roblox.com/asset/?id="..arg2
        return var473
    end
    if not tonumber(arg2) or not INLINED_15() then
        var473 = arg2
        if not var473 then
            var473 = ""
        end
    end
    return arg1:set("iconImage", var473, arg3)
end
function var13_upvr.setOrder(arg1, arg2, arg3) -- Line 1709
    return arg1:set("order", tonumber(arg2) or 1, arg3)
end
function var13_upvr.setLeft(arg1, arg2) -- Line 1714
    return arg1:set("alignment", "left", arg2)
end
function var13_upvr.setMid(arg1, arg2) -- Line 1718
    return arg1:set("alignment", "mid", arg2)
end
function var13_upvr.setRight(arg1, arg2) -- Line 1722
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    if not arg1.internalIcon then
        IconController_upvr.setupHealthbar()
    end
    return arg1:set("alignment", "right", arg2)
end
function var13_upvr.setImageYScale(arg1, arg2, arg3) -- Line 1729
    return arg1:set("iconImageYScale", tonumber(arg2) or 0.63, arg3)
end
function var13_upvr.setImageRatio(arg1, arg2, arg3) -- Line 1734
    return arg1:set("iconImageRatio", tonumber(arg2) or 1, arg3)
end
function var13_upvr.setLabelYScale(arg1, arg2, arg3) -- Line 1739
    return arg1:set("iconLabelYScale", tonumber(arg2) or 0.45, arg3)
end
function var13_upvr.setBaseZIndex(arg1, arg2, arg3) -- Line 1744
    return arg1:set("baseZIndex", tonumber(arg2) or 1, arg3)
end
function var13_upvr._updateBaseZIndex(arg1, arg2) -- Line 1749
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local iconContainer_3 = arg1.instances.iconContainer
    local tonumber_result1 = tonumber(arg2)
    if not tonumber_result1 then
        tonumber_result1 = iconContainer_3.ZIndex
    end
    local var484 = tonumber_result1 - iconContainer_3.ZIndex
    if var484 == 0 then
        return "The baseValue is the same"
    end
    for _, v_19 in pairs(arg1.instances) do
        v_19.ZIndex += var484
        local _
    end
    return true
end
function var13_upvr.setSize(arg1, arg2, arg3, arg4) -- Line 1760
    local var489 = tonumber(arg2) or 32
    local var490 = tonumber(arg3) or var489
    arg1:set("forcedIconSize", UDim2.new(0, var489, 0, var490), arg4)
    arg1:set("iconSize", UDim2.new(0, var489, 0, var490), arg4)
    return arg1
end
function var13_upvr._updateIconSize(arg1, arg2, arg3) -- Line 1768
    --[[ Upvalues[1]:
        [1]: TextService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 79 start (CF ANALYSIS FAILED)
    local var524
    if arg1._destroyed then
    else
        local tbl_15 = {
            iconImage = arg1:get("iconImage", arg3) or "_NIL";
            iconText = arg1:get("iconText", arg3) or "_NIL";
            iconFont = arg1:get("iconFont", arg3) or "_NIL";
            iconSize = arg1:get("iconSize", arg3) or "_NIL";
            forcedIconSize = arg1:get("forcedIconSize", arg3) or "_NIL";
            iconImageYScale = arg1:get("iconImageYScale", arg3) or "_NIL";
            iconImageRatio = arg1:get("iconImageRatio", arg3) or "_NIL";
            iconLabelYScale = arg1:get("iconLabelYScale", arg3) or "_NIL";
        }
        for _, v_33 in pairs(tbl_15) do
            if v_33 == "_NIL" then return end
        end
        local iconContainer_5 = arg1.instances.iconContainer
        if not iconContainer_5.Parent then return end
        local Scale = tbl_15.iconSize.X.Scale
        if 0 >= Scale or not (tbl_15.iconSize.X.Offset + Scale * iconContainer_5.Parent.AbsoluteSize.X) then
        end
        var524 = iconContainer_5.Parent
        local var531 = tbl_15.iconSize.Y.Offset + tbl_15.iconSize.Y.Scale * var524.AbsoluteSize.Y
        local var532 = var531 * tbl_15.iconLabelYScale
        var524 = var531 * tbl_15.iconImageYScale
        local var533 = var524 * tbl_15.iconImageRatio
        if tbl_15.iconImage == "" then
            var524 = false
        else
            var524 = true
        end
        if tbl_15.iconText == "" then
            local _ = false
            -- KONSTANTWARNING: Skipped task `defvar` above
        else
        end
        if var524 and not true then
            arg1:set("iconImageVisible", true, arg3)
            arg1:set("iconImageAnchorPoint", Vector2.new(0.5, 0.5), arg3)
            arg1:set("iconImagePosition", UDim2.new(0.5, 0, 0.5, 0), arg3)
            arg1:set("iconImageSize", UDim2.new(tbl_15.iconImageYScale * tbl_15.iconImageRatio, 0, tbl_15.iconImageYScale, 0), arg3)
            arg1:set("iconLabelVisible", false, arg3)
            -- KONSTANTWARNING: GOTO [389] #293
        end
        -- KONSTANTERROR: [0] 1. Error Block 79 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [234] 167. Error Block 80 start (CF ANALYSIS FAILED)
        if not var524 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if true then
                arg1:set("iconLabelVisible", true, arg3)
                arg1:set("iconLabelAnchorPoint", Vector2.new(0, 0.5), arg3)
                arg1:set("iconLabelPosition", UDim2.new(0, 12, 0.5, 0), arg3)
                arg1:set("iconLabelSize", UDim2.new(1, -24, tbl_15.iconLabelYScale, var532 / 2), arg3)
                arg1:set("iconLabelTextXAlignment", Enum.TextXAlignment.Center, arg3)
                arg1:set("iconImageVisible", false, arg3)
                -- KONSTANTWARNING: GOTO [389] #293
            end
        end
        if var524 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if true then
                local var535 = 12 + var533 + 8
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                local var536 = var535 + TextService_upvr:GetTextSize(tbl_15.iconText, var532, tbl_15.iconFont, Vector2.new(10000, var532)).X + 12
                arg1:set("iconImageVisible", true, arg3)
                arg1:set("iconImageAnchorPoint", Vector2.new(0, 0.5), arg3)
                arg1:set("iconImagePosition", UDim2.new(0, 12, 0.5, 0), arg3)
                arg1:set("iconImageSize", UDim2.new(0, var533, tbl_15.iconImageYScale, 0), arg3)
                arg1:set("iconLabelVisible", true, arg3)
                arg1:set("iconLabelAnchorPoint", Vector2.new(0, 0.5), arg3)
                arg1:set("iconLabelPosition", UDim2.new(0, var535, 0.5, 0), arg3)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                arg1:set("iconLabelSize", UDim2.new(1, -var535 - 12, tbl_15.iconLabelYScale, var532 / 2), arg3)
                arg1:set("iconLabelTextXAlignment", Enum.TextXAlignment.Left, arg3)
            end
        end
        if var536 then
            var535 = arg1._updatingIconSize
            local var537
            if not var537 then
                var537 = true
                arg1._updatingIconSize = var537
                local var538 = 0
                local function INLINED_17() -- Internal function, doesn't exist in bytecode
                    var537 = Scale
                    return var537
                end
                if var538 >= Scale or not INLINED_17() then
                    var537 = 0
                end
                if 0 < Scale then
                    var538 = 0
                else
                    var538 = math.clamp(var536, tbl_15.forcedIconSize.X.Offset, 9999)
                end
                arg1:set("iconSize", UDim2.new(var537, var538, tbl_15.iconSize.Y.Scale, tbl_15.iconSize.Y.Offset), arg3, "_ignorePrevious")
                local _parentIcon_4 = arg1._parentIcon
                if _parentIcon_4 then
                    local udim2_2 = UDim2.new(0, var536, 0, tbl_15.iconSize.Y.Offset)
                    if 0 < #_parentIcon_4.dropdownIcons then
                        arg1:setAdditionalValue("iconSize", "beforeDropdown", udim2_2, arg3)
                        _parentIcon_4:_updateDropdown()
                    end
                    if 0 < #_parentIcon_4.menuIcons then
                        arg1:setAdditionalValue("iconSize", "beforeMenu", udim2_2, arg3)
                        _parentIcon_4:_updateMenu()
                    end
                end
                arg1._updatingIconSize = false
            end
        end
        arg1:set("iconLabelTextSize", var532, arg3)
        arg1:set("noticeFramePosition", UDim2.new(0.45, 0, 0, -2), arg3)
        arg1._updatingIconSize = false
        -- KONSTANTERROR: [234] 167. Error Block 80 end (CF ANALYSIS FAILED)
    end
end
function var13_upvr.bindEvent(arg1, arg2, arg3) -- Line 1877
    local var544 = arg1[arg2]
    local var545
    if var545 then
        var545 = false
        if typeof(var544) == "table" then
            var545 = var544.Connect
        end
    end
    assert(var545, "argument[1] must be a valid topbarplus icon event name!")
    if typeof(arg3) ~= "function" then
        var545 = false
    else
        var545 = true
    end
    assert(var545, "argument[2] must be a function!")
    var545 = var544:Connect(function(...) -- Line 1881
        --[[ Upvalues[2]:
            [1]: arg3 (readonly)
            [2]: arg1 (readonly)
        ]]
        arg3(arg1, ...)
    end)
    arg1._bindedEvents[arg2] = var545
    return arg1
end
function var13_upvr.unbindEvent(arg1, arg2) -- Line 1887
    local var547 = arg1._bindedEvents[arg2]
    if var547 then
        var547:Disconnect()
        arg1._bindedEvents[arg2] = nil
    end
    return arg1
end
function var13_upvr.bindToggleKey(arg1, arg2) -- Line 1896
    local var548
    if typeof(arg2) ~= "EnumItem" then
        var548 = false
    else
        var548 = true
    end
    assert(var548, "argument[1] must be a KeyCode EnumItem!")
    var548 = true
    arg1._bindedToggleKeys[arg2] = var548
    return arg1
end
function var13_upvr.unbindToggleKey(arg1, arg2) -- Line 1902
    local var549
    if typeof(arg2) ~= "EnumItem" then
        var549 = false
    else
        var549 = true
    end
    assert(var549, "argument[1] must be a KeyCode EnumItem!")
    var549 = nil
    arg1._bindedToggleKeys[arg2] = var549
    return arg1
end
function var13_upvr.lock(arg1) -- Line 1908
    arg1.locked = true
    return arg1
end
function var13_upvr.unlock(arg1) -- Line 1913
    arg1.locked = false
    return arg1
end
function var13_upvr.setTopPadding(arg1, arg2, arg3) -- Line 1918
    arg1.topPadding = UDim.new(arg3 or 0, arg2 or 4)
    arg1.updated:Fire()
    return arg1
end
function var13_upvr.bindToggleItem(arg1, arg2) -- Line 1926
    if not arg2:IsA("GuiObject") and not arg2:IsA("LayerCollector") then
        error("Toggle item must be a GuiObject or LayerCollector!")
    end
    arg1.toggleItems[arg2] = true
    return arg1
end
function var13_upvr.unbindToggleItem(arg1, arg2) -- Line 1934
    arg1.toggleItems[arg2] = nil
    return arg1
end
function var13_upvr._setToggleItemsVisible(arg1, arg2, arg3) -- Line 1939
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local _
    for i_20, _ in pairs(arg1.toggleItems) do
        if not arg3 or arg3.toggleItems[i_20] == nil then
            if i_20:IsA("LayerCollector") then
            end
            i_20.Enabled = arg2
        end
    end
end
function var13_upvr.give(arg1, arg2) -- Line 1951
    local var562 = arg2
    if typeof(arg2) == "function" then
        if typeof(arg2) ~= "function" then
            var562 = arg2(arg1)
        else
            var562 = nil
        end
    end
    if var562 ~= nil then
        arg1._maid:give(var562)
    end
    return arg1
end
tbl_7_upvr.tip = 1
function var13_upvr.setTip(arg1, arg2) -- Line 1970
    --[[ Upvalues[3]:
        [1]: TextService_upvr (readonly)
        [2]: ActiveItems_upvr (readonly)
        [3]: Maid_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var563 = true
    if typeof(arg2) ~= "string" then
        if arg2 ~= nil then
            var563 = false
        else
            var563 = true
        end
    end
    assert(var563, "Expected string, got "..typeof(arg2))
    local var564 = arg2 or ""
    if var564 == "" then
        var563 = false
    else
        var563 = true
    end
    arg1.instances.tipLabel.Text = var564
    if not var563 or not UDim2.new(0, TextService_upvr:GetTextSize(var564, 12, Enum.Font.GothamSemibold, Vector2.new(1000, 14)).X + 6, 0, 20) then
    end
    arg1.instances.tipFrame.Size = UDim2.new(0, 0, 0, 0)
    if not var563 or not ActiveItems_upvr then
    end
    arg1.instances.tipFrame.Parent = arg1.instances.iconContainer
    arg1._maid.tipFrame = arg1.instances.tipFrame
    arg1.tipText = arg2
    local any_new_result1_3 = Maid_upvr.new()
    arg1._maid.tipMaid = any_new_result1_3
    if var563 then
        any_new_result1_3:give(arg1.hoverStarted:Connect(function() -- Line 1984
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if not arg1.isSelected then
                arg1:displayTip(true)
            end
        end))
        any_new_result1_3:give(arg1.hoverEnded:Connect(function() -- Line 1989
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:displayTip(false)
        end))
        any_new_result1_3:give(arg1.selected:Connect(function() -- Line 1992
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1.hovering then
                arg1:displayTip(false)
            end
        end))
    end
    arg1:displayTip(arg1.hovering and var563)
    return arg1
end
function var13_upvr.displayTip(arg1, arg2) -- Line 2002
    --[[ Upvalues[3]:
        [1]: UserInputService_upvr (readonly)
        [2]: IconController_upvr (readonly)
        [3]: TopbarPlusGui_upvr (readonly)
    ]]
    local var573
    if var573 then
        var573 = arg1._draggingFinger
        if not var573 then return end
    end
    var573 = arg1.tipVisible or false
    if typeof(arg2) == "boolean" then
        var573 = arg2
    end
    arg1.tipVisible = var573
    if var573 then
        local tipFrame_upvr = arg1.instances.tipFrame
        local function updateTipPositon(arg1_4, arg2_4) -- Line 2016
            --[[ Upvalues[4]:
                [1]: UserInputService_upvr (copied, readonly)
                [2]: tipFrame_upvr (readonly)
                [3]: IconController_upvr (copied, readonly)
                [4]: TopbarPlusGui_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local var576
            if var576 then
                var576 = workspace.CurrentCamera.ViewportSize
            end
            local var577
            if UserInputService_upvr.TouchEnabled then
                var577 = math.clamp(var577 - tipFrame_upvr.Size.X.Offset / 2, 0, var576.X - tipFrame_upvr.Size.X.Offset)
            elseif IconController_upvr.controllerModeEnabled then
                local Indicator = TopbarPlusGui_upvr.Indicator
                local AbsolutePosition = Indicator.AbsolutePosition
                var577 = AbsolutePosition.X - tipFrame_upvr.Size.X.Offset / 2 + Indicator.AbsoluteSize.X / 2
            else
                var577 = math.clamp(var577, 0, var576.X - tipFrame_upvr.Size.X.Offset - 48)
            end
            tipFrame_upvr.Position = UDim2.new(0, var577, 0, math.clamp(AbsolutePosition.Y + 90, tipFrame_upvr.Size.Y.Offset + 3, var576.Y) - 20)
        end
        local any_GetMouseLocation_result1 = UserInputService_upvr:GetMouseLocation()
        if any_GetMouseLocation_result1 then
            updateTipPositon(any_GetMouseLocation_result1.X, any_GetMouseLocation_result1.Y)
        end
        arg1._hoveringMaid:give(arg1.instances.iconButton.MouseMoved:Connect(updateTipPositon))
    end
    for _, v_21 in pairs(arg1._groupSettings.tip) do
        arg1._settingsDictionary[v_21].useForcedGroupValue = not var573
        arg1:_update(v_21)
    end
end
tbl_7_upvr.caption = 1
function var13_upvr.setCaption(arg1, arg2) -- Line 2071
    --[[ Upvalues[3]:
        [1]: ActiveItems_upvr (readonly)
        [2]: Maid_upvr (readonly)
        [3]: TextService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var584 = true
    if typeof(arg2) ~= "string" then
        if arg2 ~= nil then
            var584 = false
        else
            var584 = true
        end
    end
    assert(var584, "Expected string, got "..typeof(arg2))
    local var585 = arg2 or ""
    if var585 == "" then
        var584 = false
    else
        var584 = true
    end
    arg1.captionText = arg2
    arg1.instances.captionLabel.Text = var585
    if not var584 or not ActiveItems_upvr then
    end
    arg1.instances.captionContainer.Parent = arg1.instances.iconContainer
    arg1._maid.captionContainer = arg1.instances.captionContainer
    arg1:_updateIconSize(nil, arg1:getIconState())
    local any_new_result1_2 = Maid_upvr.new()
    arg1._maid.captionMaid = any_new_result1_2
    if var584 then
        any_new_result1_2:give(arg1.hoverStarted:Connect(function() -- Line 2083
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if not arg1.isSelected then
                arg1:displayCaption(true)
            end
        end))
        any_new_result1_2:give(arg1.hoverEnded:Connect(function() -- Line 2088
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:displayCaption(false)
        end))
        any_new_result1_2:give(arg1.selected:Connect(function() -- Line 2091
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1.hovering then
                arg1:displayCaption(false)
            end
        end))
        local iconContainer_4 = arg1.instances.iconContainer
        any_new_result1_2:give(iconContainer_4:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() -- Line 2097
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1.hovering then
                arg1:displayCaption()
            end
        end))
        any_new_result1_2:give(iconContainer_4:GetPropertyChangedSignal("AbsolutePosition"):Connect(function() -- Line 2102
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1.hovering then
                arg1:displayCaption()
            end
        end))
    end
    local any_get_result1_10 = arg1:get("iconSize")
    local any_get_result1_2 = arg1:get("captionFont")
    if any_get_result1_10 and any_get_result1_2 then
        if var584 then
            local var595 = any_get_result1_10.Y.Offset + any_get_result1_10.Y.Scale * arg1.instances.iconContainer.Parent.AbsoluteSize.Y
            local captionLabel = arg1.instances.captionLabel
            local var597 = var595 * 0.8 * 0.58
            local X = TextService_upvr:GetTextSize(arg1.captionText, var597, any_get_result1_2, Vector2.new(10000, var597)).X
            captionLabel.TextSize = var597
            captionLabel.Size = UDim2.new(0, X, 0.58, 0)
            arg1.instances.captionContainer.Size = UDim2.new(0, X + 12, 0, var595 * 0.8)
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            arg1.instances.captionContainer.Size = UDim2.new(0, 0, 0, 0)
        end
    end
    arg1:displayCaption(arg1.hovering and var584)
    return arg1
end
function var13_upvr.displayCaption(arg1, arg2) -- Line 2138
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    local var603
    if UserInputService_upvr.TouchEnabled then
        if not arg1._draggingFinger then return end
    end
    local var604 = 8
    if arg1._draggingFinger then
        var604 += 55
    end
    local iconContainer = arg1.instances.iconContainer
    local captionContainer = arg1.instances.captionContainer
    var603 = 0
    captionContainer.Position = UDim2.new(var603, iconContainer.AbsolutePosition.X + iconContainer.AbsoluteSize.X / 2 - captionContainer.AbsoluteSize.X / 2, 0, iconContainer.AbsolutePosition.Y + iconContainer.AbsoluteSize.Y * 2 + var604)
    var603 = arg1.captionVisible or false
    if typeof(arg2) == "boolean" then
        var603 = arg2
    end
    arg1.captionVisible = var603
    for _, v_22 in pairs(arg1._groupSettings.caption) do
        arg1._settingsDictionary[v_22].useForcedGroupValue = not var603
        arg1:_update(v_22)
    end
end
function var13_upvr.join(arg1, arg2, arg3, arg4) -- Line 2168
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    local var614
    if var614 then
        var614 = arg1:leave
        var614()
    end
    local function INLINED_18() -- Internal function, doesn't exist in bytecode
        var614 = arg3:lower()
        return var614
    end
    if not arg3 or not INLINED_18() then
        var614 = "dropdown"
    end
    local var615 = "before"..arg3:sub(1, 1):upper()..arg3:sub(2)
    arg1.presentOnTopbar = false
    arg1.joinedFeatureName = arg3
    arg1._parentIcon = arg2
    arg1.instances.iconContainer.Parent = arg2.instances[arg3.."Frame"]
    for i_23, v_23 in pairs(arg1.notices) do
        arg2:notify(v_23.clearNoticeEvent, i_23)
    end
    if arg3 == "dropdown" then
        i_23 = "iconSize"
        v_23 = UDim2.new(1, 0, 0, arg1:get("iconSize", "deselected").Y.Offset)
        arg1:set(i_23, v_23, "deselected", var615)
        i_23 = "iconSize"
        v_23 = UDim2.new(1, 0, 0, arg1:get("iconSize", "selected").Y.Offset)
        arg1:set(i_23, v_23, "selected", var615)
        if arg2:get("dropdownSquareCorners") then
            i_23 = "iconCornerRadius"
            v_23 = UDim.new(0, 0)
            arg1:set(i_23, v_23, "deselected", var615)
            i_23 = "iconCornerRadius"
            v_23 = UDim.new(0, 0)
            arg1:set(i_23, v_23, "selected", var615)
        end
        i_23 = "captionBlockerTransparency"
        v_23 = 0.4
        arg1:set(i_23, v_23, nil, var615)
    end
    table.insert(arg2[var614.."Icons"], arg1)
    if not arg4 then
        arg2:_updateDropdown()
    end
    arg2.deselectWhenOtherIconSelected = false
    IconController_upvr:_updateSelectionGroup()
    arg1:_decideToCallSignal("dropdown")
    arg1:_decideToCallSignal("menu")
    return arg1
end
function var13_upvr.leave(arg1) -- Line 2208
    --[[ Upvalues[2]:
        [1]: TopbarContainer_upvr (readonly)
        [2]: IconController_upvr (readonly)
    ]]
    if arg1._destroyed or arg1.instances.iconContainer.Parent == nil then return end
    local tbl_13_upvr = {"iconSize", "captionBlockerTransparency", "iconCornerRadius"}
    local _parentIcon_2_upvr = arg1._parentIcon
    arg1.instances.iconContainer.Parent = TopbarContainer_upvr
    arg1.presentOnTopbar = true
    arg1.joinedFeatureName = nil
    local function scanFeature(arg1_5, arg2, arg3) -- Line 2217
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: tbl_13_upvr (readonly)
            [3]: _parentIcon_2_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local pairs_result1_7, pairs_result2_6, pairs_result3_4 = pairs(arg1_5)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [61] 48. Error Block 11 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [61] 48. Error Block 11 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 5. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [61.7]
        -- KONSTANTERROR: [5] 5. Error Block 2 end (CF ANALYSIS FAILED)
    end
    scanFeature(_parentIcon_2_upvr.dropdownIcons, "beforeDropdown", _parentIcon_2_upvr._updateDropdown)
    scanFeature(_parentIcon_2_upvr.menuIcons, "beforeMenu", _parentIcon_2_upvr._updateMenu)
    for i_24, _ in pairs(arg1.notices) do
        local var629 = _parentIcon_2_upvr.notices[i_24]
        if var629 then
            var629.completeSignal:Fire()
        end
    end
    arg1._parentIcon = nil
    IconController_upvr:_updateSelectionGroup()
    arg1:_decideToCallSignal("dropdown")
    arg1:_decideToCallSignal("menu")
    return arg1
end
function var13_upvr._decideToCallSignal(arg1, arg2) -- Line 2257
    local var630 = arg1[arg2.."Open"]
    local var631 = "_previous"..string.sub(arg2, 1, 1):upper()..arg2:sub(2).."Open"
    if var630 and 0 < #arg1[arg2.."Icons"] and arg1[var631] == false then
        arg1[var631] = true
        arg1[arg2.."Opened"]:Fire()
    else
        local function INLINED_19() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return #arg1[arg2.."Icons"] == 0
        end
        local function INLINED_20() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return arg1[var631] == true
        end
        if not var630 or INLINED_19() or INLINED_20() then
            arg1[var631] = false
            arg1[arg2.."Closed"]:Fire()
        end
    end
end
function var13_upvr._ignoreClipping(arg1, arg2) -- Line 2271
    --[[ Upvalues[1]:
        [1]: ActiveItems_upvr (readonly)
    ]]
    local any_get_result1_3 = arg1:get(arg2.."IgnoreClipping")
    if arg1._parentIcon then
        local var662 = arg1['_'..arg2.."ClippingMaid"]
        local var663_upvr = arg1.instances[arg2.."Container"]
        var662:clean()
        if any_get_result1_3 then
            local Frame = Instance.new("Frame")
            Frame.Name = var663_upvr.Name.."FakeFrame"
            Frame.ClipsDescendants = true
            Frame.BackgroundTransparency = 1
            Frame.Size = var663_upvr.Size
            Frame.Position = var663_upvr.Position
            Frame.Parent = ActiveItems_upvr
            for _, v_25 in pairs(var663_upvr:GetChildren()) do
                v_25.Parent = Frame
                local var668_upvr
            end
            local function _() -- Line 2290, Named "updateSize"
                --[[ Upvalues[2]:
                    [1]: var663_upvr (readonly)
                    [2]: var668_upvr (readonly)
                ]]
                local AbsoluteSize_6 = var663_upvr.AbsoluteSize
                var668_upvr.Size = UDim2.new(0, AbsoluteSize_6.X, 0, AbsoluteSize_6.Y)
            end
            var662:give(var663_upvr:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() -- Line 2294
                --[[ Upvalues[2]:
                    [1]: var663_upvr (readonly)
                    [2]: var668_upvr (readonly)
                ]]
                local AbsoluteSize_2 = var663_upvr.AbsoluteSize
                var668_upvr.Size = UDim2.new(0, AbsoluteSize_2.X, 0, AbsoluteSize_2.Y)
            end))
            local AbsoluteSize = var663_upvr.AbsoluteSize
            var668_upvr.Size = UDim2.new(0, AbsoluteSize.X, 0, AbsoluteSize.Y)
            local function _() -- Line 2298, Named "updatePos"
                --[[ Upvalues[2]:
                    [1]: var663_upvr (readonly)
                    [2]: var668_upvr (readonly)
                ]]
                local absolutePosition_4 = var663_upvr.absolutePosition
                var668_upvr.Position = UDim2.new(0, absolutePosition_4.X, 0, absolutePosition_4.Y + 36)
            end
            var662:give(var663_upvr:GetPropertyChangedSignal("AbsolutePosition"):Connect(function() -- Line 2302
                --[[ Upvalues[2]:
                    [1]: var663_upvr (readonly)
                    [2]: var668_upvr (readonly)
                ]]
                local absolutePosition_3 = var663_upvr.absolutePosition
                var668_upvr.Position = UDim2.new(0, absolutePosition_3.X, 0, absolutePosition_3.Y + 36)
            end))
            local absolutePosition_2 = var663_upvr.absolutePosition
            var668_upvr.Position = UDim2.new(0, absolutePosition_2.X, 0, absolutePosition_2.Y + 36)
            var662:give(function() -- Line 2306
                --[[ Upvalues[2]:
                    [1]: var668_upvr (readonly)
                    [2]: var663_upvr (readonly)
                ]]
                for _, v_26 in pairs(var668_upvr:GetChildren()) do
                    v_26.Parent = var663_upvr
                end
                var668_upvr.Name = "Destroying..."
                var668_upvr:Destroy()
            end)
        end
    end
    var668_upvr = arg2
    arg1._ignoreClippingChanged:Fire(var668_upvr, any_get_result1_3)
end
function var13_upvr.setDropdown(arg1, arg2) -- Line 2319
    for _, v_27 in pairs(arg1.dropdownIcons) do
        v_27:leave()
    end
    if type(arg2) == "table" then
        for _, v_28 in pairs(arg2) do
            v_28:join(arg1, "dropdown", true)
        end
    end
    arg1:_updateDropdown()
    return arg1
end
function var13_upvr._updateDropdown(arg1) -- Line 2335
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl_8 = {
        maxIconsBeforeScroll = arg1:get("dropdownMaxIconsBeforeScroll") or "_NIL";
        minWidth = arg1:get("dropdownMinWidth") or "_NIL";
        padding = arg1:get("dropdownListPadding") or "_NIL";
        dropdownAlignment = arg1:get("dropdownAlignment") or "_NIL";
        iconAlignment = arg1:get("alignment") or "_NIL";
        scrollBarThickness = arg1:get("dropdownScrollBarThickness") or "_NIL";
    }
    local var709
    for _, v_29 in pairs(tbl_8) do
        if v_29 == "_NIL" then return end
    end
    local Offset_3 = tbl_8.padding.Offset
    local dropdownContainer = arg1.instances.dropdownContainer
    local dropdownFrame = arg1.instances.dropdownFrame
    var709 = arg1.dropdownIcons
    local len_2 = #var709
    local function INLINED_21() -- Internal function, doesn't exist in bytecode
        var709 = tbl_8.maxIconsBeforeScroll
        return var709
    end
    if tbl_8.maxIconsBeforeScroll >= len_2 or not INLINED_21() then
        var709 = len_2
    end
    table.sort(arg1.dropdownIcons, function(arg1_6, arg2) -- Line 2356
        local var715
        if arg1_6:get("order") >= arg2:get("order") then
            var715 = false
        else
            var715 = true
        end
        return var715
    end)
    for i_30 = 1, len_2 do
        local _, any_get_result2 = arg1.dropdownIcons[i_30]:get("iconSize", nil, "beforeDropdown")
        local var718 = any_get_result2.Y.Offset + Offset_3
        local var719
        if i_30 <= var709 then
            var719 += var718
        end
        if i_30 == len_2 then
            var719 += var718 / 4
        end
        local Offset_2 = any_get_result2.X.Offset
        if tbl_8.minWidth < Offset_2 then
        end
    end
    if var709 == len_2 then
    else
    end
    arg1:set("dropdownCanvasSize", UDim2.new(0, 0, 0, -Offset_3 + var718))
    arg1:set("dropdownSize", UDim2.new(0, (Offset_2 + 4) * 2, 0, var719))
    local tbl_6 = {
        left = {
            AnchorPoint = Vector2.new(0, 0);
            PositionXScale = 0;
            ThicknessMultiplier = 0;
        };
        mid = {
            AnchorPoint = Vector2.new(0.5, 0);
            PositionXScale = 0.5;
            ThicknessMultiplier = 0.5;
        };
    }
    local tbl_5 = {
        AnchorPoint = Vector2.new(0.5, 0);
        PositionXScale = 1;
        FrameAnchorPoint = Vector2.new(0, 0);
        FramePositionXScale = 0;
        ThicknessMultiplier = 1;
    }
    tbl_6.right = tbl_5
    tbl_5 = tbl_6[tbl_8.dropdownAlignment:lower()]
    local var725 = tbl_5
    if not var725 then
        var725 = tbl_6[tbl_8.iconAlignment:lower()]
    end
    dropdownContainer.AnchorPoint = var725.AnchorPoint
    dropdownContainer.Position = UDim2.new(var725.PositionXScale, 0, 1, Offset_3 + 0)
    local var726 = tbl_8.scrollBarThickness * var725.ThicknessMultiplier
    if dropdownFrame.VerticalScrollBarPosition ~= Enum.VerticalScrollBarPosition.Right or not var726 then
    end
    if not var725.FrameAnchorPoint then
    end
    dropdownFrame.AnchorPoint = var725.AnchorPoint
    local FramePositionXScale = var725.FramePositionXScale
    if not FramePositionXScale then
        FramePositionXScale = var725.PositionXScale
    end
    dropdownFrame.Position = UDim2.new(FramePositionXScale, -var726, 0, 0)
    arg1._dropdownCanvasPos = Vector2.new(0, 0)
end
function var13_upvr._dropdownIgnoreClipping(arg1) -- Line 2413
    arg1:_ignoreClipping("dropdown")
end
function var13_upvr.setMenu(arg1, arg2) -- Line 2419
    for _, v_30 in pairs(arg1.menuIcons) do
        v_30:leave()
    end
    if type(arg2) == "table" then
        for _, v_31 in pairs(arg2) do
            v_31:join(arg1, "menu", true)
        end
    end
    arg1:_updateMenu()
    return arg1
end
function var13_upvr._getMenuDirection(arg1) -- Line 2435
    local var738
    local var739
    if var738 ~= "left" and var738 ~= "right" then
        if arg1:get("alignment") or "_NIL":lower() == "left" then
            var739 = "right"
        else
            var739 = "left"
        end
        var738 = var739
    end
    return var738
end
function var13_upvr._updateMenu(arg1) -- Line 2444
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl_17 = {
        maxIconsBeforeScroll = arg1:get("menuMaxIconsBeforeScroll") or "_NIL";
        direction = arg1:get("menuDirection") or "_NIL";
        iconAlignment = arg1:get("alignment") or "_NIL";
        scrollBarThickness = arg1:get("menuScrollBarThickness") or "_NIL";
    }
    local var764
    for _, v_32 in pairs(tbl_17) do
        if v_32 == "_NIL" then return end
    end
    local var757 = IconController_upvr[tbl_17.iconAlignment.."Gap"]
    local menuContainer = arg1.instances.menuContainer
    local len = #arg1.menuIcons
    local any__getMenuDirection_result1 = arg1:_getMenuDirection()
    if tbl_17.maxIconsBeforeScroll >= len or not tbl_17.maxIconsBeforeScroll then
        local var761 = len
    end
    local function INLINED_22() -- Internal function, doesn't exist in bytecode
        function var764(arg1_7, arg2) -- Line 2464
            local var763
            if arg1_7:get("order") >= arg2:get("order") then
                var763 = false
            else
                var763 = true
            end
            return var763
        end
        return var764
    end
    if any__getMenuDirection_result1 ~= "right" or not INLINED_22() then
        function var764(arg1_8, arg2) -- Line 2464
            local var765
            if arg2:get("order") >= arg1_8:get("order") then
                var765 = false
            else
                var765 = true
            end
            return var765
        end
    end
    table.sort(arg1.menuIcons, var764)
    for i_34 = 1, len do
        local any_get_result1_5 = arg1.menuIcons[i_34]:get("iconSize")
        local var767
        if i_34 <= var761 then
            var767 += any_get_result1_5.X.Offset + var757
        end
        if i_34 == var761 then
            if i_34 ~= len then
                var767 -= 2
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local Offset = any_get_result1_5.Y.Offset
        if 0 < Offset then
        end
    end
    if var761 == len then
        local _ = 0
    else
    end
    arg1:set("menuCanvasSize", UDim2.new(0, (-var757) + (any_get_result1_5.X.Offset + var757) + var757, 0, 0))
    arg1:set("menuSize", UDim2.new(0, var767, 0, Offset + tbl_17.scrollBarThickness + 3))
    local tbl_3 = {}
    local tbl_10 = {
        containerAnchorPoint = Vector2.new(1, 0);
        containerPosition = UDim2.new(0, -4, 0, 0);
    }
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    tbl_10.canvasPosition = Vector2.new((-var757) + (any_get_result1_5.X.Offset + var757) + var757, 0)
    tbl_3.left = tbl_10
    tbl_3.right = {
        containerAnchorPoint = Vector2.new(0, 0);
        containerPosition = UDim2.new(1, var757 - 2, 0, 0);
        canvasPosition = Vector2.new(0, 0);
    }
    local var773 = tbl_3[any__getMenuDirection_result1]
    menuContainer.AnchorPoint = var773.containerAnchorPoint
    menuContainer.Position = var773.containerPosition
    arg1.instances.menuFrame.CanvasPosition = var773.canvasPosition
    arg1._menuCanvasPos = var773.canvasPosition
    arg1.instances.menuList.Padding = UDim.new(0, var757)
end
function var13_upvr._menuIgnoreClipping(arg1) -- Line 2509
    arg1:_ignoreClipping("menu")
end
function var13_upvr.destroy(arg1) -- Line 2516
    --[[ Upvalues[1]:
        [1]: IconController_upvr (readonly)
    ]]
    if arg1._destroyed then
    else
        IconController_upvr.iconRemoved:Fire(arg1)
        arg1:clearNotices()
        if arg1._parentIcon then
            arg1:leave()
        end
        arg1:setDropdown()
        arg1:setMenu()
        arg1._destroyed = true
        arg1._maid:clean()
    end
end
var13_upvr.Destroy = var13_upvr.destroy
return var13_upvr
ModuleScript IconController ReplicatedStorage.engine.classes.Icon.IconController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:04
-- Luau version 6, Types version 3
-- Time taken: 0.075854 seconds

local StarterGui_upvr = game:GetService("StarterGui")
local GuiService_upvr = game:GetService("GuiService")
local RunService_upvr = game:GetService("RunService")
local Players_upvr = game:GetService("Players")
local module_upvr = {}
local Signal = require(script.Parent.Signal)
local TopbarPlusGui_upvr = require(script.Parent.TopbarPlusGui)
local tbl_3_upvr = {}
local var9_upvw
local function _() -- Line 166, Named "checkTopbarEnabled"
    --[[ Upvalues[1]:
        [1]: StarterGui_upvr (readonly)
    ]]
    local xpcall_result1_11, xpcall_result2_4 = xpcall(function() -- Line 167
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("TopbarEnabled")
    end, function(arg1) -- Line 169
        return true
    end)
    return xpcall_result1_11 and xpcall_result2_4
end
local function _() -- Line 176, Named "checkTopbarEnabledAccountingForMimic"
    --[[ Upvalues[2]:
        [1]: StarterGui_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local xpcall_result1_3, xpcall_result2_2 = xpcall(function() -- Line 167
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("TopbarEnabled")
    end, function(arg1) -- Line 169
        return true
    end)
    local var18 = xpcall_result1_3 and xpcall_result2_2
    if not var18 then
        var18 = not module_upvr.mimicCoreGui
    end
    return var18
end
local tbl_2_upvr = {}
local tbl_4 = {
    startScale = 0;
}
local function getOffset() -- Line 187
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: StarterGui_upvr (readonly)
    ]]
    local xpcall_result1_2, xpcall_result2_7 = xpcall(function() -- Line 167
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("TopbarEnabled")
    end, function(arg1) -- Line 169
        return true
    end)
    local var25
    if xpcall_result1_2 and xpcall_result2_7 and StarterGui_upvr:GetCoreGuiEnabled("Chat") then
        var25 += 44
    end
    return var25
end
tbl_4.getOffset = getOffset
local function getStartOffset() -- Line 194
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
    ]]
    return tbl_2_upvr.left.getOffset() + module_upvr.leftGap
end
tbl_4.getStartOffset = getStartOffset
tbl_4.records = {}
tbl_2_upvr.left = tbl_4
local tbl = {
    startScale = 0.5;
}
local function getOffset() -- Line 203
    return 0
end
tbl.getOffset = getOffset
local function getStartOffset(arg1) -- Line 206
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return -arg1 / 2 + module_upvr.midGap / 2
end
tbl.getStartOffset = getStartOffset
tbl.records = {}
tbl_2_upvr.mid = tbl
tbl_2_upvr.right = {
    startScale = 1;
    getOffset = function() -- Line 214, Named "getOffset"
        --[[ Upvalues[2]:
            [1]: module_upvr (readonly)
            [2]: StarterGui_upvr (readonly)
        ]]
        local rightOffset = module_upvr.rightOffset
        local xpcall_result1_6, xpcall_result2_8 = xpcall(function() -- Line 167
            --[[ Upvalues[1]:
                [1]: StarterGui_upvr (copied, readonly)
            ]]
            return StarterGui_upvr:GetCore("TopbarEnabled")
        end, function(arg1) -- Line 169
            return true
        end)
        if xpcall_result1_6 and xpcall_result2_8 and (StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList) or StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.Backpack) or StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu)) then
            rightOffset += 48
        end
        return rightOffset
    end;
    getStartOffset = function(arg1) -- Line 221, Named "getStartOffset"
        --[[ Upvalues[1]:
            [1]: tbl_2_upvr (readonly)
        ]]
        return -arg1 - tbl_2_upvr.right.getOffset()
    end;
    records = {};
}
module_upvr.topbarEnabled = true
module_upvr.controllerModeEnabled = false
local xpcall_result1_5, xpcall_result2_3 = xpcall(function() -- Line 167
    --[[ Upvalues[1]:
        [1]: StarterGui_upvr (readonly)
    ]]
    return StarterGui_upvr:GetCore("TopbarEnabled")
end, function(arg1) -- Line 169
    return true
end)
module_upvr.previousTopbarEnabled = xpcall_result1_5 and xpcall_result2_3
module_upvr.leftGap = 12
module_upvr.midGap = 12
module_upvr.rightGap = 12
module_upvr.leftOffset = 0
module_upvr.rightOffset = 0
module_upvr.mimicCoreGui = true
module_upvr.healthbarDisabled = false
module_upvr.iconAdded = Signal.new()
module_upvr.iconRemoved = Signal.new()
module_upvr.controllerModeStarted = Signal.new()
module_upvr.controllerModeEnded = Signal.new()
module_upvr.healthbarDisabledSignal = Signal.new()
local var38_upvw = 0
module_upvr.iconAdded:Connect(function(arg1) -- Line 256
    --[[ Upvalues[3]:
        [1]: tbl_3_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: var38_upvw (read and write)
    ]]
    tbl_3_upvr[arg1] = true
    if module_upvr.gameTheme then
        arg1:setTheme(module_upvr.gameTheme)
    end
    arg1.updated:Connect(function() -- Line 261
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr.updateTopbar()
    end)
    arg1.selected:Connect(function() -- Line 265
        --[[ Upvalues[2]:
            [1]: module_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        for _, v in pairs(module_upvr.getIcons()) do
            if arg1.deselectWhenOtherIconSelected and v ~= arg1 and v.deselectWhenOtherIconSelected and v:getToggleState() == "selected" then
                v:deselect(arg1)
            end
        end
    end)
    var38_upvw += 1
    arg1:setOrder(var38_upvw)
    if module_upvr.controllerModeEnabled then
        module_upvr._enableControllerModeForIcon(arg1, true)
    end
    module_upvr:_updateSelectionGroup()
    module_upvr.updateTopbar()
end)
module_upvr.iconRemoved:Connect(function(arg1) -- Line 284
    --[[ Upvalues[2]:
        [1]: tbl_3_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    tbl_3_upvr[arg1] = nil
    arg1:setEnabled(false)
    arg1:deselect()
    arg1.updated:Fire()
    module_upvr:_updateSelectionGroup()
end)
function module_upvr.setGameTheme(arg1) -- Line 295
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.gameTheme = arg1
    for _, v_2 in pairs(module_upvr.getIcons()) do
        v_2:setTheme(arg1)
    end
end
function module_upvr.setDisplayOrder(arg1) -- Line 303
    --[[ Upvalues[1]:
        [1]: TopbarPlusGui_upvr (readonly)
    ]]
    local tonumber_result1 = tonumber(arg1)
    if not tonumber_result1 then
        tonumber_result1 = TopbarPlusGui_upvr.DisplayOrder
    end
    TopbarPlusGui_upvr.DisplayOrder = tonumber_result1
end
module_upvr.setDisplayOrder(10)
function module_upvr.getIcons() -- Line 309
    --[[ Upvalues[1]:
        [1]: tbl_3_upvr (readonly)
    ]]
    local module = {}
    for i_3, _ in pairs(tbl_3_upvr) do
        table.insert(module, i_3)
    end
    return module
end
function module_upvr.getIcon(arg1) -- Line 317
    --[[ Upvalues[1]:
        [1]: tbl_3_upvr (readonly)
    ]]
    for i_4, _ in pairs(tbl_3_upvr) do
        if i_4.name == arg1 then
            return i_4
        end
    end
    return false
end
function module_upvr.disableHealthbar(arg1) -- Line 326
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var66 = true
    if arg1 ~= nil then
        var66 = arg1
    end
    module_upvr.healthbarDisabled = var66
    module_upvr.healthbarDisabledSignal:Fire(var66)
end
function module_upvr.canShowIconOnTopbar(arg1) -- Line 332
    if arg1.enabled == true or arg1.accountForWhenDisabled then
        if arg1.presentOnTopbar then
            return true
        end
    end
    return false
end
function module_upvr.getMenuOffset(arg1) -- Line 339
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var67 = module_upvr[arg1:get("alignment").."Gap"]
    local any_get_result1_7 = arg1:get("iconSize")
    if not any_get_result1_7 then
        any_get_result1_7 = UDim2.new(0, 32, 0, 32)
    end
    local var69 = 0
    local var70 = 0
    local var71 = 0
    if arg1.menuOpen then
        local Offset = arg1:get("menuSize").X.Offset
        local any__getMenuDirection_result1 = arg1:_getMenuDirection()
        if any__getMenuDirection_result1 == "right" then
            var70 += Offset + var67 / 6
            return var69, var70, var71
        end
        if any__getMenuDirection_result1 == "left" then
            var69 = Offset + 4
            var70 += var67 / 3
            var71 = Offset
        end
    end
    return var69, var70, var71
end
local var74_upvw = false
local var75_upvw = false
local TweenService_upvr = game:GetService("TweenService")
function module_upvr.updateTopbar() -- Line 365
    --[[ Upvalues[8]:
        [1]: module_upvr (readonly)
        [2]: var74_upvw (read and write)
        [3]: var75_upvw (read and write)
        [4]: RunService_upvr (readonly)
        [5]: tbl_2_upvr (readonly)
        [6]: tbl_3_upvr (readonly)
        [7]: TopbarPlusGui_upvr (readonly)
        [8]: TweenService_upvr (readonly)
    ]]
    local function getIncrement_upvr(arg1, arg2) -- Line 366, Named "getIncrement"
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        local any_get_result1_2 = arg1:get("iconSize", arg1:getIconState())
        if not any_get_result1_2 then
            any_get_result1_2 = UDim2.new(0, 32, 0, 32)
        end
        local var78 = any_get_result1_2.X.Offset + module_upvr[arg2.."Gap"]
        local var79 = 0
        if arg1._parentIcon == nil then
            local any_getMenuOffset_result1_2, any_getMenuOffset_result2_2, any_getMenuOffset_result3 = module_upvr.getMenuOffset(arg1)
            var79 += any_getMenuOffset_result1_2
            var78 += any_getMenuOffset_result2_2 + any_getMenuOffset_result3
        end
        return var78, var79
    end
    if var74_upvw then
        var75_upvw = true
        return false
    end
    coroutine.wrap(function() -- Line 386
        --[[ Upvalues[9]:
            [1]: var74_upvw (copied, read and write)
            [2]: RunService_upvr (copied, readonly)
            [3]: tbl_2_upvr (copied, readonly)
            [4]: tbl_3_upvr (copied, readonly)
            [5]: module_upvr (copied, readonly)
            [6]: getIncrement_upvr (readonly)
            [7]: TopbarPlusGui_upvr (copied, readonly)
            [8]: TweenService_upvr (copied, readonly)
            [9]: var75_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 168 start (CF ANALYSIS FAILED)
        var74_upvw = true
        RunService_upvr.Heartbeat:Wait()
        var74_upvw = false
        local var135
        for _, v_5 in pairs(tbl_2_upvr) do
            v_5.records = {}
        end
        for i_6, _ in pairs(tbl_3_upvr) do
            if module_upvr.canShowIconOnTopbar(i_6) then
                var135 = "alignment"
                var135 = tbl_2_upvr[i_6:get(var135)].records
                table.insert(var135, i_6)
            end
        end
        local ViewportSize = workspace.CurrentCamera.ViewportSize
        for i_7, v_7 in pairs(tbl_2_upvr) do
            local records = v_7.records
            var135 = #records
            if 1 < var135 then
                var135 = v_7.reverseSort
                if var135 then
                    var135 = table.sort
                    var135(records, function(arg1, arg2) -- Line 406
                        local var145
                        if arg2:get("order") >= arg1:get("order") then
                            var145 = false
                        else
                            var145 = true
                        end
                        return var145
                    end)
                else
                    var135 = table.sort
                    var135(records, function(arg1, arg2) -- Line 408
                        local var147
                        if arg1:get("order") >= arg2:get("order") then
                            var147 = false
                        else
                            var147 = true
                        end
                        return var147
                    end)
                end
            end
            var135 = 0
            for _, v_8 in pairs(records) do
                var135 += getIncrement_upvr(v_8, i_7)
            end
            local any_getStartOffset_result1 = v_7.getStartOffset(var135, i_7)
            local _ = any_getStartOffset_result1
            for _, v_9 in pairs(records) do
                local _, _ = getIncrement_upvr(v_9, i_7)
                local var158
            end
            for _, v_10 in pairs(records) do
                local getIncrement_upvr_result1, getIncrement_upvr_result2 = getIncrement_upvr(v_10, i_7)
                local topPadding = v_10.topPadding
                local udim2 = UDim2.new(v_7.startScale, any_getStartOffset_result1 + getIncrement_upvr_result2, topPadding.Scale, topPadding.Offset)
                local any_get_result1_6 = v_10:get("repositionInfo")
                if any_get_result1_6 then
                    TweenService_upvr:Create(v_10.instances.iconContainer, any_get_result1_6, {
                        Position = udim2;
                    }):Play()
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    v_10.instances.iconContainer.Position = udim2
                end
                v_10.targetPosition = UDim2.new(0, udim2.X.Scale * ViewportSize.X + udim2.X.Offset, 0, udim2.Y.Scale * ViewportSize.Y + udim2.Y.Offset)
            end
        end
        local function _(arg1, arg2, arg3) -- Line 444, Named "getBoundaryX"
            --[[ Upvalues[1]:
                [1]: module_upvr (copied, readonly)
            ]]
            local var168 = arg3 or 0
            local any_getMenuOffset_result1_4, any_getMenuOffset_result2 = module_upvr.getMenuOffset(arg1)
            local var171
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var171 = -var168 - any_getMenuOffset_result1_4
                return var171
            end
            if arg2 ~= "left" or not INLINED() then
                var171 = false
                if arg2 == "right" then
                    var171 = arg1:get("iconSize", arg1:getIconState()).X.Offset + var168 + any_getMenuOffset_result2
                end
            end
            return arg1.targetPosition.X.Offset + var171
        end
        local function _(arg1, arg2) -- Line 453, Named "getSizeX"
            --[[ Upvalues[1]:
                [1]: module_upvr (copied, readonly)
            ]]
            local any_get_result1_4, any_get_result2_2 = arg1:get("iconSize", arg1:getIconState(), "beforeDropdown")
            local any_get_result1_5 = arg1:get("iconSize", "hovering")
            local var181
            if var181 and any_get_result2_2 and any_get_result1_5 then
                var181 = any_get_result1_5.X.Offset
                if any_get_result2_2.X.Offset < var181 then
                    any_get_result2_2 = any_get_result1_5
                end
            end
            local function INLINED_3() -- Internal function, doesn't exist in bytecode
                var181 = any_get_result2_2
                return var181
            end
            if not arg2 or not INLINED_3() then
                var181 = any_get_result1_4
            end
            local any_getMenuOffset_result1_3, any_getMenuOffset_result2_4 = module_upvr.getMenuOffset(arg1)
            return var181.X.Offset + any_getMenuOffset_result1_3 + any_getMenuOffset_result2_4
        end
        local pairs_result1_8, pairs_result2_7, pairs_result3_2 = pairs(tbl_2_upvr)
        -- KONSTANTERROR: [0] 1. Error Block 168 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [700] 505. Error Block 128 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [700] 505. Error Block 128 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [218] 158. Error Block 25 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [218] 158. Error Block 25 end (CF ANALYSIS FAILED)
    end)()
end
local var187_upvw = false
local HapticService_upvr = game:GetService("HapticService")
function module_upvr.setTopbarEnabled(arg1, arg2) -- Line 631
    --[[ Upvalues[9]:
        [1]: TopbarPlusGui_upvr (readonly)
        [2]: var187_upvw (read and write)
        [3]: StarterGui_upvr (readonly)
        [4]: module_upvr (readonly)
        [5]: var9_upvw (read and write)
        [6]: HapticService_upvr (readonly)
        [7]: RunService_upvr (readonly)
        [8]: tbl_3_upvr (readonly)
        [9]: GuiService_upvr (readonly)
    ]]
    if arg2 == nil then
        local var215 = true
    end
    local Indicator = TopbarPlusGui_upvr.Indicator
    if var215 and not arg1 then
        var187_upvw = true
    elseif var215 and arg1 then
        var187_upvw = false
    end
    local xpcall_result1_10, xpcall_result2_5 = xpcall(function() -- Line 167
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("TopbarEnabled")
    end, function(arg1_3) -- Line 169
        return true
    end)
    local var221 = xpcall_result1_10 and xpcall_result2_5
    if not var221 then
        var221 = not module_upvr.mimicCoreGui
    end
    local var222 = var221
    local var223
    if var223 then
        if arg1 then
            var223 = TopbarPlusGui_upvr.TopbarContainer.Visible
            local function INLINED_4() -- Internal function, doesn't exist in bytecode
                var223 = var187_upvw
                return var223
            end
            local function INLINED_5() -- Internal function, doesn't exist in bytecode
                var223 = var9_upvw
                return var223
            end
            if var223 or INLINED_4() or INLINED_5() or not var222 then
            else
                if var215 then
                    Indicator.Visible = var222
                    return
                end
                var223 = HapticService_upvr:IsVibrationSupported(Enum.UserInputType.Gamepad1)
                if var223 then
                    var223 = HapticService_upvr:IsMotorSupported(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small)
                    if var223 then
                        var223 = HapticService_upvr:SetMotor
                        var223(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 1)
                        var223 = delay
                        var223(0.2, function() -- Line 650
                            --[[ Upvalues[1]:
                                [1]: HapticService_upvr (copied, readonly)
                            ]]
                            pcall(function() -- Line 651
                                --[[ Upvalues[1]:
                                    [1]: HapticService_upvr (copied, readonly)
                                ]]
                                HapticService_upvr:SetMotor(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 0)
                            end)
                        end)
                    end
                end
                var223 = TopbarPlusGui_upvr.TopbarContainer
                var223.Visible = true
                var223 = TopbarPlusGui_upvr.TopbarContainer:TweenPosition
                var223(UDim2.new(0, 0, 0, 37), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.1, true)
                var223 = nil
                local var226 = var223
                module_upvr:_updateSelectionGroup()
                RunService_upvr.Heartbeat:Wait()
                for i_13, _ in pairs(tbl_3_upvr) do
                    if module_upvr.canShowIconOnTopbar(i_13) and (var226 == nil or var226:get("order") < i_13:get("order")) then
                        var226 = i_13
                    end
                    local var230 = -27 + i_13.instances.iconContainer.AbsoluteSize.Y + 50
                    if 0 < var230 then
                    end
                end
                if GuiService_upvr:GetEmotesMenuOpen() then
                    GuiService_upvr:SetEmotesMenuOpen(false)
                end
                if GuiService_upvr:GetInspectMenuEnabled() then
                    GuiService_upvr:CloseInspectMenu()
                end
                local _previousSelectedObject = module_upvr._previousSelectedObject
                if not _previousSelectedObject then
                    _previousSelectedObject = var226.instances.iconButton
                end
                module_upvr._setControllerSelectedObject(_previousSelectedObject)
                Indicator.Image = "rbxassetid://5278151071"
                Indicator:TweenPosition(UDim2.new(0.5, 0, 0, var230 + 32), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.1, true)
            end
        end
        if var215 then
            var226 = false
            Indicator.Visible = var226
        else
            Indicator.Visible = var222
        end
        var226 = TopbarPlusGui_upvr.TopbarContainer.Visible
        if not var226 then
        else
            var226 = GuiService_upvr
            var226.AutoSelectGuiEnabled = true
            var226 = module_upvr:_updateSelectionGroup
            var226(true)
            var226 = TopbarPlusGui_upvr.TopbarContainer
            var226 = var226:TweenPosition
            var226(UDim2.new(0, 0, 0, -TopbarPlusGui_upvr.TopbarContainer.Size.Y.Offset + 32), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.1, true, function() -- Line 713
                --[[ Upvalues[1]:
                    [1]: TopbarPlusGui_upvr (copied, readonly)
                ]]
                TopbarPlusGui_upvr.TopbarContainer.Visible = false
            end)
            var226 = "rbxassetid://5278151556"
            Indicator.Image = var226
            var226 = Indicator:TweenPosition
            var226(UDim2.new(0.5, 0, 0, 5), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.1, true)
        end
    end
    var226 = TopbarPlusGui_upvr.TopbarContainer
    local var233 = var226
    if var222 then
        var233.Visible = arg1
    else
        var233.Visible = false
    end
end
function module_upvr.setGap(arg1, arg2) -- Line 736
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var234 = tonumber(arg1) or 12
    local any_lower_result1 = tostring(arg2):lower()
    if any_lower_result1 == "left" or any_lower_result1 == "mid" or any_lower_result1 == "right" then
        module_upvr[any_lower_result1.."Gap"] = var234
        module_upvr.updateTopbar()
    else
        module_upvr.leftGap = var234
        module_upvr.midGap = var234
        module_upvr.rightGap = var234
        module_upvr.updateTopbar()
    end
end
function module_upvr.setLeftOffset(arg1) -- Line 750
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.leftOffset = tonumber(arg1) or 0
    module_upvr.updateTopbar()
end
function module_upvr.setRightOffset(arg1) -- Line 755
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.rightOffset = tonumber(arg1) or 0
    module_upvr.updateTopbar()
end
local LocalPlayer_upvr = Players_upvr.LocalPlayer
local tbl_5_upvw = {}
LocalPlayer_upvr.CharacterAdded:Connect(function() -- Line 762
    --[[ Upvalues[1]:
        [1]: tbl_5_upvw (read and write)
    ]]
    for _, v_11 in pairs(tbl_5_upvw) do
        v_11:destroy()
    end
    tbl_5_upvw = {}
end)
function module_upvr.clearIconOnSpawn(arg1) -- Line 768
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: tbl_5_upvw (read and write)
    ]]
    coroutine.wrap(function() -- Line 769
        --[[ Upvalues[3]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: tbl_5_upvw (copied, read and write)
            [3]: arg1 (readonly)
        ]]
        if not LocalPlayer_upvr.Character then
        end
        table.insert(tbl_5_upvw, arg1)
    end)()
end
function module_upvr._updateSelectionGroup(arg1, arg2) -- Line 778
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: GuiService_upvr (readonly)
    ]]
    if module_upvr._navigationEnabled then
        GuiService_upvr:RemoveSelectionGroup("TopbarPlusIcons")
    end
    if arg2 then
        GuiService_upvr.CoreGuiNavigationEnabled = module_upvr._originalCoreGuiNavigationEnabled
        GuiService_upvr.GuiNavigationEnabled = module_upvr._originalGuiNavigationEnabled
        module_upvr._navigationEnabled = nil
    elseif module_upvr.controllerModeEnabled then
        for _, v_15 in pairs(module_upvr.getIcons()) do
            if not v_15.joinedFeatureName or v_15._parentIcon[v_15.joinedFeatureName.."Open"] == true then
                table.insert({}, v_15.instances.iconButton)
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        GuiService_upvr:AddSelectionTuple("TopbarPlusIcons", table.unpack({}))
        if not module_upvr._navigationEnabled then
            module_upvr._originalCoreGuiNavigationEnabled = GuiService_upvr.CoreGuiNavigationEnabled
            module_upvr._originalGuiNavigationEnabled = GuiService_upvr.GuiNavigationEnabled
            GuiService_upvr.CoreGuiNavigationEnabled = false
            GuiService_upvr.GuiNavigationEnabled = true
            module_upvr._navigationEnabled = true
        end
    end
end
local function _() -- Line 806, Named "getScaleMultiplier"
    --[[ Upvalues[1]:
        [1]: GuiService_upvr (readonly)
    ]]
    if GuiService_upvr:IsTenFootInterface() then
        return 3
    end
    return 1.3
end
function module_upvr._setControllerSelectedObject(arg1) -- Line 814
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: GuiService_upvr (readonly)
    ]]
    local var250_upvr
    local function INLINED_6() -- Internal function, doesn't exist in bytecode
        var250_upvr = module_upvr._controllerSetCount + 1
        return var250_upvr
    end
    if not module_upvr._controllerSetCount or not INLINED_6() then
        var250_upvr = 0
    end
    module_upvr._controllerSetCount = var250_upvr
    GuiService_upvr.SelectedObject = arg1
    delay(0.1, function() -- Line 818
        --[[ Upvalues[4]:
            [1]: module_upvr (copied, readonly)
            [2]: var250_upvr (readonly)
            [3]: GuiService_upvr (copied, readonly)
            [4]: arg1 (readonly)
        ]]
        if var250_upvr == module_upvr._controllerSetCount then
            GuiService_upvr.SelectedObject = arg1
        end
    end)
end
function module_upvr._enableControllerMode(arg1) -- Line 826
    --[[ Upvalues[5]:
        [1]: TopbarPlusGui_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: GuiService_upvr (readonly)
        [4]: StarterGui_upvr (readonly)
        [5]: tbl_3_upvr (readonly)
    ]]
    local Indicator_3 = TopbarPlusGui_upvr.Indicator
    if module_upvr.controllerModeEnabled == arg1 then
    else
        module_upvr.controllerModeEnabled = arg1
        if arg1 then
            TopbarPlusGui_upvr.TopbarContainer.Position = UDim2.new(0, 0, 0, 5)
            local TopbarContainer = TopbarPlusGui_upvr.TopbarContainer
            TopbarContainer.Visible = false
            if GuiService_upvr:IsTenFootInterface() then
                TopbarContainer = 3
            else
                TopbarContainer = 1.3
            end
            Indicator_3.Position = UDim2.new(0.5, 0, 0, 5)
            Indicator_3.Size = UDim2.new(0, 18 * TopbarContainer, 0, 18 * TopbarContainer)
            Indicator_3.Image = "rbxassetid://5278151556"
            local xpcall_result1_9, xpcall_result2 = xpcall(function() -- Line 167
                --[[ Upvalues[1]:
                    [1]: StarterGui_upvr (copied, readonly)
                ]]
                return StarterGui_upvr:GetCore("TopbarEnabled")
            end, function(arg1_4) -- Line 169
                return true
            end)
            local var262 = xpcall_result1_9 and xpcall_result2
            if not var262 then
                var262 = not module_upvr.mimicCoreGui
            end
            Indicator_3.Visible = var262
            Indicator_3.Position = UDim2.new(0.5, 0, 0, 5)
        else
            TopbarPlusGui_upvr.TopbarContainer.Position = UDim2.new(0, 0, 0, 0)
            local xpcall_result1_4, xpcall_result2_11 = xpcall(function() -- Line 167
                --[[ Upvalues[1]:
                    [1]: StarterGui_upvr (copied, readonly)
                ]]
                return StarterGui_upvr:GetCore("TopbarEnabled")
            end, function(arg1_5) -- Line 169
                return true
            end)
            local var267 = xpcall_result1_4 and xpcall_result2_11
            if not var267 then
                var267 = not module_upvr.mimicCoreGui
            end
            TopbarPlusGui_upvr.TopbarContainer.Visible = var267
            Indicator_3.Visible = false
            module_upvr._setControllerSelectedObject(nil)
        end
        for i_14, _ in pairs(tbl_3_upvr) do
            module_upvr._enableControllerModeForIcon(i_14, arg1)
        end
    end
end
function module_upvr._enableControllerModeForIcon(arg1, arg2) -- Line 853
    --[[ Upvalues[1]:
        [1]: GuiService_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [5] 4. Error Block 2 start (CF ANALYSIS FAILED)
    arg1:leave()
    -- KONSTANTERROR: [5] 4. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [8] 6. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [8] 6. Error Block 3 end (CF ANALYSIS FAILED)
end
local var271_upvw = false
function module_upvr.setupHealthbar() -- Line 890
    --[[ Upvalues[5]:
        [1]: var271_upvw (read and write)
        [2]: RunService_upvr (readonly)
        [3]: StarterGui_upvr (readonly)
        [4]: module_upvr (readonly)
        [5]: LocalPlayer_upvr (readonly)
    ]]
    if var271_upvw then
    else
        var271_upvw = true
        task.defer(function() -- Line 898
            --[[ Upvalues[4]:
                [1]: RunService_upvr (copied, readonly)
                [2]: StarterGui_upvr (copied, readonly)
                [3]: module_upvr (copied, readonly)
                [4]: LocalPlayer_upvr (copied, readonly)
            ]]
            RunService_upvr.Heartbeat:Wait()
            require(script.Parent).new():setProperty("internalIcon", true):setName("_FakeHealthbar"):setRight():setOrder(-420):setSize(80, 32):lock():set("iconBackgroundTransparency", 1):give(function(arg1) -- Line 910
                --[[ Upvalues[3]:
                    [1]: StarterGui_upvr (copied, readonly)
                    [2]: module_upvr (copied, readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                ]]
                local Frame = Instance.new("Frame")
                Frame.Name = "HealthContainer"
                Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
                Frame.BorderSizePixel = 0
                Frame.AnchorPoint = Vector2.new(0, 0.5)
                Frame.Position = UDim2.new(0, 0, 0.5, 0)
                Frame.Size = UDim2.new(1, 0, 0.2, 0)
                Frame.Visible = true
                Frame.ZIndex = 11
                print("icon = ", arg1)
                print("icon.instances = ", arg1.instances)
                print("icon.instances.iconButton = ", arg1.instances.iconButton)
                Frame.Parent = arg1.instances.iconButton
                local UICorner = Instance.new("UICorner")
                UICorner.CornerRadius = UDim.new(1, 0)
                UICorner.Parent = Frame
                local clone = Frame:Clone()
                clone.Name = "HealthFrame"
                clone.BackgroundColor3 = Color3.fromRGB(167, 167, 167)
                clone.BorderSizePixel = 0
                clone.AnchorPoint = Vector2.new(0.5, 0.5)
                clone.Position = UDim2.new(0.5, 0, 0.5, 0)
                clone.Size = UDim2.new(1, -2, 1, -2)
                clone.Visible = true
                clone.ZIndex = 12
                clone.Parent = Frame
                local clone_2_upvr = clone:Clone()
                clone_2_upvr.Name = "HealthBar"
                clone_2_upvr.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
                clone_2_upvr.BorderSizePixel = 0
                clone_2_upvr.AnchorPoint = Vector2.new(0, 0.5)
                clone_2_upvr.Position = UDim2.new(0, 0, 0.5, 0)
                clone_2_upvr.Size = UDim2.new(0.5, 0, 1, 0)
                clone_2_upvr.Visible = true
                clone_2_upvr.ZIndex = 13
                clone_2_upvr.Parent = clone
                local function powColor3_upvr(arg1_6, arg2) -- Line 956, Named "powColor3"
                    return Color3.new(math.pow(arg1_6.R, arg2), math.pow(arg1_6.G, arg2), math.pow(arg1_6.B, arg2))
                end
                local function _(arg1_7, arg2, arg3, arg4) -- Line 964, Named "lerpColor"
                    --[[ Upvalues[1]:
                        [1]: powColor3_upvr (readonly)
                    ]]
                    local var278 = arg4 or 2
                    local var279 = var278
                    local var280 = var278
                    return powColor3_upvr(Color3.new(math.pow(arg1_7.R, var279), math.pow(arg1_7.G, var279), math.pow(arg1_7.B, var279)):Lerp(Color3.new(math.pow(arg2.R, var280), math.pow(arg2.G, var280), math.pow(arg2.B, var280)), arg3), 1 / var278)
                end
                local var281_upvw = true
                local Color3_fromRGB_result1_upvr_2 = Color3.fromRGB(27, 252, 107)
                local Color3_fromRGB_result1_upvr = Color3.fromRGB(250, 235, 0)
                local Color3_fromRGB_result1_upvr_3 = Color3.fromRGB(255, 28, 0)
                local function listenToHealth_upvr(arg1_8) -- Line 972, Named "listenToHealth"
                    --[[ Upvalues[8]:
                        [1]: StarterGui_upvr (copied, readonly)
                        [2]: module_upvr (copied, readonly)
                        [3]: var281_upvw (read and write)
                        [4]: arg1 (readonly)
                        [5]: Color3_fromRGB_result1_upvr_2 (readonly)
                        [6]: Color3_fromRGB_result1_upvr (readonly)
                        [7]: Color3_fromRGB_result1_upvr_3 (readonly)
                        [8]: clone_2_upvr (readonly)
                    ]]
                    if not arg1_8 then
                    else
                        local Humanoid_upvr = arg1_8:WaitForChild("Humanoid", 10)
                        if not Humanoid_upvr then return end
                        local function updateHealthBar() -- Line 981
                            --[[ Upvalues[9]:
                                [1]: StarterGui_upvr (copied, readonly)
                                [2]: Humanoid_upvr (readonly)
                                [3]: module_upvr (copied, readonly)
                                [4]: var281_upvw (copied, read and write)
                                [5]: arg1 (copied, readonly)
                                [6]: Color3_fromRGB_result1_upvr_2 (copied, readonly)
                                [7]: Color3_fromRGB_result1_upvr (copied, readonly)
                                [8]: Color3_fromRGB_result1_upvr_3 (copied, readonly)
                                [9]: clone_2_upvr (copied, readonly)
                            ]]
                            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                            local var286 = Humanoid_upvr.Health / Humanoid_upvr.MaxHealth
                            local var287
                            if var286 == 1 or module_upvr.healthbarDisabled or var281_upvw and StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.Health) == false then
                                if arg1.enabled then
                                    arg1:setEnabled(false)
                                end
                            else
                                if var286 < 1 then
                                    if not arg1.enabled then
                                        arg1:setEnabled(true)
                                    end
                                    var281_upvw = false
                                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                    if StarterGui_upvr:GetCoreGuiEnabled(Enum.CoreGuiType.Health) then
                                        var287 = false
                                        StarterGui_upvr:SetCoreGuiEnabled(Enum.CoreGuiType.Health, var287)
                                    end
                                end
                                local var288 = 1.25 * var286
                                local var289 = var288 + -0.125
                                if 1 < var289 then
                                    var288 = 1
                                elseif var289 < 0 then
                                    var288 = 0
                                else
                                    var288 = var289
                                end
                                var287 = 0.5
                                if var287 >= var286 or not Color3_fromRGB_result1_upvr_2 then
                                    local var290 = Color3_fromRGB_result1_upvr
                                end
                                local function INLINED_7() -- Internal function, doesn't exist in bytecode
                                    var287 = Color3_fromRGB_result1_upvr
                                    return var287
                                end
                                if 0.5 >= var286 or not INLINED_7() then
                                    var287 = Color3_fromRGB_result1_upvr_3
                                end
                                local var291 = (1 - var288) * 2
                                if 0.5 >= var286 or not (1 - var291) then
                                end
                                local var292 = nil or 2
                                local var293 = var292
                                local var294 = var292
                                local any_Lerp_result1 = Color3.new(math.pow(var287.R, var293), math.pow(var287.G, var293), math.pow(var287.B, var293)):Lerp(Color3.new(math.pow(var290.R, var294), math.pow(var290.G, var294), math.pow(var290.B, var294)), 2 - var291)
                                local var296 = 1 / var292
                                clone_2_upvr.BackgroundColor3 = Color3.new(math.pow(any_Lerp_result1.R, var296), math.pow(any_Lerp_result1.G, var296), math.pow(any_Lerp_result1.B, var296))
                                clone_2_upvr.Size = UDim2.new(var286, 0, 1, 0)
                            end
                        end
                        Humanoid_upvr.HealthChanged:Connect(updateHealthBar)
                        module_upvr.healthbarDisabledSignal:Connect(updateHealthBar)
                        updateHealthBar()
                    end
                end
                LocalPlayer_upvr.CharacterAdded:Connect(function(arg1_9) -- Line 1018
                    --[[ Upvalues[1]:
                        [1]: listenToHealth_upvr (readonly)
                    ]]
                    listenToHealth_upvr(arg1_9)
                end)
                task.spawn(listenToHealth_upvr, LocalPlayer_upvr.Character)
            end)
        end)
    end
end
local UserInputService_upvr = game:GetService("UserInputService")
coroutine.wrap(function() -- Line 1030
    --[[ Upvalues[6]:
        [1]: RunService_upvr (readonly)
        [2]: UserInputService_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: GuiService_upvr (readonly)
        [5]: StarterGui_upvr (readonly)
        [6]: tbl_2_upvr (readonly)
    ]]
    RunService_upvr.Heartbeat:Wait()
    local Parent = require(script.Parent)
    local any_setProperty_result1_upvr = Parent.new():setProperty("internalIcon", true):setName("_TopbarControllerOption"):setOrder(100):setImage("rbxassetid://5278150942"):setRight():setEnabled(false):setTip("Controller mode"):setProperty("deselectWhenOtherIconSelected", false)
    local function determineDisplay() -- Line 1048
        --[[ Upvalues[3]:
            [1]: UserInputService_upvr (copied, readonly)
            [2]: any_setProperty_result1_upvr (readonly)
            [3]: module_upvr (copied, readonly)
        ]]
        local MouseEnabled = UserInputService_upvr.MouseEnabled
        local GamepadEnabled = UserInputService_upvr.GamepadEnabled
        if MouseEnabled and GamepadEnabled then
            any_setProperty_result1_upvr:setEnabled(true)
        else
            if MouseEnabled then
                if not GamepadEnabled then
                    any_setProperty_result1_upvr:setEnabled(false)
                    module_upvr._enableControllerMode(false)
                    any_setProperty_result1_upvr:deselect()
                    return
                end
            end
            if not MouseEnabled and GamepadEnabled then
                any_setProperty_result1_upvr:setEnabled(false)
                module_upvr._enableControllerMode(true)
            end
        end
    end
    UserInputService_upvr:GetPropertyChangedSignal("MouseEnabled"):Connect(determineDisplay)
    UserInputService_upvr.GamepadConnected:Connect(determineDisplay)
    UserInputService_upvr.GamepadDisconnected:Connect(determineDisplay)
    determineDisplay()
    local function iconClicked() -- Line 1072
        --[[ Upvalues[2]:
            [1]: any_setProperty_result1_upvr (readonly)
            [2]: module_upvr (copied, readonly)
        ]]
        local var306 = any_setProperty_result1_upvr
        local isSelected = var306.isSelected
        if isSelected then
            var306 = "Normal mode"
        else
            var306 = "Controller mode"
        end
        any_setProperty_result1_upvr:setTip(var306)
        module_upvr._enableControllerMode(isSelected)
    end
    any_setProperty_result1_upvr.selected:Connect(iconClicked)
    any_setProperty_result1_upvr.deselected:Connect(iconClicked)
    UserInputService_upvr.InputBegan:Connect(function(arg1, arg2) -- Line 1082
        --[[ Upvalues[3]:
            [1]: module_upvr (copied, readonly)
            [2]: GuiService_upvr (copied, readonly)
            [3]: StarterGui_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 21 start (CF ANALYSIS FAILED)
        if not module_upvr.controllerModeEnabled then
        else
            if arg1.KeyCode == Enum.KeyCode.DPadDown then
                if not GuiService_upvr.SelectedObject then
                    local xpcall_result1_8, xpcall_result2_10 = xpcall(function() -- Line 167
                        --[[ Upvalues[1]:
                            [1]: StarterGui_upvr (copied, readonly)
                        ]]
                        return StarterGui_upvr:GetCore("TopbarEnabled")
                    end, function(arg1_10) -- Line 169
                        return true
                    end)
                    local var313 = xpcall_result1_8 and xpcall_result2_10
                    if not var313 then
                        var313 = not module_upvr.mimicCoreGui
                    end
                    if var313 then
                        module_upvr.setTopbarEnabled(true, false)
                        -- KONSTANTWARNING: GOTO [59] #45
                    end
                    -- KONSTANTWARNING: GOTO [59] #45
                end
            elseif arg1.KeyCode == Enum.KeyCode.ButtonB then
                module_upvr._previousSelectedObject = GuiService_upvr.SelectedObject
                module_upvr._setControllerSelectedObject(nil)
                module_upvr.setTopbarEnabled(false, false)
            end
            -- KONSTANTERROR: [0] 1. Error Block 21 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [59] 45. Error Block 12 start (CF ANALYSIS FAILED)
            arg1:Destroy()
            -- KONSTANTERROR: [59] 45. Error Block 12 end (CF ANALYSIS FAILED)
        end
    end)
    for i_12, v_12 in pairs(tbl_2_upvr) do
        if i_12 ~= "mid" then
            local any_setEnabled_result1 = Parent.new():setProperty("internalIcon", true):setImage(6069276526):setName("_overflowIcon-"..i_12):setEnabled(false)
            v_12.overflowIcon = any_setEnabled_result1
            any_setEnabled_result1.accountForWhenDisabled = true
            if i_12 == "left" then
                any_setEnabled_result1:setOrder(math.huge)
                any_setEnabled_result1:setLeft()
                any_setEnabled_result1:set("dropdownAlignment", "right")
            elseif i_12 == "right" then
                any_setEnabled_result1:setOrder((-math.huge))
                any_setEnabled_result1:setRight()
                any_setEnabled_result1:set("dropdownAlignment", "left")
            end
            any_setEnabled_result1.lockedSettings = {
                iconImage = true;
                order = true;
                alignment = true;
            }
        end
    end
end)()
coroutine.wrap(function() -- Line 1126
    --[[ Upvalues[3]:
        [1]: Players_upvr (readonly)
        [2]: StarterGui_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    local ChatScript = Players_upvr.LocalPlayer.PlayerScripts:WaitForChild("ChatScript", 4)
    if not ChatScript then
        ChatScript = game:GetService("Chat"):WaitForChild("ChatScript", 4)
    end
    if not ChatScript then
    else
        local ChatMain = ChatScript:FindFirstChild("ChatMain")
        if not ChatMain then return end
        require(ChatMain).CoreGuiEnabled:connect(function() -- Line 1132
            --[[ Upvalues[2]:
                [1]: StarterGui_upvr (copied, readonly)
                [2]: module_upvr (copied, readonly)
            ]]
            local xpcall_result1, xpcall_result2_9 = xpcall(function() -- Line 167
                --[[ Upvalues[1]:
                    [1]: StarterGui_upvr (copied, readonly)
                ]]
                return StarterGui_upvr:GetCore("TopbarEnabled")
            end, function(arg1) -- Line 169
                return true
            end)
            local var327 = xpcall_result1 and xpcall_result2_9
            if var327 == module_upvr.previousTopbarEnabled then
                module_upvr.updateTopbar()
                return "SetCoreGuiEnabled was called instead of SetCore"
            end
            if module_upvr.mimicCoreGui then
                module_upvr.previousTopbarEnabled = var327
                if module_upvr.controllerModeEnabled then
                    module_upvr.setTopbarEnabled(false, false)
                else
                    module_upvr.setTopbarEnabled(var327, false)
                end
            end
            module_upvr.updateTopbar()
        end)
        local _, _ = xpcall(function() -- Line 167
            --[[ Upvalues[1]:
                [1]: StarterGui_upvr (copied, readonly)
            ]]
            return StarterGui_upvr:GetCore("TopbarEnabled")
        end, function(arg1) -- Line 169
            return true
        end)
        local var332
        if not var332 and not module_upvr.mimicCoreGui then
            var332 = true
        end
        module_upvr.setTopbarEnabled(var332, false)
    end
end)()
GuiService_upvr.MenuClosed:Connect(function() -- Line 1156
    --[[ Upvalues[2]:
        [1]: var9_upvw (read and write)
        [2]: module_upvr (readonly)
    ]]
    var9_upvw = false
    if not module_upvr.controllerModeEnabled then
        module_upvr.setTopbarEnabled(module_upvr.topbarEnabled, false)
    end
end)
GuiService_upvr.MenuOpened:Connect(function() -- Line 1162
    --[[ Upvalues[2]:
        [1]: var9_upvw (read and write)
        [2]: module_upvr (readonly)
    ]]
    var9_upvw = true
    module_upvr.setTopbarEnabled(false, false)
end)
workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 1168
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr.updateTopbar()
end)
return module_upvr
ModuleScript Maid ReplicatedStorage.engine.classes.Icon.Maid
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:05
-- Luau version 6, Types version 3
-- Time taken: 0.004660 seconds

local module_upvr = {
    ClassName = "Maid";
}
function module_upvr.new() -- Line 18
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _tasks = {};
    }, module_upvr)
end
function module_upvr.isMaid(arg1) -- Line 24
    local var3 = false
    if type(arg1) == "table" then
        if arg1.ClassName ~= "Maid" then
            var3 = false
        else
            var3 = true
        end
    end
    return var3
end
function module_upvr.__index(arg1, arg2) -- Line 30
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr[arg2] then
        return module_upvr[arg2]
    end
    return arg1._tasks[arg2]
end
function module_upvr.__newindex(arg1, arg2, arg3) -- Line 47
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr[arg2] ~= nil then
        error("'%s' is reserved":format(tostring(arg2)), 2)
    end
    local _tasks_2 = arg1._tasks
    local var5 = _tasks_2[arg2]
    if var5 == arg3 then
    else
        _tasks_2[arg2] = arg3
        if var5 then
            if type(var5) == "function" then
                var5()
                return
            end
            if typeof(var5) == "RBXScriptConnection" then
                var5:Disconnect()
                return
            end
            if var5.Destroy then
                var5:Destroy()
                return
            end
            if var5.destroy then
                var5:destroy()
            end
        end
    end
end
function module_upvr.giveTask(arg1, arg2) -- Line 77
    if not arg2 then
        error("Task cannot be false or nil", 2)
    end
    local var6 = #arg1._tasks + 1
    arg1[var6] = arg2
    if type(arg2) == "table" and not arg2.Destroy and not arg2.destroy then
        warn("[Maid.GiveTask] - Gave table task without .Destroy\n\n"..debug.traceback())
    end
    return var6
end
function module_upvr.give(arg1, arg2) -- Line 109
    if type(arg2) == "table" and arg2.isAPromise then
        local any_givePromise_result1, any_givePromise_result2 = arg1:givePromise(arg2)
        _ = any_givePromise_result1 -- Setting global
        return arg2, any_givePromise_result2
    end
    return arg2, arg1:giveTask(arg2)
end
function module_upvr.doCleaning(arg1) -- Line 121
    local _tasks = arg1._tasks
    for i, v in pairs(_tasks) do
        if typeof(v) == "RBXScriptConnection" then
            _tasks[i] = nil
            v:Disconnect()
        end
    end
    local next_result1, next_result2 = next(_tasks)
    while next_result2 ~= nil do
        _tasks[next_result1] = nil
        i = next_result2
        if type(i) == "function" then
            next_result2()
        else
            i = next_result2
            if typeof(i) == "RBXScriptConnection" then
                next_result2:Disconnect()
            elseif next_result2.Destroy then
                next_result2:Destroy()
            elseif next_result2.destroy then
                next_result2:destroy()
            end
        end
        i = _tasks
        local _, _ = next(i)
    end
end
module_upvr.destroy = module_upvr.doCleaning
module_upvr.clean = module_upvr.doCleaning
return module_upvr
ModuleScript Signal ReplicatedStorage.engine.classes.Icon.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:07
-- Luau version 6, Types version 3
-- Time taken: 0.004444 seconds

local HttpService_upvr = game:GetService("HttpService")
local module_upvr = {}
module_upvr.__index = module_upvr
module_upvr.ClassName = "Signal"
module_upvr.totalConnections = 0
function module_upvr.new(arg1) -- Line 12
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    if arg1 then
        setmetatable_result1.connectionsChanged = module_upvr.new()
    end
    setmetatable_result1.connections = {}
    setmetatable_result1.totalConnections = 0
    setmetatable_result1.waiting = {}
    setmetatable_result1.totalWaiting = 0
    return setmetatable_result1
end
function module_upvr.Fire(arg1, ...) -- Line 30
    for _, v in pairs(arg1.connections) do
        v.Handler(...)
    end
    if 0 < arg1.totalWaiting then
        for i_2, _ in pairs(arg1.waiting) do
            arg1.waiting[i_2] = table.pack(...)
            local _
        end
    end
end
module_upvr.fire = module_upvr.Fire
function module_upvr.Connect(arg1, arg2) -- Line 43
    --[[ Upvalues[1]:
        [1]: HttpService_upvr (readonly)
    ]]
    if type(arg2) ~= "function" then
        error("connect(%s)":format(typeof(arg2)), 2)
    end
    local any_GenerateGUID_result1_2_upvr = HttpService_upvr:GenerateGUID(false)
    local module_upvr_2 = {
        Connected = true;
        ConnectionId = any_GenerateGUID_result1_2_upvr;
    }
    module_upvr_2.Handler = arg2
    arg1.connections[any_GenerateGUID_result1_2_upvr] = module_upvr_2
    function module_upvr_2.Disconnect(arg1_2) -- Line 56
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: any_GenerateGUID_result1_2_upvr (readonly)
            [3]: module_upvr_2 (readonly)
        ]]
        arg1.connections[any_GenerateGUID_result1_2_upvr] = nil
        module_upvr_2.Connected = false
        local var21 = arg1
        var21.totalConnections -= 1
        if arg1.connectionsChanged then
            arg1.connectionsChanged:Fire(-1)
        end
    end
    module_upvr_2.Destroy = module_upvr_2.Disconnect
    module_upvr_2.destroy = module_upvr_2.Disconnect
    module_upvr_2.disconnect = module_upvr_2.Disconnect
    arg1.totalConnections += 1
    if arg1.connectionsChanged then
        arg1.connectionsChanged:Fire(1)
    end
    return module_upvr_2
end
module_upvr.connect = module_upvr.Connect
local Heartbeat_upvr = game:GetService("RunService").Heartbeat
function module_upvr.Wait(arg1) -- Line 76
    --[[ Upvalues[2]:
        [1]: HttpService_upvr (readonly)
        [2]: Heartbeat_upvr (readonly)
    ]]
    local any_GenerateGUID_result1 = HttpService_upvr:GenerateGUID(false)
    arg1.waiting[any_GenerateGUID_result1] = true
    arg1.totalWaiting += 1
    repeat
        Heartbeat_upvr:Wait()
    until arg1.waiting[any_GenerateGUID_result1] ~= true
    arg1.totalWaiting -= 1
    arg1.waiting[any_GenerateGUID_result1] = nil
    return unpack(arg1.waiting[any_GenerateGUID_result1])
end
module_upvr.wait = module_upvr.Wait
function module_upvr.Destroy(arg1) -- Line 88
    if arg1.bindableEvent then
        arg1.bindableEvent:Destroy()
        arg1.bindableEvent = nil
    end
    if arg1.connectionsChanged then
        arg1.connectionsChanged:Fire(-arg1.totalConnections)
        arg1.connectionsChanged:Destroy()
        arg1.connectionsChanged = nil
    end
    arg1.totalConnections = 0
    for i_3, _ in pairs(arg1.connections) do
        arg1.connections[i_3] = nil
    end
end
module_upvr.destroy = module_upvr.Destroy
module_upvr.Disconnect = module_upvr.Destroy
module_upvr.disconnect = module_upvr.Destroy
return module_upvr
ModuleScript Themes ReplicatedStorage.engine.classes.Icon.Themes
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:08
-- Luau version 6, Types version 3
-- Time taken: 0.000719 seconds

for _, v in pairs(script:GetChildren()) do
    if v:IsA("ModuleScript") then
        ({})[v.Name] = require(v)
    end
end
-- KONSTANTERROR: Expression was reused, decompilation is incorrect
return {}
ModuleScript BlueGradient ReplicatedStorage.engine.classes.Icon.Themes.BlueGradient
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:10
-- Luau version 6, Types version 3
-- Time taken: 0.001751 seconds

local Color3_fromRGB_result1 = Color3.fromRGB(0, 170, 255)
local Color3_fromRGB_result1_3 = Color3.fromRGB(0, 120, 180)
local Color3_fromRGB_result1_2 = Color3.fromRGB(255, 255, 255)
return {
    action = {
        resizeInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
        repositionInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
    };
    toggleable = {
        deselected = {
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            noticeCircleColor = Color3_fromRGB_result1;
            noticeCircleImage = "http://www.roblox.com/asset/?id=4882430005";
            noticeTextColor = Color3_fromRGB_result1_2;
            captionOverlineColor = Color3_fromRGB_result1;
        };
        selected = {
            iconBackgroundColor = Color3.fromRGB(255, 255, 255);
            iconBackgroundTransparency = 0.1;
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            iconImageColor = Color3.fromRGB(255, 255, 255);
            iconTextColor = Color3.fromRGB(255, 255, 255);
            noticeCircleColor = Color3_fromRGB_result1_2;
            noticeTextColor = Color3_fromRGB_result1;
        };
    };
    other = {};
}
ModuleScript Default ReplicatedStorage.engine.classes.Icon.Themes.Default
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:11
-- Luau version 6, Types version 3
-- Time taken: 0.004255 seconds

return {
    action = {
        toggleTransitionInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        resizeInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        repositionInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        captionFadeInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        tipFadeInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        dropdownSlideInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
        menuSlideInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out);
    };
    toggleable = {
        deselected = {
            iconBackgroundColor = Color3.fromRGB(0, 0, 0);
            iconBackgroundTransparency = 0.5;
            iconCornerRadius = UDim.new(0.25, 0);
            iconGradientColor = ColorSequence.new(Color3.fromRGB(255, 255, 255));
            iconGradientRotation = 0;
            iconImage = "";
            iconImageColor = Color3.fromRGB(255, 255, 255);
            iconImageTransparency = 0;
            iconImageYScale = 0.63;
            iconImageRatio = 1;
            iconLabelYScale = 0.45;
            iconScale = UDim2.new(1, 0, 1, 0);
            forcedIconSize = UDim2.new(0, 32, 0, 32);
            iconSize = UDim2.new(0, 32, 0, 32);
            iconOffset = UDim2.new(0, 0, 0, 0);
            iconText = "";
            iconTextColor = Color3.fromRGB(255, 255, 255);
            iconFont = Enum.Font.GothamSemibold;
            noticeCircleColor = Color3.fromRGB(255, 255, 255);
            noticeCircleImage = "http://www.roblox.com/asset/?id=4871790969";
            noticeTextColor = Color3.fromRGB(31, 33, 35);
            baseZIndex = 1;
            order = 1;
            alignment = "left";
            clickSoundId = "rbxassetid://5273899897";
            clickVolume = 0;
            clickPlaybackSpeed = 1;
            clickTimePosition = 0.12;
        };
        selected = {
            iconBackgroundColor = Color3.fromRGB(245, 245, 245);
            iconBackgroundTransparency = 0.1;
            iconImageColor = Color3.fromRGB(57, 60, 65);
            iconTextColor = Color3.fromRGB(57, 60, 65);
            clickPlaybackSpeed = 1.5;
        };
    };
    other = {
        captionBackgroundColor = Color3.fromRGB(0, 0, 0);
        captionBackgroundTransparency = 0.5;
        captionTextColor = Color3.fromRGB(255, 255, 255);
        captionTextTransparency = 0;
        captionFont = Enum.Font.GothamSemibold;
        captionOverlineColor = Color3.fromRGB(0, 170, 255);
        captionOverlineTransparency = 0;
        captionCornerRadius = UDim.new(0.25, 0);
        tipBackgroundColor = Color3.fromRGB(255, 255, 255);
        tipBackgroundTransparency = 0.1;
        tipTextColor = Color3.fromRGB(27, 42, 53);
        tipTextTransparency = 0;
        tipFont = Enum.Font.GothamSemibold;
        tipCornerRadius = UDim.new(0.175, 0);
        dropdownAlignment = "auto";
        dropdownMaxIconsBeforeScroll = 3;
        dropdownMinWidth = 32;
        dropdownSquareCorners = false;
        dropdownBindToggleToIcon = true;
        dropdownToggleOnLongPress = false;
        dropdownToggleOnRightClick = false;
        dropdownCloseOnTapAway = false;
        dropdownHidePlayerlistOnOverlap = true;
        dropdownListPadding = UDim.new(0, 2);
        dropdownScrollBarColor = Color3.fromRGB(25, 25, 25);
        dropdownScrollBarTransparency = 0.2;
        dropdownScrollBarThickness = 4;
        menuDirection = "auto";
        menuMaxIconsBeforeScroll = 4;
        menuBindToggleToIcon = true;
        menuToggleOnLongPress = false;
        menuToggleOnRightClick = false;
        menuCloseOnTapAway = false;
        menuScrollBarColor = Color3.fromRGB(25, 25, 25);
        menuScrollBarTransparency = 0.2;
        menuScrollBarThickness = 4;
    };
}
ModuleScript NeonGradient ReplicatedStorage.engine.classes.Icon.Themes.NeonGradient
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:12
-- Luau version 6, Types version 3
-- Time taken: 0.001547 seconds

local Color3_fromRGB_result1 = Color3.fromRGB(206, 233, 102)
local Color3_fromRGB_result1_3 = Color3.fromRGB(169, 185, 65)
local Color3_fromRGB_result1_2 = Color3.fromRGB(255, 255, 255)
return {
    action = {
        resizeInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
        repositionInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
    };
    toggleable = {
        deselected = {
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            noticeCircleColor = Color3_fromRGB_result1;
            noticeCircleImage = "http://www.roblox.com/asset/?id=4882430005";
            noticeTextColor = Color3_fromRGB_result1_2;
            captionOverlineColor = Color3_fromRGB_result1;
        };
        selected = {
            iconBackgroundColor = Color3.fromRGB(255, 255, 255);
            iconBackgroundTransparency = 0.1;
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            iconImageColor = Color3.fromRGB(255, 255, 255);
            iconTextColor = Color3.fromRGB(255, 255, 255);
            noticeCircleColor = Color3_fromRGB_result1_2;
            noticeTextColor = Color3_fromRGB_result1;
        };
    };
    other = {};
}
ModuleScript WhiteGradient ReplicatedStorage.engine.classes.Icon.Themes.WhiteGradient
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:14
-- Luau version 6, Types version 3
-- Time taken: 0.001360 seconds

local Color3_fromRGB_result1 = Color3.fromRGB(255, 255, 255)
local Color3_fromRGB_result1_3 = Color3.fromRGB(202, 202, 202)
local Color3_fromRGB_result1_2 = Color3.fromRGB(35, 39, 50)
return {
    action = {
        resizeInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
        repositionInfo = TweenInfo.new(0.2, Enum.EasingStyle.Back);
    };
    toggleable = {
        deselected = {
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            noticeCircleColor = Color3_fromRGB_result1;
            noticeCircleImage = "http://www.roblox.com/asset/?id=4882430005";
            noticeTextColor = Color3_fromRGB_result1_2;
            captionOverlineColor = Color3_fromRGB_result1;
        };
        selected = {
            iconBackgroundColor = Color3.fromRGB(255, 255, 255);
            iconBackgroundTransparency = 0.1;
            iconGradientColor = ColorSequence.new(Color3_fromRGB_result1, Color3_fromRGB_result1_3);
            iconGradientRotation = 90;
            iconImageColor = Color3.fromRGB(255, 255, 255);
            iconTextColor = Color3.fromRGB(255, 255, 255);
            noticeCircleColor = Color3_fromRGB_result1_2;
            noticeTextColor = Color3_fromRGB_result1;
        };
    };
    other = {};
}
ModuleScript TopbarPlusGui ReplicatedStorage.engine.classes.Icon.TopbarPlusGui
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:15
-- Luau version 6, Types version 3
-- Time taken: 0.007183 seconds

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Enabled = true
ScreenGui.DisplayOrder = 0
ScreenGui.IgnoreGuiInset = true
ScreenGui.ResetOnSpawn = false
ScreenGui.Name = "TopbarPlus"
local Folder = Instance.new("Folder")
Folder.Name = "ActiveItems"
Folder.Parent = ScreenGui
local Frame_3 = Instance.new("Frame")
Frame_3.BackgroundTransparency = 1
Frame_3.Name = "TopbarContainer"
Frame_3.Position = UDim2.new(0, 0, 0, 0)
Frame_3.Size = UDim2.new(1, 0, 0, 36)
Frame_3.Visible = true
Frame_3.ZIndex = 1
Frame_3.Parent = ScreenGui
Frame_3.Active = false
local Frame_9 = Instance.new("Frame")
Frame_9.BackgroundTransparency = 1
Frame_9.Name = "IconContainer"
Frame_9.Position = UDim2.new(0, 104, 0, 4)
Frame_9.Visible = false
Frame_9.ZIndex = 1
Frame_9.Parent = Frame_3
Frame_9.Active = false
local TextButton = Instance.new("TextButton")
TextButton.Name = "IconButton"
TextButton.Visible = true
TextButton.Text = ""
TextButton.ZIndex = 10
TextButton.BorderSizePixel = 0
TextButton.AutoButtonColor = false
TextButton.Parent = Frame_9
TextButton.Active = true
local ImageLabel_2 = Instance.new("ImageLabel")
ImageLabel_2.BackgroundTransparency = 1
ImageLabel_2.Name = "IconImage"
ImageLabel_2.AnchorPoint = Vector2.new(0, 0.5)
ImageLabel_2.Visible = true
ImageLabel_2.ZIndex = 11
ImageLabel_2.ScaleType = Enum.ScaleType.Fit
ImageLabel_2.Parent = TextButton
ImageLabel_2.Active = false
local TextLabel_4 = Instance.new("TextLabel")
TextLabel_4.BackgroundTransparency = 1
TextLabel_4.Name = "IconLabel"
TextLabel_4.AnchorPoint = Vector2.new(0, 0.5)
TextLabel_4.Position = UDim2.new(0.5, 0, 0.5, 0)
TextLabel_4.Text = ""
TextLabel_4.RichText = true
TextLabel_4.TextScaled = false
TextLabel_4.ClipsDescendants = true
TextLabel_4.ZIndex = 11
TextLabel_4.Parent = TextButton
TextLabel_4.Active = false
local UIGradient = Instance.new("UIGradient")
UIGradient.Name = "IconGradient"
UIGradient.Enabled = true
UIGradient.Parent = TextButton
local UICorner_3 = Instance.new("UICorner")
UICorner_3.Name = "IconCorner"
UICorner_3.Parent = TextButton
local Frame_2 = Instance.new("Frame")
Frame_2.Name = "IconOverlay"
Frame_2.BackgroundTransparency = 1
Frame_2.Position = TextButton.Position
Frame_2.Size = UDim2.new(1, 0, 1, 0)
Frame_2.Visible = true
Frame_2.ZIndex = TextButton.ZIndex + 1
Frame_2.BorderSizePixel = 0
Frame_2.Parent = Frame_9
Frame_2.Active = false
local clone = UICorner_3:Clone()
clone.Name = "IconOverlayCorner"
clone.Parent = Frame_2
local ImageLabel_3 = Instance.new("ImageLabel")
ImageLabel_3.BackgroundTransparency = 1
ImageLabel_3.Name = "NoticeFrame"
ImageLabel_3.Position = UDim2.new(0.45, 0, 0, -2)
ImageLabel_3.Size = UDim2.new(1, 0, 0.7, 0)
ImageLabel_3.Visible = true
ImageLabel_3.ZIndex = 12
ImageLabel_3.ImageTransparency = 1
ImageLabel_3.ScaleType = Enum.ScaleType.Fit
ImageLabel_3.Parent = TextButton
ImageLabel_3.Active = false
local TextLabel_2 = Instance.new("TextLabel")
TextLabel_2.Name = "NoticeLabel"
TextLabel_2.BackgroundTransparency = 1
TextLabel_2.Position = UDim2.new(0.25, 0, 0.15, 0)
TextLabel_2.Size = UDim2.new(0.5, 0, 0.7, 0)
TextLabel_2.Visible = true
TextLabel_2.ZIndex = 13
TextLabel_2.Font = Enum.Font.Arial
TextLabel_2.Text = '0'
TextLabel_2.TextTransparency = 1
TextLabel_2.TextScaled = true
TextLabel_2.Parent = ImageLabel_3
TextLabel_2.Active = false
local Frame_5 = Instance.new("Frame")
Frame_5.Name = "CaptionContainer"
Frame_5.BackgroundTransparency = 1
Frame_5.AnchorPoint = Vector2.new(0, 0)
Frame_5.ClipsDescendants = true
Frame_5.ZIndex = 30
Frame_5.Visible = true
Frame_5.Parent = Frame_9
Frame_5.Active = false
local Frame_6 = Instance.new("Frame")
Frame_6.Name = "CaptionFrame"
Frame_6.BorderSizePixel = 0
Frame_6.AnchorPoint = Vector2.new(0.5, 0.5)
Frame_6.Position = UDim2.new(0.5, 0, 0.5, 0)
Frame_6.Size = UDim2.new(1, 0, 1, 0)
Frame_6.ZIndex = 31
Frame_6.Parent = Frame_5
Frame_6.Active = false
local TextLabel = Instance.new("TextLabel")
TextLabel.Name = "CaptionLabel"
TextLabel.BackgroundTransparency = 1
TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
TextLabel.Position = UDim2.new(0.5, 0, 0.56, 0)
TextLabel.TextXAlignment = Enum.TextXAlignment.Center
TextLabel.RichText = true
TextLabel.ZIndex = 32
TextLabel.Parent = Frame_5
TextLabel.Active = false
local UICorner = Instance.new("UICorner")
UICorner.Name = "CaptionCorner"
UICorner.Parent = Frame_6
local Frame_4 = Instance.new("Frame")
Frame_4.Name = "CaptionOverlineContainer"
Frame_4.BackgroundTransparency = 1
Frame_4.AnchorPoint = Vector2.new(0.5, 0.5)
Frame_4.Position = UDim2.new(0.5, 0, -0.5, 3)
Frame_4.Size = UDim2.new(1, 0, 1, 0)
Frame_4.ZIndex = 33
Frame_4.ClipsDescendants = true
Frame_4.Parent = Frame_5
Frame_4.Active = false
local Frame_8 = Instance.new("Frame")
Frame_8.Name = "CaptionOverline"
Frame_8.AnchorPoint = Vector2.new(0.5, 0.5)
Frame_8.Position = UDim2.new(0.5, 0, 1.5, -3)
Frame_8.Size = UDim2.new(1, 0, 1, 0)
Frame_8.ZIndex = 34
Frame_8.Parent = Frame_4
Frame_8.Active = false
local clone_3 = UICorner:Clone()
clone_3.Name = "CaptionOverlineCorner"
clone_3.Parent = Frame_8
local clone_2 = Frame_6:Clone()
clone_2.Name = "CaptionVisibilityBlocker"
clone_2.BackgroundTransparency = 1
clone_2.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
clone_2.ZIndex -= 1
clone_2.Parent = Frame_6
clone_2.Active = false
clone_2.CaptionCorner.Name = "CaptionVisibilityCorner"
local Frame_7 = Instance.new("Frame")
Frame_7.Name = "TipFrame"
Frame_7.BorderSizePixel = 0
Frame_7.AnchorPoint = Vector2.new(0, 0)
Frame_7.Position = UDim2.new(0, 50, 0, 50)
Frame_7.Size = UDim2.new(1, 0, 1, -8)
Frame_7.ZIndex = 40
Frame_7.Parent = Frame_9
Frame_7.Active = false
local UICorner_2 = Instance.new("UICorner")
UICorner_2.Name = "TipCorner"
UICorner_2.CornerRadius = UDim.new(0.25, 0)
UICorner_2.Parent = Frame_7
local TextLabel_3 = Instance.new("TextLabel")
TextLabel_3.Name = "TipLabel"
TextLabel_3.BackgroundTransparency = 1
TextLabel_3.TextScaled = false
TextLabel_3.TextSize = 12
TextLabel_3.Position = UDim2.new(0, 3, 0, 3)
TextLabel_3.Size = UDim2.new(1, -6, 1, -6)
TextLabel_3.ZIndex = 41
TextLabel_3.Parent = Frame_7
TextLabel_3.Active = false
local Frame_10 = Instance.new("Frame")
Frame_10.Name = "DropdownContainer"
Frame_10.BackgroundTransparency = 1
Frame_10.BorderSizePixel = 0
Frame_10.AnchorPoint = Vector2.new(0.5, 0)
Frame_10.ZIndex = -2
Frame_10.ClipsDescendants = true
Frame_10.Visible = true
Frame_10.Parent = Frame_9
Frame_10.Active = false
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Name = "DropdownFrame"
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.AnchorPoint = Vector2.new(0.5, 0)
ScrollingFrame.Position = UDim2.new(0.5, 0, 0, 0)
ScrollingFrame.Size = UDim2.new(0.5, 2, 1, 0)
ScrollingFrame.ZIndex = -1
ScrollingFrame.ClipsDescendants = false
ScrollingFrame.Visible = true
ScrollingFrame.TopImage = ScrollingFrame.MidImage
ScrollingFrame.BottomImage = ScrollingFrame.MidImage
ScrollingFrame.VerticalScrollBarInset = Enum.ScrollBarInset.Always
ScrollingFrame.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Right
ScrollingFrame.Parent = Frame_10
ScrollingFrame.Active = false
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Name = "DropdownList"
UIListLayout.FillDirection = Enum.FillDirection.Vertical
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Parent = ScrollingFrame
local UIPadding = Instance.new("UIPadding")
UIPadding.Name = "DropdownPadding"
UIPadding.PaddingRight = UDim.new(0, 2)
UIPadding.Parent = ScrollingFrame
local Frame = Instance.new("Frame")
Frame.Active = true
Frame.Selectable = false
Frame.Name = "MenuContainer"
Frame.BackgroundTransparency = 1
Frame.BorderSizePixel = 0
Frame.AnchorPoint = Vector2.new(1, 0)
Frame.Size = UDim2.new(0, 500, 0, 50)
Frame.ZIndex = -2
Frame.ClipsDescendants = true
Frame.Visible = true
Frame.Parent = Frame_9
Frame.Active = false
local ScrollingFrame_2 = Instance.new("ScrollingFrame")
ScrollingFrame_2.Active = true
ScrollingFrame_2.Selectable = true
ScrollingFrame_2.Name = "MenuFrame"
ScrollingFrame_2.BackgroundTransparency = 1
ScrollingFrame_2.BorderSizePixel = 0
ScrollingFrame_2.AnchorPoint = Vector2.new(0, 0)
ScrollingFrame_2.Position = UDim2.new(0, 0, 0, 0)
ScrollingFrame_2.Size = UDim2.new(1, 0, 1, 0)
ScrollingFrame_2.ZIndex = 9
ScrollingFrame_2.ClipsDescendants = false
ScrollingFrame_2.Visible = true
ScrollingFrame_2.TopImage = ""
ScrollingFrame_2.BottomImage = ""
ScrollingFrame_2.HorizontalScrollBarInset = Enum.ScrollBarInset.Always
ScrollingFrame_2.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame_2.Parent = Frame
ScrollingFrame_2.Active = false
local UIListLayout_2 = Instance.new("UIListLayout")
UIListLayout_2.Name = "MenuList"
UIListLayout_2.FillDirection = Enum.FillDirection.Horizontal
UIListLayout_2.HorizontalAlignment = Enum.HorizontalAlignment.Right
UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout_2.Parent = ScrollingFrame_2
local Frame_11 = Instance.new("Frame")
Frame_11.Name = "MenuInvisBlocker"
Frame_11.BackgroundTransparency = 1
Frame_11.Size = UDim2.new(0, -2, 1, 0)
Frame_11.Visible = true
Frame_11.LayoutOrder = 999999999
Frame_11.Parent = ScrollingFrame_2
Frame_11.Active = false
local Sound = Instance.new("Sound")
Sound.Name = "ClickSound"
Sound.Volume = 0
Sound.Parent = Frame_9
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Name = "Indicator"
ImageLabel.BackgroundTransparency = 1
ImageLabel.Image = "rbxassetid://5278151556"
ImageLabel.Size = UDim2.new(0, 32, 0, 32)
ImageLabel.AnchorPoint = Vector2.new(0.5, 0)
ImageLabel.Position = UDim2.new(0.5, 0, 0, 5)
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Visible = false
ImageLabel.Active = true
ImageLabel.Parent = ScreenGui
ImageLabel.Active = false
ScreenGui.Parent = game:GetService("Players").LocalPlayer.PlayerGui
return ScreenGui
ModuleScript TopbarPlusReference ReplicatedStorage.engine.classes.Icon.TopbarPlusReference
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:17
-- Luau version 6, Types version 3
-- Time taken: 0.001409 seconds

local ReplicatedStorage_upvr = game:GetService("ReplicatedStorage")
return {
    addToReplicatedStorage = function() -- Line 9, Named "addToReplicatedStorage"
        --[[ Upvalues[1]:
            [1]: ReplicatedStorage_upvr (readonly)
        ]]
        if ReplicatedStorage_upvr:FindFirstChild(script.Name) then
            return false
        end
        local ObjectValue = Instance.new("ObjectValue")
        ObjectValue.Name = script.Name
        ObjectValue.Value = script.Parent
        ObjectValue.Parent = ReplicatedStorage_upvr
        return ObjectValue
    end;
    getObject = function() -- Line 21, Named "getObject"
        --[[ Upvalues[1]:
            [1]: ReplicatedStorage_upvr (readonly)
        ]]
        local SOME = ReplicatedStorage_upvr:FindFirstChild(script.Name)
        if SOME then
            return SOME
        end
        return false
    end;
}
ModuleScript VERSION ReplicatedStorage.engine.classes.Icon.VERSION
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:19
-- Luau version 6, Types version 3
-- Time taken: 0.000265 seconds
ModuleScript LightningBolt ReplicatedStorage.engine.classes.LightningBolt
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:21
-- Luau version 6, Types version 3
-- Time taken: 0.006224 seconds

local clock_upvr = os.clock
local var2_upvw
function DiscretePulse(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 14
    return math.clamp((arg3) / (2 * arg4) - math.abs((arg1 - arg5 * arg2 + 0.5 * arg3) / arg4), arg6, arg7)
end
function NoiseBetween(arg1, arg2, arg3, arg4, arg5) -- Line 18
    return arg4 + (arg5 - arg4) * (math.noise(arg1, arg2, arg3) + 0.5)
end
function CubicBezier(arg1, arg2, arg3, arg4, arg5) -- Line 22
    return arg1 * (1 - arg5) ^ 3 + arg2 * 3 * arg5 * (1 - arg5) ^ 2 + arg3 * 3 * (1 - arg5) * arg5 ^ 2 + arg4 * arg5 ^ 3
end
local ImageHandleAdornment_upvr = Instance.new("ImageHandleAdornment")
ImageHandleAdornment_upvr.Name = "BoltAdorn"
ImageHandleAdornment_upvr.Image = "http://www.roblox.com/asset/?id=4955566540"
ImageHandleAdornment_upvr.Transparency = 1
ImageHandleAdornment_upvr.Color3 = Color3.new(1, 1, 1)
ImageHandleAdornment_upvr.ZIndex = 0
ImageHandleAdornment_upvr.Size = Vector2.new(0, 0)
local tbl_upvr = {}
local module_upvr = {}
module_upvr.__index = module_upvr
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local var7_upvw
local var8_upvw
function module_upvr.new(arg1, arg2, arg3) -- Line 49
    --[[ Upvalues[8]:
        [1]: module_upvr (readonly)
        [2]: var2_upvw (read and write)
        [3]: LocalPlayer_upvr (readonly)
        [4]: var7_upvw (read and write)
        [5]: var8_upvw (read and write)
        [6]: ImageHandleAdornment_upvr (readonly)
        [7]: clock_upvr (readonly)
        [8]: tbl_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.Enabled = true
    setmetatable_result1.Attachment0 = arg1
    setmetatable_result1.Attachment1 = arg2
    setmetatable_result1.CurveSize0 = 0
    setmetatable_result1.CurveSize1 = 0
    setmetatable_result1.MinRadius = 0
    setmetatable_result1.MaxRadius = 2.4
    setmetatable_result1.Frequency = 1
    setmetatable_result1.AnimationSpeed = 7
    setmetatable_result1.Thickness = 2
    setmetatable_result1.MinThicknessMultiplier = 0.2
    setmetatable_result1.MaxThicknessMultiplier = 1
    setmetatable_result1.MinTransparency = 0
    setmetatable_result1.MaxTransparency = 1
    setmetatable_result1.PulseSpeed = 2
    setmetatable_result1.PulseLength = 1000000
    setmetatable_result1.FadeLength = 0.2
    setmetatable_result1.ContractFrom = 0.5
    setmetatable_result1.Color = Color3.new(1, 1, 1)
    setmetatable_result1.ColorOffsetSpeed = 3
    setmetatable_result1.Parts = {}
    var2_upvw = workspace.CurrentCamera
    if LocalPlayer_upvr.PlayerGui:FindFirstChild("LightningBeams") == nil then
        var7_upvw = Instance.new("ScreenGui")
        var7_upvw.Name = "LightningBeams"
        var7_upvw.ResetOnSpawn = false
        var7_upvw.Parent = LocalPlayer_upvr.PlayerGui
        var8_upvw = Instance.new("Part")
        var8_upvw.Anchored = true
        var8_upvw.Locked = true
        var8_upvw.CanCollide = false
        var8_upvw.CFrame = CFrame.new()
        var8_upvw.Size = Vector3.new(0, 0, 0)
        var8_upvw.Transparency = 1
        var8_upvw.Parent = var7_upvw
        var8_upvw.Name = "AdorneePart"
    end
    local var12 = arg1
    local var13 = arg2
    local WorldPosition = var12.WorldPosition
    local var15 = arg3 or 30
    for i = 1, var15 do
        local CubicBezier_result1 = CubicBezier(WorldPosition, var12.WorldPosition + var12.WorldAxis * setmetatable_result1.CurveSize0, var13.WorldPosition - var13.WorldAxis * setmetatable_result1.CurveSize1, var13.WorldPosition, i / var15)
        local var17
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var17 = CFrame.lookAt(WorldPosition, CubicBezier_result1).Position
            return var17
        end
        if i == var15 or not INLINED() then
            var17 = CubicBezier_result1
        end
        local clone = ImageHandleAdornment_upvr:Clone()
        clone.Parent = var7_upvw
        clone.Adornee = var8_upvw
        setmetatable_result1.Parts[i] = clone
    end
    setmetatable_result1.PartsHidden = false
    setmetatable_result1.DisabledTransparency = 1
    setmetatable_result1.StartT = clock_upvr()
    setmetatable_result1.RanNum = math.random() * 100
    setmetatable_result1.RefIndex = #tbl_upvr + 1
    tbl_upvr[setmetatable_result1.RefIndex] = setmetatable_result1
    return setmetatable_result1
end
function module_upvr.Destroy(arg1) -- Line 127
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    tbl_upvr[arg1.RefIndex] = nil
    for i_2 = 1, #arg1.Parts do
        arg1.Parts[i_2]:Destroy()
        if i_2 % 100 == 0 then
            wait()
        end
    end
end
local Cross_upvr = Vector3.new().Cross
game:GetService("RunService").Heartbeat:Connect(function() -- Line 142
    --[[ Upvalues[4]:
        [1]: tbl_upvr (readonly)
        [2]: clock_upvr (readonly)
        [3]: Cross_upvr (readonly)
        [4]: var2_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local pairs_result1, pairs_result2, pairs_result3 = pairs(tbl_upvr)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [441] 342. Error Block 37 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [441] 342. Error Block 37 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [5] 5. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [441.5]
    -- KONSTANTERROR: [5] 5. Error Block 2 end (CF ANALYSIS FAILED)
end)
return module_upvr
ModuleScript LightningSparks ReplicatedStorage.engine.classes.LightningBolt.LightningSparks
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:22
-- Luau version 6, Types version 3
-- Time taken: 0.018356 seconds

local tbl_6_upvr = {}
local random_state_upvr = Random.new()
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 11
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: tbl_6_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.Enabled = true
    setmetatable_result1.LightningBolt = arg1
    setmetatable_result1.MaxSparkCount = arg2 or 10
    setmetatable_result1.MinSpeed = 4
    setmetatable_result1.MaxSpeed = 6
    setmetatable_result1.MinDistance = 3
    setmetatable_result1.MaxDistance = 6
    setmetatable_result1.MinPartsPerSpark = 8
    setmetatable_result1.MaxPartsPerSpark = 10
    setmetatable_result1.SparksN = 0
    setmetatable_result1.SlotTable = {}
    setmetatable_result1.RefIndex = #tbl_6_upvr + 1
    tbl_6_upvr[setmetatable_result1.RefIndex] = setmetatable_result1
    return setmetatable_result1
end
function module_upvr.Destroy(arg1) -- Line 34
    --[[ Upvalues[1]:
        [1]: tbl_6_upvr (readonly)
    ]]
    tbl_6_upvr[arg1.RefIndex] = nil
    for i, v in pairs(arg1.SlotTable) do
        if v.Parts[1].Parent == nil then
            arg1.SlotTable[i] = nil
        end
    end
end
function RandomVectorOffset(arg1, arg2) -- Line 46
    --[[ Upvalues[1]:
        [1]: random_state_upvr (readonly)
    ]]
    return (CFrame.lookAt(Vector3.new(), arg1) * CFrame.Angles(0, 0, random_state_upvr:NextNumber(0, (-math.pi*2))) * CFrame.Angles(math.acos(random_state_upvr:NextNumber(math.cos(arg2), 1)), 0, 0)).LookVector
end
local Parent_upvr = require(script.Parent)
game:GetService("RunService").Heartbeat:Connect(function() -- Line 50
    --[[ Upvalues[3]:
        [1]: tbl_6_upvr (readonly)
        [2]: random_state_upvr (readonly)
        [3]: Parent_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    for _, v_2 in pairs(tbl_6_upvr) do
        local var101
        if var101 == true then
            var101 = v_2.SparksN
            local var102
            if var101 < v_2.MaxSparkCount then
                var101 = v_2.LightningBolt
                if var101.Parts[1] == nil or var101.Parts[1].Parent == nil then
                    v_2:Destroy()
                    return
                end
                local Parts_2 = var101.Parts
                local tbl_5 = {}
                var102 = #Parts_2
                for i_3 = 1, var102 do
                    if Parts_2[i_3].Transparency < 0.3 then
                        tbl_5[#tbl_5 + 1] = (i_3 - 0.5) / #Parts_2
                    end
                end
                var102 = nil
                if #tbl_5 ~= 0 then
                    var102 = math.ceil(tbl_5[1] * v_2.MaxSparkCount)
                end
                for _ = 1, random_state_upvr:NextInteger(1, v_2.MaxSparkCount - v_2.SparksN) do
                    if #tbl_5 == 0 then break end
                    local tbl_3 = {}
                    local var106
                    for i_5 = var102, math.ceil(tbl_5[#tbl_5] * v_2.MaxSparkCount) do
                        var106 = v_2.SlotTable
                        if var106[i_5] == nil then
                            var106 = #tbl_3
                            tbl_3[var106 + 1] = i_5
                        end
                    end
                    if #tbl_3 ~= 0 then
                        var106 = #tbl_3
                        var106 = 0.5
                        local any_NextNumber_result1 = random_state_upvr:NextNumber(-0.5, var106)
                        var106 = tbl_3[random_state_upvr:NextInteger(1, var106)] - 0.5
                        var106 = v_2.MaxSparkCount
                        i_5 = (var106 + any_NextNumber_result1) / var106
                        var106 = 1
                        for i_6 = 1, #tbl_5 do
                            if math.abs(tbl_5[i_6] - i_5) < 10 then
                                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                var106 = math.floor(tbl_5[i_6] * #Parts_2 + 0.5 + 0.5)
                            end
                        end
                        local var110 = Parts_2[var106]
                        local tbl_9 = {}
                        local tbl_4 = {}
                        tbl_9.WorldPosition = var110.CFrame.Position + any_NextNumber_result1 * var110.CFrame.UpVector * var110.Size.Y
                        tbl_4.WorldPosition = tbl_9.WorldPosition + RandomVectorOffset(var110.CFrame.UpVector, 0.7853981633974483) * random_state_upvr:NextNumber(v_2.MinDistance, v_2.MaxDistance)
                        tbl_9.WorldAxis = (tbl_4.WorldPosition - tbl_9.WorldPosition).Unit
                        tbl_4.WorldAxis = tbl_9.WorldAxis
                        local any_new_result1_2 = Parent_upvr.new(tbl_9, tbl_4, random_state_upvr:NextInteger(v_2.MinPartsPerSpark, v_2.MaxPartsPerSpark))
                        any_new_result1_2.MinRadius = 0
                        any_new_result1_2.MaxRadius = 0.8
                        any_new_result1_2.AnimationSpeed = 0
                        any_new_result1_2.Thickness = var110.Size.X / 1.2
                        any_new_result1_2.MinThicknessMultiplier = 1
                        any_new_result1_2.MaxThicknessMultiplier = 1
                        any_new_result1_2.PulseLength = 0.5
                        any_new_result1_2.PulseSpeed = random_state_upvr:NextNumber(v_2.MinSpeed, v_2.MaxSpeed)
                        any_new_result1_2.FadeLength = 0.25
                        local Color3_toHSV_result1_2, _, Color3_toHSV_result3_2 = Color3.toHSV(var110.Color3)
                        any_new_result1_2.Color = Color3.fromHSV(Color3_toHSV_result1_2, 0.5, Color3_toHSV_result3_2)
                        v_2.SlotTable[tbl_3[random_state_upvr:NextInteger(1, var106)]] = any_new_result1_2
                    end
                end
            end
        end
        var101 = 0
        for i_7, v_3 in pairs(v_2.SlotTable) do
            if v_3.Parts[1].Parent ~= nil then
                var101 += 1
            else
                v_2.SlotTable[i_7] = nil
            end
        end
        v_2.SparksN = var101
    end
end)
return module_upvr
ModuleScript LightningExplosion ReplicatedStorage.engine.classes.LightningBolt.LightningExplosion
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:24
-- Luau version 6, Types version 3
-- Time taken: 0.011127 seconds

local random_state_upvr = Random.new()
local clock_upvr = os.clock
function RandomVectorOffsetBetween(arg1, arg2, arg3) -- Line 9
    --[[ Upvalues[1]:
        [1]: random_state_upvr (readonly)
    ]]
    return (CFrame.lookAt(Vector3.new(), arg1) * CFrame.Angles(0, 0, random_state_upvr:NextNumber(0, (-math.pi*2))) * CFrame.Angles(math.acos(random_state_upvr:NextNumber(math.cos(arg3), math.cos(arg2))), 0, 0)).LookVector
end
local tbl_upvr = {}
local module_upvr = {}
module_upvr.__index = module_upvr
local Parent_upvr = require(script.Parent)
local LightningSparks_upvr = require(script.Parent.LightningSparks)
function module_upvr.new(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 20
    --[[ Upvalues[6]:
        [1]: module_upvr (readonly)
        [2]: random_state_upvr (readonly)
        [3]: Parent_upvr (readonly)
        [4]: LightningSparks_upvr (readonly)
        [5]: clock_upvr (readonly)
        [6]: tbl_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.Size = arg2 or 1
    setmetatable_result1.NumBolts = arg3 or 14
    local var16 = arg4
    if not var16 then
        var16 = ColorSequence.new(Color3.new(1, 0, 0), Color3.new(0, 0, 1))
    end
    setmetatable_result1.Color = var16
    var16 = arg5
    local var17 = var16
    if not var17 then
        var17 = Color3.new(0.3, 0.3, 1)
    end
    setmetatable_result1.BoltColor = var17
    setmetatable_result1.UpVector = arg6 or Vector3.new(0, 1, 0)
    local Part = Instance.new("Part")
    Part.Name = "LightningExplosion"
    Part.Anchored = true
    Part.CanCollide = false
    Part.Locked = true
    Part.CastShadow = false
    Part.Transparency = 1
    Part.Size = Vector3.new(0.05000, 0.05000, 0.05000)
    Part.CFrame = CFrame.lookAt(arg1 + Vector3.new(0, 0.5, 0), arg1 + Vector3.new(0, 0.5, 0) + setmetatable_result1.UpVector) * CFrame.lookAt(Vector3.new(), Vector3.new(0, 1, 0)):inverse()
    Part.Parent = workspace.CurrentCamera
    local Attachment = Instance.new("Attachment")
    Attachment.Parent = Part
    Attachment.CFrame = CFrame.new()
    local clone_3 = script.ExplosionBrightspot:Clone()
    local clone_2 = script.GlareEmitter:Clone()
    local clone = script.PlasmaEmitter:Clone()
    local clamped = math.clamp(setmetatable_result1.Size, 0, 1)
    clone_2.Size = NumberSequence.new(clamped * 30)
    clone.Size = NumberSequence.new(clamped * 18)
    clone.Speed = NumberRange.new(clamped * 100)
    clone_3.Parent = Attachment
    clone_2.Parent = Attachment
    clone.Parent = Attachment
    local Color = setmetatable_result1.Color
    if typeof(Color) == "Color3" then
        clone_2.Color = ColorSequence.new(Color)
        clone.Color = ColorSequence.new(Color)
        local Color3_toHSV_result1, _, Color3_toHSV_result3 = Color3.toHSV(Color)
        clone_3.Color = ColorSequence.new(Color3.fromHSV(Color3_toHSV_result1, 0.5, Color3_toHSV_result3))
    else
        clone_2.Color = Color
        clone.Color = Color
        local Keypoints = Color.Keypoints
        for i = 1, #Keypoints do
            local Color3_toHSV_result1_2, _, Color3_toHSV_result3_2 = Color3.toHSV(Keypoints[i].Value)
            Keypoints[i] = ColorSequenceKeypoint.new(Keypoints[i].Time, Color3.fromHSV(Color3_toHSV_result1_2, 0.5, Color3_toHSV_result3_2))
            local var32
        end
        clone_3.Color = ColorSequence.new(var32)
    end
    clone_3.Enabled = true
    clone_2.Enabled = true
    clone.Enabled = true
    local tbl = {}
    i = 1
    for _ = i, setmetatable_result1.NumBolts do
        local tbl_3 = {}
        local tbl_2 = {}
        tbl_3.WorldPosition = Attachment.WorldPosition
        tbl_3.WorldAxis = RandomVectorOffsetBetween(setmetatable_result1.UpVector, 1.1344640137963142, 1.3962634015954636)
        tbl_2.WorldPosition = Attachment.WorldPosition + tbl_3.WorldAxis * random_state_upvr:NextNumber(20, 40) * 1.4 * clamped
        tbl_2.WorldAxis = RandomVectorOffsetBetween(-setmetatable_result1.UpVector, 1.2217304763960306, 1.9198621771937625)
        local any_new_result1_2 = Parent_upvr.new(tbl_3, tbl_2, 10)
        any_new_result1_2.AnimationSpeed = 0
        any_new_result1_2.Color = setmetatable_result1.BoltColor
        any_new_result1_2.PulseLength = 0.8
        any_new_result1_2.ColorOffsetSpeed = 20
        any_new_result1_2.Frequency = 3
        any_new_result1_2.MinRadius = 0
        any_new_result1_2.MaxRadius = clamped * 4
        any_new_result1_2.FadeLength = 0.4
        any_new_result1_2.PulseSpeed = 5
        any_new_result1_2.MinThicknessMultiplier = 0.7
        any_new_result1_2.MaxThicknessMultiplier = 1
        local any_new_result1 = LightningSparks_upvr.new(any_new_result1_2)
        any_new_result1.MinDistance = 7.5
        any_new_result1.MaxDistance = 10
        any_new_result1_2.Velocity = (tbl_2.WorldPosition - tbl_3.WorldPosition).Unit * 0.1 * clamped
        tbl[#tbl + 1] = any_new_result1_2
        local var38
    end
    setmetatable_result1.Bolts = tbl
    setmetatable_result1.Attachment = var38
    setmetatable_result1.Part = Part
    setmetatable_result1.StartT = clock_upvr()
    setmetatable_result1.RefIndex = #tbl_upvr + 1
    tbl_upvr[setmetatable_result1.RefIndex] = setmetatable_result1
    return setmetatable_result1
end
function module_upvr.Destroy(arg1) -- Line 122
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    tbl_upvr[arg1.RefIndex] = nil
    arg1.Part:Destroy()
    for i_3 = 1, #arg1.Bolts do
        arg1.Bolts[i_3] = nil
    end
end
game:GetService("RunService").Heartbeat:Connect(function() -- Line 133
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: clock_upvr (readonly)
    ]]
    for _, v in pairs(tbl_upvr) do
        local var47 = clock_upvr() - v.StartT
        local Attachment_2 = v.Attachment
        if var47 < 0.7 then
            if 0.2 < var47 then
                Attachment_2.ExplosionBrightspot.Enabled = false
                Attachment_2.GlareEmitter.Enabled = false
                Attachment_2.PlasmaEmitter.Enabled = false
            end
            for i_5 = 1, #v.Bolts do
                local var49 = v.Bolts[i_5]
                var49.Attachment1.WorldPosition = var49.Attachment1.WorldPosition + var49.Velocity
            end
        else
            v:Destroy()
        end
    end
end)
return module_upvr
ModuleScript Trajectory ReplicatedStorage.engine.classes.Trajectory
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:25
-- Luau version 6, Types version 3
-- Time taken: 0.013310 seconds

local Beam_upvr = Instance.new("Beam")
Beam_upvr.Color = ColorSequence.new(Color3.new(1, 0, 0))
Beam_upvr.Transparency = NumberSequence.new(0)
Beam_upvr.FaceCamera = true
Beam_upvr.Segments = 20
Beam_upvr.Width0 = 0.1
Beam_upvr.Width1 = 0.1
local module_upvr_2 = {}
module_upvr_2.__index = module_upvr_2
local function _(arg1, arg2) -- Line 20, Named "reflect"
    return -2 * arg1:Dot(arg2) * arg2 + arg1
end
local Terrain_upvr = game.Workspace.Terrain
local function drawBeamProjectile_upvr(arg1, arg2, arg3, arg4) -- Line 24, Named "drawBeamProjectile"
    --[[ Upvalues[2]:
        [1]: Beam_upvr (readonly)
        [2]: Terrain_upvr (readonly)
    ]]
    local var4 = 0.5 * arg1 * arg4 * arg4 + arg2 * arg4 + arg3
    local var5 = var4 - (arg1 * arg4 * arg4 + arg2 * arg4) / 3
    local var6 = (0.125 * arg1 * arg4 * arg4 + 0.5 * arg2 * arg4 + arg3 - 0.125 * (arg3 + var4)) / 0.375 - var5
    local unit_8 = (arg3 - var4).unit
    local unit_6 = (var6 - arg3).unit
    local unit_5 = unit_6:Cross(unit_8).unit
    local unit = (var5 - var4).unit
    local unit_7 = unit_5:Cross(unit_6).unit
    local Attachment_2 = Instance.new("Attachment")
    local Attachment = Instance.new("Attachment")
    local clone = Beam_upvr:Clone()
    Attachment_2.CFrame = CFrame.fromMatrix(arg3, unit_6, unit_5, unit_7)
    Attachment_2.Parent = Terrain_upvr
    Attachment.CFrame = CFrame.fromMatrix(var4, unit, unit:Cross(unit_8).unit, unit_7)
    Attachment.Parent = Terrain_upvr
    clone.Attachment0 = Attachment_2
    clone.Attachment1 = Attachment
    clone.CurveSize0 = (var6 - arg3).Magnitude
    clone.CurveSize1 = -(var5 - var4).Magnitude
    clone.Parent = Terrain_upvr
end
local function getEndingPosition_upvr(arg1, arg2, arg3, arg4) -- Line 59, Named "getEndingPosition"
    local var15 = 0.5 * arg1 * arg4 * arg4 + arg2 * arg4 + arg3
    local var16 = var15 - (arg1 * arg4 * arg4 + arg2 * arg4) / 3
    local unit_2 = (arg3 - var15).unit
    local unit_3 = ((0.125 * arg1 * arg4 * arg4 + 0.5 * arg2 * arg4 + arg3 - 0.125 * (arg3 + var15)) / 0.375 - var16 - arg3).unit
    local unit_4 = (var16 - var15).unit
    return CFrame.fromMatrix(var15, unit_4, unit_4:Cross(unit_2).unit, unit_3:Cross(unit_2).unit:Cross(unit_3).unit)
end
function module_upvr_2.new(arg1) -- Line 83
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr_2)
    setmetatable_result1.Gravity = arg1
    setmetatable_result1.TimeStep = 0.1
    setmetatable_result1.MaxTime = 5
    setmetatable_result1.MinSpeed = 15
    setmetatable_result1.MaxBounce = 5
    return setmetatable_result1
end
function module_upvr_2.Velocity(arg1, arg2, arg3) -- Line 97
    return arg1.Gravity * arg3 + arg2
end
function module_upvr_2.Position(arg1, arg2, arg3, arg4) -- Line 102
    return 0.5 * arg1.Gravity * arg4 * arg4 + arg3 * arg4 + arg2
end
function module_upvr_2.PlaneQuadraticIntersection(arg1, arg2, arg3, arg4, arg5) -- Line 107
    local any_Dot_result1_3 = 0.5 * arg1.Gravity:Dot(arg5)
    local any_Dot_result1_2 = arg3:Dot(arg5)
    local any_Dot_result1 = arg2 - arg4:Dot(arg5)
    if any_Dot_result1_3 ~= 0 then
        return (-any_Dot_result1_2 - math.sqrt(any_Dot_result1_2 * any_Dot_result1_2 - 4 * any_Dot_result1_3 * any_Dot_result1)) / (2 * any_Dot_result1_3)
    end
    return -any_Dot_result1 / any_Dot_result1_2
end
function module_upvr_2.CalculateSingle(arg1, arg2, arg3, arg4) -- Line 120
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local const_number = 0
    local var28
    repeat
        local any_Position_result1 = arg1:Position(arg2, arg3, const_number)
        local any_FindPartOnRayWithIgnoreList_result1, any_FindPartOnRayWithIgnoreList_result2, any_FindPartOnRayWithIgnoreList_result3, any_FindPartOnRayWithIgnoreList_result4 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(any_Position_result1, arg1:Position(arg2, arg3, const_number + arg1.TimeStep) - any_Position_result1), arg4, false, true)
        var28 = any_FindPartOnRayWithIgnoreList_result1
        local var34 = any_FindPartOnRayWithIgnoreList_result3
    until var28 and arg1.MaxTime <= const_number + arg1.TimeStep
    if var28 then
        return arg1:PlaneQuadraticIntersection(arg2, arg3, any_FindPartOnRayWithIgnoreList_result2, var34), var34, PhysicalProperties.new(any_FindPartOnRayWithIgnoreList_result4)
    end
end
function module_upvr_2.Cast(arg1, arg2, arg3, arg4, arg5) -- Line 140
    local _ = PhysicalProperties.new(arg4)
    while arg1.MinSpeed * arg1.MinSpeed <= arg3:Dot(arg3) and 0 <= arg1.MaxBounce do
        local any_CalculateSingle_result1, any_CalculateSingle_result2, any_CalculateSingle_result3 = arg1:CalculateSingle(arg2, arg3, arg5)
        local var40 = any_CalculateSingle_result1
        local _ = any_CalculateSingle_result3
        if var40 then
            local tbl = {}
            tbl[1] = arg2
            tbl[2] = arg3
            tbl[3] = var40
            table.insert({}, tbl)
            local any_Velocity_result1 = arg1:Velocity(arg3, var40)
            local _ = any_CalculateSingle_result2
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        else
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
local module_upvr = require(script:WaitForChild("Timer"))
function module_upvr_2.Travel(arg1, arg2, arg3) -- Line 167
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var49 = 0
    local any_new_result1_upvr = module_upvr.new(0)
    local unpack_result1_3, unpack_result2_2, _ = unpack(arg3[1])
    arg2.CFrame = CFrame.new(unpack_result1_3, unpack_result1_3 + unpack_result2_2)
    for i = 1, #arg3 do
        local _, unpack_result2_4_upvr, unpack_result3_3 = unpack(arg3[i])
        any_new_result1_upvr:FireOnTimeReached(var49, function(arg1_2) -- Line 176
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: unpack_result2_4_upvr (readonly)
            ]]
            arg2.Velocity = unpack_result2_4_upvr
        end)
        var49 += unpack_result3_3
    end
    any_new_result1_upvr:FireOnTimeReached(var49, function(arg1_3) -- Line 182
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvr (readonly)
        ]]
        any_new_result1_upvr:Destroy()
    end)
    any_new_result1_upvr:SetActive(true)
end
function module_upvr_2.Draw(arg1, arg2) -- Line 189
    --[[ Upvalues[1]:
        [1]: drawBeamProjectile_upvr (readonly)
    ]]
    for i_2 = 1, #arg2 do
        local unpack_result1_2, unpack_result2_3, unpack_result3 = unpack(arg2[i_2])
        drawBeamProjectile_upvr(arg1.Gravity, unpack_result2_3, unpack_result1_2, unpack_result3)
    end
end
function module_upvr_2.Predict(arg1, arg2) -- Line 196
    --[[ Upvalues[1]:
        [1]: getEndingPosition_upvr (readonly)
    ]]
    if arg2[1] then
        local unpack_result1, unpack_result2, unpack_result3_2 = unpack(arg2[1])
        return getEndingPosition_upvr(arg1.Gravity, unpack_result2, unpack_result1, unpack_result3_2)
    end
    return nil
end
return module_upvr_2
ModuleScript Timer ReplicatedStorage.engine.classes.Trajectory.Timer
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:27
-- Luau version 6, Types version 3
-- Time taken: 0.002704 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local RunService_upvr = game:GetService("RunService")
function module_upvr.new(arg1) -- Line 10
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: RunService_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr.Active = false
    setmetatable_result1_upvr.StartTime = arg1
    setmetatable_result1_upvr.Time = arg1
    setmetatable_result1_upvr.Events = {}
    setmetatable_result1_upvr.TimerEvent = RunService_upvr.RenderStepped:Connect(function(arg1_2) -- Line 18
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        if setmetatable_result1_upvr.Active then
            setmetatable_result1_upvr.Time += arg1_2
            local Events = setmetatable_result1_upvr.Events
            for i = #Events, 1, -1 do
                if Events[i][1] <= setmetatable_result1_upvr.Time then
                    Events[i][2](setmetatable_result1_upvr.Time)
                    table.remove(Events, i)
                end
            end
        end
    end)
    return setmetatable_result1_upvr
end
function module_upvr.SetActive(arg1, arg2) -- Line 37
    arg1.Active = arg2
end
function module_upvr.FireOnTimeReached(arg1, arg2, arg3) -- Line 41
    local tbl = {}
    tbl[1] = arg2
    tbl[2] = arg3
    table.insert(arg1.Events, tbl)
end
function module_upvr.Destroy(arg1) -- Line 45
    arg1.TimerEvent:Disconnect()
end
return module_upvr
ModuleScript Freekick ReplicatedStorage.engine.classes.Freekick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:30
-- Luau version 6, Types version 3
-- Time taken: 0.001132 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Freekick.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:31
-- Luau version 6, Types version 3
-- Time taken: 0.023270 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 30 start (CF ANALYSIS FAILED)
    assert(arg1, "Freekick.server | dataModel 'player' expected, got "..typeof(arg1))
    local Character = arg1.Character
    if not Character then
        Character = arg1.CharacterAdded:Wait()
    end
    if arg2 then
        local clamped_2 = math.clamp(arg2.X, workspace.game.points.bounds.right.Position.X, workspace.game.points.bounds.left.Position.X)
        local clamped = math.clamp(arg2.Z, workspace.game.points.bounds.home.Position.Z, workspace.game.points.bounds.away.Position.Z)
    end
    local clone = _G._references.Main["set pieces"]["Free Kick"]:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Ball.Transparency = 1
    if arg1.TeamColor == BrickColor.new("Storm blue") or arg1.TeamColor == BrickColor.new("Navy blue") then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(clamped_2, clone.Primary.Position.Y, clamped), Vector3.new(workspace.game.points.bounds.away.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.away.Position.Z)))
        clone.Team.Value = "away"
        -- KONSTANTWARNING: GOTO [500] #286
    end
    -- KONSTANTERROR: [0] 1. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [293] 167. Error Block 26 start (CF ANALYSIS FAILED)
    if arg1.TeamColor == BrickColor.new("Crimson") or arg1.TeamColor == BrickColor.new("Maroon") then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(clamped_2, clone.Primary.Position.Y, clamped), Vector3.new(workspace.game.points.bounds.home.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.home.Position.Z)))
        clone.Team.Value = "home"
    elseif clamped <= 0 then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(clamped_2, clone.Primary.Position.Y, clamped), Vector3.new(workspace.game.points.bounds.home.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.home.Position.Z)))
        clone.Team.Value = "home"
    else
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(clamped_2, clone.Primary.Position.Y, clamped), Vector3.new(workspace.game.points.bounds.away.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.away.Position.Z)))
        clone.Team.Value = "away"
    end
    -- KONSTANTERROR: [293] 167. Error Block 26 end (CF ANALYSIS FAILED)
end
function module_upvr.init(arg1) -- Line 48
    assert(arg1._model, "Freekick.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Freekick.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local var18
    if arg1._player.TeamColor == BrickColor.new("Storm blue") or arg1._player.TeamColor == BrickColor.new("Navy blue") then
        var18 = (arg1._model.Primary.Position * Vector3.new(1, 0, 1) - workspace.game.points.bounds.away.Position * Vector3.new(1, 0, 1)).Magnitude
    elseif arg1._player.TeamColor == BrickColor.new("Crimson") or arg1._player.TeamColor == BrickColor.new("Maroon") then
        var18 = (arg1._model.Primary.Position * Vector3.new(1, 0, 1) - workspace.game.points.bounds.home.Position * Vector3.new(1, 0, 1)).Magnitude
    end
    var18 /= 6.8
    if not _G._services.RunService:IsStudio() and arg1._model:FindFirstChild("Wall") then
        arg1._model.Wall:Destroy()
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        for _, v in next, arg1._model.VanishingSpray.Wall:GetChildren() do
            if v and v:IsA("BasePart") then
                v.Transparency = 1
            end
        end
        return 35 <= var18
    end
    if 35 <= var18 or _G._services.RunService:IsStudio() or INLINED() and arg1._model:FindFirstChild("Wall") then
        arg1._model.Wall:Destroy()
    end
    arg1:initConnections()
    arg1._character.Archivable = false
    local BoolValue_3 = Instance.new("BoolValue", arg1._player)
    BoolValue_3.Name = "Teleport"
    BoolValue_3.Value = true
    _G._services.Debris:AddItem(BoolValue_3, 3)
    if arg1._profile.settings.Visual["Strong Foot"].Value == "Right" then
        arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    else
        arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    end
    if _G._references.Main.config.AutoRall.Value then
        for _, v_2 in next, workspace.game.balls.spawns:GetChildren() do
            if v_2 then
                v_2:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Ball.CFrame
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = script.Parent.Parent.Name
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config["Set Pieces"]
    for _, v_3 in next, _G._references.Main.config.Override:GetChildren() do
        if v_3 and v_3.Name == "Break" then
            v_3:Destroy()
        end
    end
    arg1._maid:GiveTask(BoolValue)
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "freeKick", arg1._model, CFrameValue)
end
function module_upvr.initConnections(arg1) -- Line 148
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent_2 = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent_2.Name = "Clear"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Animation"
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "default")
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 160
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent_2.OnServerEvent:Connect(function(arg1_2) -- Line 164
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onAnimationRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_3, arg2) -- Line 176
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var40
        if arg1_3 == arg1._player then
            var40 = arg1_3.Character
            var40 = arg2
            local any_LoadAnimation_result1_2 = var40.Humanoid.Animator:LoadAnimation(var40)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
            var40 = true
            arg1._animation = var40
            local function INLINED_3() -- Internal function, doesn't exist in bytecode
                var40 = any_LoadAnimation_result1_2.Length - 0.6
                return var40
            end
            if 0.1 > any_LoadAnimation_result1_2.Length or not INLINED_3() then
                var40 = 3.85
            end
            task.wait(var40)
            if arg1_3 and arg1_3.Character then
                var40 = arg1._maid
                if var40._onAnimationRemoteEvent then
                    var40 = "BoolValue"
                    local any = Instance.new(var40, arg1._player)
                    var40 = "Teleport"
                    any.Name = var40
                    var40 = true
                    any.Value = var40
                    var40 = _G._services.Debris:AddItem
                    var40(any, 3)
                    var40 = any_LoadAnimation_result1_2:AdjustSpeed
                    var40(0)
                    var40 = arg1_3.Character:SetPrimaryPartCFrame
                    var40(arg1_3.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                    var40 = any_LoadAnimation_result1_2:Stop
                    var40(0)
                    var40 = arg1
                    var40._animation = nil
                end
            end
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 199
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_4) -- Line 203
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_4 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_5) -- Line 209
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5.Parent and arg1_5.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_5:FindFirstAncestor("manager") and not arg1_5:FindFirstAncestor("referee") and arg1_5.Parent ~= arg1._character and not arg1._touch[arg1_5.Parent.Name] then
            arg1._touch[arg1_5.Parent.Name] = true
            if _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent) then
                local BoolValue_2 = Instance.new("BoolValue", _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent))
                BoolValue_2.Name = "Teleport"
                BoolValue_2.Value = true
                _G._services.Debris:AddItem(BoolValue_2, 3)
            end
            arg1_5.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
            task.delay(0.5, function() -- Line 222
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_5 (readonly)
                ]]
                arg1._touch[arg1_5.Parent.Name] = false
            end)
        end
    end
    for _, v_4 in next, arg1._model.Area:GetChildren() do
        if v_4 and v_4:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_4.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_4.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent_2)
    arg1._maid:GiveTask(RemoteEvent)
end
function module_upvr.clear(arg1) -- Line 245
    if arg1._character and arg1._character:FindFirstChild("HumanoidRootPart") then
        arg1._character.HumanoidRootPart.Anchored = false
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
    end
    for _, v_5 in next, _G._references.Main.config.Override:GetChildren() do
        if v_5 and (v_5.Name == "DisableFouls" or v_5.Name == "RTP") then
            v_5:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_upvr
ModuleScript client ReplicatedStorage.engine.classes.Freekick.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:33
-- Luau version 6, Types version 3
-- Time taken: 0.077860 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    assert(arg1, "Freekick.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Freekick.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._formatNumber = _G._engine:load("FormatNumber", "utils")
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 126 start (CF ANALYSIS FAILED)
    local Magnitude = (arg1._model.Primary.Position * Vector3.new(1, 0, 1) - workspace.game.points.bounds[arg1._model.Team.Value].Position * Vector3.new(1, 0, 1)).Magnitude
    if arg1._player.TeamColor == BrickColor.new("Storm blue") or arg1._player.TeamColor == BrickColor.new("Navy blue") then
        Magnitude = (arg1._model.Primary.Position * Vector3.new(1, 0, 1) - workspace.game.points.bounds.away.Position * Vector3.new(1, 0, 1)).Magnitude
    elseif arg1._player.TeamColor == BrickColor.new("Crimson") or arg1._player.TeamColor == BrickColor.new("Maroon") then
        Magnitude = (arg1._model.Primary.Position * Vector3.new(1, 0, 1) - workspace.game.points.bounds.home.Position * Vector3.new(1, 0, 1)).Magnitude
    end
    local var56_upvw = Magnitude / 6.8
    local NumberValue_upvr_3 = Instance.new("NumberValue")
    NumberValue_upvr_3.Parent = arg1._model
    NumberValue_upvr_3.Value = 0
    arg1._maid:GiveTask(NumberValue_upvr_3)
    local tbl_upvr = {}
    for _, v in next, arg1._model.Overlay:GetChildren() do
        if v and v:FindFirstChildWhichIsA("BillboardGui") then
            local class_BillboardGui = v:FindFirstChildWhichIsA("BillboardGui")
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v
            tbl_upvr['_'..string.lower(v.Name)] = class_BillboardGui
        end
    end
    tbl_upvr._ball.Enabled = true
    tbl_upvr._power.Enabled = true
    tbl_upvr._take.Enabled = true
    tbl_upvr._controls.Enabled = true
    if _G._services.UserInputService.TouchEnabled then
        tbl_upvr._take.Main.Container.Bind.Bind.Text = "[TAP]"
        for i_2, v_2 in next, tbl_upvr._controls.Main.Container.Container:GetChildren() do
            if v_2 and v_2:IsA("Frame") then
                v_2.Bind.Text = "[TAP]"
            end
        end
    else
        i_2 = _G
        if i_2._services.UserInputService.GamepadEnabled then
            v_2 = tbl_upvr._take
            i_2 = v_2.Main
            i_2.Container.Bind.Bind.Text = "[B]"
            v_2 = tbl_upvr._controls.Main
            i_2 = v_2.Container
            i_2.Container["Inside Foot Curled"].Bind.Text = "[LT]"
            v_2 = tbl_upvr._controls.Main
            i_2 = v_2.Container
            i_2.Container["Outside Foot Curled"].Bind.Text = "[RT]"
            v_2 = tbl_upvr._controls.Main
            i_2 = v_2.Container
            i_2.Container["No Curl"].Bind.Text = "[LB]"
            v_2 = tbl_upvr._controls.Main
            i_2 = v_2.Container
            i_2.Container.Knuckle.Bind.Text = "[RB]"
        end
    end
    if arg1._model.Team.Value == "home" and arg1._model.Primary.Position.Z <= 0 then
        tbl_upvr._distance.Enabled = true
    elseif arg1._model.Team.Value == "away" and 0 <= arg1._model.Primary.Position.Z then
        tbl_upvr._distance.Enabled = true
    end
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = false
    end
    arg1._maid._tweenChanged = NumberValue_upvr_3.Changed:Connect(function() -- Line 94
        --[[ Upvalues[3]:
            [1]: tbl_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: NumberValue_upvr_3 (readonly)
        ]]
        tbl_upvr._distance.Main.Container.Distance.Text = tostring(arg1._formatNumber.FormatDecimal(NumberValue_upvr_3.Value, 0))
    end)
    for _, v_3 in next, {"_distance", "_take", "_power", "_controls"} do
        tbl_upvr[v_3].Size = UDim2.new(0, 0, 0, tbl_upvr[v_3].Size.Y.Offset)
        _G._services.TweenService:Create(tbl_upvr[v_3], TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, tbl_upvr[v_3].Size.X.Offset, 0, tbl_upvr[v_3].Size.Y.Offset);
        }):Play()
        local var67_upvr
    end
    task.delay(1, function() -- Line 104
        --[[ Upvalues[2]:
            [1]: NumberValue_upvr_3 (readonly)
            [2]: var56_upvw (read and write)
        ]]
        _G._services.TweenService:Create(NumberValue_upvr_3, TweenInfo.new(2.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Value = var56_upvw;
        }):Play()
    end)
    task.delay(7, function() -- Line 108
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var67_upvr (readonly)
        ]]
        if arg1._model and arg1._model.Parent then
            _G._references.Main.sounds.UI.Glitch:Play()
            task.spawn(function() -- Line 112
                --[[ Upvalues[2]:
                    [1]: var67_upvr (copied, readonly)
                    [2]: arg1 (copied, readonly)
                ]]
                var67_upvr._distance.Main.Container.Background.Visible = false
                task.wait(0.12)
                if not arg1._model or not arg1._model.Parent then
                else
                    var67_upvr._distance.Main.Container.Background.Visible = true
                    task.wait(0.15)
                    if not arg1._model or not arg1._model.Parent then return end
                    var67_upvr._distance.Main.Container.Background.Visible = false
                end
            end)
            task.spawn(function() -- Line 130
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: var67_upvr (copied, readonly)
                ]]
                task.wait(0.05)
                if not arg1._model or not arg1._model.Parent then
                else
                    var67_upvr._distance.Main.Container.Label.Visible = false
                    task.wait(0.08)
                    if not arg1._model or not arg1._model.Parent then return end
                    var67_upvr._distance.Main.Container.Label.Visible = true
                    task.wait(0.06)
                    if not arg1._model or not arg1._model.Parent then return end
                    var67_upvr._distance.Main.Container.Label.Visible = false
                end
            end)
            task.spawn(function() -- Line 153
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: var67_upvr (copied, readonly)
                ]]
                task.wait(0.04)
                if not arg1._model or not arg1._model.Parent then
                else
                    var67_upvr._distance.Main.Container.Distance.Visible = false
                    var67_upvr._distance.Main.Container.Unit.Visible = false
                    task.wait(0.09)
                    if not arg1._model or not arg1._model.Parent then return end
                    var67_upvr._distance.Main.Container.Distance.Visible = true
                    var67_upvr._distance.Main.Container.Unit.Visible = true
                    task.wait(0.07)
                    if not arg1._model or not arg1._model.Parent then return end
                    var67_upvr._distance.Main.Container.Distance.Visible = false
                    var67_upvr._distance.Main.Container.Unit.Visible = false
                end
            end)
        end
    end)
    arg1._model.Arrow.Beam.Enabled = true
    arg1._player.PlayerGui.main.mobile.Visible = false
    arg1._player.PlayerGui.main.backpack.Visible = false
    arg1._player.PlayerGui.main.gamepad.Visible = false
    for _, v_4 in next, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_4 and v_4:IsA("Frame") then
            v_4.Visible = false
        end
    end
    if _G._references.Profile.settings.Visual["Strong Foot"].Value == "Right" then
        -- KONSTANTWARNING: GOTO [592] #361
    end
    local var76_upvr = 'L'
    local tbl_upvr_2 = {
        _idle = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"]["Free Kick"][var76_upvr].Idle);
        _kick = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"]["Free Kick"][var76_upvr].Kick);
    }
    tbl_upvr_2._idle.Priority = Enum.AnimationPriority.Action3
    tbl_upvr_2._idle.Looped = true
    tbl_upvr_2._idle:Play()
    tbl_upvr_2._kick.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 210
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 216
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var80_upvw = false
    local CFrame_upvw = arg1._model.Camera.CFrame
    if 30 <= var56_upvw and _G._services.UserInputService.TouchEnabled then
        workspace.CurrentCamera.FieldOfView = 60
        local Take = arg1._model.Overlay.Take
        Take.CFrame *= CFrame.new(0, -3, 0)
        local Power_3 = arg1._model.Overlay.Power
        Power_3.CFrame *= CFrame.new(0, -3, 0)
        local Camera = arg1._model.Camera
        Camera.CFrame *= CFrame.new(0, 5, 0) * CFrame.fromEulerAnglesXYZ(-0.14835298641951802, 0, 0)
        -- KONSTANTWARNING: GOTO [937] #575
    end
    if 30 <= var56_upvw and not _G._services.UserInputService.TouchEnabled then
        workspace.CurrentCamera.FieldOfView = 60
        local Take_2 = arg1._model.Overlay.Take
        Take_2.CFrame *= CFrame.new(0, -3, 0)
        local Power = arg1._model.Overlay.Power
        Power.CFrame *= CFrame.new(0, -3, 0)
        local Camera_2 = arg1._model.Camera
        Camera_2.CFrame *= CFrame.new(0, 5, 0) * CFrame.fromEulerAnglesXYZ(-0.14835298641951802, 0, 0)
        -- KONSTANTWARNING: GOTO [937] #575
    end
    -- KONSTANTERROR: [0] 1. Error Block 126 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [864] 530. Error Block 122 start (CF ANALYSIS FAILED)
    if var56_upvw < 30 and _G._services.UserInputService.TouchEnabled then
        local Take_3 = arg1._model.Overlay.Take
        Take_3.CFrame *= CFrame.new(0, -2, 0)
        local Power_2 = arg1._model.Overlay.Power
        Power_2.CFrame *= CFrame.new(0, -3, 0)
        workspace.CurrentCamera.FieldOfView = 45
    elseif var56_upvw < 30 and not _G._services.UserInputService.TouchEnabled then
        workspace.CurrentCamera.FieldOfView = 45
    end
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 247
        --[[ Upvalues[2]:
            [1]: var80_upvw (read and write)
            [2]: var56_upvw (read and write)
        ]]
        if not var80_upvw and 30 <= var56_upvw then
            workspace.CurrentCamera.FieldOfView = 60
        elseif not var80_upvw and var56_upvw < 30 then
            workspace.CurrentCamera.FieldOfView = 45
        end
    end)
    local tbl_upvr_3 = {
        minDistance = 1.25;
        power = 60;
        minPower = 60;
        maxPower = 120;
        increaseRate = 0.3;
        chargeTime = 1;
        x = 0;
        y = 0;
        composure = {
            pressed = false;
            composed = false;
        };
        mode = "Inside Foot Curled";
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            x = {
                right = 30;
                left = -30;
            };
            y = {
                up = 3;
                down = -4;
            };
        };
        directions = {
            up = false;
            down = false;
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(var67_upvr._power.Main.Container.Power, TweenInfo.new(tbl_upvr_3.chargeTime, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = UDim2.new(1, 0, 1, 0);
    })
    for _, v_5 in next, arg1._model.Overlay:GetChildren() do
        if v_5 and v_5:IsA("BasePart") then
            ({})['_'..string.lower(v_5.Name)] = arg1._model.Camera.CFrame:ToObjectSpace(v_5.CFrame)
        end
    end
    local NumberValue_upvr_2 = Instance.new("NumberValue")
    NumberValue_upvr_2.Name = 'Y'
    NumberValue_upvr_2.Value = 0
    arg1._maid:GiveTask(NumberValue_upvr_2)
    arg1._character.Humanoid:UnequipTools()
    local function release_upvr() -- Line 319, Named "release"
        --[[ Upvalues[9]:
            [1]: var80_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: any_Create_result1_upvr (readonly)
            [5]: tbl_upvr_3 (readonly)
            [6]: var67_upvr (readonly)
            [7]: var76_upvr (readonly)
            [8]: CFrame_upvw (read and write)
            [9]: tbl_upvr_2 (readonly)
        ]]
        var80_upvw = true
        arg1._states._charging = false
        arg1._states._released = true
        any_new_result1_upvr:DoCleaning()
        any_Create_result1_upvr:Pause()
        tbl_upvr_3.power = tbl_upvr_3.minPower + (tbl_upvr_3.maxPower - tbl_upvr_3.minPower) * var67_upvr._power.Main.Container.Power.Size.X.Scale
        arg1._model.Animation:FireServer(_G._references.Main.animations["Set Piece"]["Free Kick"][var76_upvr].Kick)
        task.wait(arg1._player:GetNetworkPing())
        var67_upvr._composure.Enabled = true
        var67_upvr._composure.Size = UDim2.new(0, var67_upvr._composure.Size.X.Offset, 0, 0)
        _G._services.TweenService:Create(var67_upvr._composure, TweenInfo.new(0.1, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, var67_upvr._composure.Size.X.Offset, 0, var67_upvr._composure.Size.Y.Offset);
        }):Play()
        _G._services.TweenService:Create(var67_upvr._ball, TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(var67_upvr._ball.Size.X.Scale, 0, 0, 0);
        }):Play()
        task.spawn(function() -- Line 340
            --[[ Upvalues[1]:
                [1]: arg1 (copied, readonly)
            ]]
            local NumberValue_upvr = Instance.new("NumberValue", arg1._model)
            NumberValue_upvr.Value = 0
            local any_Connect_result1 = _G._services.RunService.RenderStepped:Connect(function() -- Line 344
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: NumberValue_upvr (readonly)
                ]]
                arg1._model.Arrow.Beam.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, NumberValue_upvr.Value), NumberSequenceKeypoint.new(1, 1)})
            end)
            _G._services.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Value = 1;
            }):Play()
            task.wait(0.5)
            if any_Connect_result1 then
                any_Connect_result1:Disconnect()
            end
            if NumberValue_upvr and NumberValue_upvr.Parent and NumberValue_upvr.Parent.Parent then
                NumberValue_upvr:Destroy()
            end
        end)
        local any_Create_result1_upvw = _G._services.TweenService:Create(var67_upvr._composure.Main.Container.Composure, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
            Size = UDim2.new(1, 4, 0.1, 0);
        })
        any_Create_result1_upvw:Play()
        local var121
        if workspace.CurrentCamera.FieldOfView == 60 then
            var121 = _G._services
            var121.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = 50;
            }):Play()
        else
            var121 = _G._services
            var121.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = 35;
            }):Play()
        end
        var121 = {}
        var121[1] = "_controls"
        var121[2] = "_take"
        for _, v_6 in next, var121 do
            _G._services.TweenService:Create(var67_upvr[v_6], TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Size = UDim2.new(0, 0, 0, var67_upvr[v_6].Size.Y.Offset);
            }):Play()
        end
        function var121() -- Line 376
            --[[ Upvalues[4]:
                [1]: tbl_upvr_3 (copied, readonly)
                [2]: arg1 (copied, readonly)
                [3]: any_Create_result1_upvw (read and write)
                [4]: var67_upvr (copied, readonly)
            ]]
            while true do
                task.wait(0.2)
                if tbl_upvr_3.composure.pressed then break end
                if not arg1._model then break end
                if not arg1._model.Parent then break end
                any_Create_result1_upvw = _G._services.TweenService:Create(var67_upvr._composure.Main.Container.Composure, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(1, 4, 1, 0);
                })
                any_Create_result1_upvw:Play()
                task.wait(0.2)
                if tbl_upvr_3.composure.pressed then break end
                if not arg1._model then break end
                if not arg1._model.Parent then break end
                any_Create_result1_upvw = _G._services.TweenService:Create(var67_upvr._composure.Main.Container.Composure, TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(1, 4, 0.1, 0);
                })
                any_Create_result1_upvw:Play()
            end
        end
        task.spawn(var121)
        var121 = _G._services.UserInputService.InputBegan
        var121 = var121:Connect(function(arg1_2, arg2) -- Line 396
            --[[ Upvalues[3]:
                [1]: tbl_upvr_3 (copied, readonly)
                [2]: any_Create_result1_upvw (read and write)
                [3]: var67_upvr (copied, readonly)
            ]]
            if arg1_2.KeyCode == Enum.KeyCode.Space or arg1_2.UserInputType == Enum.UserInputType.Touch or arg1_2.KeyCode == Enum.KeyCode.ButtonA or not tbl_upvr_3.composure.pressed then
                any_Create_result1_upvw:Pause()
                tbl_upvr_3.composure.pressed = true
                if var67_upvr._composure.Main.Container.Composure.Size.Y.Scale <= 0.3 then
                    tbl_upvr_3.composure.composed = true
                    return
                end
                tbl_upvr_3.composure.composed = false
            end
        end)
        any_new_result1_upvr._inputBegan = var121
        var121 = _G._services.RunService.RenderStepped
        var121 = var121:Connect(function() -- Line 409
            --[[ Upvalues[6]:
                [1]: var67_upvr (copied, readonly)
                [2]: arg1 (copied, readonly)
                [3]: var76_upvr (copied, readonly)
                [4]: tbl_upvr_3 (copied, readonly)
                [5]: any_new_result1_upvr (copied, readonly)
                [6]: CFrame_upvw (copied, read and write)
            ]]
            if var67_upvr._composure.Main.Container.Composure.Size.Y.Scale <= 0.2 then
                var67_upvr._composure.Main.Container.Composure.Top.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
                var67_upvr._composure.Main.Container.Composure.Bottom.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
            else
                var67_upvr._composure.Main.Container.Composure.Top.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
                var67_upvr._composure.Main.Container.Composure.Bottom.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
            end
            if arg1._model and arg1._model:FindFirstChild("Ball") then
                local var126
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var126 = tbl_upvr_3.minDistance
                    var126 = arg1._model.Ball.Position - arg1._character.RightLowerLeg.Position
                    return var126.Magnitude <= var126
                end
                local function INLINED_2() -- Internal function, doesn't exist in bytecode
                    var126 = tbl_upvr_3.minDistance
                    var126 = arg1._model.Ball.Position - arg1._character.LeftLowerLeg.Position
                    return var126.Magnitude <= var126
                end
                if var76_upvr == 'R' and INLINED() or INLINED_2() then
                    any_new_result1_upvr:DoCleaning()
                    var126 = tbl_upvr_3
                    var126 = true
                    var126.composure.pressed = var126
                    var126 = workspace.CurrentCamera
                    var126 = Vector3.new(0, 0, 0)
                    if tbl_upvr_3.mode == "Knuckle" then
                        local var127 = tbl_upvr_3
                        var127.power *= 1
                    end
                    if not tbl_upvr_3.composure.composed then
                        local randint = math.random(-30, 30)
                        if randint <= 0 then
                            randint = math.clamp(randint, -30, -10)
                        else
                            randint = math.clamp(randint, 10, 30)
                        end
                        var126 = workspace.CurrentCamera.CFrame.RightVector * randint + (workspace.CurrentCamera.CFrame.UpVector) * (randint / 3)
                    end
                    local Folder = Instance.new("Folder")
                    Folder.Name = "react"
                    local ObjectValue = Instance.new("ObjectValue", Folder)
                    ObjectValue.Name = "ball"
                    ObjectValue.Value = arg1._ball
                    local Vector3Value_2 = Instance.new("Vector3Value", Folder)
                    Vector3Value_2.Name = "vector"
                    Vector3Value_2.Value = CFrame_upvw.LookVector * tbl_upvr_3.power + Vector3.new(0, 35, 0) + Vector3.new(0, tbl_upvr_3.y * 7, 0) + var126
                    local Vector3Value = Instance.new("Vector3Value", Folder)
                    Vector3Value.Name = "maxForce"
                    Vector3Value.Value = Vector3.new(10000, 10000, 10000)
                    local BoolValue_2 = Instance.new("BoolValue", Folder)
                    BoolValue_2.Name = "ignoreReactDecline"
                    BoolValue_2.Value = true
                    local BoolValue = Instance.new("BoolValue", Folder)
                    BoolValue.Name = "checkOffside"
                    BoolValue.Value = true
                    local BoolValue_3 = Instance.new("BoolValue", Folder)
                    BoolValue_3.Name = "freeKick"
                    BoolValue_3.Value = true
                    local BoolValue_5 = Instance.new("BoolValue", Folder)
                    BoolValue_5.Name = "curve"
                    BoolValue_5.Value = true
                    local StringValue_2 = Instance.new("StringValue", Folder)
                    StringValue_2.Name = "curveType"
                    if tbl_upvr_3.mode == "Inside Foot Curled" then
                        if var76_upvr == 'R' then
                            StringValue_2.Value = "left"
                        else
                            StringValue_2.Value = "right"
                        end
                    elseif tbl_upvr_3.mode == "Outside Foot Curled" then
                        if var76_upvr == 'R' then
                            StringValue_2.Value = "right"
                        else
                            StringValue_2.Value = "left"
                        end
                    elseif tbl_upvr_3.mode == "Knuckle" then
                        if var76_upvr == 'R' then
                            StringValue_2.Value = "right"
                        else
                            StringValue_2.Value = "left"
                        end
                    elseif tbl_upvr_3.mode == "No Curl" then
                        StringValue_2.Value = "none"
                    end
                    local StringValue = Instance.new("StringValue", Folder)
                    StringValue.Name = "spinType"
                    if tbl_upvr_3.mode == "Knuckle" then
                        StringValue.Value = "knuckle"
                    else
                        StringValue.Value = "topspin"
                    end
                    local BoolValue_4 = Instance.new("BoolValue", Folder)
                    BoolValue_4.Name = "grassEffect"
                    BoolValue_4.Value = true
                    Folder.Parent = arg1._player
                    Folder:SetAttribute("loaded", true)
                end
            end
        end)
        any_new_result1_upvr._renderStepped = var121
        var121 = 0.3
        task.delay(var121, function() -- Line 517
            --[[ Upvalues[1]:
                [1]: tbl_upvr_2 (copied, readonly)
            ]]
            tbl_upvr_2._idle:Stop(0.1)
        end)
        local function INLINED_3() -- Internal function, doesn't exist in bytecode
            var121 = tbl_upvr_2._kick.Length - 0.6
            return var121
        end
        if 0.1 > tbl_upvr_2._kick.Length or not INLINED_3() then
            var121 = 3.85
        end
        task.wait(var121)
        var121 = arg1._character
        var121 = true
        var121.Humanoid.AutoRotate = var121
        var121 = arg1
        if var121._model:FindFirstChild("Clear") then
            var121 = arg1._model
            var121.Clear:FireServer()
        end
        arg1:clear()
    end
    for _, v_7_upvr in next, var67_upvr._controls.Main.Container.Container:GetChildren() do
        if v_7_upvr and v_7_upvr:IsA("Frame") then
            any_new_result1_upvr[v_7_upvr.Name.."_mouseButton1Click"] = v_7_upvr.Button.MouseButton1Click:Connect(function() -- Line 532
                --[[ Upvalues[3]:
                    [1]: tbl_upvr_3 (readonly)
                    [2]: v_7_upvr (readonly)
                    [3]: var67_upvr (readonly)
                ]]
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_3.mode = v_7_upvr.Name
                var67_upvr._take.Main.Container.Label.Text = string.upper(tbl_upvr_3.mode)
            end)
        end
    end
    task.delay(30, function() -- Line 540
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: any_Create_result1_upvr (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: tbl_upvr_3 (readonly)
            [5]: release_upvr (readonly)
        ]]
        if not arg1._states._charging and not arg1._states._released and arg1._model and arg1._model.Parent then
            arg1._states._charging = true
            any_Create_result1_upvr:Play()
            any_new_result1_upvr:DoCleaning()
            task.wait(tbl_upvr_3.chargeTime)
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_3, arg2) -- Line 551
        --[[ Upvalues[4]:
            [1]: tbl_upvr_3 (readonly)
            [2]: var67_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: any_Create_result1_upvr (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.W then
            tbl_upvr_3.directions.up = true
        else
            if arg1_3.KeyCode == Enum.KeyCode.A then
                tbl_upvr_3.directions.left = true
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.S then
                tbl_upvr_3.directions.down = true
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.D then
                tbl_upvr_3.directions.right = true
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.One or arg1_3.KeyCode == Enum.KeyCode.ButtonL2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_3.mode = "Inside Foot Curled"
                var67_upvr._take.Main.Container.Label.Text = string.upper(tbl_upvr_3.mode)
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Two or arg1_3.KeyCode == Enum.KeyCode.ButtonR2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_3.mode = "Outside Foot Curled"
                var67_upvr._take.Main.Container.Label.Text = string.upper(tbl_upvr_3.mode)
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Three or arg1_3.KeyCode == Enum.KeyCode.ButtonL1 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_3.mode = "No Curl"
                var67_upvr._take.Main.Container.Label.Text = string.upper(tbl_upvr_3.mode)
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Four or arg1_3.KeyCode == Enum.KeyCode.ButtonR1 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_3.mode = "Knuckle"
                var67_upvr._take.Main.Container.Label.Text = string.upper(tbl_upvr_3.mode)
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Space or arg1_3.KeyCode == Enum.KeyCode.ButtonB or not arg2 then
                arg1._states._charging = true
                any_Create_result1_upvr:Play()
            end
        end
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_4, arg2) -- Line 582
        --[[ Upvalues[2]:
            [1]: tbl_upvr_3 (readonly)
            [2]: release_upvr (readonly)
        ]]
        if arg1_4.KeyCode == Enum.KeyCode.W then
            tbl_upvr_3.directions.up = false
        else
            if arg1_4.KeyCode == Enum.KeyCode.A then
                tbl_upvr_3.directions.left = false
                return
            end
            if arg1_4.KeyCode == Enum.KeyCode.S then
                tbl_upvr_3.directions.down = false
                return
            end
            if arg1_4.KeyCode == Enum.KeyCode.D then
                tbl_upvr_3.directions.right = false
                return
            end
            if arg1_4.KeyCode == Enum.KeyCode.Space or arg1_4.KeyCode == Enum.KeyCode.ButtonB or not arg2 then
                release_upvr()
            end
        end
    end)
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_5, arg2) -- Line 596
        --[[ Upvalues[1]:
            [1]: tbl_upvr_3 (readonly)
        ]]
        if arg1_5.KeyCode == Enum.KeyCode.Thumbstick1 then
            if 0.7 <= arg1_5.Position.X then
                tbl_upvr_3.directions.right = true
                tbl_upvr_3.directions.left = false
            elseif arg1_5.Position.X <= -0.7 then
                tbl_upvr_3.directions.right = false
                tbl_upvr_3.directions.left = true
            end
            if 0.7 <= arg1_5.Position.Y then
                tbl_upvr_3.directions.up = true
                tbl_upvr_3.directions.down = false
            elseif arg1_5.Position.Y <= -0.7 then
                tbl_upvr_3.directions.up = false
                tbl_upvr_3.directions.down = true
            end
            if arg1_5.Position.X < 0.35 and -0.35 < arg1_5.Position.X and arg1_5.Position.Y < 0.35 and -0.35 < arg1_5.Position.Y then
                tbl_upvr_3.directions.up = false
                tbl_upvr_3.directions.down = false
                tbl_upvr_3.directions.right = false
                tbl_upvr_3.directions.left = false
            end
        end
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseMove = arg1._mouse.Move:Connect(function() -- Line 624
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_3 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position)
                local var150 = any_WorldToViewportPoint_result1.X - tbl_upvr_3.lastMousePosition.X
                local var151 = any_WorldToViewportPoint_result1.Y - tbl_upvr_3.lastMousePosition.Y
                tbl_upvr_3.lastMousePosition = any_WorldToViewportPoint_result1
                if 1 <= var151 then
                    tbl_upvr_3.directions.down = true
                    tbl_upvr_3.directions.up = false
                    return
                end
                if var151 <= -1 then
                    tbl_upvr_3.directions.down = false
                    tbl_upvr_3.directions.up = true
                    return
                end
                if 1 <= var150 then
                    tbl_upvr_3.directions.right = true
                    tbl_upvr_3.directions.left = false
                    return
                end
                if var150 <= -1 then
                    tbl_upvr_3.directions.right = false
                    tbl_upvr_3.directions.left = true
                    return
                end
                if var150 < 1 and -1 < var150 and var151 < 1 and -1 < var151 then
                    tbl_upvr_3.directions.up = false
                    tbl_upvr_3.directions.down = false
                    tbl_upvr_3.directions.right = false
                    tbl_upvr_3.directions.left = false
                end
            end
        end)
        any_new_result1_upvr._touchEnded = _G._services.UserInputService.TouchEnded:Connect(function(arg1_6, arg2) -- Line 653
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_3 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                tbl_upvr_3.directions.up = false
                tbl_upvr_3.directions.down = false
                tbl_upvr_3.directions.right = false
                tbl_upvr_3.directions.left = false
            end
        end)
        any_new_result1_upvr._mouseButton1Down = var67_upvr._take.Main.Container.Bind.Button.MouseButton1Down:Connect(function() -- Line 662
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: any_Create_result1_upvr (readonly)
            ]]
            arg1._states.charging = true
            any_Create_result1_upvr:Play()
        end)
        any_new_result1_upvr._mouseButton1Up = var67_upvr._take.Main.Container.Bind.Button.MouseButton1Up:Connect(function() -- Line 667
            --[[ Upvalues[1]:
                [1]: release_upvr (readonly)
            ]]
            release_upvr()
        end)
    end
    local tbl_upvr_4 = {}
    local any_ToObjectSpace_result1_upvr_2 = arg1._model.Camera.CFrame:ToObjectSpace(arg1._model.Arrow.End.CFrame)
    any_new_result1_upvr._updateCFrame = _G._services.RunService.RenderStepped:Connect(function() -- Line 672
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr_4 (readonly)
            [3]: var76_upvr (readonly)
            [4]: tbl_upvr_3 (readonly)
            [5]: any_ToObjectSpace_result1_upvr_2 (readonly)
            [6]: NumberValue_upvr_2 (readonly)
        ]]
        arg1._model.Overlay.Ball.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._ball
        arg1._model.Overlay.Take.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._take
        arg1._model.Overlay.Distance.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._distance
        arg1._model.Overlay.Composure.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._composure
        arg1._model.Overlay.Controls.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._controls
        arg1._model.Overlay.Power.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr_4._power
        arg1._character.Humanoid.AutoRotate = false
        if var76_upvr == 'R' then
            arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        else
            arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        end
        if tbl_upvr_3.mode == "Inside Foot Curled" then
            arg1._model.Arrow.Beam.CurveSize0 = 8
            arg1._model.Arrow.Beam.CurveSize1 = 0
            if var76_upvr == 'R' then
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(-2, 0, 0)
            else
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(2, 0, 0)
            end
        end
        if tbl_upvr_3.mode == "Outside Foot Curled" then
            arg1._model.Arrow.Beam.CurveSize0 = 8
            arg1._model.Arrow.Beam.CurveSize1 = 0
            if var76_upvr == 'R' then
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(2, 0, 0)
            else
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(-2, 0, 0)
            end
        end
        if tbl_upvr_3.mode == "No Curl" then
            arg1._model.Arrow.Beam.CurveSize0 = 0
            arg1._model.Arrow.Beam.CurveSize1 = 0
            arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0)
        elseif tbl_upvr_3.mode == "Knuckle" then
            arg1._model.Arrow.Beam.CurveSize0 = 5
            arg1._model.Arrow.Beam.CurveSize1 = 0
            if var76_upvr == 'R' then
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(1, 0, 0)
                return
            end
            arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(-1, 0, 0)
        end
    end)
    local any_ToObjectSpace_result1_upvr = arg1._model.Origin.CFrame:ToObjectSpace(arg1._model.Camera.CFrame)
    local any_ToObjectSpace_result1_upvr_3 = arg1._model.Origin.CFrame:ToObjectSpace(CFrame_upvw)
    task.spawn(function() -- Line 718
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr_3 (readonly)
            [3]: any_ToObjectSpace_result1_upvr (readonly)
            [4]: NumberValue_upvr_2 (readonly)
            [5]: CFrame_upvw (read and write)
            [6]: any_ToObjectSpace_result1_upvr_3 (readonly)
        ]]
        while not arg1._states._charging and not arg1._states._released do
            if tbl_upvr_3.directions.up and tbl_upvr_3.y + tbl_upvr_3.increaseRate <= tbl_upvr_3.limits.y.up then
                local var161 = tbl_upvr_3
                var161.y += tbl_upvr_3.increaseRate
            end
            if tbl_upvr_3.directions.down and tbl_upvr_3.limits.y.down <= tbl_upvr_3.y - tbl_upvr_3.increaseRate then
                local var162 = tbl_upvr_3
                var162.y -= tbl_upvr_3.increaseRate
            end
            if tbl_upvr_3.directions.right and tbl_upvr_3.x + tbl_upvr_3.increaseRate <= tbl_upvr_3.limits.x.right then
                local var163 = tbl_upvr_3
                var163.x += tbl_upvr_3.increaseRate
            end
            if tbl_upvr_3.directions.left and tbl_upvr_3.limits.x.left <= tbl_upvr_3.x - tbl_upvr_3.increaseRate then
                local var164 = tbl_upvr_3
                var164.x -= tbl_upvr_3.increaseRate
            end
            _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                CFrame = arg1._model.Origin.CFrame * CFrame.fromEulerAnglesXYZ(0, -math.rad(tbl_upvr_3.x * 5), 0) * any_ToObjectSpace_result1_upvr;
            }):Play()
            _G._services.TweenService:Create(NumberValue_upvr_2, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Value = tbl_upvr_3.y;
            }):Play()
            CFrame_upvw = arg1._model.Origin.CFrame * CFrame.fromEulerAnglesXYZ(0, -math.rad(tbl_upvr_3.x * 5), 0) * any_ToObjectSpace_result1_upvr_3
            task.wait(0.05)
        end
    end)
    -- KONSTANTERROR: [864] 530. Error Block 122 end (CF ANALYSIS FAILED)
end
function module_upvr.clear(arg1) -- Line 754
    -- KONSTANTERROR: [0] 1. Error Block 19 start (CF ANALYSIS FAILED)
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if _G._services.UserInputService.TouchEnabled then
        arg1._player.PlayerGui.main.mobile.Visible = true
        -- KONSTANTWARNING: GOTO [121] #69
    end
    -- KONSTANTERROR: [0] 1. Error Block 19 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [71] 41. Error Block 16 start (CF ANALYSIS FAILED)
    if _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    -- KONSTANTERROR: [71] 41. Error Block 16 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript Janitor ReplicatedStorage.engine.classes.Janitor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:35
-- Luau version 6, Types version 3
-- Time taken: 0.001067 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 20
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _connections = {};
        _instances = {};
    }, module_upvr)
end
function module_upvr.clean(arg1, arg2, arg3) -- Line 27
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    assert(arg2, "Janitor [1]: table '_table' doesn't exist!")
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 53. Error Block 16 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 53. Error Block 16 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 10. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [68.8]
    -- KONSTANTERROR: [12] 10. Error Block 2 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript TextGlitcher ReplicatedStorage.engine.classes.TextGlitcher
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:37
-- Luau version 6, Types version 3
-- Time taken: 0.014984 seconds

local function _(arg1) -- Line 23
    local module = {}
    for i in arg1:gmatch('.') do
        table.insert(module, i)
    end
    return module
end
local tbl_upvw = {'-', '+', '*', '/', '|', '}', '{', '[', ']', '~', '\\', '"', ':', ';', '?', '.', '>', '<', '=', '+', '-', '_', ')', '(', '*', '&', '%', '$', '#', '@', '!'}
local function var9_upvw(arg1, arg2) -- Line 39
    local var12
    if arg1 <= var12 then
        var12 = ""
        return var12
    end
    var12 = ""
    for _ = 1, arg1 do
        var12 = var12..arg2[math.random(1, #arg2)]
    end
    return var12
end
math.randomseed(tick() ^ 6)
local tbl_upvr = {
    EasingStyle = function(arg1, arg2) -- Line 70
        --[[ Upvalues[1]:
            [1]: var9_upvw (read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 37 start (CF ANALYSIS FAILED)
        local FullString = arg1.FullString
        local var16
        if not var16 then
            var16 = var9_upvw(#FullString, arg1.GlitchCharacters)
        end
        if arg1.Completed then
            -- KONSTANTWARNING: GOTO [91] #66
        end
        local var17
        if arg1.SingleGlitch then
            if arg1.Reversed then
                var17 = 1
            else
                var17 = arg2.Value
            end
            if not arg1.Reversed or not (#FullString - arg2.Value) then
            end
            if not var16:sub(var17, #FullString) then
                -- KONSTANTERROR: [36] 27. Error Block 25 start (CF ANALYSIS FAILED)
                local var18_result1 = var9_upvw(#FullString - arg2.Value, arg1.GlitchCharacters)
                -- KONSTANTERROR: [36] 27. Error Block 25 end (CF ANALYSIS FAILED)
            end
            if not arg1.Reversed or not var18_result1..FullString:sub(#FullString - arg2.Value + 1, #FullString) then
            end
            arg1.TextDisplay.Text = FullString:sub(1, arg2.Value)..var18_result1
            arg1.UnglitchedEvent:Fire(FullString:sub(arg2.Value, arg2.Value))
            task.wait(arg1.UpdateRate)
            -- KONSTANTWARNING: GOTO [10] #8
        end
        -- KONSTANTERROR: [0] 1. Error Block 37 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [36] 27. Error Block 25 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [36] 27. Error Block 25 end (CF ANALYSIS FAILED)
    end;
    Suffix = function(arg1, arg2) -- Line 86
        local FullString_2 = arg1.FullString
        local var25 = arg1.Suffix or ""
        if arg1.Completed then
            -- KONSTANTWARNING: GOTO [53] #37
        end
        local var26
        if arg1.MaintainEndTextAfterGlitch then
            if arg2.Value == #FullString_2 then
                var26 = ""
            else
                var26 = var25
                if not var26 then
                end
            end
            arg1.TextDisplay.Text = FullString_2:sub(1, arg2.Value)..var25
            arg1.UnglitchedEvent:Fire(FullString_2:sub(arg2.Value, arg2.Value))
            task.wait(arg1.UpdateRate)
            -- KONSTANTWARNING: GOTO [5] #4
        end
    end;
    IndexUpdate = function(arg1, arg2) -- Line 100
        --[[ Upvalues[1]:
            [1]: var9_upvw (read and write)
        ]]
        local FullString_4 = arg1.FullString
        local var33
        local var34
        while not arg1.Completed do
            var34 = 1
            var34 = arg1.SingleGlitch
            local var35
            if var34 and var33 then
                var34 = arg2.Value
                if var34 == 1 then
                    var35 = var33
                end
            end
            var34 = arg1.TextDisplay
            var34.Text = FullString_4:sub(1, math.abs(arg2.Value - 1))..var35..FullString_4:sub(arg2.Value + 1)
            var34 = FullString_4:sub(arg2.Value, arg2.Value)
            arg1.UnglitchedEvent:Fire(var34)
            task.wait(arg1.UpdateRate)
        end
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var34 = arg1.TextDisplay.Text
            return var34
        end
        if not arg1.MaintainEndTextAfterGlitch or not INLINED_2() then
            var34 = FullString_4
        end
        arg1.TextDisplay.Text = var34
    end;
}
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2, arg3) -- Line 128
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: tbl_upvw (read and write)
    ]]
    if type(arg1) ~= "string" then
        warn("Miss used type for first argument; Use a string instead.")
    end
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.FullString = arg1
    setmetatable_result1.TextDisplay = arg2
    setmetatable_result1.Reversed = arg3.Reversed or false
    setmetatable_result1.SingleGlitch = arg3.SingleGlitch or false
    setmetatable_result1.MaintainEndTextAfterGlitch = arg3.MaintainEndTextAfterGlitch
    setmetatable_result1.UpdateRate = arg3.UpdateRate
    setmetatable_result1.UnglitchedEvent = Instance.new("BindableEvent")
    setmetatable_result1.Suffix = arg3.Suffix or ""
    local TweenInfo = arg3.TweenInfo
    if not TweenInfo then
        TweenInfo = TweenInfo.new(1)
    end
    setmetatable_result1.TweenInfo = TweenInfo
    TweenInfo = arg3.GlitchCharacters
    local var39 = TweenInfo
    if not var39 then
        var39 = tbl_upvw
    end
    setmetatable_result1.GlitchCharacters = var39
    return setmetatable_result1
end
local TweenService_upvr = game:GetService("TweenService")
function module_upvr.GlitchText(arg1, arg2) -- Line 151
    --[[ Upvalues[2]:
        [1]: TweenService_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    if arg1.tween and arg1:GetState() == Enum.PlaybackState.Playing then
        return warn("Can not glitch text while it is already being glitched")
    end
    arg1.Completed = false
    local IntValue_upvr = Instance.new("IntValue")
    IntValue_upvr.Value = 0
    local any_Create_result1 = TweenService_upvr:Create(IntValue_upvr, arg1.TweenInfo, {
        Value = #arg1.FullString;
    })
    arg1.tween = any_Create_result1
    any_Create_result1.Completed:Connect(function() -- Line 160
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: IntValue_upvr (readonly)
        ]]
        arg1.Completed = true
        IntValue_upvr:Destroy()
    end)
    any_Create_result1:Play()
    if tbl_upvr[arg2] then
        tbl_upvr[arg2](arg1, IntValue_upvr)
    else
        tbl_upvr.EasingStyle(arg1, IntValue_upvr)
    end
end
function module_upvr.IsCompleted(arg1) -- Line 171
    return arg1.Completed or false
end
function module_upvr.GlitchOnce(arg1, arg2) -- Line 175
    --[[ Upvalues[1]:
        [1]: var9_upvw (read and write)
    ]]
    local var45 = arg2
    if not var45 then
        var45 = arg1.GlitchCharacters
    end
    arg1.Glitched = var9_upvw(#arg1.FullString, var45)
    arg1.TextDisplay.Text = arg1.Glitched
end
function module_upvr.Cancel(arg1) -- Line 180
    if not arg1.tween then
        return warn("There is no tween connected")
    end
    arg1.Completed = true
    arg1.tween:Cancel()
end
function module_upvr.Pause(arg1) -- Line 186
    if not arg1.tween then
        return warn("There is no tween connected")
    end
    arg1.tween:Pause()
end
function module_upvr.Resume(arg1) -- Line 191
    if not arg1.tween then
        return warn("There is no tween connected")
    end
    arg1.tween:Play()
end
function module_upvr.GetState(arg1) -- Line 196
    if not arg1.tween then
        return warn("There is no tween connected")
    end
    return arg1.tween.PlaybackState
end
return module_upvr
ModuleScript Corner ReplicatedStorage.engine.classes.Corner
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:39
-- Luau version 6, Types version 3
-- Time taken: 0.000871 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Corner.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:41
-- Luau version 6, Types version 3
-- Time taken: 0.021978 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 37 start (CF ANALYSIS FAILED)
    assert(arg1, "Corner.server | dataModel 'player' expected, got "..typeof(arg1))
    local var2
    if not arg2 then return end
    var2 = _G._references.Main.admin
    if not var2.positions:FindFirstChild(string.upper(arg2)) then return end
    var2 = _G._references
    var2 = arg1.Character
    if not var2 then
        var2 = arg1.CharacterAdded:Wait()
    end
    local var3
    if arg2 and _G._references.Main.admin.positions:FindFirstChild(string.upper(arg2)) then
        var3 = _G._references.Main.admin.positions[string.upper(arg2)].Position.X
        local Z = _G._references.Main.admin.positions[string.upper(arg2)].Position.Z
    end
    local clone = _G._references.Main["set pieces"].Corner:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Ball.Transparency = 1
    if arg1.TeamColor == BrickColor.new("Storm blue") or arg1.TeamColor == BrickColor.new("Navy blue") then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(var3, clone.Primary.Position.Y, Z), Vector3.new(workspace.game.points.bounds.away.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.away.Position.Z)))
        clone.Team.Value = "away"
        -- KONSTANTWARNING: GOTO [507] #295
    end
    if arg1.TeamColor == BrickColor.new("Crimson") or arg1.TeamColor == BrickColor.new("Maroon") then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(var3, clone.Primary.Position.Y, Z), Vector3.new(workspace.game.points.bounds.home.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.home.Position.Z)))
        clone.Team.Value = "home"
    elseif Z <= 0 then
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(var3, clone.Primary.Position.Y, Z), Vector3.new(workspace.game.points.bounds.home.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.home.Position.Z)))
        clone.Team.Value = "home"
    else
        clone:SetPrimaryPartCFrame(CFrame.lookAt(Vector3.new(var3, clone.Primary.Position.Y, Z), Vector3.new(workspace.game.points.bounds.away.Position.X, clone.Primary.Position.Y, workspace.game.points.bounds.away.Position.Z)))
        clone.Team.Value = "away"
    end
    -- KONSTANTERROR: [0] 1. Error Block 37 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [507] 295. Error Block 24 start (CF ANALYSIS FAILED)
    local module = {}
    module._player = arg1
    module._character = var2
    module._profile = var2.Profiles:WaitForChild(tostring(arg1.UserId), 100)
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    do
        return setmetatable(module, module_2_upvr)
    end
    -- KONSTANTERROR: [507] 295. Error Block 24 end (CF ANALYSIS FAILED)
end
function module_2_upvr.init(arg1) -- Line 55
    assert(arg1._model, "Corner.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Corner.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = script.Parent.Parent.Name
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue)
    arg1:initConnections()
    arg1._character.Archivable = false
    local BoolValue_3 = Instance.new("BoolValue", arg1._player)
    BoolValue_3.Name = "Teleport"
    BoolValue_3.Value = true
    _G._services.Debris:AddItem(BoolValue_3, 3)
    if arg1._profile.settings.Visual["Strong Foot"].Value == "Right" then
        arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    else
        arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    end
    if _G._references.Main.config.AutoRall.Value then
        for _, v in next, workspace.game.balls.spawns:GetChildren() do
            if v then
                v:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Ball.CFrame
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    for _, v_2 in next, _G._references.Main.config.Override:GetChildren() do
        if v_2 and v_2.Name == "Break" then
            v_2:Destroy()
        end
    end
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "corner", arg1._model, CFrameValue)
end
function module_2_upvr.initConnections(arg1) -- Line 123
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    local RemoteEvent_2 = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent_2.Name = "Animation"
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "default")
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 135
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_2) -- Line 139
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onAnimationRemoteEvent = RemoteEvent_2.OnServerEvent:Connect(function(arg1_3, arg2) -- Line 151
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var30
        if arg1_3 == arg1._player then
            var30 = arg1_3.Character
            var30 = arg2
            local any_LoadAnimation_result1 = var30.Humanoid.Animator:LoadAnimation(var30)
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
            var30 = true
            arg1._animation = var30
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var30 = any_LoadAnimation_result1.Length - 0.6
                return var30
            end
            if 0.1 > any_LoadAnimation_result1.Length or not INLINED_2() then
                var30 = 3
            end
            task.wait(var30)
            if arg1_3 and arg1_3.Character then
                var30 = arg1._maid
                if var30._onAnimationRemoteEvent then
                    var30 = "BoolValue"
                    local any_2 = Instance.new(var30, arg1._player)
                    var30 = "Teleport"
                    any_2.Name = var30
                    var30 = true
                    any_2.Value = var30
                    var30 = _G._services.Debris:AddItem
                    var30(any_2, 3)
                    var30 = any_LoadAnimation_result1:AdjustSpeed
                    var30(0)
                    var30 = arg1_3.Character:SetPrimaryPartCFrame
                    var30(arg1_3.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                    var30 = any_LoadAnimation_result1:Stop
                    var30(0)
                    var30 = arg1
                    var30._animation = nil
                end
            end
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 174
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_4) -- Line 178
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_4 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_5) -- Line 184
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5.Parent and arg1_5.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_5:FindFirstAncestor("manager") and not arg1_5:FindFirstAncestor("referee") and arg1_5.Parent ~= arg1._character and not arg1._touch[arg1_5.Parent.Name] then
            arg1._touch[arg1_5.Parent.Name] = true
            if _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent) then
                local BoolValue_2 = Instance.new("BoolValue", _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent))
                BoolValue_2.Name = "Teleport"
                BoolValue_2.Value = true
                _G._services.Debris:AddItem(BoolValue_2, 3)
            end
            arg1_5.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
            task.delay(0.5, function() -- Line 197
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_5 (readonly)
                ]]
                arg1._touch[arg1_5.Parent.Name] = false
            end)
        end
    end
    for _, v_3 in next, arg1._model.Area:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_3.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_3.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    arg1._maid:GiveTask(RemoteEvent_2)
end
function module_2_upvr.clear(arg1) -- Line 220
    if arg1._character and arg1._character:FindFirstChild("HumanoidRootPart") then
        arg1._character.HumanoidRootPart.Anchored = false
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
    end
    for _, v_4 in next, _G._references.Main.config.Override:GetChildren() do
        if v_4 and (v_4.Name == "DisableFouls" or v_4.Name == "RTP") then
            v_4:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_2_upvr
ModuleScript client ReplicatedStorage.engine.classes.Corner.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:43
-- Luau version 6, Types version 3
-- Time taken: 0.042024 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    assert(arg1, "Corner.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Corner.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._formatNumber = _G._engine:load("FormatNumber", "utils")
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 79 start (CF ANALYSIS FAILED)
    local tbl_upvr_2 = {}
    local var58_upvr
    for _, v in var58_upvr, arg1._model.Overlay:GetChildren() do
        if v and v:FindFirstChildWhichIsA("BillboardGui") then
            local class_BillboardGui = v:FindFirstChildWhichIsA("BillboardGui")
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v
            tbl_upvr_2['_'..string.lower(v.Name)] = class_BillboardGui
        end
    end
    var58_upvr = tbl_upvr_2._ball
    var58_upvr.Enabled = true
    var58_upvr = tbl_upvr_2._power
    var58_upvr.Enabled = true
    var58_upvr = tbl_upvr_2._take
    var58_upvr.Enabled = true
    var58_upvr = tbl_upvr_2._controls
    var58_upvr.Enabled = true
    var58_upvr = _G._services.UserInputService.TouchEnabled
    if var58_upvr then
        var58_upvr = tbl_upvr_2._take.Main.Container.Bind.Bind
        var58_upvr.Text = "[TAP]"
        var58_upvr = next
        for _, v_2 in var58_upvr, tbl_upvr_2._controls.Main.Container.Container:GetChildren() do
            if v_2 and v_2:IsA("Frame") then
                v_2.Bind.Text = "[TAP]"
            end
        end
        -- KONSTANTWARNING: GOTO [167] #101
    end
    -- KONSTANTERROR: [0] 1. Error Block 79 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [115] 73. Error Block 65 start (CF ANALYSIS FAILED)
    var58_upvr = _G._services.UserInputService.GamepadEnabled
    if var58_upvr then
        var58_upvr = tbl_upvr_2._take.Main.Container.Bind.Bind
        var58_upvr.Text = "[X]"
        var58_upvr = tbl_upvr_2._controls.Main.Container.Container["Inside Foot Curled"].Bind
        var58_upvr.Text = "[LT]"
        var58_upvr = tbl_upvr_2._controls.Main.Container.Container["No Curl"].Bind
        var58_upvr.Text = "[RT]"
    end
    var58_upvr = arg1._player.PlayerGui:FindFirstChild("UI")
    if var58_upvr then
        var58_upvr = arg1._player.PlayerGui.UI
        var58_upvr.Enabled = false
    end
    var58_upvr = next
    for _, v_3 in var58_upvr, {"_take", "_power", "_controls"} do
        tbl_upvr_2[v_3].Size = UDim2.new(0, 0, 0, tbl_upvr_2[v_3].Size.Y.Offset)
        _G._services.TweenService:Create(tbl_upvr_2[v_3], TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, tbl_upvr_2[v_3].Size.X.Offset, 0, tbl_upvr_2[v_3].Size.Y.Offset);
        }):Play()
    end
    var58_upvr = arg1._model.Arrow.Beam
    var58_upvr.Enabled = true
    var58_upvr = arg1._player.PlayerGui.main.mobile
    var58_upvr.Visible = false
    var58_upvr = arg1._player.PlayerGui.main.backpack
    var58_upvr.Visible = false
    var58_upvr = arg1._player.PlayerGui.main.gamepad
    var58_upvr.Visible = false
    var58_upvr = next
    for _, v_4 in var58_upvr, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_4 and v_4:IsA("Frame") then
            v_4.Visible = false
        end
    end
    if _G._references.Profile.settings.Visual["Strong Foot"].Value == "Right" then
        var58_upvr = 'R'
    else
        var58_upvr = 'L'
    end
    local tbl_upvr_3 = {
        _idle = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Corner[var58_upvr].Idle);
        _kick = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Corner[var58_upvr].Kick);
    }
    tbl_upvr_3._idle.Priority = Enum.AnimationPriority.Action3
    tbl_upvr_3._idle.Looped = true
    tbl_upvr_3._idle:Play(0)
    tbl_upvr_3._kick.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 103
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 109
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var69_upvw = false
    workspace.CurrentCamera.FieldOfView = 60
    local Take = arg1._model.Overlay.Take
    Take.CFrame *= CFrame.new(0, -3, 0)
    local Camera = arg1._model.Camera
    Camera.CFrame *= CFrame.new(0, 5, 0) * CFrame.fromEulerAnglesXYZ(-0.14835298641951802, 0, 0)
    if _G._services.UserInputService.TouchEnabled then
        local Power_2 = arg1._model.Overlay.Power
        Power_2.CFrame *= CFrame.new(0, -4.7, 0)
    else
        local Power = arg1._model.Overlay.Power
        Power.CFrame *= CFrame.new(0, -3.25, 0)
    end
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 130
        --[[ Upvalues[1]:
            [1]: var69_upvw (read and write)
        ]]
        if not var69_upvw then
            workspace.CurrentCamera.FieldOfView = 60
        end
    end)
    local tbl_upvr_4 = {
        minDistance = 1.25;
        power = 60;
        minPower = 60;
        maxPower = 150;
        increaseRate = 0.3;
        chargeTime = 1;
        x = 0;
        y = 0;
        mode = "Inside Foot Curled";
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            x = {
                right = 6;
                left = -6;
            };
            y = {
                up = 5;
                down = -4;
            };
        };
        directions = {
            up = false;
            down = false;
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(tbl_upvr_2._power.Main.Container.Power, TweenInfo.new(tbl_upvr_4.chargeTime, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = UDim2.new(1, 0, 1, 0);
    })
    for _, v_5 in next, arg1._model.Overlay:GetChildren() do
        if v_5 and v_5:IsA("BasePart") then
            ({})['_'..string.lower(v_5.Name)] = arg1._model.Camera.CFrame:ToObjectSpace(v_5.CFrame)
        end
    end
    local NumberValue_upvr_2 = Instance.new("NumberValue")
    NumberValue_upvr_2.Name = 'Y'
    NumberValue_upvr_2.Value = 0
    arg1._maid:GiveTask(NumberValue_upvr_2)
    arg1._character.Humanoid:UnequipTools()
    local function release_upvr() -- Line 194, Named "release"
        --[[ Upvalues[8]:
            [1]: var69_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: any_Create_result1_upvr (readonly)
            [5]: tbl_upvr_4 (readonly)
            [6]: tbl_upvr_2 (readonly)
            [7]: var58_upvr (readonly)
            [8]: tbl_upvr_3 (readonly)
        ]]
        var69_upvw = true
        arg1._states._charging = false
        arg1._states._released = true
        any_new_result1_upvr:DoCleaning()
        any_Create_result1_upvr:Pause()
        tbl_upvr_4.power = tbl_upvr_4.minPower + (tbl_upvr_4.maxPower - tbl_upvr_4.minPower) * tbl_upvr_2._power.Main.Container.Power.Size.X.Scale
        arg1._model.Animation:FireServer(_G._references.Main.animations["Set Piece"].Corner[var58_upvr].Kick)
        task.wait(arg1._player:GetNetworkPing())
        _G._services.TweenService:Create(tbl_upvr_2._ball, TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(tbl_upvr_2._ball.Size.X.Scale, 0, 0, 0);
        }):Play()
        task.spawn(function() -- Line 209
            --[[ Upvalues[1]:
                [1]: arg1 (copied, readonly)
            ]]
            local NumberValue_upvr = Instance.new("NumberValue", arg1._model)
            NumberValue_upvr.Value = 0
            local any_Connect_result1 = _G._services.RunService.RenderStepped:Connect(function() -- Line 213
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: NumberValue_upvr (readonly)
                ]]
                arg1._model.Arrow.Beam.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, NumberValue_upvr.Value), NumberSequenceKeypoint.new(1, 1)})
            end)
            _G._services.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Value = 1;
            }):Play()
            task.wait(0.5)
            if any_Connect_result1 then
                any_Connect_result1:Disconnect()
            end
            if NumberValue_upvr and NumberValue_upvr.Parent and NumberValue_upvr.Parent.Parent then
                NumberValue_upvr:Destroy()
            end
        end)
        _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = 50;
        }):Play()
        local _ = {"_controls", "_take"}
        local var99
        for _, v_6 in next, var99 do
            _G._services.TweenService:Create(tbl_upvr_2[v_6], TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Size = UDim2.new(0, 0, 0, tbl_upvr_2[v_6].Size.Y.Offset);
            }):Play()
        end
        var99 = _G._services.RunService.RenderStepped
        var99 = var99:Connect(function() -- Line 238
            --[[ Upvalues[4]:
                [1]: arg1 (copied, readonly)
                [2]: var58_upvr (copied, readonly)
                [3]: tbl_upvr_4 (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
            ]]
            if arg1._model and arg1._model:FindFirstChild("Ball") then
                if var58_upvr == 'R' and (arg1._model.Ball.Position - arg1._character.RightLowerLeg.Position).Magnitude <= tbl_upvr_4.minDistance or (arg1._model.Ball.Position - arg1._character.LeftLowerLeg.Position).Magnitude <= tbl_upvr_4.minDistance then
                    any_new_result1_upvr:DoCleaning()
                    local Folder = Instance.new("Folder")
                    Folder.Name = "react"
                    local ObjectValue = Instance.new("ObjectValue", Folder)
                    ObjectValue.Name = "ball"
                    ObjectValue.Value = arg1._ball
                    local Vector3Value = Instance.new("Vector3Value", Folder)
                    Vector3Value.Name = "vector"
                    Vector3Value.Value = workspace.CurrentCamera.CFrame.LookVector * tbl_upvr_4.power + Vector3.new(0, 35, 0) + Vector3.new(0, tbl_upvr_4.y * 7, 0) + Vector3.new(0, 0, 0)
                    local Vector3Value_2 = Instance.new("Vector3Value", Folder)
                    Vector3Value_2.Name = "maxForce"
                    Vector3Value_2.Value = Vector3.new(10000, 10000, 10000)
                    local BoolValue_3 = Instance.new("BoolValue", Folder)
                    BoolValue_3.Name = "ignoreReactDecline"
                    BoolValue_3.Value = true
                    local BoolValue_2 = Instance.new("BoolValue", Folder)
                    BoolValue_2.Name = "corner"
                    BoolValue_2.Value = true
                    local BoolValue = Instance.new("BoolValue", Folder)
                    BoolValue.Name = "checkOffside"
                    BoolValue.Value = true
                    local BoolValue_4 = Instance.new("BoolValue", Folder)
                    BoolValue_4.Name = "curve"
                    BoolValue_4.Value = true
                    local StringValue = Instance.new("StringValue", Folder)
                    StringValue.Name = "curveType"
                    if tbl_upvr_4.mode == "Inside Foot Curled" then
                        if var58_upvr == 'R' then
                            StringValue.Value = "left"
                        else
                            StringValue.Value = "right"
                        end
                    elseif tbl_upvr_4.mode == "No Curl" then
                        StringValue.Value = "none"
                    end
                    local StringValue_2 = Instance.new("StringValue", Folder)
                    StringValue_2.Name = "spinType"
                    StringValue_2.Value = "topspin"
                    local BoolValue_5 = Instance.new("BoolValue", Folder)
                    BoolValue_5.Name = "grassEffect"
                    BoolValue_5.Value = true
                    Folder.Parent = arg1._player
                    Folder:SetAttribute("loaded", true)
                end
            end
        end)
        any_new_result1_upvr._renderStepped = var99
        var99 = 0.3
        task.delay(var99, function() -- Line 304
            --[[ Upvalues[1]:
                [1]: tbl_upvr_3 (copied, readonly)
            ]]
            tbl_upvr_3._idle:Stop(0.1)
        end)
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var99 = tbl_upvr_3._kick.Length - 0.6
            return var99
        end
        if 0.1 > tbl_upvr_3._kick.Length or not INLINED() then
            var99 = 3
        end
        task.wait(var99)
        var99 = arg1._character
        var99 = true
        var99.Humanoid.AutoRotate = var99
        var99 = arg1
        if var99._model:FindFirstChild("Clear") then
            var99 = arg1._model
            var99.Clear:FireServer()
        end
        arg1:clear()
    end
    for _, v_7_upvr in next, tbl_upvr_2._controls.Main.Container.Container:GetChildren() do
        if v_7_upvr and v_7_upvr:IsA("Frame") then
            any_new_result1_upvr[v_7_upvr.Name.."_mouseButton1Click"] = v_7_upvr.Button.MouseButton1Click:Connect(function() -- Line 319
                --[[ Upvalues[3]:
                    [1]: tbl_upvr_4 (readonly)
                    [2]: v_7_upvr (readonly)
                    [3]: tbl_upvr_2 (readonly)
                ]]
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_4.mode = v_7_upvr.Name
                tbl_upvr_2._take.Main.Container.Label.Text = string.upper(tbl_upvr_4.mode)
            end)
        end
    end
    task.delay(30, function() -- Line 327
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: any_Create_result1_upvr (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: tbl_upvr_4 (readonly)
            [5]: release_upvr (readonly)
        ]]
        if not arg1._states._charging and not arg1._states._released and arg1._model and arg1._model.Parent then
            arg1._states._charging = true
            any_Create_result1_upvr:Play()
            any_new_result1_upvr:DoCleaning()
            task.wait(tbl_upvr_4.chargeTime)
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 338
        --[[ Upvalues[4]:
            [1]: tbl_upvr_4 (readonly)
            [2]: tbl_upvr_2 (readonly)
            [3]: arg1 (readonly)
            [4]: any_Create_result1_upvr (readonly)
        ]]
        if arg1_2.KeyCode == Enum.KeyCode.W then
            tbl_upvr_4.directions.up = true
        else
            if arg1_2.KeyCode == Enum.KeyCode.A then
                tbl_upvr_4.directions.left = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.S then
                tbl_upvr_4.directions.down = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.D then
                tbl_upvr_4.directions.right = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.One or arg1_2.KeyCode == Enum.KeyCode.ButtonL2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_4.mode = "Inside Foot Curled"
                tbl_upvr_2._take.Main.Container.Label.Text = string.upper(tbl_upvr_4.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Two or arg1_2.KeyCode == Enum.KeyCode.ButtonR2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_upvr_4.mode = "No Curl"
                tbl_upvr_2._take.Main.Container.Label.Text = string.upper(tbl_upvr_4.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Space or arg1_2.KeyCode == Enum.KeyCode.ButtonX or not arg2 then
                arg1._states._charging = true
                any_Create_result1_upvr:Play()
            end
        end
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 361
        --[[ Upvalues[2]:
            [1]: tbl_upvr_4 (readonly)
            [2]: release_upvr (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.W then
            tbl_upvr_4.directions.up = false
        else
            if arg1_3.KeyCode == Enum.KeyCode.A then
                tbl_upvr_4.directions.left = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.S then
                tbl_upvr_4.directions.down = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.D then
                tbl_upvr_4.directions.right = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Space or arg1_3.KeyCode == Enum.KeyCode.ButtonX or not arg2 then
                release_upvr()
            end
        end
    end)
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_4, arg2) -- Line 375
        --[[ Upvalues[1]:
            [1]: tbl_upvr_4 (readonly)
        ]]
        if arg1_4.KeyCode == Enum.KeyCode.Thumbstick1 then
            if 0.7 <= arg1_4.Position.X then
                tbl_upvr_4.directions.right = true
                tbl_upvr_4.directions.left = false
            elseif arg1_4.Position.X <= -0.7 then
                tbl_upvr_4.directions.right = false
                tbl_upvr_4.directions.left = true
            end
            if 0.7 <= arg1_4.Position.Y then
                tbl_upvr_4.directions.up = true
                tbl_upvr_4.directions.down = false
            elseif arg1_4.Position.Y <= -0.7 then
                tbl_upvr_4.directions.up = false
                tbl_upvr_4.directions.down = true
            end
            if arg1_4.Position.X < 0.35 and -0.35 < arg1_4.Position.X and arg1_4.Position.Y < 0.35 and -0.35 < arg1_4.Position.Y then
                tbl_upvr_4.directions.up = false
                tbl_upvr_4.directions.down = false
                tbl_upvr_4.directions.right = false
                tbl_upvr_4.directions.left = false
            end
        end
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseMove = arg1._mouse.Move:Connect(function() -- Line 403
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_4 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position)
                local var123 = any_WorldToViewportPoint_result1.X - tbl_upvr_4.lastMousePosition.X
                local var124 = any_WorldToViewportPoint_result1.Y - tbl_upvr_4.lastMousePosition.Y
                tbl_upvr_4.lastMousePosition = any_WorldToViewportPoint_result1
                if 1 <= var124 then
                    tbl_upvr_4.directions.down = true
                    tbl_upvr_4.directions.up = false
                    return
                end
                if var124 <= -1 then
                    tbl_upvr_4.directions.down = false
                    tbl_upvr_4.directions.up = true
                    return
                end
                if 1 <= var123 then
                    tbl_upvr_4.directions.right = true
                    tbl_upvr_4.directions.left = false
                    return
                end
                if var123 <= -1 then
                    tbl_upvr_4.directions.right = false
                    tbl_upvr_4.directions.left = true
                    return
                end
                if var123 < 1 and -1 < var123 and var124 < 1 and -1 < var124 then
                    tbl_upvr_4.directions.up = false
                    tbl_upvr_4.directions.down = false
                    tbl_upvr_4.directions.right = false
                    tbl_upvr_4.directions.left = false
                end
            end
        end)
        any_new_result1_upvr._touchEnded = _G._services.UserInputService.TouchEnded:Connect(function(arg1_5, arg2) -- Line 432
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_4 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                tbl_upvr_4.directions.up = false
                tbl_upvr_4.directions.down = false
                tbl_upvr_4.directions.right = false
                tbl_upvr_4.directions.left = false
            end
        end)
        any_new_result1_upvr._mouseButton1Down = tbl_upvr_2._take.Main.Container.Bind.Button.MouseButton1Down:Connect(function() -- Line 441
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: any_Create_result1_upvr (readonly)
            ]]
            arg1._states.charging = true
            any_Create_result1_upvr:Play()
        end)
        any_new_result1_upvr._mouseButton1Up = tbl_upvr_2._take.Main.Container.Bind.Button.MouseButton1Up:Connect(function() -- Line 446
            --[[ Upvalues[1]:
                [1]: release_upvr (readonly)
            ]]
            release_upvr()
        end)
    end
    local tbl_upvr = {}
    local any_ToObjectSpace_result1_upvr_2 = arg1._model.Camera.CFrame:ToObjectSpace(arg1._model.Arrow.End.CFrame)
    any_new_result1_upvr._updateCFrame = _G._services.RunService.RenderStepped:Connect(function() -- Line 451
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr (readonly)
            [3]: var58_upvr (readonly)
            [4]: tbl_upvr_4 (readonly)
            [5]: any_ToObjectSpace_result1_upvr_2 (readonly)
            [6]: NumberValue_upvr_2 (readonly)
        ]]
        arg1._model.Overlay.Ball.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._ball
        arg1._model.Overlay.Take.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._take
        arg1._model.Overlay.Controls.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._controls
        arg1._model.Overlay.Power.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._power
        arg1._character.Humanoid.AutoRotate = false
        if var58_upvr == 'R' then
            arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        else
            arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        end
        if tbl_upvr_4.mode == "Inside Foot Curled" then
            arg1._model.Arrow.Beam.CurveSize0 = 8
            arg1._model.Arrow.Beam.CurveSize1 = 0
            if var58_upvr == 'R' then
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(-2, 0, 0)
            else
                arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0) * CFrame.new(2, 0, 0)
            end
        end
        if tbl_upvr_4.mode == "No Curl" then
            arg1._model.Arrow.Beam.CurveSize0 = 0
            arg1._model.Arrow.Beam.CurveSize1 = 0
            arg1._model.Arrow.End.CFrame = workspace.CurrentCamera.CFrame * any_ToObjectSpace_result1_upvr_2 * CFrame.new(0, NumberValue_upvr_2.Value, 0)
        end
    end)
    local any_ToObjectSpace_result1_upvr = arg1._model.Origin.CFrame:ToObjectSpace(arg1._model.Camera.CFrame)
    task.spawn(function() -- Line 479
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr_4 (readonly)
            [3]: any_ToObjectSpace_result1_upvr (readonly)
            [4]: NumberValue_upvr_2 (readonly)
        ]]
        while not arg1._states._charging and not arg1._states._released do
            if tbl_upvr_4.directions.up and tbl_upvr_4.y + tbl_upvr_4.increaseRate <= tbl_upvr_4.limits.y.up then
                local var133 = tbl_upvr_4
                var133.y += tbl_upvr_4.increaseRate
            end
            if tbl_upvr_4.directions.down and tbl_upvr_4.limits.y.down <= tbl_upvr_4.y - tbl_upvr_4.increaseRate then
                local var134 = tbl_upvr_4
                var134.y -= tbl_upvr_4.increaseRate
            end
            if tbl_upvr_4.directions.right and tbl_upvr_4.x + tbl_upvr_4.increaseRate <= tbl_upvr_4.limits.x.right then
                local var135 = tbl_upvr_4
                var135.x += tbl_upvr_4.increaseRate
            end
            if tbl_upvr_4.directions.left and tbl_upvr_4.limits.x.left <= tbl_upvr_4.x - tbl_upvr_4.increaseRate then
                local var136 = tbl_upvr_4
                var136.x -= tbl_upvr_4.increaseRate
            end
            _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                CFrame = arg1._model.Origin.CFrame * CFrame.fromEulerAnglesXYZ(0, -math.rad(tbl_upvr_4.x * 5), 0) * any_ToObjectSpace_result1_upvr;
            }):Play()
            _G._services.TweenService:Create(NumberValue_upvr_2, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Value = tbl_upvr_4.y;
            }):Play()
            task.wait(0.05)
        end
    end)
    -- KONSTANTERROR: [115] 73. Error Block 65 end (CF ANALYSIS FAILED)
end
function module_upvr.clear(arg1) -- Line 514
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if _G._services.UserInputService.TouchEnabled then
        arg1._player.PlayerGui.main.mobile.Visible = true
    elseif _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    arg1._maid:DoCleaning()
    arg1._root:SetAttribute("globalOverride", false)
end
return module_upvr
ModuleScript Goalkick ReplicatedStorage.engine.classes.Goalkick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:45
-- Luau version 6, Types version 3
-- Time taken: 0.001038 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Goalkick.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:46
-- Luau version 6, Types version 3
-- Time taken: 0.017220 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    assert(arg1, "Goalkick.server | dataModel 'player' expected, got "..typeof(arg1))
    local var2
    if not arg2 then return end
    var2 = _G._references.Main.admin
    if not var2.positions:FindFirstChild(string.upper(arg2)) then return end
    var2 = _G._references
    var2 = arg1.Character
    if not var2 then
        var2 = arg1.CharacterAdded:Wait()
    end
    local var3
    if arg2 and _G._references.Main.admin.positions:FindFirstChild(string.upper(arg2)) then
        var3 = _G._references.Main.admin.positions[string.upper(arg2)].Position.X
        local var4 = _G._references.Main.admin.positions[string.upper(arg2)]
    end
    local clone = _G._references.Main["set pieces"]["Goal Kick"]:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Ball.Transparency = 1
    clone:SetPrimaryPartCFrame(CFrame.new(Vector3.new(var3, clone.Primary.Position.Y, _G._references.Main.admin.positions[string.upper(arg2)].Position.Z)) * CFrame.Angles(var4.CFrame:ToOrientation()))
    if string.find(var4.Name, 'H') then
        clone.Team.Value = "home"
    elseif string.find(var4.Name, 'A') then
        clone.Team.Value = "away"
    end
    local module = {}
    module._player = arg1
    module._character = var2
    module._profile = var2.Profiles:WaitForChild(tostring(arg1.UserId), 100)
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 49
    assert(arg1._model, "Goalkick.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Goalkick.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = script.Parent.Parent.Name
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue)
    arg1:initConnections()
    arg1._character.Archivable = false
    local BoolValue_7 = Instance.new("BoolValue", arg1._player)
    BoolValue_7.Name = "Teleport"
    BoolValue_7.Value = true
    _G._services.Debris:AddItem(BoolValue_7, 3)
    if arg1._profile.settings.Visual["Strong Foot"].Value == "Right" then
        arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    else
        arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    end
    if _G._references.Main.config.AutoRall.Value then
        for _, v in next, workspace.game.balls.spawns:GetChildren() do
            if v then
                v:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Ball.CFrame
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    for _, v_2 in next, _G._references.Main.config.Override:GetChildren() do
        if v_2 and v_2.Name == "Break" then
            v_2:Destroy()
        end
    end
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "goalKick", arg1._model, CFrameValue)
end
function module_upvr.initConnections(arg1) -- Line 117
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    local RemoteEvent_2 = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent_2.Name = "Animation"
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "default")
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 129
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_2) -- Line 133
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onAnimationRemoteEvent = RemoteEvent_2.OnServerEvent:Connect(function(arg1_3, arg2) -- Line 145
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_3 == arg1._player then
            local any_LoadAnimation_result1 = arg1_3.Character.Humanoid.Animator:LoadAnimation(arg2)
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
            arg1._animation = true
            task.wait(3.8)
            if arg1_3 and arg1_3.Character and arg1._maid._onAnimationRemoteEvent then
                local BoolValue_5 = Instance.new("BoolValue", arg1._player)
                BoolValue_5.Name = "Teleport"
                BoolValue_5.Value = true
                _G._services.Debris:AddItem(BoolValue_5, 3)
                any_LoadAnimation_result1:AdjustSpeed(0)
                arg1_3.Character:SetPrimaryPartCFrame(arg1_3.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                any_LoadAnimation_result1:Stop(0)
                arg1._animation = nil
            end
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 168
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_4) -- Line 172
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_4 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_5) -- Line 178
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5.Parent then
            if arg1_5.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_5.Parent ~= arg1._character and not arg1._touch[arg1_5.Parent.Name] then
                arg1._touch[arg1_5.Parent.Name] = true
                if _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent) then
                    local BoolValue_2 = Instance.new("BoolValue", _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent))
                    BoolValue_2.Name = "Teleport"
                    BoolValue_2.Value = true
                    _G._services.Debris:AddItem(BoolValue_2, 3)
                end
                arg1_5.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                task.delay(0.5, function() -- Line 191
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_5 (readonly)
                    ]]
                    arg1._touch[arg1_5.Parent.Name] = false
                end)
            end
        end
    end
    local function onTouchRegion(arg1_6) -- Line 197
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6.Parent then
            if arg1_6.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_6:FindFirstAncestor("manager") and not arg1_6:FindFirstAncestor("referee") and arg1_6.Parent ~= arg1._character and not arg1._touch[arg1_6.Parent.Name] then
                local any_GetPlayerFromCharacter_result1 = _G._services.Players:GetPlayerFromCharacter(arg1_6.Parent)
                if any_GetPlayerFromCharacter_result1 and any_GetPlayerFromCharacter_result1.Team then
                    arg1._touch[arg1_6.Parent.Name] = true
                    local BoolValue_6 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue_6.Name = "Teleport"
                    BoolValue_6.Value = true
                    _G._services.Debris:AddItem(BoolValue_6, 3)
                    arg1_6.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                    task.delay(0.5, function() -- Line 209
                        --[[ Upvalues[2]:
                            [1]: arg1 (copied, readonly)
                            [2]: arg1_6 (readonly)
                        ]]
                        arg1._touch[arg1_6.Parent.Name] = false
                    end)
                end
            end
        end
    end
    for _, v_3 in next, arg1._model.Area:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_3.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_3.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._onTouchedRegion = workspace.game.regions[arg1._model.Team.Value].Touched:Connect(onTouchRegion)
    arg1._maid._onTouchEndedRegion = workspace.game.regions[arg1._model.Team.Value].TouchEnded:Connect(onTouchRegion)
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    arg1._maid:GiveTask(RemoteEvent_2)
end
function module_upvr.clear(arg1) -- Line 236
    if arg1._character and arg1._character:FindFirstChild("HumanoidRootPart") then
        arg1._character.HumanoidRootPart.Anchored = false
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
    end
    for _, v_4 in next, _G._references.Main.config.Override:GetChildren() do
        if v_4 and (v_4.Name == "DisableFouls" or v_4.Name == "RTP") then
            v_4:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_upvr
ModuleScript client ReplicatedStorage.engine.classes.Goalkick.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:48
-- Luau version 6, Types version 3
-- Time taken: 0.054023 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    assert(arg1, "Goalkick.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Goalkick.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._formatNumber = _G._engine:load("FormatNumber", "utils")
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 86 start (CF ANALYSIS FAILED)
    local _, NONE = workspace.pitch.nets:GetChildren()
    local var65_upvr
    for _, v in next, var65_upvr, NONE do
        if v and string.lower(v.Name) == arg1._model.Team.Value then
            arg1._net = v
            _G._services.TweenService:Create(v.Net.Net, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0.95;
            }):Play()
            _G._services.TweenService:Create(v.Frame, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0.9;
            }):Play()
            _G._services.TweenService:Create(v.Support["Support Main"], TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0.9;
            }):Play()
            _G._services.TweenService:Create(v.Support["Support Top"], TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0.9;
            }):Play()
        end
    end
    local tbl = {}
    var65_upvr = next
    for _, v_2 in var65_upvr, arg1._model.Overlay:GetChildren() do
        if v_2 and v_2:FindFirstChildWhichIsA("BillboardGui") then
            local class_BillboardGui = v_2:FindFirstChildWhichIsA("BillboardGui")
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v_2
            tbl['_'..string.lower(v_2.Name)] = class_BillboardGui
        end
    end
    var65_upvr = tbl._power
    var65_upvr.Enabled = true
    var65_upvr = tbl._take
    var65_upvr.Enabled = true
    var65_upvr = tbl._controls
    var65_upvr.Enabled = true
    var65_upvr = _G._services.UserInputService.TouchEnabled
    if var65_upvr then
        var65_upvr = tbl._take.Main.Container.Bind.Bind
        var65_upvr.Text = "[TAP]"
        var65_upvr = next
        for _, v_3 in var65_upvr, tbl._controls.Main.Container.Container:GetChildren() do
            if v_3 and v_3:IsA("Frame") then
                v_3.Bind.Text = "[TAP]"
            end
        end
        -- KONSTANTWARNING: GOTO [332] #198
    end
    -- KONSTANTERROR: [0] 1. Error Block 86 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [250] 154. Error Block 71 start (CF ANALYSIS FAILED)
    var65_upvr = _G._services.UserInputService.GamepadEnabled
    if var65_upvr then
        var65_upvr = tbl._take.Main.Container.Bind.Bind
        var65_upvr.Text = "[X]"
        var65_upvr = tbl._controls.Main.Container.Container["Inside Foot Curled"].Bind
        var65_upvr.Text = "[LT]"
        var65_upvr = tbl._controls.Main.Container.Container["Outside Foot Curled"].Bind
        var65_upvr.Text = "[RT]"
        var65_upvr = tbl._controls.Main.Container.Container["No Curl"].Bind
        var65_upvr.Text = "[LB]"
        var65_upvr = tbl._controls.Main.Container.Container["Low Pass"].Bind
        var65_upvr.Text = "[RB]"
    end
    var65_upvr = arg1._player.PlayerGui:FindFirstChild("UI")
    if var65_upvr then
        var65_upvr = arg1._player.PlayerGui.UI
        var65_upvr.Enabled = false
    end
    var65_upvr = next
    for _, v_4 in var65_upvr, {"_take", "_power", "_controls"} do
        tbl[v_4].Size = UDim2.new(0, 0, 0, tbl[v_4].Size.Y.Offset)
        _G._services.TweenService:Create(tbl[v_4], TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, tbl[v_4].Size.X.Offset, 0, tbl[v_4].Size.Y.Offset);
        }):Play()
        local var78_upvr
    end
    var65_upvr = arg1._player.PlayerGui.main.mobile
    var65_upvr.Visible = false
    var65_upvr = arg1._player.PlayerGui.main.backpack
    var65_upvr.Visible = false
    var65_upvr = arg1._player.PlayerGui.main.gamepad
    var65_upvr.Visible = false
    var65_upvr = next
    for _, v_5 in var65_upvr, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_5 and v_5:IsA("Frame") then
            v_5.Visible = false
        end
    end
    if _G._references.Profile.settings.Visual["Strong Foot"].Value == "Right" then
        var65_upvr = 'R'
    else
        var65_upvr = 'L'
    end
    local tbl_3_upvr = {
        _idle = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"]["Goal Kick"][var65_upvr].Idle);
        _kick = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"]["Goal Kick"][var65_upvr].Kick);
    }
    tbl_3_upvr._idle.Priority = Enum.AnimationPriority.Action3
    tbl_3_upvr._idle.Looped = true
    tbl_3_upvr._idle:Play(0)
    tbl_3_upvr._kick.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 115
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 121
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var84_upvw = false
    workspace.CurrentCamera.FieldOfView = 80
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    if _G._services.UserInputService.TouchEnabled then
        local Power = arg1._model.Overlay.Power
        Power.CFrame *= CFrame.new(0, -3.3, 0)
    end
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 137
        --[[ Upvalues[1]:
            [1]: var84_upvw (read and write)
        ]]
        if not var84_upvw then
            workspace.CurrentCamera.FieldOfView = 80
        end
    end)
    local tbl_2_upvr = {
        minDistance = 1.25;
        power = 65;
        minPower = 35;
        maxPower = 110;
        increaseRate = 0.3;
        chargeTime = 1;
        x = 0;
        y = 0;
        mode = "No Curl";
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            x = {
                right = 16;
                left = -16;
            };
            y = {
                up = 8;
                down = -4;
            };
        };
        directions = {
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(var78_upvr._power.Main.Container.Power, TweenInfo.new(tbl_2_upvr.chargeTime, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = UDim2.new(1, 0, 1, 0);
    })
    for _, v_6 in next, arg1._model.Overlay:GetChildren() do
        if v_6 and v_6:IsA("BasePart") then
            ({})['_'..string.lower(v_6.Name)] = arg1._model.Camera.CFrame:ToObjectSpace(v_6.CFrame)
        end
    end
    local NumberValue_upvr = Instance.new("NumberValue")
    NumberValue_upvr.Name = 'Y'
    NumberValue_upvr.Value = 0
    arg1._maid:GiveTask(NumberValue_upvr)
    arg1._character.Humanoid:UnequipTools()
    local function release_upvr() -- Line 198, Named "release"
        --[[ Upvalues[8]:
            [1]: var84_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: any_Create_result1_upvr (readonly)
            [5]: tbl_2_upvr (readonly)
            [6]: var78_upvr (readonly)
            [7]: var65_upvr (readonly)
            [8]: tbl_3_upvr (readonly)
        ]]
        var84_upvw = true
        arg1._states._charging = false
        arg1._states._released = true
        any_new_result1_upvr:DoCleaning()
        any_Create_result1_upvr:Pause()
        tbl_2_upvr.power = tbl_2_upvr.minPower + (tbl_2_upvr.maxPower - tbl_2_upvr.minPower) * var78_upvr._power.Main.Container.Power.Size.X.Scale
        arg1._model.Animation:FireServer(_G._references.Main.animations["Set Piece"]["Goal Kick"][var65_upvr].Kick)
        task.wait(arg1._player:GetNetworkPing())
        _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = 60;
        }):Play()
        for _, v_7 in next, {"_controls", "_take"} do
            _G._services.TweenService:Create(var78_upvr[v_7], TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Size = UDim2.new(0, 0, 0, var78_upvr[v_7].Size.Y.Offset);
            }):Play()
        end
        any_new_result1_upvr._renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 216
            --[[ Upvalues[4]:
                [1]: arg1 (copied, readonly)
                [2]: var65_upvr (copied, readonly)
                [3]: tbl_2_upvr (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
            ]]
            if arg1._model and arg1._model:FindFirstChild("Ball") then
                if var65_upvr == 'R' and (arg1._model.Ball.Position - arg1._character.RightLowerLeg.Position).Magnitude <= tbl_2_upvr.minDistance or (arg1._model.Ball.Position - arg1._character.LeftLowerLeg.Position).Magnitude <= tbl_2_upvr.minDistance then
                    any_new_result1_upvr:DoCleaning()
                    local Folder = Instance.new("Folder")
                    Folder.Name = "react"
                    local ObjectValue = Instance.new("ObjectValue", Folder)
                    ObjectValue.Name = "ball"
                    ObjectValue.Value = arg1._ball
                    local Vector3Value_2 = Instance.new("Vector3Value", Folder)
                    Vector3Value_2.Name = "vector"
                    if tbl_2_upvr.mode == "Low Pass" then
                        local var107 = tbl_2_upvr
                        var107.power *= 1.2
                        Vector3Value_2.Value = workspace.CurrentCamera.CFrame.LookVector * tbl_2_upvr.power + Vector3.new(0, (2) * ((tbl_2_upvr.power - tbl_2_upvr.minPower) / (tbl_2_upvr.maxPower - tbl_2_upvr.minPower)), 0) + Vector3.new(0, tbl_2_upvr.y * 7, 0) + Vector3.new(0, 0, 0)
                    else
                        Vector3Value_2.Value = workspace.CurrentCamera.CFrame.LookVector * tbl_2_upvr.power + Vector3.new(0, 45 + (45) * ((tbl_2_upvr.power - tbl_2_upvr.minPower) / (tbl_2_upvr.maxPower - tbl_2_upvr.minPower)), 0) + Vector3.new(0, tbl_2_upvr.y * 7, 0) + Vector3.new(0, 0, 0)
                    end
                    local Vector3Value = Instance.new("Vector3Value", Folder)
                    Vector3Value.Name = "maxForce"
                    Vector3Value.Value = Vector3.new(10000, 10000, 10000)
                    local BoolValue_3 = Instance.new("BoolValue", Folder)
                    BoolValue_3.Name = "curve"
                    BoolValue_3.Value = true
                    local BoolValue_2 = Instance.new("BoolValue", Folder)
                    BoolValue_2.Name = "ignoreReactDecline"
                    BoolValue_2.Value = true
                    local StringValue_2 = Instance.new("StringValue", Folder)
                    StringValue_2.Name = "curveType"
                    if tbl_2_upvr.mode == "Inside Foot Curled" then
                        if var65_upvr == 'R' then
                            StringValue_2.Value = "left"
                        else
                            StringValue_2.Value = "right"
                        end
                    elseif tbl_2_upvr.mode == "Outside Foot Curled" then
                        if var65_upvr == 'R' then
                            StringValue_2.Value = "right"
                        else
                            StringValue_2.Value = "left"
                        end
                    elseif tbl_2_upvr.mode == "No Curl" then
                        StringValue_2.Value = "none"
                    end
                    local StringValue = Instance.new("StringValue", Folder)
                    StringValue.Name = "spinType"
                    StringValue.Value = "topspin"
                    local BoolValue = Instance.new("BoolValue", Folder)
                    BoolValue.Name = "grassEffect"
                    BoolValue.Value = true
                    Folder.Parent = arg1._player
                    Folder:SetAttribute("loaded", true)
                end
            end
        end)
        task.delay(0.3, function() -- Line 286
            --[[ Upvalues[1]:
                [1]: tbl_3_upvr (copied, readonly)
            ]]
            tbl_3_upvr._idle:Stop(0.1)
        end)
        task.wait(3.8)
        arg1._character.Humanoid.AutoRotate = true
        if arg1._model:FindFirstChild("Clear") then
            arg1._model.Clear:FireServer()
        end
        arg1:clear()
    end
    for _, v_8_upvr in next, var78_upvr._controls.Main.Container.Container:GetChildren() do
        if v_8_upvr and v_8_upvr:IsA("Frame") then
            any_new_result1_upvr[v_8_upvr.Name.."_mouseButton1Click"] = v_8_upvr.Button.MouseButton1Click:Connect(function() -- Line 301
                --[[ Upvalues[3]:
                    [1]: tbl_2_upvr (readonly)
                    [2]: v_8_upvr (readonly)
                    [3]: var78_upvr (readonly)
                ]]
                _G._references.Main.sounds.UI.Click:Play()
                tbl_2_upvr.mode = v_8_upvr.Name
                var78_upvr._take.Main.Container.Label.Text = string.upper(tbl_2_upvr.mode)
            end)
        end
    end
    task.delay(30, function() -- Line 309
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: any_Create_result1_upvr (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: tbl_2_upvr (readonly)
            [5]: release_upvr (readonly)
        ]]
        if not arg1._states._charging and not arg1._states._released and arg1._model and arg1._model.Parent then
            arg1._states._charging = true
            any_Create_result1_upvr:Play()
            any_new_result1_upvr:DoCleaning()
            task.wait(tbl_2_upvr.chargeTime)
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 320
        --[[ Upvalues[4]:
            [1]: tbl_2_upvr (readonly)
            [2]: var78_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: any_Create_result1_upvr (readonly)
        ]]
        if arg1_2.KeyCode == Enum.KeyCode.A then
            tbl_2_upvr.directions.left = true
        else
            if arg1_2.KeyCode == Enum.KeyCode.D then
                tbl_2_upvr.directions.right = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Two or arg1_2.KeyCode == Enum.KeyCode.ButtonL2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_2_upvr.mode = "Inside Foot Curled"
                var78_upvr._take.Main.Container.Label.Text = string.upper(tbl_2_upvr.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Three or arg1_2.KeyCode == Enum.KeyCode.ButtonR2 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_2_upvr.mode = "Outside Foot Curled"
                var78_upvr._take.Main.Container.Label.Text = string.upper(tbl_2_upvr.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.One or arg1_2.KeyCode == Enum.KeyCode.ButtonL1 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_2_upvr.mode = "No Curl"
                var78_upvr._take.Main.Container.Label.Text = string.upper(tbl_2_upvr.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Four or arg1_2.KeyCode == Enum.KeyCode.ButtonR1 then
                _G._references.Main.sounds.UI.Click:Play()
                tbl_2_upvr.mode = "Low Pass"
                var78_upvr._take.Main.Container.Label.Text = string.upper(tbl_2_upvr.mode)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Space or arg1_2.KeyCode == Enum.KeyCode.ButtonX or not arg2 then
                arg1._states._charging = true
                any_Create_result1_upvr:Play()
            end
        end
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 347
        --[[ Upvalues[2]:
            [1]: tbl_2_upvr (readonly)
            [2]: release_upvr (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.A then
            tbl_2_upvr.directions.left = false
        else
            if arg1_3.KeyCode == Enum.KeyCode.D then
                tbl_2_upvr.directions.right = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Space or arg1_3.KeyCode == Enum.KeyCode.ButtonX or not arg2 then
                release_upvr()
            end
        end
    end)
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_4, arg2) -- Line 357
        --[[ Upvalues[1]:
            [1]: tbl_2_upvr (readonly)
        ]]
        if arg1_4.KeyCode == Enum.KeyCode.Thumbstick1 then
            if 0.7 <= arg1_4.Position.X then
                tbl_2_upvr.directions.right = true
                tbl_2_upvr.directions.left = false
            elseif arg1_4.Position.X <= -0.7 then
                tbl_2_upvr.directions.right = false
                tbl_2_upvr.directions.left = true
            end
            if arg1_4.Position.X < 0.35 and -0.35 < arg1_4.Position.X and arg1_4.Position.Y < 0.35 and -0.35 < arg1_4.Position.Y then
                tbl_2_upvr.directions.right = false
                tbl_2_upvr.directions.left = false
            end
        end
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseMove = arg1._mouse.Move:Connect(function() -- Line 375
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_2_upvr (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position)
                local var124 = any_WorldToViewportPoint_result1.X - tbl_2_upvr.lastMousePosition.X
                tbl_2_upvr.lastMousePosition = any_WorldToViewportPoint_result1
                if 1 <= var124 then
                    tbl_2_upvr.directions.right = true
                    tbl_2_upvr.directions.left = false
                    return
                end
                if var124 <= -1 then
                    tbl_2_upvr.directions.right = false
                    tbl_2_upvr.directions.left = true
                    return
                end
                if var124 < 1 and -1 < var124 then
                    tbl_2_upvr.directions.right = false
                    tbl_2_upvr.directions.left = false
                end
            end
        end)
        any_new_result1_upvr._touchEnded = _G._services.UserInputService.TouchEnded:Connect(function(arg1_5, arg2) -- Line 395
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_2_upvr (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                tbl_2_upvr.directions.right = false
                tbl_2_upvr.directions.left = false
            end
        end)
        any_new_result1_upvr._mouseButton1Down = var78_upvr._take.Main.Container.Bind.Button.MouseButton1Down:Connect(function() -- Line 402
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: any_Create_result1_upvr (readonly)
            ]]
            arg1._states.charging = true
            any_Create_result1_upvr:Play()
        end)
        any_new_result1_upvr._mouseButton1Up = var78_upvr._take.Main.Container.Bind.Button.MouseButton1Up:Connect(function() -- Line 407
            --[[ Upvalues[1]:
                [1]: release_upvr (readonly)
            ]]
            release_upvr()
        end)
    end
    local tbl_upvr = {}
    any_new_result1_upvr._updateCFrame = _G._services.RunService.RenderStepped:Connect(function() -- Line 412
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr (readonly)
            [3]: var65_upvr (readonly)
        ]]
        arg1._model.Overlay.Take.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._take
        arg1._model.Overlay.Controls.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._controls
        arg1._model.Overlay.Power.CFrame = workspace.CurrentCamera.CFrame * tbl_upvr._power
        arg1._character.Humanoid.AutoRotate = false
        if var65_upvr == 'R' then
            arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        else
            arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        end
    end)
    local any_ToObjectSpace_result1_upvr = arg1._model.Origin.CFrame:ToObjectSpace(arg1._model.Camera.CFrame)
    task.spawn(function() -- Line 425
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: tbl_2_upvr (readonly)
            [3]: any_ToObjectSpace_result1_upvr (readonly)
            [4]: NumberValue_upvr (readonly)
        ]]
        while not arg1._states._charging and not arg1._states._released do
            if tbl_2_upvr.directions.right and tbl_2_upvr.x + tbl_2_upvr.increaseRate <= tbl_2_upvr.limits.x.right then
                local var132 = tbl_2_upvr
                var132.x += tbl_2_upvr.increaseRate
            end
            if tbl_2_upvr.directions.left and tbl_2_upvr.limits.x.left <= tbl_2_upvr.x - tbl_2_upvr.increaseRate then
                local var133 = tbl_2_upvr
                var133.x -= tbl_2_upvr.increaseRate
            end
            if not arg1._player.PlayerScripts.replay:FindFirstChildWhichIsA("ValueBase") then
                _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    CFrame = arg1._model.Origin.CFrame * CFrame.fromEulerAnglesXYZ(0, -math.rad(tbl_2_upvr.x * 5), 0) * any_ToObjectSpace_result1_upvr;
                }):Play()
            end
            _G._services.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Value = tbl_2_upvr.y;
            }):Play()
            task.wait(0.05)
        end
    end)
    -- KONSTANTERROR: [250] 154. Error Block 71 end (CF ANALYSIS FAILED)
end
function module_upvr.clear(arg1) -- Line 453
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._net then
        local _net = arg1._net
        _G._services.TweenService:Create(_net.Net.Net, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 0.01;
        }):Play()
        _G._services.TweenService:Create(_net.Frame, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 0;
        }):Play()
        _G._services.TweenService:Create(_net.Support["Support Main"], TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 0;
        }):Play()
        _G._services.TweenService:Create(_net.Support["Support Top"], TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 0;
        }):Play()
    end
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if _G._services.UserInputService.TouchEnabled then
        arg1._player.PlayerGui.main.mobile.Visible = true
    elseif _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    arg1._maid:DoCleaning()
    arg1._root:SetAttribute("globalOverride", false)
end
return module_upvr
ModuleScript Penalty ReplicatedStorage.engine.classes.Penalty
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:50
-- Luau version 6, Types version 3
-- Time taken: 0.000867 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Penalty.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:52
-- Luau version 6, Types version 3
-- Time taken: 0.024015 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    assert(arg1, "Penalty.server | dataModel 'player' expected, got "..typeof(arg1))
    local var2
    if not arg2 then return end
    var2 = _G._references.Main.admin
    if not var2.positions:FindFirstChild(string.upper(arg2)) then return end
    var2 = _G._references
    var2 = arg1.Character
    if not var2 then
        var2 = arg1.CharacterAdded:Wait()
    end
    local var3
    if arg2 and _G._references.Main.admin.positions:FindFirstChild(string.upper(arg2)) then
        var3 = _G._references.Main.admin.positions[string.upper(arg2)].Position.X
        local var4 = _G._references.Main.admin.positions[string.upper(arg2)]
    end
    local clone = _G._references.Main["set pieces"].Penalty:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Ball.Transparency = 1
    clone:SetPrimaryPartCFrame(CFrame.new(Vector3.new(var3, clone.Primary.Position.Y, _G._references.Main.admin.positions[string.upper(arg2)].Position.Z)) * CFrame.Angles(var4.CFrame:ToOrientation()))
    if string.find(var4.Name, 'H') then
        clone.Team.Value = "home"
    elseif string.find(var4.Name, 'A') then
        clone.Team.Value = "away"
    end
    local module = {}
    module._player = arg1
    module._character = var2
    module._profile = var2.Profiles:WaitForChild(tostring(arg1.UserId), 100)
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 49
    assert(arg1._model, "Penalty.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Penalty.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = script.Parent.Parent.Name
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue)
    arg1:initConnections()
    arg1._character.Archivable = false
    local BoolValue_4 = Instance.new("BoolValue", arg1._player)
    BoolValue_4.Name = "Teleport"
    BoolValue_4.Value = true
    _G._services.Debris:AddItem(BoolValue_4, 3)
    if arg1._profile.settings.Visual["Strong Foot"].Value == "Right" then
        arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    else
        arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    end
    if workspace.game.referee.rigs:FindFirstChild("main") then
        local BoolValue_5 = Instance.new("BoolValue")
        BoolValue_5.Name = "Referee"
        BoolValue_5.Value = true
        BoolValue_5.Parent = _G._references.Main.config.Override
        arg1._maid:GiveTask(BoolValue_5)
        workspace.game.referee.rigs.main.PrimaryPart.RootRigAttachment.AlignOrientation.CFrame = workspace.game.referee.teleport.penalty[arg1._model.Team.Value].CFrame
        workspace.game.referee.rigs.main:SetPrimaryPartCFrame(workspace.game.referee.teleport.penalty[arg1._model.Team.Value].CFrame)
    end
    if _G._references.Main.config.AutoRall.Value then
        for _, v in next, workspace.game.balls.spawns:GetChildren() do
            if v then
                v:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Ball.CFrame
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    for _, v_2 in next, _G._references.Main.config.Override:GetChildren() do
        if v_2 and v_2.Name == "Break" then
            v_2:Destroy()
        end
    end
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "penalty", arg1._model, CFrameValue)
end
function module_upvr.initConnections(arg1) -- Line 130
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    local RemoteEvent_2 = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent_2.Name = "Animation"
    Instance.new("RemoteEvent", arg1._model).Name = "Collide"
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "penalty")
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 145
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_2) -- Line 149
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onAnimationRemoteEvent = RemoteEvent_2.OnServerEvent:Connect(function(arg1_3, arg2) -- Line 161
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var31
        if arg1_3 == arg1._player then
            var31 = arg1_3.Character
            var31 = arg2
            local any_LoadAnimation_result1_2 = var31.Humanoid.Animator:LoadAnimation(var31)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
            var31 = true
            arg1._animation = var31
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var31 = any_LoadAnimation_result1_2.Length - 0.6
                return var31
            end
            if 0.1 > any_LoadAnimation_result1_2.Length or not INLINED_2() then
                var31 = 3.85
            end
            task.wait(var31)
            if arg1_3 and arg1_3.Character then
                var31 = arg1._maid
                if var31._onAnimationRemoteEvent then
                    var31 = "BoolValue"
                    local any = Instance.new(var31, arg1._player)
                    var31 = "Teleport"
                    any.Name = var31
                    var31 = true
                    any.Value = var31
                    var31 = _G._services.Debris:AddItem
                    var31(any, 3)
                    var31 = any_LoadAnimation_result1_2:AdjustSpeed
                    var31(0)
                    var31 = arg1_3.Character:SetPrimaryPartCFrame
                    var31(arg1_3.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                    var31 = any_LoadAnimation_result1_2:Stop
                    var31(0)
                    var31 = arg1
                    var31._animation = nil
                end
            end
        end
    end)
    arg1._maid._onCollideRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_4) -- Line 184
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 == arg1._player then
            arg1._model.Detector.CanCollide = false
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 190
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_5) -- Line 194
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_5 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_6) -- Line 200
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6.Parent and arg1_6.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_6:FindFirstAncestor("manager") and not arg1_6:FindFirstAncestor("referee") and arg1_6.Parent ~= arg1._character and not arg1._touch[arg1_6.Parent.Name] and arg1._model.Detector.CanCollide then
            local any_GetPlayerFromCharacter_result1 = _G._services.Players:GetPlayerFromCharacter(arg1_6.Parent)
            if any_GetPlayerFromCharacter_result1 and any_GetPlayerFromCharacter_result1.Team then
                arg1._touch[arg1_6.Parent.Name] = true
                local BoolValue_6 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                BoolValue_6.Name = "Teleport"
                BoolValue_6.Value = true
                _G._services.Debris:AddItem(BoolValue_6, 3)
                if arg1._model.Team.Value == "home" and any_GetPlayerFromCharacter_result1.TeamColor == BrickColor.new("Navy blue") or arg1._model.Team.Value == "away" and any_GetPlayerFromCharacter_result1.TeamColor == BrickColor.new("Maroon") then
                    arg1_6.Parent:SetPrimaryPartCFrame(arg1._model.GK.CFrame)
                else
                    arg1_6.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                end
                task.delay(0.5, function() -- Line 217
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_6 (readonly)
                    ]]
                    arg1._touch[arg1_6.Parent.Name] = false
                end)
            end
        end
    end
    local function onTouchGK(arg1_7) -- Line 224
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_7 and arg1_7.Parent and arg1_7.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_7:FindFirstAncestor("manager") and not arg1_7:FindFirstAncestor("referee") and arg1_7.Parent ~= arg1._character and not arg1._touch[arg1_7.Parent.Name] and arg1._model.Detector.CanCollide then
            local any_GetPlayerFromCharacter_result1_3 = _G._services.Players:GetPlayerFromCharacter(arg1_7.Parent)
            if any_GetPlayerFromCharacter_result1_3 and any_GetPlayerFromCharacter_result1_3.Team and (any_GetPlayerFromCharacter_result1_3.TeamColor == BrickColor.new("Storm blue") or any_GetPlayerFromCharacter_result1_3.TeamColor == BrickColor.new("Crimson")) then
                arg1._touch[arg1_7.Parent.Name] = true
                local BoolValue_2 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1_3)
                BoolValue_2.Name = "Teleport"
                BoolValue_2.Value = true
                _G._services.Debris:AddItem(BoolValue_2, 3)
                arg1_7.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                task.delay(0.5, function() -- Line 237
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_7 (readonly)
                    ]]
                    arg1._touch[arg1_7.Parent.Name] = false
                end)
            end
        end
    end
    for _, v_3 in next, arg1._model.Area:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_3.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_3.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid._gkTouched = arg1._model.Box.Touched:Connect(onTouchGK)
    arg1._maid._gkTouchEnded = arg1._model.Box.TouchEnded:Connect(onTouchGK)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    arg1._maid:GiveTask(RemoteEvent_2)
end
function module_upvr.clear(arg1, arg2) -- Line 264
    if arg1._character and arg1._character:FindFirstChild("HumanoidRootPart") then
        arg1._character.HumanoidRootPart.Anchored = false
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
    end
    for _, v_4 in next, _G._references.Main.config.Override:GetChildren() do
        if v_4 and (v_4.Name == "DisableFouls" or v_4.Name == "RTP") then
            v_4:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_upvr
ModuleScript client ReplicatedStorage.engine.classes.Penalty.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:54
-- Luau version 6, Types version 3
-- Time taken: 0.050271 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    assert(arg1, "Penalty.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Penalty.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._formatNumber = _G._engine:load("FormatNumber", "utils")
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    local tbl_upvr_3 = {}
    local var18_upvr
    for _, v in var18_upvr, arg1._model.Overlay:GetChildren() do
        if v and (v:FindFirstChildWhichIsA("BillboardGui") or v:FindFirstChildWhichIsA("SurfaceGui")) then
            local class_BillboardGui = v:FindFirstChildWhichIsA("BillboardGui")
            if not class_BillboardGui then
                class_BillboardGui = v:FindFirstChildWhichIsA("SurfaceGui")
            end
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v
            tbl_upvr_3['_'..string.lower(v.Name)] = class_BillboardGui
        end
    end
    var18_upvr = tbl_upvr_3._aim
    var18_upvr.Enabled = true
    var18_upvr = tbl_upvr_3._composure
    var18_upvr.Enabled = true
    var18_upvr = _G._services.UserInputService.TouchEnabled
    if var18_upvr then
        var18_upvr = tbl_upvr_3._mobile.Size.X.Offset
        tbl_upvr_3._mobile.Enabled = true
        tbl_upvr_3._mobile.Size = UDim2.new(0, 0, 0, tbl_upvr_3._mobile.Size.Y.Offset)
        _G._services.TweenService:Create(tbl_upvr_3._mobile, TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, var18_upvr, 0, tbl_upvr_3._mobile.Size.Y.Offset);
        }):Play()
    end
    var18_upvr = arg1._player.PlayerGui:FindFirstChild("UI")
    if var18_upvr then
        var18_upvr = arg1._player.PlayerGui.UI
        var18_upvr.Enabled = false
    end
    var18_upvr = arg1._player.PlayerGui.main.mobile
    var18_upvr.Visible = false
    var18_upvr = arg1._player.PlayerGui.main.backpack
    var18_upvr.Visible = false
    var18_upvr = arg1._player.PlayerGui.main.gamepad
    var18_upvr.Visible = false
    var18_upvr = next
    for _, v_2 in var18_upvr, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_2 and v_2:IsA("Frame") then
            v_2.Visible = false
        end
    end
    if _G._references.Profile.settings.Visual["Strong Foot"].Value == "Right" then
        var18_upvr = 'R'
    else
        var18_upvr = 'L'
    end
    local tbl_upvr = {
        _idle = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Idle);
        _kick = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Kick);
    }
    tbl_upvr._idle.Priority = Enum.AnimationPriority.Action3
    tbl_upvr._idle.Looped = true
    tbl_upvr._idle:Play()
    tbl_upvr._kick.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 87
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 93
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var26_upvw = false
    workspace.CurrentCamera.FieldOfView = 45
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 105
        --[[ Upvalues[1]:
            [1]: var26_upvw (read and write)
        ]]
        if not var26_upvw then
            workspace.CurrentCamera.FieldOfView = 45
        end
    end)
    local tbl_upvr_2 = {
        minDistance = 1.5;
        increaseRate = 0.3;
        x = 0;
        y = 0;
        composure = {
            pressed = false;
            composed = false;
        };
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            x = {
                right = 3;
                left = -3;
            };
            y = {
                up = 1;
                down = -0.7;
            };
        };
        directions = {
            up = false;
            down = false;
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(arg1._model.Overlay.Composure, TweenInfo.new(0.8, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = Vector3.new(3, arg1._model.Overlay.Composure.Size.Y, 3);
    })
    arg1._character.Humanoid:UnequipTools()
    task.spawn(function() -- Line 153
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: any_Create_result1_upvr (readonly)
        ]]
        while not tbl_upvr_2.composure.pressed and arg1._model and arg1._model.Parent do
            arg1._model.Overlay.Composure.Size = Vector3.new(29, arg1._model.Overlay.Composure.Size.Y, 29)
            any_Create_result1_upvr:Play()
            task.wait(0.815)
        end
    end)
    local function release_upvr() -- Line 166, Named "release"
        --[[ Upvalues[8]:
            [1]: var26_upvw (read and write)
            [2]: tbl_upvr_2 (readonly)
            [3]: any_Create_result1_upvr (readonly)
            [4]: arg1 (readonly)
            [5]: tbl_upvr_3 (readonly)
            [6]: var18_upvr (readonly)
            [7]: any_new_result1_upvr (readonly)
            [8]: tbl_upvr (readonly)
        ]]
        var26_upvw = true
        tbl_upvr_2.composure.pressed = true
        any_Create_result1_upvr:Pause()
        local var38
        if arg1._model.Overlay.Composure.Size.X <= var38 then
            var38 = tbl_upvr_2
            var38 = true
            var38.composure.composed = var38
        else
            var38 = tbl_upvr_2
            var38 = false
            var38.composure.composed = var38
        end
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._composure.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundTransparency = 1;
        }):Play()
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._composure.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        var38 = tbl_upvr_2.composure
        if var38.composed then
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = Color3.fromRGB(0, 255, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(0, 255, 0);
            }):Play()
        else
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = Color3.fromRGB(255, 0, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(255, 0, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(arg1._model.Overlay.Aim, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Size = Vector3.new(20, 20, arg1._model.Overlay.Aim.Size.Z);
            }):Play()
        end
        var38 = arg1._model
        var38.Animation:FireServer(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Kick)
        var38 = arg1._player:GetNetworkPing()
        task.wait(var38)
        var38 = arg1._model.Overlay.Composure.Size
        var38 = 10
        if var38.X <= var38 then
            var38 = tbl_upvr_3._composure
            var38 = Color3.new(0, 255, 0)
            var38.Main.BackgroundColor3 = var38
            var38 = tbl_upvr_3._composure.Main
            var38 = Color3.new(0, 255, 0)
            var38.UIStroke.Color = var38
        else
            var38 = tbl_upvr_3._composure
            var38 = Color3.new(255, 0, 0)
            var38.Main.BackgroundColor3 = var38
            var38 = tbl_upvr_3._composure.Main
            var38 = Color3.new(255, 0, 0)
            var38.UIStroke.Color = var38
        end
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._mobile, TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, 0, 0, tbl_upvr_3._mobile.Size.Y.Offset);
        }):Play()
        var38 = _G._services
        var38.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = 35;
        }):Play()
        var38 = _G._services.RunService.RenderStepped
        var38 = var38:Connect(function() -- Line 205
            --[[ Upvalues[4]:
                [1]: arg1 (copied, readonly)
                [2]: var18_upvr (copied, readonly)
                [3]: tbl_upvr_2 (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
            ]]
            if arg1._model and arg1._model:FindFirstChild("Ball") then
                local var49
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var49 = tbl_upvr_2.minDistance
                    var49 = arg1._model.Ball.Position - arg1._character.RightLowerLeg.Position
                    return var49.Magnitude <= var49
                end
                local function INLINED_2() -- Internal function, doesn't exist in bytecode
                    var49 = tbl_upvr_2.minDistance
                    var49 = arg1._model.Ball.Position - arg1._character.LeftLowerLeg.Position
                    return var49.Magnitude <= var49
                end
                if var18_upvr == 'R' and INLINED() or INLINED_2() then
                    any_new_result1_upvr:DoCleaning()
                    var49 = workspace.CurrentCamera
                    var49 = Vector3.new(0, 0, 0)
                    if not tbl_upvr_2.composure.composed then
                        local randint = math.random(-30, 30)
                        if randint <= 0 then
                            randint = math.clamp(randint, -30, -10)
                        else
                            randint = math.clamp(randint, 10, 30)
                        end
                        var49 = workspace.CurrentCamera.CFrame.RightVector * randint + workspace.CurrentCamera.CFrame.UpVector * math.clamp(randint, 10, 1000)
                    end
                    arg1._model.Collide:FireServer()
                    local Folder = Instance.new("Folder")
                    Folder.Name = "react"
                    local ObjectValue = Instance.new("ObjectValue", Folder)
                    ObjectValue.Name = "ball"
                    ObjectValue.Value = arg1._ball
                    local Vector3Value_2 = Instance.new("Vector3Value", Folder)
                    Vector3Value_2.Name = "vector"
                    Vector3Value_2.Value = (arg1._model.Overlay.Aim.Position + Vector3.new(0, 1.75, 0) - arg1._model.Ball.Position).Unit * Vector3.new(80, 100, 80) + var49
                    local Vector3Value = Instance.new("Vector3Value", Folder)
                    Vector3Value.Name = "maxForce"
                    Vector3Value.Value = Vector3.new(10000, 10000, 10000)
                    local BoolValue_4 = Instance.new("BoolValue", Folder)
                    BoolValue_4.Name = "ignoreReactDecline"
                    BoolValue_4.Value = true
                    local BoolValue_3 = Instance.new("BoolValue", Folder)
                    BoolValue_3.Name = "penalty"
                    BoolValue_3.Value = true
                    local BoolValue_2 = Instance.new("BoolValue", Folder)
                    BoolValue_2.Name = "curve"
                    BoolValue_2.Value = true
                    local StringValue = Instance.new("StringValue", Folder)
                    StringValue.Name = "curveType"
                    StringValue.Value = "none"
                    local StringValue_2 = Instance.new("StringValue", Folder)
                    StringValue_2.Name = "spinType"
                    StringValue_2.Value = "topspin"
                    local BoolValue = Instance.new("BoolValue", Folder)
                    BoolValue.Name = "grassEffect"
                    BoolValue.Value = true
                    Folder.Parent = arg1._player
                    Folder:SetAttribute("loaded", true)
                end
            end
        end)
        any_new_result1_upvr._renderStepped = var38
        var38 = 0.3
        task.delay(var38, function() -- Line 272
            --[[ Upvalues[1]:
                [1]: tbl_upvr (copied, readonly)
            ]]
            tbl_upvr._idle:Stop(0.1)
        end)
        local function INLINED_3() -- Internal function, doesn't exist in bytecode
            var38 = tbl_upvr._kick.Length - 0.6
            return var38
        end
        if 0.1 > tbl_upvr._kick.Length or not INLINED_3() then
            var38 = 3.85
        end
        task.wait(var38)
        var38 = arg1._character
        var38 = true
        var38.Humanoid.AutoRotate = var38
        var38 = arg1
        if var38._model:FindFirstChild("Clear") then
            var38 = arg1._model
            var38.Clear:FireServer()
        end
        arg1:clear()
    end
    task.delay(30, function() -- Line 285
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: release_upvr (readonly)
        ]]
        if not tbl_upvr_2.composure.pressed and arg1._model and arg1._model.Parent then
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 291
        --[[ Upvalues[4]:
            [1]: tbl_upvr_2 (readonly)
            [2]: any_Create_result1_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: release_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 4. Error Block 2 start (CF ANALYSIS FAILED)
        tbl_upvr_2.directions.up = true
        do
            return
        end
        -- KONSTANTERROR: [6] 4. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [13] 9. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [13] 9. Error Block 3 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 334
        --[[ Upvalues[1]:
            [1]: tbl_upvr_2 (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.W then
            tbl_upvr_2.directions.up = false
        else
            if arg1_3.KeyCode == Enum.KeyCode.A then
                tbl_upvr_2.directions.left = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.S then
                tbl_upvr_2.directions.down = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.D then
                tbl_upvr_2.directions.right = false
            end
        end
    end)
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_4, arg2) -- Line 346
        --[[ Upvalues[1]:
            [1]: tbl_upvr_2 (readonly)
        ]]
        if arg1_4.KeyCode == Enum.KeyCode.Thumbstick1 then
            if 0.7 <= arg1_4.Position.X then
                tbl_upvr_2.directions.right = true
                tbl_upvr_2.directions.left = false
            elseif arg1_4.Position.X <= -0.7 then
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = true
            end
            if 0.7 <= arg1_4.Position.Y then
                tbl_upvr_2.directions.up = true
                tbl_upvr_2.directions.down = false
            elseif arg1_4.Position.Y <= -0.7 then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = true
            end
            if arg1_4.Position.X < 0.35 and -0.35 < arg1_4.Position.X and arg1_4.Position.Y < 0.35 and -0.35 < arg1_4.Position.Y then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = false
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = false
            end
        end
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseMove = arg1._mouse.Move:Connect(function() -- Line 374
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_2 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position)
                local var68 = any_WorldToViewportPoint_result1.X - tbl_upvr_2.lastMousePosition.X
                local var69 = any_WorldToViewportPoint_result1.Y - tbl_upvr_2.lastMousePosition.Y
                tbl_upvr_2.lastMousePosition = any_WorldToViewportPoint_result1
                if 1 <= var69 then
                    tbl_upvr_2.directions.down = true
                    tbl_upvr_2.directions.up = false
                    return
                end
                if var69 <= -1 then
                    tbl_upvr_2.directions.down = false
                    tbl_upvr_2.directions.up = true
                    return
                end
                if 1 <= var68 then
                    tbl_upvr_2.directions.right = true
                    tbl_upvr_2.directions.left = false
                    return
                end
                if var68 <= -1 then
                    tbl_upvr_2.directions.right = false
                    tbl_upvr_2.directions.left = true
                    return
                end
                if var68 < 1 and -1 < var68 and var69 < 1 and -1 < var69 then
                    tbl_upvr_2.directions.up = false
                    tbl_upvr_2.directions.down = false
                    tbl_upvr_2.directions.right = false
                    tbl_upvr_2.directions.left = false
                end
            end
        end)
        any_new_result1_upvr._touchEnded = _G._services.UserInputService.TouchEnded:Connect(function(arg1_5, arg2) -- Line 403
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_2 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = false
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = false
            end
        end)
        any_new_result1_upvr._mouseButton1Click = tbl_upvr_3._mobile.Main.Container.Bind.Button.MouseButton1Click:Connect(function() -- Line 412
            --[[ Upvalues[4]:
                [1]: any_Create_result1_upvr (readonly)
                [2]: tbl_upvr_2 (readonly)
                [3]: arg1 (readonly)
                [4]: release_upvr (readonly)
            ]]
            any_Create_result1_upvr:Pause()
            tbl_upvr_2.composure.pressed = true
            if arg1._model.Overlay.Composure.Size.X <= 10 then
                tbl_upvr_2.composure.composed = true
            else
                tbl_upvr_2.composure.composed = false
            end
            release_upvr()
        end)
    end
    any_new_result1_upvr._renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 426
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr_3 (readonly)
            [3]: var18_upvr (readonly)
        ]]
        if arg1._model.Overlay.Composure.Size.X <= 10 then
            tbl_upvr_3._composure.Main.BackgroundColor3 = Color3.new(0, 255, 0)
            tbl_upvr_3._composure.Main.UIStroke.Color = Color3.new(0, 255, 0)
        else
            tbl_upvr_3._composure.Main.BackgroundColor3 = Color3.new(255, 0, 0)
            tbl_upvr_3._composure.Main.UIStroke.Color = Color3.new(255, 0, 0)
        end
        arg1._character.Humanoid.AutoRotate = false
        if var18_upvr == 'R' then
            arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        else
            arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        end
    end)
    local CFrame_upvr = arg1._model.Overlay.Aim.CFrame
    task.spawn(function() -- Line 443
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: CFrame_upvr (readonly)
        ]]
        while true do
            if tbl_upvr_2.directions.up and tbl_upvr_2.y + tbl_upvr_2.increaseRate <= tbl_upvr_2.limits.y.up then
                local var75 = tbl_upvr_2
                var75.y += tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.down and tbl_upvr_2.limits.y.down <= tbl_upvr_2.y - tbl_upvr_2.increaseRate then
                local var76 = tbl_upvr_2
                var76.y -= tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.right and tbl_upvr_2.x + tbl_upvr_2.increaseRate <= tbl_upvr_2.limits.x.right then
                local var77 = tbl_upvr_2
                var77.x += tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.left and tbl_upvr_2.limits.x.left <= tbl_upvr_2.x - tbl_upvr_2.increaseRate then
                local var78 = tbl_upvr_2
                var78.x -= tbl_upvr_2.increaseRate
            end
            _G._services.TweenService:Create(arg1._model.Overlay.Aim, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                CFrame = CFrame_upvr * CFrame.new(-tbl_upvr_2.x * 5, tbl_upvr_2.y * 5, 0);
            }):Play()
            task.wait(0.05)
        end
    end)
end
function module_2_upvr.clear(arg1) -- Line 476
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if _G._services.UserInputService.TouchEnabled then
        arg1._player.PlayerGui.main.mobile.Visible = true
    elseif _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    arg1._maid:DoCleaning()
    arg1._root:SetAttribute("globalOverride", false)
end
return module_2_upvr
ModuleScript ThrowIn ReplicatedStorage.engine.classes.ThrowIn
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:55
-- Luau version 6, Types version 3
-- Time taken: 0.001005 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.ThrowIn.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:57
-- Luau version 6, Types version 3
-- Time taken: 0.010765 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2, arg3) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(arg1, "ThrowIn.server | dataModel 'player' expected, got "..typeof(arg1))
    if not arg3 then return end
    local Character = arg1.Character
    if not Character then
        Character = arg1.CharacterAdded:Wait()
    end
    local clone = _G._references.Main["set pieces"]["Throw In"]:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone:SetPrimaryPartCFrame(CFrame.new(arg3) * CFrame.Angles(arg2.CFrame:ToOrientation()))
    local module = {}
    module._player = arg1
    module._character = Character
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 26
    assert(arg1._model, "ThrowIn.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("ThrowIn.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local BoolValue_2 = Instance.new("BoolValue")
    BoolValue_2.Name = script.Parent.Parent.Name
    BoolValue_2.Value = true
    BoolValue_2.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue_2)
    arg1:initConnections()
    local BoolValue_4 = Instance.new("BoolValue", arg1._player)
    BoolValue_4.Name = "Teleport"
    BoolValue_4.Value = true
    _G._services.Debris:AddItem(BoolValue_4, 3)
    arg1._character.Archivable = false
    arg1._character:SetPrimaryPartCFrame(arg1._model.Primary.CFrame)
    if _G._references.Main.config.AutoRall.Value then
        for _, v in next, workspace.game.balls.spawns:GetChildren() do
            if v then
                v:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Primary.CFrame * CFrame.new(0, 0, -2.5)
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    for _, v_2 in next, _G._references.Main.config.Override:GetChildren() do
        if v_2 and v_2.Name == "Break" then
            v_2:Destroy()
        end
    end
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "throwIn", arg1._model, CFrameValue)
end
function module_2_upvr.initConnections(arg1) -- Line 87
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    local BoolValue_3 = Instance.new("BoolValue")
    BoolValue_3.Name = "Throw In"
    BoolValue_3.Value = true
    BoolValue_3.Parent = _G._references.Main.config.Delay
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "default")
    arg1._maid:GiveTask(BoolValue_3)
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 102
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_2) -- Line 106
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 118
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_3) -- Line 122
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_3 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_4) -- Line 128
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 and arg1_4.Parent and arg1_4.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_4:FindFirstAncestor("manager") and not arg1_4:FindFirstAncestor("referee") and arg1_4.Parent ~= arg1._character and not arg1._touch[arg1_4.Parent.Name] then
            arg1._touch[arg1_4.Parent.Name] = true
            if _G._services.Players:GetPlayerFromCharacter(arg1_4.Parent) then
                local BoolValue = Instance.new("BoolValue", _G._services.Players:GetPlayerFromCharacter(arg1_4.Parent))
                BoolValue.Name = "Teleport"
                BoolValue.Value = true
                _G._services.Debris:AddItem(BoolValue, 3)
            end
            arg1_4.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
            task.delay(0.5, function() -- Line 141
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_4 (readonly)
                ]]
                arg1._touch[arg1_4.Parent.Name] = false
            end)
        end
    end
    for _, v_3 in next, arg1._model.Area:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_3.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_3.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
end
function module_2_upvr.clear(arg1) -- Line 163
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "bindMovement", "unfreeze")
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
        if arg1._player.Character then
            arg1._player.Character:SetAttribute("moveTo", nil)
            arg1._player.Character:SetAttribute("freezeMovement", nil)
        end
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    for _, v_4 in next, _G._references.Main.config.Override:GetChildren() do
        if v_4 and v_4.Name == "DisableFouls" then
            v_4:Destroy()
        end
    end
    for _, v_5 in next, _G._references.Main.config.Override:GetChildren() do
        if v_5 and v_5.Name == "RTP" then
            v_5:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_2_upvr
ModuleScript client ReplicatedStorage.engine.classes.ThrowIn.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:56:58
-- Luau version 6, Types version 3
-- Time taken: 0.026243 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    assert(arg1, "ThrowIn.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "ThrowIn.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 29
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    local tbl_4_upvr = {}
    for _, v in next, arg1._model.Overlay:GetChildren() do
        if v and v:FindFirstChildWhichIsA("BillboardGui") then
            local class_BillboardGui = v:FindFirstChildWhichIsA("BillboardGui")
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v
            tbl_4_upvr['_'..string.lower(v.Name)] = class_BillboardGui
        end
    end
    if _G._services.UserInputService.TouchEnabled then
        tbl_4_upvr._take.Enabled = true
        _G._services.UserInputService.ModalEnabled = false
    end
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = false
    end
    arg1._player.PlayerGui.main.mobile.Visible = false
    arg1._player.PlayerGui.main.backpack.Visible = false
    arg1._player.PlayerGui.main.gamepad.Visible = false
    for _, v_2 in next, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_2 and v_2:IsA("Frame") then
            v_2.Visible = false
        end
    end
    local tbl_5_upvr = {
        _throw = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"]["Throw In"].Throw);
    }
    tbl_5_upvr._throw.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._character:SetPrimaryPartCFrame(arg1._model.Primary.CFrame)
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 76
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 82
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var22_upvw = false
    if _G._services.UserInputService.TouchEnabled then
        local Power = arg1._model.Overlay.Power
        Power.CFrame *= CFrame.new(0, -2, 0)
    end
    workspace.CurrentCamera.FieldOfView = 70
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 98
        --[[ Upvalues[1]:
            [1]: var22_upvw (read and write)
        ]]
        if not var22_upvw then
            workspace.CurrentCamera.FieldOfView = 70
        end
    end)
    local tbl_6_upvr = {
        power = 30;
        angle = 0;
        minPower = 20;
        maxPower = 65;
        increaseRate = 1;
        chargeTime = 1;
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            right = 9;
            left = -9;
            angle = 20;
        };
        angles = {
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(tbl_4_upvr._power.Main.Container.Power, TweenInfo.new(tbl_6_upvr.chargeTime, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = UDim2.new(1, 0, 1, 0);
    })
    local any_GetControls_result1 = require(arg1._player.PlayerScripts:WaitForChild("PlayerModule")):GetControls()
    any_GetControls_result1:Disable()
    arg1._controls = any_GetControls_result1
    for _, v_3 in next, arg1._model.Overlay:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            ({})['_'..string.lower(v_3.Name)] = arg1._model.Camera.CFrame:ToObjectSpace(v_3.CFrame)
        end
    end
    local ObjectValue = Instance.new("ObjectValue")
    ObjectValue.Name = "catch"
    ObjectValue.Value = arg1._ball
    ObjectValue.Parent = arg1._player
    local AlignOrientation_upvr = Instance.new("AlignOrientation")
    AlignOrientation_upvr.Mode = Enum.OrientationAlignmentMode.OneAttachment
    AlignOrientation_upvr.Attachment0 = arg1._character.PrimaryPart:FindFirstChild("RootRigAttachment")
    AlignOrientation_upvr.MaxTorque = math.huge
    AlignOrientation_upvr.Responsiveness = 200
    AlignOrientation_upvr.Enabled = true
    AlignOrientation_upvr.RigidityEnabled = true
    AlignOrientation_upvr.ReactionTorqueEnabled = false
    AlignOrientation_upvr.Parent = arg1._character.PrimaryPart:FindFirstChild("RootRigAttachment")
    AlignOrientation_upvr.CFrame = arg1._model.Primary.CFrame
    local NumberValue_upvr = Instance.new("NumberValue")
    NumberValue_upvr.Name = "Angle"
    NumberValue_upvr.Parent = arg1._model
    any_new_result1_upvr:GiveTask(NumberValue_upvr)
    any_new_result1_upvr:GiveTask(AlignOrientation_upvr)
    arg1._character.Humanoid:SetAttribute("moveTo", true)
    arg1._character.Humanoid:UnequipTools()
    local function release_upvr() -- Line 173, Named "release"
        --[[ Upvalues[7]:
            [1]: var22_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (readonly)
            [4]: any_Create_result1_upvr (readonly)
            [5]: tbl_6_upvr (readonly)
            [6]: tbl_4_upvr (readonly)
            [7]: tbl_5_upvr (readonly)
        ]]
        var22_upvw = true
        arg1._states._charging = false
        arg1._states._released = true
        any_new_result1_upvr:DoCleaning()
        any_Create_result1_upvr:Pause()
        tbl_6_upvr.power = tbl_6_upvr.minPower + (tbl_6_upvr.maxPower - tbl_6_upvr.minPower) * tbl_4_upvr._power.Main.Container.Power.Size.X.Scale
        tbl_5_upvr._throw:Play()
        local BoolValue_2 = Instance.new("BoolValue")
        BoolValue_2.Name = "stopAnimation"
        BoolValue_2.Value = true
        BoolValue_2.Parent = arg1._player
        local _
        for _, v_4 in next, {"_take"} do
            _G._services.TweenService:Create(tbl_4_upvr[v_4], TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Size = UDim2.new(0, 0, 0, tbl_4_upvr[v_4].Size.Y.Offset);
            }):Play()
        end
        task.wait(0.4)
        tbl_4_upvr._power.Enabled = false
        local BoolValue = Instance.new("BoolValue")
        BoolValue.Name = "dropBall"
        BoolValue.Value = true
        BoolValue.Parent = arg1._player
        any_new_result1_upvr:DoCleaning()
        for _, v_5 in next, arg1._ball:GetChildren() do
            if v_5 and (v_5:IsA("BodyVelocity") or v_5:IsA("BodyAngularVelocity")) then
                v_5:Destroy()
            end
        end
        local BodyVelocity = Instance.new("BodyVelocity", arg1._ball)
        BodyVelocity.Velocity = arg1._character.PrimaryPart.CFrame.LookVector * tbl_6_upvr.power + Vector3.new(0, (tbl_6_upvr.power - tbl_6_upvr.minPower) / (tbl_6_upvr.maxPower - tbl_6_upvr.minPower) * 25, 0)
        BodyVelocity.MaxForce = Vector3.new(1, 1, 1) * math.huge
        _G._services.Debris:AddItem(BodyVelocity, 0.3)
        if 0.1 > tbl_5_upvr._throw.Length or not (tbl_5_upvr._throw.Length - 0.4) then
        end
        task.wait(0.4)
        arg1._character.Humanoid.AutoRotate = true
        arg1._model.Clear:FireServer()
        arg1:clear()
    end
    task.delay(15, function() -- Line 224
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_4_upvr (readonly)
            [3]: any_Create_result1_upvr (readonly)
            [4]: any_new_result1_upvr (readonly)
            [5]: tbl_6_upvr (readonly)
            [6]: release_upvr (readonly)
        ]]
        if not arg1._states._charging and not arg1._states._released and arg1._model and arg1._model.Parent then
            arg1._states._charging = true
            tbl_4_upvr._power.Enabled = true
            any_Create_result1_upvr:Play()
            any_new_result1_upvr:DoCleaning()
            task.wait(tbl_6_upvr.chargeTime)
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 236
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: tbl_6_upvr (readonly)
            [3]: tbl_4_upvr (readonly)
            [4]: any_Create_result1_upvr (readonly)
        ]]
        if arg1_2.KeyCode == Enum.KeyCode.A then
            arg1._character.Humanoid:MoveTo((arg1._model.Primary.CFrame * CFrame.new(tbl_6_upvr.limits.left, 0, 0)).Position)
        else
            if arg1_2.KeyCode == Enum.KeyCode.D then
                arg1._character.Humanoid:MoveTo((arg1._model.Primary.CFrame * CFrame.new(tbl_6_upvr.limits.right, 0, 0)).Position)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.Space or arg1_2.KeyCode == Enum.KeyCode.ButtonA then
                arg1._states._charging = true
                tbl_4_upvr._power.Enabled = true
                any_Create_result1_upvr:Play()
            end
        end
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 248
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: release_upvr (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.A then
            arg1._character.Humanoid:MoveTo(arg1._character.PrimaryPart.Position)
        else
            if arg1_3.KeyCode == Enum.KeyCode.D then
                arg1._character.Humanoid:MoveTo(arg1._character.PrimaryPart.Position)
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.Space or arg1_3.KeyCode == Enum.KeyCode.ButtonA then
                release_upvr()
            end
        end
    end)
    local var57_upvw
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_4, arg2) -- Line 258
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: tbl_6_upvr (readonly)
            [3]: var57_upvw (read and write)
            [4]: NumberValue_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [91] 57. Error Block 9 start (CF ANALYSIS FAILED)
        arg1._character.Humanoid:MoveTo(arg1._character.PrimaryPart.Position)
        do
            return
        end
        -- KONSTANTERROR: [91] 57. Error Block 9 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [107] 67. Error Block 30 start (CF ANALYSIS FAILED)
        if arg1_4.KeyCode == Enum.KeyCode.Thumbstick2 then
            if 0.7 <= arg1_4.Position.X and not tbl_6_upvr.angles.right then
                var57_upvw = _G._services.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                    Value = -(tbl_6_upvr.limits.angle * 3);
                })
                var57_upvw:Play()
                tbl_6_upvr.angles.right = true
                tbl_6_upvr.angles.left = false
            elseif arg1_4.Position.X <= -0.7 and not tbl_6_upvr.angles.left then
                var57_upvw = _G._services.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                    Value = tbl_6_upvr.limits.angle * 3;
                })
                var57_upvw:Play()
                tbl_6_upvr.angles.right = false
                tbl_6_upvr.angles.left = true
            end
            if arg1_4.Position.X < 0.35 and -0.35 < arg1_4.Position.X then
                tbl_6_upvr.angles.right = false
                tbl_6_upvr.angles.left = false
                if var57_upvw then
                    var57_upvw:Pause()
                end
            end
        end
        -- KONSTANTERROR: [107] 67. Error Block 30 end (CF ANALYSIS FAILED)
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseButton1Down = tbl_4_upvr._take.Main.Container.Bind.Button.MouseButton1Down:Connect(function() -- Line 293
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: tbl_4_upvr (readonly)
                [3]: any_Create_result1_upvr (readonly)
            ]]
            arg1._states.charging = true
            tbl_4_upvr._power.Enabled = true
            any_Create_result1_upvr:Play()
        end)
        any_new_result1_upvr._mouseButton1Up = tbl_4_upvr._take.Main.Container.Bind.Button.MouseButton1Up:Connect(function() -- Line 299
            --[[ Upvalues[1]:
                [1]: release_upvr (readonly)
            ]]
            release_upvr()
        end)
    end
    local tbl_2_upvr = {}
    any_new_result1_upvr._updateCFrame = _G._services.RunService.RenderStepped:Connect(function(arg1_5) -- Line 304
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_2_upvr (readonly)
            [3]: tbl_6_upvr (readonly)
            [4]: tbl_4_upvr (readonly)
            [5]: AlignOrientation_upvr (readonly)
            [6]: NumberValue_upvr (readonly)
        ]]
        arg1._model.Overlay.Take.CFrame = workspace.CurrentCamera.CFrame * tbl_2_upvr._take
        arg1._model.Overlay.Power.CFrame = workspace.CurrentCamera.CFrame * tbl_2_upvr._power
        arg1._character.Humanoid.AutoRotate = false
        if not _G._services.UserInputService.GamepadEnabled and not arg1._states._charging then
            local vector2_2 = Vector2.new(arg1._mouse.X, arg1._mouse.Y)
            local vector2 = Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y / 2)
            local var68 = vector2_2 - vector2
            local function INLINED() -- Internal function, doesn't exist in bytecode
                local any_GetGuiObjectsAtPosition_result1 = _G._references.PlayerGui:GetGuiObjectsAtPosition(vector2_2.X, vector2_2.Y)
                return table.find(any_GetGuiObjectsAtPosition_result1, tbl_4_upvr._take.Main)
            end
            if _G._services.UserInputService.TouchEnabled and (INLINED() or table.find(any_GetGuiObjectsAtPosition_result1, tbl_4_upvr._take.Main.Container.Bind)) then
            else
                AlignOrientation_upvr.CFrame = CFrame.lookAt(arg1._model.Primary.Position, Vector3.new((CFrame.new(arg1._character.PrimaryPart.Position) * CFrame.Angles(arg1._model.Primary.CFrame:ToOrientation()) * CFrame.new(0, 0, -2.5)).Position.X, arg1._character.PrimaryPart.Position.Y, math.clamp(arg1._mouse.Hit.Position.Z, arg1._model.Primary.Position.Z - tbl_6_upvr.limits.angle, arg1._model.Primary.Position.Z + tbl_6_upvr.limits.angle)))
                _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(arg1_5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    CFrame = arg1._model.Camera.CFrame * CFrame.Angles(0, -Vector2.new(var68.Y / vector2.Y * 0.5235987755982988, var68.X / vector2.X * 0.5235987755982988).Y / 5, 0):Lerp(CFrame.lookAt(arg1._model.Camera.Position, arg1._character.PrimaryPart.Position), 0.3);
                }):Play()
            end
        end
        if _G._services.UserInputService.GamepadEnabled and not arg1._states._charging then
            AlignOrientation_upvr.CFrame = arg1._model.Primary.CFrame * CFrame.Angles(0, math.rad(NumberValue_upvr.Value), 0)
            _G._services.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(arg1_5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                CFrame = arg1._model.Camera.CFrame:Lerp(CFrame.lookAt(arg1._model.Camera.Position, arg1._character.PrimaryPart.Position), 0.3);
            }):Play()
        end
    end)
end
function module_2_upvr.clear(arg1) -- Line 334
    -- KONSTANTERROR: [0] 1. Error Block 22 start (CF ANALYSIS FAILED)
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if arg1._controls then
        arg1._controls:Enable()
    end
    if _G._services.UserInputService.TouchEnabled then
        _G._services.UserInputService.ModalEnabled = true
        arg1._player.PlayerGui.main.mobile.Visible = true
        -- KONSTANTWARNING: GOTO [138] #79
    end
    -- KONSTANTERROR: [0] 1. Error Block 22 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [88] 51. Error Block 18 start (CF ANALYSIS FAILED)
    if _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    -- KONSTANTERROR: [88] 51. Error Block 18 end (CF ANALYSIS FAILED)
end
return module_2_upvr
ModuleScript Take ReplicatedStorage.engine.classes.Take
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:00
-- Luau version 6, Types version 3
-- Time taken: 0.001229 seconds

local module = {}
module.__index = module
function module.new(...) -- Line 4
    if _G._services.RunService:IsClient() then
        local any_new_result1_2 = require(script.client).new(...)
        any_new_result1_2:init()
        return any_new_result1_2
    end
    local any_new_result1 = require(script.server).new(...)
    any_new_result1:init()
    return any_new_result1
end
return module
ModuleScript client ReplicatedStorage.engine.classes.Take.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:01
-- Luau version 6, Types version 3
-- Time taken: 0.004264 seconds

local take_2_upvr = _G._references.PlayerGui.main.framework:WaitForChild("take", 100)
local any_CreateGroup_result1_upvr = _G._engine:load("BulkFade", "utils").CreateGroup(take_2_upvr:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut))
any_CreateGroup_result1_upvr:FadeOut()
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 13
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(arg1, string.format("Take.client [new] | instance 'folder' expected, got %s", typeof(arg1)))
    local module = {
        _key = arg1.Name;
    }
    module._folder = arg1
    module._maid = _G._engine:load("Maid").new()
    return setmetatable(module, module_2_upvr)
end
local Profile_upvr = _G._references.Profile
function module_2_upvr.init(arg1) -- Line 23
    --[[ Upvalues[3]:
        [1]: take_2_upvr (readonly)
        [2]: Profile_upvr (readonly)
        [3]: any_CreateGroup_result1_upvr (readonly)
    ]]
    assert(arg1._folder, "Take.client [init] | call .new() before running :init()!")
    take_2_upvr.Position = UDim2.new(0.5, 0, 0.7, 30)
    take_2_upvr.Visible = true
    take_2_upvr.main.bind.Visible = true
    take_2_upvr.main.label.Text = string.format("TAKE %s", string.upper(arg1._folder:GetAttribute("setPiece")))
    take_2_upvr.main.bind.label.Text = string.upper(Profile_upvr.binds.Misc["Take Set Piece"].Value)
    take_2_upvr:TweenPosition(UDim2.new(0.5, 0, 0.7, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.25, true)
    if _G._services.UserInputService.TouchEnabled then
        take_2_upvr.main.bind.Visible = false
    elseif _G._services.UserInputService.GamepadEnabled then
        take_2_upvr.main.bind.label.Text = 'A'
    end
    any_CreateGroup_result1_upvr:FadeIn()
    arg1._maid._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 41
        --[[ Upvalues[2]:
            [1]: Profile_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        local var7
        if var7 == "unknown" then
            var7 = string.lower(arg1_2.UserInputType.Name)
        end
        if not arg2 and var7 == string.lower(Profile_upvr.binds.Misc["Take Set Piece"].Value) then
            arg1:take()
        elseif var7 == "buttona" then
            arg1:take()
        end
    end)
    arg1._maid._mouseButton1Click = take_2_upvr.button.MouseButton1Click:Connect(function() -- Line 55
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:take()
    end)
end
function module_2_upvr.take(arg1) -- Line 60
    assert(arg1._folder, "Take.client [take] | call .new() before running :take()!")
    _G._references.Main.sounds.UI.Click:Play()
    arg1._folder.take:FireServer()
    arg1:clear()
end
function module_2_upvr.clear(arg1) -- Line 68
    --[[ Upvalues[2]:
        [1]: any_CreateGroup_result1_upvr (readonly)
        [2]: take_2_upvr (readonly)
    ]]
    assert(arg1._maid, "Take.client [clear] | call .new() before running :clear()!")
    any_CreateGroup_result1_upvr:FadeOut()
    take_2_upvr:TweenPosition(UDim2.new(0.5, 0, 0.7, 30), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.25, true)
    arg1._maid:DoCleaning()
    task.delay(0.25, function() -- Line 75
        --[[ Upvalues[1]:
            [1]: take_2_upvr (copied, readonly)
        ]]
        take_2_upvr.Visible = false
    end)
end
return module_2_upvr
ModuleScript server ReplicatedStorage.engine.classes.Take.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:03
-- Luau version 6, Types version 3
-- Time taken: 0.005595 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var6
    if typeof(arg1) ~= "table" then
        var6 = false
    else
        var6 = true
    end
    assert(var6, string.format("Take.server [new] | table 'teams' expected, got %s", typeof(arg1)))
    var6 = _G._services
    local any_GenerateGUID_result1 = var6.HttpService:GenerateGUID(false)
    var6 = _G._engine:load("Maid").new()
    local Folder = Instance.new("Folder", script)
    Folder.Name = any_GenerateGUID_result1
    Folder:SetAttribute("setPiece", arg2 or "Set Piece")
    local RemoteEvent = Instance.new("RemoteEvent", Folder)
    RemoteEvent.Name = "take"
    var6:GiveTask(Folder)
    for _, v in next, _G._services.Players:GetPlayers() do
        if v and v.TeamColor and table.find(arg1, v.TeamColor) then
            _G._references.RemoteEvent:FireClient(v, "takePrompt", Folder)
        end
    end
    local module = {}
    module._teams = arg1
    module._folder = Folder
    module._event = RemoteEvent
    module._maid = var6
    module._key = any_GenerateGUID_result1
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 34
    assert(arg1._folder, "Take.server [init] | call .new() before running :init()!")
    arg1._maid.onServerEvent = arg1._event.OnServerEvent:Connect(function(arg1_2) -- Line 37
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 and arg1_2.TeamColor and table.find(arg1._teams, arg1_2.TeamColor) and not script:GetAttribute("taker") then
            arg1._folder:SetAttribute("taker", arg1_2.UserId)
            _G._references.RemoteEvent:FireAllClients("takeClear", arg1._key)
        end
    end)
end
function module_upvr.getTaker(arg1) -- Line 45
    assert(arg1._folder, "Take.server [getTaker] | call .new() before running :getTaker()!")
    if arg1._folder:GetAttribute("taker") then
        for _, v_2 in next, _G._services.Players:GetPlayers() do
            if v_2 and v_2.UserId == arg1._folder:GetAttribute("taker") then
                return v_2
            end
        end
    end
end
function module_upvr.clear(arg1) -- Line 59
    assert(arg1._maid, "Take.server [clear] | call .new() before running :clear()!")
    for _, v_3 in next, _G._services.Players:GetPlayers() do
        if v_3 and v_3.TeamColor and table.find(arg1._teams, v_3.TeamColor) then
            _G._references.RemoteEvent:FireClient(v_3, "takeClear", arg1._key)
        end
    end
    arg1._maid:DoCleaning()
end
return module_upvr
ModuleScript MouseObject ReplicatedStorage.engine.classes.MouseObject
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:05
-- Luau version 6, Types version 3
-- Time taken: 0.002059 seconds

local module = {}
module.__index = module
local _services_upvr = _G._services
local _references_upvr = _G._references
function module.new(arg1) -- Line 8
    --[[ Upvalues[2]:
        [1]: _services_upvr (readonly)
        [2]: _references_upvr (readonly)
    ]]
    local BindableEvent_upvr = Instance.new("BindableEvent")
    local BindableEvent_upvr_2 = Instance.new("BindableEvent")
    local var7_upvw = false
    _services_upvr.UserInputService.InputChanged:Connect(function(arg1_2, arg2) -- Line 13
        --[[ Upvalues[6]:
            [1]: _services_upvr (copied, readonly)
            [2]: _references_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: var7_upvw (read and write)
            [5]: BindableEvent_upvr (readonly)
            [6]: BindableEvent_upvr_2 (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseMovement then
            local any_GetMouseLocation_result1 = _services_upvr.UserInputService:GetMouseLocation()
            local any_GetGuiObjectsAtPosition_result1 = _references_upvr.PlayerGui:GetGuiObjectsAtPosition(any_GetMouseLocation_result1.X, any_GetMouseLocation_result1.Y)
            if any_GetGuiObjectsAtPosition_result1 and table.find(any_GetGuiObjectsAtPosition_result1, arg1) and not var7_upvw then
                var7_upvw = true
                BindableEvent_upvr:Fire()
                return
            end
            if not any_GetGuiObjectsAtPosition_result1 or any_GetGuiObjectsAtPosition_result1 and not table.find(any_GetGuiObjectsAtPosition_result1, arg1) and var7_upvw then
                var7_upvw = false
                BindableEvent_upvr_2:Fire()
            end
        end
    end)
    return BindableEvent_upvr.Event, BindableEvent_upvr_2.Event
end
return module
ModuleScript Replay ReplicatedStorage.engine.classes.Replay
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:06
-- Luau version 6, Types version 3
-- Time taken: 0.024597 seconds

local ipairs_upvr = ipairs
local module = {}
local tbl_upvr = {
    Decal = true;
    Texture = true;
    SpecialMesh = true;
    BlockMesh = true;
    SurfaceAppearance = true;
}
local any_load_result1_upvr = _G._engine:load("Balls")
local function CleanClone_upvr(arg1) -- Line 152, Named "CleanClone"
    --[[ Upvalues[3]:
        [1]: ipairs_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
    ]]
    local clone = arg1:Clone()
    for i, v in ipairs_upvr(clone:GetChildren()) do
        if not tbl_upvr[v.ClassName] then
            v:Destroy()
        end
    end
    if any_load_result1_upvr.IsBall(arg1) then
        i = _G
        v = _G._references.Main.config
        i = v.Ball
        if i._references.Main.balls:FindFirstChild(i.Value) then
            clone.Transparency = 1
            local ObjectValue = Instance.new("ObjectValue", clone)
            ObjectValue.Name = "Reference"
            ObjectValue.Value = arg1
        end
    end
    clone.Anchored = true
    clone.CanCollide = false
    clone.CanQuery = false
    clone.CanTouch = false
    return clone
end
local RenderStepped_upvr = game:GetService("RunService").RenderStepped
local pairs_upvr = pairs
function module.new(arg1) -- Line 176
    --[[ Upvalues[4]:
        [1]: ipairs_upvr (readonly)
        [2]: CleanClone_upvr (readonly)
        [3]: RenderStepped_upvr (readonly)
        [4]: pairs_upvr (readonly)
    ]]
    local var21 = arg1
    if not var21 then
        var21 = {}
    end
    local var22 = var21
    local BindableEvent_upvr = Instance.new("BindableEvent")
    local BindableEvent_upvr_3 = Instance.new("BindableEvent")
    local BindableEvent_upvr_2 = Instance.new("BindableEvent")
    local module_upvw = {
        Playing = false;
        Recording = false;
        Recorded = false;
        Registers = {};
        StaticRegisters = {};
        CloneIndex = {};
        RegisteredObjects = {};
        Frames = {};
        FrameTimes = {};
        FrameCount = 0;
        MaxFrameCount = var22.MaxFrameCount or 20000;
        PlaybackSpeed = 1;
        RecordingTime = 0;
        LastSnapshotTick = 0;
        FPSDelay = 1 / (var22.FPS or 20);
        VPF = Instance.new("Folder");
        RecordConnection = nil;
        PlayConnection = nil;
        RecordingStarted = BindableEvent_upvr_3.Event;
        RecordingStopped = BindableEvent_upvr.Event;
        FrameChanged = BindableEvent_upvr_2.Event;
    }
    module_upvw.VPF.Name = "replay"
    module_upvw.VPF.Parent = workspace
    function module_upvw.Register(arg1_2, arg2, arg3) -- Line 228
        --[[ Upvalues[3]:
            [1]: module_upvw (read and write)
            [2]: ipairs_upvr (copied, readonly)
            [3]: CleanClone_upvr (copied, readonly)
        ]]
        task.spawn(function() -- Line 229
            --[[ Upvalues[5]:
                [1]: module_upvw (copied, read and write)
                [2]: arg2 (readonly)
                [3]: ipairs_upvr (copied, readonly)
                [4]: CleanClone_upvr (copied, readonly)
                [5]: arg3 (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [4] 4. Error Block 2 start (CF ANALYSIS FAILED)
            warn(string.format("Cannot register new objects while recording is in progress [%s]", arg2.Name))
            do
                return
            end
            -- KONSTANTERROR: [4] 4. Error Block 2 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [15] 12. Error Block 3 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [15] 12. Error Block 3 end (CF ANALYSIS FAILED)
        end)
    end
    function module_upvw.StartRecording(arg1_3, arg2) -- Line 435
        --[[ Upvalues[4]:
            [1]: module_upvw (read and write)
            [2]: BindableEvent_upvr_3 (readonly)
            [3]: RenderStepped_upvr (copied, readonly)
            [4]: ipairs_upvr (copied, readonly)
        ]]
        if module_upvw.Recorded then
            warn("Cannot start recording until previous recording is cleared")
        else
            if module_upvw.Recording then
                warn("Cannot start recording since recording is already in progress")
                return
            end
            BindableEvent_upvr_3:Fire()
            module_upvw.Recording = true
            local var29_upvw = arg2 or 30
            local var30_upvw = false
            module_upvw.RecordConnection = RenderStepped_upvr:Connect(function(arg1_4) -- Line 457
                --[[ Upvalues[4]:
                    [1]: module_upvw (copied, read and write)
                    [2]: var29_upvw (read and write)
                    [3]: var30_upvw (read and write)
                    [4]: ipairs_upvr (copied, readonly)
                ]]
                if var29_upvw < module_upvw.RecordingTime + arg1_4 then
                    module_upvw:StopRecording()
                else
                    local var43 = tick() - module_upvw.LastSnapshotTick
                    module_upvw.RecordingTime += arg1_4
                    if module_upvw.FPSDelay <= var43 then
                        if module_upvw.MaxFrameCount <= module_upvw.FrameCount then
                            if not var30_upvw then
                                module_upvw.FrameTimes[module_upvw.FrameCount] = module_upvw.RecordingTime
                                var30_upvw = true
                            else
                                module_upvw.RecordingTime = module_upvw.FrameTimes[module_upvw.FrameCount]
                            end
                            module_upvw.FrameCount = module_upvw.MaxFrameCount
                            for i_5, v_5 in next, module_upvw.Frames do
                                if i_5 and module_upvw.Frames[i_5 - 1] then
                                    local Time = module_upvw.Frames[i_5 - 1].Time
                                    for i_6, v_6 in next, v_5 do
                                        ({})[i_6] = v_6
                                        local var46
                                    end
                                    var46.Time = Time
                                    var46.ID = i_5 - 1
                                    var46.FrameLength = module_upvw.Frames[i_5 - 1].FrameLength
                                    module_upvw.Frames[i_5 - 1] = var46
                                    module_upvw.FrameTimes[i_5 - 1] = Time
                                end
                            end
                        else
                            i_5 = module_upvw
                            module_upvw.FrameCount = i_5.FrameCount + 1
                            i_5 = module_upvw
                            module_upvw.FrameTimes[module_upvw.FrameCount] = i_5.RecordingTime
                        end
                        module_upvw.LastSnapshotTick = tick()
                        local tbl = {}
                        for _, v_7 in ipairs_upvr(module_upvw.Registers) do
                            local Mirror = v_7.Mirror
                            local Original = v_7.Original
                            if Original and Original:IsDescendantOf(game) and Mirror and Mirror:IsDescendantOf(game) then
                                tbl[v_7.Mirror] = {
                                    CFrame = Original.CFrame;
                                    Color = Original.Color;
                                    Transparency = Original.Transparency;
                                }
                            else
                                tbl[v_7.Mirror] = {
                                    Destroyed = true;
                                }
                            end
                        end
                        if module_upvw.Frames[module_upvw.FrameCount - 1] then
                            module_upvw.Frames[module_upvw.FrameCount - 1].FrameLength = var43
                        end
                        if not var30_upvw then
                            module_upvw.Frames[module_upvw.FrameCount] = {
                                ID = module_upvw.FrameCount;
                                Time = module_upvw.RecordingTime;
                                CameraCF = workspace.CurrentCamera.CFrame;
                                ObjectData = tbl;
                            }
                            return
                        end
                        module_upvw.Frames[module_upvw.FrameCount] = {
                            ID = module_upvw.FrameCount;
                            Time = module_upvw.FrameTimes[module_upvw.FrameCount];
                            CameraCF = workspace.CurrentCamera.CFrame;
                            ObjectData = tbl;
                        }
                    end
                end
            end)
        end
    end
    function module_upvw.StopRecording(arg1_5) -- Line 549
        --[[ Upvalues[2]:
            [1]: module_upvw (read and write)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if module_upvw.Recorded then
            warn("Cannot stop recording since it has already stopped")
        else
            if not module_upvw.Recording then
                warn("Cannot stop recording since no recording is in progress")
                return
            end
            module_upvw.RecordConnection:Disconnect()
            module_upvw.Recording = false
            module_upvw.Recorded = true
            BindableEvent_upvr:Fire()
        end
    end
    function module_upvw.ClearRecording(arg1_6) -- Line 572
        --[[ Upvalues[1]:
            [1]: module_upvw (read and write)
        ]]
        if not module_upvw.Recorded then
            warn("Cannot clear nonexistent recording")
        else
            if module_upvw.RecordConnection then
                module_upvw.RecordConnection:Disconnect()
            end
            if module_upvw.PlayConnection then
                module_upvw.PlayConnection:Disconnect()
            end
            module_upvw.FrameCount = 0
            module_upvw.Frames = {}
            module_upvw.FrameTimes = {}
            module_upvw.RecordingTime = 0
            module_upvw.Recorded = false
            module_upvw.Recording = false
            module_upvw.Playing = false
        end
    end
    function module_upvw.ResetRecording(arg1_7) -- Line 597
        --[[ Upvalues[1]:
            [1]: module_upvw (read and write)
        ]]
        if not module_upvw.Recorded then
            warn("Cannot clear nonexistent recording")
        else
            if module_upvw.RecordConnection then
                module_upvw.RecordConnection:Disconnect()
            end
            if module_upvw.PlayConnection then
                module_upvw.PlayConnection:Disconnect()
            end
            module_upvw.FrameCount = 0
            module_upvw.Frames = {}
            module_upvw.FrameTimes = {}
            module_upvw.RecordingTime = 0
            module_upvw.Recorded = false
            module_upvw.Recording = false
            module_upvw.Playing = false
            for _, v_3 in next, module_upvw.Registers do
                if v_3 and v_3.Mirror and v_3.Mirror:IsA("BasePart") and v_3.Mirror:IsDescendantOf(game) then
                    local Mirror_2 = v_3.Mirror
                    Mirror_2.CFrame += Vector3.new(150, -200, 0)
                elseif v_3 and v_3.Mirror and v_3.Mirror:IsA("Model") and v_3.Mirror:IsDescendantOf(game) and v_3.Mirror.PrimaryPart then
                    v_3.Mirror:SetPrimaryPartCFrame(v_3.Mirror.PrimaryPart.CFrame + Vector3.new(150, -200, 0))
                end
            end
        end
    end
    function module_upvw.Destroy(arg1_8) -- Line 629
        --[[ Upvalues[5]:
            [1]: BindableEvent_upvr (readonly)
            [2]: BindableEvent_upvr_3 (readonly)
            [3]: BindableEvent_upvr_2 (readonly)
            [4]: module_upvw (read and write)
            [5]: pairs_upvr (copied, readonly)
        ]]
        BindableEvent_upvr:Destroy()
        BindableEvent_upvr_3:Destroy()
        BindableEvent_upvr_2:Destroy()
        module_upvw.VPF:Destroy()
        if module_upvw.RecordConnection then
            module_upvw.RecordConnection:Disconnect()
        end
        if module_upvw.PlayConnection then
            module_upvw.PlayConnection:Disconnect()
        end
        for _, v_2 in pairs_upvr(module_upvw.CloneIndex) do
            v_2:Destroy()
        end
        module_upvw = nil
    end
    local function FindFrame_upvr(arg1_9, arg2) -- Line 650, Named "FindFrame"
        --[[ Upvalues[2]:
            [1]: module_upvw (read and write)
            [2]: FindFrame_upvr (readonly)
        ]]
        if not arg1_9 then return end
        local var65 = arg2 or 0
        local var66 = var65 - (arg1_9.Time or 0)
        if (var66 or 0) <= (arg1_9.FrameLength or 0) then
            return module_upvw:GoToFrame(arg1_9.ID + var66 / (arg1_9.FrameLength or 0))
        end
        return FindFrame_upvr(module_upvw.Frames[arg1_9.ID + 1], var65)
    end
    function module_upvw.Play(arg1_10, arg2, arg3, arg4) -- Line 664
        --[[ Upvalues[3]:
            [1]: module_upvw (read and write)
            [2]: RenderStepped_upvr (copied, readonly)
            [3]: FindFrame_upvr (readonly)
        ]]
        if not module_upvw.Recorded then
            warn("Cannot play nonexistent recording")
        else
            if module_upvw.Playing and not arg4 then
                warn("Cannot play recording since playback is already in progress")
                return
            end
            if module_upvw.PlayConnection then
                module_upvw.PlayConnection:Disconnect()
            end
            module_upvw.PlaybackSpeed = math.clamp(arg2 or 1, 0.02, 999)
            module_upvw.Playing = true
            local clamped_upvw = math.clamp(arg3 or 0, 0, module_upvw.RecordingTime)
            local any_GoToTime_result1_upvw = module_upvw:GoToTime(clamped_upvw)
            module_upvw.PlayConnection = RenderStepped_upvr:Connect(function(arg1_11) -- Line 686
                --[[ Upvalues[4]:
                    [1]: clamped_upvw (read and write)
                    [2]: module_upvw (copied, read and write)
                    [3]: any_GoToTime_result1_upvw (read and write)
                    [4]: FindFrame_upvr (copied, readonly)
                ]]
                clamped_upvw += arg1_11 * module_upvw.PlaybackSpeed
                any_GoToTime_result1_upvw = FindFrame_upvr(any_GoToTime_result1_upvw, clamped_upvw)
                if module_upvw.RecordingTime < clamped_upvw or not any_GoToTime_result1_upvw then
                    module_upvw:Stop()
                    return
                end
            end)
        end
    end
    function module_upvw.Stop(arg1_12) -- Line 697
        --[[ Upvalues[1]:
            [1]: module_upvw (read and write)
        ]]
        if not module_upvw.Playing then
            warn("Cannot stop playback since playback isn't in progress")
        else
            module_upvw.Playing = false
            module_upvw.PlayConnection:Disconnect()
        end
    end
    function module_upvw.GoToPercent(arg1_13, arg2) -- Line 707
        --[[ Upvalues[1]:
            [1]: module_upvw (read and write)
        ]]
        if not module_upvw.Recorded then
            warn("Cannot go to percent since there is no recording")
            return
        end
        return module_upvw:GoToTime(module_upvw.RecordingTime * math.clamp(arg2, 0, 1))
    end
    function module_upvw.GoToTime(arg1_14, arg2) -- Line 720
        --[[ Upvalues[2]:
            [1]: module_upvw (read and write)
            [2]: ipairs_upvr (copied, readonly)
        ]]
        if not module_upvw.Recorded then
            warn("Cannot go to time since there is no recording")
        else
            for i_4, v_4 in ipairs_upvr(module_upvw.FrameTimes) do
                if v_4 == arg2 then
                    return module_upvw:GoToFrame(i_4)
                end
                local var75 = module_upvw.Frames[i_4].FrameLength or 0
                if arg2 <= v_4 + var75 then
                    return module_upvw:GoToFrame(i_4 + (arg2 - v_4) / var75)
                end
            end
        end
    end
    function module_upvw.GoToFrame(arg1_15, arg2) -- Line 745
        --[[ Upvalues[3]:
            [1]: module_upvw (read and write)
            [2]: BindableEvent_upvr_2 (readonly)
            [3]: pairs_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 18 start (CF ANALYSIS FAILED)
        if not module_upvw.Recorded then
            warn("Cannot go to frame since there is no recording")
            return
        end
        local clamped = math.clamp(arg2, 1, module_upvw.FrameCount)
        local var77 = module_upvw.Frames[math.floor(clamped)]
        local var78 = var77.Time + (clamped - math.floor(clamped)) * (var77.FrameLength or 0)
        BindableEvent_upvr_2:Fire(clamped, var78, var78 / module_upvw.RecordingTime)
        local var20_result1, pairs_upvr_result2, var20_result3 = pairs_upvr(var77.ObjectData)
        -- KONSTANTERROR: [0] 1. Error Block 18 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [132] 93. Error Block 14 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [132] 93. Error Block 14 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [66] 52. Error Block 4 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: [66] 52. Error Block 4 end (CF ANALYSIS FAILED)
    end
    return module_upvw
end
return module
ModuleScript CameraShake ReplicatedStorage.engine.classes.CameraShake
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:07
-- Luau version 6, Types version 3
-- Time taken: 0.009532 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local zero_vector3_upvr = Vector3.new()
local CameraShakeInstance_upvr = require(script.CameraShakeInstance)
module_upvr.CameraShakeInstance = CameraShakeInstance_upvr
module_upvr.Presets = require(script.CameraShakePresets)
function module_upvr.new(arg1, arg2) -- Line 87
    --[[ Upvalues[2]:
        [1]: zero_vector3_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local var4
    if type(arg1) ~= "number" then
        var4 = false
    else
        var4 = true
    end
    assert(var4, "RenderPriority must be a number (e.g.: Enum.RenderPriority.Camera.Value)")
    if type(arg2) ~= "function" then
        var4 = false
    else
        var4 = true
    end
    assert(var4, "Callback must be a function")
    var4 = {}
    var4._running = false
    var4._renderName = "CameraShaker"
    var4._renderPriority = arg1
    var4._posAddShake = zero_vector3_upvr
    var4._rotAddShake = zero_vector3_upvr
    var4._camShakeInstances = {}
    var4._removeInstances = {}
    var4._callback = arg2
    return setmetatable(var4, module_upvr)
end
local profilebegin_upvr = debug.profilebegin
local profileend_upvr = debug.profileend
function module_upvr.Start(arg1) -- Line 108
    --[[ Upvalues[2]:
        [1]: profilebegin_upvr (readonly)
        [2]: profileend_upvr (readonly)
    ]]
    if arg1._running then
    else
        arg1._running = true
        local _callback_upvr = arg1._callback
        game:GetService("RunService"):BindToRenderStep(arg1._renderName, arg1._renderPriority, function(arg1_2) -- Line 112
            --[[ Upvalues[4]:
                [1]: profilebegin_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: profileend_upvr (copied, readonly)
                [4]: _callback_upvr (readonly)
            ]]
            profilebegin_upvr("CameraShakerUpdate")
            profileend_upvr()
            _callback_upvr(arg1:Update(arg1_2))
        end)
    end
end
function module_upvr.Stop(arg1) -- Line 121
    if not arg1._running then
    else
        game:GetService("RunService"):UnbindFromRenderStep(arg1._renderName)
        arg1._running = false
    end
end
function module_upvr.StopSustained(arg1, arg2) -- Line 128
    for _, v in pairs(arg1._camShakeInstances) do
        if v.fadeOutDuration == 0 then
            local var16 = arg2
            if not var16 then
                var16 = v.fadeInDuration
            end
            v:StartFadeOut(var16)
        end
    end
end
local CameraShakeState_upvr = CameraShakeInstance_upvr.CameraShakeState
local new_2_upvr = CFrame.new
local Angles_upvr = CFrame.Angles
local rad_upvr = math.rad
function module_upvr.Update(arg1, arg2) -- Line 137
    --[[ Upvalues[5]:
        [1]: zero_vector3_upvr (readonly)
        [2]: CameraShakeState_upvr (readonly)
        [3]: new_2_upvr (readonly)
        [4]: Angles_upvr (readonly)
        [5]: rad_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local _camShakeInstances = arg1._camShakeInstances
    local var30
    for i_2 = 1, #_camShakeInstances do
        local var31 = _camShakeInstances[i_2]
        local any_GetState_result1 = var31:GetState()
        if any_GetState_result1 == CameraShakeState_upvr.Inactive and var31.DeleteOnInactive then
            arg1._removeInstances[#arg1._removeInstances + 1] = i_2
        elseif any_GetState_result1 ~= CameraShakeState_upvr.Inactive then
            local any_UpdateShake_result1 = var31:UpdateShake(arg2)
            var30 += any_UpdateShake_result1 * var31.PositionInfluence
            local var34 = zero_vector3_upvr + any_UpdateShake_result1 * var31.RotationInfluence
        end
    end
    for i_3 = #arg1._removeInstances, 1, -1 do
        table.remove(_camShakeInstances, arg1._removeInstances[i_3])
        arg1._removeInstances[i_3] = nil
    end
    return new_2_upvr(var30) * Angles_upvr(0, rad_upvr(var34.Y), 0) * Angles_upvr(rad_upvr(var34.X), 0, rad_upvr(var34.Z))
end
function module_upvr.Shake(arg1, arg2) -- Line 174
    local var35 = false
    if type(arg2) == "table" then
        var35 = arg2._camShakeInstance
    end
    assert(var35, "ShakeInstance must be of type CameraShakeInstance")
    arg1._camShakeInstances[#arg1._camShakeInstances + 1] = arg2
    return arg2
end
function module_upvr.ShakeSustain(arg1, arg2) -- Line 181
    local var36 = false
    if type(arg2) == "table" then
        var36 = arg2._camShakeInstance
    end
    assert(var36, "ShakeInstance must be of type CameraShakeInstance")
    arg1._camShakeInstances[#arg1._camShakeInstances + 1] = arg2
    arg2:StartFadeIn(arg2.fadeInDuration)
    return arg2
end
function module_upvr.ShakeOnce(arg1, arg2, arg3, arg4, arg5, arg6, arg7) -- Line 189
    --[[ Upvalues[1]:
        [1]: CameraShakeInstance_upvr (readonly)
    ]]
    local any_new_result1_2 = CameraShakeInstance_upvr.new(arg2, arg3, arg4, arg5)
    local var38
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var38 = arg6
        return var38
    end
    if typeof(arg6) ~= "Vector3" or not INLINED() then
        var38 = Vector3.new(0.15000, 0.15000, 0.15000)
    end
    any_new_result1_2.PositionInfluence = var38
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var38 = arg7
        return var38
    end
    if typeof(arg7) ~= "Vector3" or not INLINED_2() then
        var38 = Vector3.new(1, 1, 1)
    end
    any_new_result1_2.RotationInfluence = var38
    var38 = arg1._camShakeInstances
    var38[#arg1._camShakeInstances + 1] = any_new_result1_2
    return any_new_result1_2
end
function module_upvr.StartShake(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 198
    --[[ Upvalues[1]:
        [1]: CameraShakeInstance_upvr (readonly)
    ]]
    local any_new_result1 = CameraShakeInstance_upvr.new(arg2, arg3, arg4)
    local var40
    local function INLINED_3() -- Internal function, doesn't exist in bytecode
        var40 = arg5
        return var40
    end
    if typeof(arg5) ~= "Vector3" or not INLINED_3() then
        var40 = Vector3.new(0.15000, 0.15000, 0.15000)
    end
    any_new_result1.PositionInfluence = var40
    local function INLINED_4() -- Internal function, doesn't exist in bytecode
        var40 = arg6
        return var40
    end
    if typeof(arg6) ~= "Vector3" or not INLINED_4() then
        var40 = Vector3.new(1, 1, 1)
    end
    any_new_result1.RotationInfluence = var40
    var40 = any_new_result1:StartFadeIn
    var40(arg4)
    var40 = arg1._camShakeInstances
    var40[#arg1._camShakeInstances + 1] = any_new_result1
    return any_new_result1
end
return module_upvr
ModuleScript CameraShakeInstance ReplicatedStorage.engine.classes.CameraShake.CameraShakeInstance
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:09
-- Luau version 6, Types version 3
-- Time taken: 0.009061 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local new_2_upvr = Vector3.new
module_2_upvr.CameraShakeState = {
    FadingIn = 0;
    FadingOut = 1;
    Sustained = 2;
    Inactive = 3;
}
function module_2_upvr.new(arg1, arg2, arg3, arg4) -- Line 28
    --[[ Upvalues[2]:
        [1]: new_2_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    if arg3 == nil then
        local var4 = 0
    end
    if arg4 == nil then
        local var5 = 0
    end
    if type(arg1) ~= "number" then
    else
    end
    assert(true, "Magnitude must be a number")
    if type(arg2) ~= "number" then
        -- KONSTANTWARNING: GOTO [30] #23
    end
    assert(true, "Roughness must be a number")
    if type(var4) ~= "number" then
        -- KONSTANTWARNING: GOTO [45] #34
    end
    assert(true, "FadeInTime must be a number")
    if type(var5) ~= "number" then
        -- KONSTANTWARNING: GOTO [60] #45
    end
    assert(true, "FadeOutTime must be a number")
    local module = {}
    module.Magnitude = arg1
    module.Roughness = arg2
    module.PositionInfluence = new_2_upvr()
    module.RotationInfluence = new_2_upvr()
    module.DeleteOnInactive = true
    module.roughMod = 1
    module.magnMod = 1
    module.fadeOutDuration = var5
    module.fadeInDuration = var4
    if 0 >= var4 then
        -- KONSTANTWARNING: GOTO [99] #72
    end
    module.sustain = true
    if 0 < var4 then
    else
    end
    module.currentFadeTime = 1
    module.tick = Random.new():NextNumber(-100, 100)
    module._camShakeInstance = true
    return setmetatable(module, module_2_upvr)
end
local noise_upvr = math.noise
function module_2_upvr.UpdateShake(arg1, arg2) -- Line 59
    --[[ Upvalues[2]:
        [1]: noise_upvr (readonly)
        [2]: new_2_upvr (readonly)
    ]]
    local tick = arg1.tick
    local var9
    if 0 < arg1.fadeInDuration and arg1.sustain then
        if var9 < 1 then
            var9 += arg2 / arg1.fadeInDuration
        elseif 0 < arg1.fadeOutDuration then
            arg1.sustain = false
        end
    end
    if not arg1.sustain then
        var9 -= arg2 / arg1.fadeOutDuration
    end
    if arg1.sustain then
        arg1.tick = tick + arg2 * arg1.Roughness * arg1.roughMod
    else
        arg1.tick = tick + arg2 * arg1.Roughness * arg1.roughMod * var9
    end
    arg1.currentFadeTime = var9
    return new_2_upvr(noise_upvr(tick, 0) * 0.5, noise_upvr(0, tick) * 0.5, noise_upvr(tick, tick) * 0.5) * arg1.Magnitude * arg1.magnMod * var9
end
function module_2_upvr.StartFadeOut(arg1, arg2) -- Line 95
    if arg2 == 0 then
        arg1.currentFadeTime = 0
    end
    arg1.fadeOutDuration = arg2
    arg1.fadeInDuration = 0
    arg1.sustain = false
end
function module_2_upvr.StartFadeIn(arg1, arg2) -- Line 105
    if arg2 == 0 then
        arg1.currentFadeTime = 1
    end
    local var10 = arg2
    if not var10 then
        var10 = arg1.fadeInDuration
    end
    arg1.fadeInDuration = var10
    arg1.fadeOutDuration = 0
    arg1.sustain = true
end
function module_2_upvr.GetScaleRoughness(arg1) -- Line 115
    return arg1.roughMod
end
function module_2_upvr.SetScaleRoughness(arg1, arg2) -- Line 120
    arg1.roughMod = arg2
end
function module_2_upvr.GetScaleMagnitude(arg1) -- Line 125
    return arg1.magnMod
end
function module_2_upvr.SetScaleMagnitude(arg1, arg2) -- Line 130
    arg1.magnMod = arg2
end
function module_2_upvr.GetNormalizedFadeTime(arg1) -- Line 135
    return arg1.currentFadeTime
end
function module_2_upvr.IsShaking(arg1) -- Line 140
    local var11 = true
    if 0 >= arg1.currentFadeTime then
        var11 = arg1.sustain
    end
    return var11
end
function module_2_upvr.IsFadingOut(arg1) -- Line 145
    local var12 = not arg1.sustain
    if var12 then
        if 0 >= arg1.currentFadeTime then
            var12 = false
        else
            var12 = true
        end
    end
    return var12
end
function module_2_upvr.IsFadingIn(arg1) -- Line 150
    local var14 = false
    if arg1.currentFadeTime < 1 then
        var14 = arg1.sustain
        if var14 then
            if 0 >= arg1.fadeInDuration then
                var14 = false
            else
                var14 = true
            end
        end
    end
    return var14
end
function module_2_upvr.GetState(arg1) -- Line 155
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1:IsFadingIn() then
        return module_2_upvr.CameraShakeState.FadingIn
    end
    if arg1:IsFadingOut() then
        return module_2_upvr.CameraShakeState.FadingOut
    end
    if arg1:IsShaking() then
        return module_2_upvr.CameraShakeState.Sustained
    end
    return module_2_upvr.CameraShakeState.Inactive
end
return module_2_upvr
ModuleScript CameraShakePresets ReplicatedStorage.engine.classes.CameraShake.CameraShakePresets
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:10
-- Luau version 6, Types version 3
-- Time taken: 0.003683 seconds

local CameraShakeInstance_upvr = require(script.Parent.CameraShakeInstance)
local tbl_upvr = {
    Light = function() -- Line 23, Named "Light"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_8 = CameraShakeInstance_upvr.new(0.6, 1, 0.1, 0.4)
        any_new_result1_8.PositionInfluence = Vector3.new(0.10000, 0.10000, 0.10000)
        any_new_result1_8.RotationInfluence = Vector3.new(0.60000, 0.20000, 0.60000)
        return any_new_result1_8
    end;
    Medium = function() -- Line 30, Named "Medium"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_2 = CameraShakeInstance_upvr.new(2, 2, 0.1, 0.5)
        any_new_result1_2.PositionInfluence = Vector3.new(0.11999, 0.11999, 0.11999)
        any_new_result1_2.RotationInfluence = Vector3.new(1.29999, 0.40000, 0.75)
        return any_new_result1_2
    end;
    Heavy = function() -- Line 37, Named "Heavy"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_4 = CameraShakeInstance_upvr.new(3, 4, 0.1, 0.6)
        any_new_result1_4.PositionInfluence = Vector3.new(0.17000, 0.17000, 0.17000)
        any_new_result1_4.RotationInfluence = Vector3.new(2, 0.5, 2)
        return any_new_result1_4
    end;
    Net = function() -- Line 44, Named "Net"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_9 = CameraShakeInstance_upvr.new(5, 6, 0.1, 0.6)
        any_new_result1_9.PositionInfluence = Vector3.new(0.23499, 0.23499, 0.25)
        any_new_result1_9.RotationInfluence = Vector3.new(3.5, 1, 3.5)
        return any_new_result1_9
    end;
    Bump = function() -- Line 54, Named "Bump"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_11 = CameraShakeInstance_upvr.new(2.5, 4, 0.1, 0.75)
        any_new_result1_11.PositionInfluence = Vector3.new(0.15000, 0.15000, 0.15000)
        any_new_result1_11.RotationInfluence = Vector3.new(1, 1, 1)
        return any_new_result1_11
    end;
    Explosion = function() -- Line 64, Named "Explosion"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_7 = CameraShakeInstance_upvr.new(5, 10, 0, 1.5)
        any_new_result1_7.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
        any_new_result1_7.RotationInfluence = Vector3.new(4, 1, 1)
        return any_new_result1_7
    end;
    Earthquake = function() -- Line 74, Named "Earthquake"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_10 = CameraShakeInstance_upvr.new(0.6, 3.5, 2, 10)
        any_new_result1_10.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
        any_new_result1_10.RotationInfluence = Vector3.new(1, 1, 4)
        return any_new_result1_10
    end;
    BadTrip = function() -- Line 84, Named "BadTrip"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_5 = CameraShakeInstance_upvr.new(10, 0.15, 5, 10)
        any_new_result1_5.PositionInfluence = Vector3.new(0, 0, 0.15000)
        any_new_result1_5.RotationInfluence = Vector3.new(2, 1, 4)
        return any_new_result1_5
    end;
    HandheldCamera = function() -- Line 94, Named "HandheldCamera"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1 = CameraShakeInstance_upvr.new(1, 0.25, 5, 10)
        any_new_result1.PositionInfluence = Vector3.new(0, 0, 0)
        any_new_result1.RotationInfluence = Vector3.new(1, 0.5, 0.5)
        return any_new_result1
    end;
    Vibration = function() -- Line 104, Named "Vibration"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_6 = CameraShakeInstance_upvr.new(0.4, 20, 2, 2)
        any_new_result1_6.PositionInfluence = Vector3.new(0, 0.15000, 0)
        any_new_result1_6.RotationInfluence = Vector3.new(1.25, 0, 4)
        return any_new_result1_6
    end;
    RoughDriving = function() -- Line 114, Named "RoughDriving"
        --[[ Upvalues[1]:
            [1]: CameraShakeInstance_upvr (readonly)
        ]]
        local any_new_result1_3 = CameraShakeInstance_upvr.new(1, 2, 1, 1)
        any_new_result1_3.PositionInfluence = Vector3.new(0, 0, 0)
        any_new_result1_3.RotationInfluence = Vector3.new(1, 1, 1)
        return any_new_result1_3
    end;
}
return setmetatable({}, {
    __index = function(arg1, arg2) -- Line 126, Named "__index"
        --[[ Upvalues[1]:
            [1]: tbl_upvr (readonly)
        ]]
        local var15 = tbl_upvr[arg2]
        if type(var15) == "function" then
            return var15()
        end
        error("No preset found with index \""..arg2..'"')
    end;
})
ModuleScript Kickoff ReplicatedStorage.engine.classes.Kickoff
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:11
-- Luau version 6, Types version 3
-- Time taken: 0.000964 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript client ReplicatedStorage.engine.classes.Kickoff.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:13
-- Luau version 6, Types version 3
-- Time taken: 0.001668 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local any_load_result1_upvr = _G._engine:load("Maid")
function module_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    assert(arg1, "Kickoff.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Kickoff.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._maid = any_load_result1_upvr.new()
    return setmetatable(module, module_upvr)
end
function module_upvr.init(arg1) -- Line 25
    arg1._model.Detector.CanCollide = false
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Kickoff.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:15
-- Luau version 6, Types version 3
-- Time taken: 0.026030 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(arg1, "Kickoff.server | dataModel 'player' expected, got "..typeof(arg1))
    if not arg2 then return end
    local Character = arg1.Character
    if not Character then
        Character = arg1.CharacterAdded:Wait()
    end
    local clone = _G._references.Main["set pieces"]["Kick Off"]:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Team.Value = arg2
    clone.Ball.Transparency = 1
    local module = {}
    module._player = arg1
    module._character = Character
    module._profile = _G._references.Profiles:WaitForChild(tostring(arg1.UserId), 100)
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 30
    assert(arg1._model, "Kickoff.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Kickoff.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    for _, v in next, workspace.game.referee.rigs:GetChildren() do
        if v and workspace.game.referee.positions:FindFirstChild(v.Name) then
            v:SetPrimaryPartCFrame(workspace.game.referee.positions[v.Name].CFrame)
        end
    end
    local BoolValue_10 = Instance.new("BoolValue")
    BoolValue_10.Name = "DisableFouls"
    BoolValue_10.Value = true
    BoolValue_10.Parent = _G._references.Main.config.Override
    _G._references.Main.config.TimerSpeed.Value = 1
    local BoolValue_6 = Instance.new("BoolValue")
    BoolValue_6.Name = script.Parent.Parent.Name
    BoolValue_6.Value = true
    BoolValue_6.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue_6)
    arg1:initConnections()
    if _G._references.Main.config.AutoRall.Value then
        for _, v_2 in next, workspace.game.balls.spawns:GetChildren() do
            if v_2 then
                v_2:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    task.delay(1.5, function() -- Line 72
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1._maid._onClearRemoteEvent then
            local CFrameValue = Instance.new("CFrameValue")
            CFrameValue.Name = "RF"
            CFrameValue.Value = arg1._model.Ball.CFrame
            CFrameValue.Parent = workspace.game.balls.spawns
            local IntValue_2 = Instance.new("IntValue")
            IntValue_2.Name = "possessor"
            IntValue_2.Value = arg1._player.UserId
            IntValue_2.Parent = CFrameValue
            for _, v_3 in next, _G._references.Main.config.Override:GetChildren() do
                if v_3 and v_3.Name == "Break" then
                    v_3:Destroy()
                end
            end
        end
    end)
    _G._references.RemoteEvent:FireClient(arg1._player, "quickFoul", arg1._model)
end
function module_2_upvr.initConnections(arg1) -- Line 97
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    _G._references.RemoteEvent:FireAllClients("registerTeleporter", arg1._player, arg1._model, "kickoff")
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function(arg1_2) -- Line 106
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear(arg1_2)
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_3) -- Line 110
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_3 == arg1._player then
            arg1:clear()
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 116
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire(true)
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_4) -- Line 120
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_4 == arg1._player then
            BindableEvent_upvr:Fire(true)
        end
    end)
    local function onTouch(arg1_5) -- Line 126
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5.Parent and arg1_5.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_5.Parent ~= arg1._character and not arg1._touch[arg1_5.Parent.Name] then
            arg1._touch[arg1_5.Parent.Name] = true
            if _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent) then
                local any_GetPlayerFromCharacter_result1_2 = _G._services.Players:GetPlayerFromCharacter(arg1_5.Parent)
                local BoolValue_5 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1_2)
                BoolValue_5.Name = "Teleport"
                BoolValue_5.Value = true
                _G._services.Debris:AddItem(BoolValue_5, 3)
                if string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "Home") and not string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "GK") then
                    arg1_5.Parent:SetPrimaryPartCFrame(workspace.game.positions.home.CFrame)
                elseif string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "Home") and string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "GK") then
                    arg1_5.Parent:SetPrimaryPartCFrame(workspace.game.positions.homeGK.CFrame)
                elseif string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "Away") and not string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "GK") then
                    arg1_5.Parent:SetPrimaryPartCFrame(workspace.game.positions.away.CFrame)
                elseif string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "Away") and string.find(any_GetPlayerFromCharacter_result1_2.Team.Name, "GK") then
                    arg1_5.Parent:SetPrimaryPartCFrame(workspace.game.positions.awayGK.CFrame)
                end
            end
            task.delay(0.05, function() -- Line 149
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_5 (readonly)
                ]]
                arg1._touch[arg1_5.Parent.Name] = false
            end)
        end
    end
    local function onTouchRegion_upvr(arg1_6, arg2) -- Line 155, Named "onTouchRegion"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6.Parent and arg1_6.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_6:FindFirstAncestor("manager") and not arg1_6:FindFirstAncestor("referee") and arg1_6.Parent ~= arg1._character then
            local any_GetPlayerFromCharacter_result1 = _G._services.Players:GetPlayerFromCharacter(arg1_6.Parent)
            if any_GetPlayerFromCharacter_result1 and any_GetPlayerFromCharacter_result1.Team then
                if string.find(any_GetPlayerFromCharacter_result1.Team.Name, "Home") and not string.find(any_GetPlayerFromCharacter_result1.Team.Name, "GK") and arg2.Name == "Away" then
                    local BoolValue_8 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue_8.Name = "Teleport"
                    BoolValue_8.Value = true
                    _G._services.Debris:AddItem(BoolValue_8, 3)
                    arg1_6.Parent:SetPrimaryPartCFrame(workspace.game.positions.home.CFrame)
                    return
                end
                if string.find(any_GetPlayerFromCharacter_result1.Team.Name, "Home") and string.find(any_GetPlayerFromCharacter_result1.Team.Name, "GK") and arg2.Name == "Away" then
                    local BoolValue = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue.Name = "Teleport"
                    BoolValue.Value = true
                    _G._services.Debris:AddItem(BoolValue, 3)
                    arg1_6.Parent:SetPrimaryPartCFrame(workspace.game.positions.homeGK.CFrame)
                    return
                end
                if string.find(any_GetPlayerFromCharacter_result1.Team.Name, "Away") and not string.find(any_GetPlayerFromCharacter_result1.Team.Name, "GK") and arg2.Name == "Home" then
                    local BoolValue_3 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue_3.Name = "Teleport"
                    BoolValue_3.Value = true
                    _G._services.Debris:AddItem(BoolValue_3, 3)
                    arg1_6.Parent:SetPrimaryPartCFrame(workspace.game.positions.away.CFrame)
                    return
                end
                if string.find(any_GetPlayerFromCharacter_result1.Team.Name, "Away") and string.find(any_GetPlayerFromCharacter_result1.Team.Name, "GK") and arg2.Name == "Home" then
                    local BoolValue_7 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue_7.Name = "Teleport"
                    BoolValue_7.Value = true
                    _G._services.Debris:AddItem(BoolValue_7, 3)
                    arg1_6.Parent:SetPrimaryPartCFrame(workspace.game.positions.awayGK.CFrame)
                end
            end
        end
    end
    for _, v_4 in next, arg1._model.Area:GetChildren() do
        if v_4 and v_4:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_4.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_4.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._onTouchedRegionHome = arg1._model.Home.Touched:Connect(function(arg1_7) -- Line 197
        --[[ Upvalues[2]:
            [1]: onTouchRegion_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        onTouchRegion_upvr(arg1_7, arg1._model.Home)
    end)
    arg1._maid._onTouchedRegionHome = arg1._model.Home.TouchEnded:Connect(function(arg1_8) -- Line 200
        --[[ Upvalues[2]:
            [1]: onTouchRegion_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        onTouchRegion_upvr(arg1_8, arg1._model.Home)
    end)
    for _, v_5 in next, arg1._model.Home:GetTouchingParts() do
        onTouchRegion_upvr(v_5, arg1._model.Home)
    end
    arg1._maid._onTouchedRegionAway = arg1._model.Away.Touched:Connect(function(arg1_9) -- Line 207
        --[[ Upvalues[2]:
            [1]: onTouchRegion_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        onTouchRegion_upvr(arg1_9, arg1._model.Away)
    end)
    arg1._maid._onTouchedRegionAway = arg1._model.Away.TouchEnded:Connect(function(arg1_10) -- Line 210
        --[[ Upvalues[2]:
            [1]: onTouchRegion_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        onTouchRegion_upvr(arg1_10, arg1._model.Away)
    end)
    for _, v_6 in next, arg1._model.Away:GetTouchingParts() do
        onTouchRegion_upvr(v_6, arg1._model.Away)
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    task.delay(15, function() -- Line 224
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1._maid._onBindableEvent then
            arg1:clear()
        end
    end)
end
function module_2_upvr.clear(arg1, arg2) -- Line 231
    for i_7, v_7 in next, _G._references.Main.config.Override:GetChildren() do
        if v_7 and v_7.Name == "DisableFouls" then
            v_7:Destroy()
        end
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg2 then
        v_7 = _G._references
        i_7 = v_7.Main
        if i_7.config.AutoRall.Value then
            v_7 = workspace
            i_7 = v_7.game
            for _, v_8 in next, i_7.balls.spawns:GetChildren() do
                if v_8 then
                    v_8:Destroy()
                end
            end
        end
        local CFrameValue_2 = Instance.new("CFrameValue")
        CFrameValue_2.Name = "RF"
        CFrameValue_2.Value = arg1._model.Ball.CFrame
        CFrameValue_2.Parent = workspace.game.balls.spawns
        if arg1._player and arg1._player.Parent then
            local IntValue = Instance.new("IntValue")
            IntValue.Name = "possessor"
            IntValue.Value = arg1._player.UserId
            IntValue.Parent = CFrameValue_2
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    arg1._maid:DoCleaning()
end
return module_2_upvr
ModuleScript ColorPicker ReplicatedStorage.engine.classes.ColorPicker
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:17
-- Luau version 6, Types version 3
-- Time taken: 0.038304 seconds

local _engine = _G._engine
local _references_upvr = _G._references
local _services_upvr = _G._services
local any_load_result1_upvr = _engine:load("BulkFade", "utils")
local menu_upvr = _references_upvr.PlayerGui:WaitForChild("menu", 100)
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local any_load_result1_upvr_4 = _engine:load("Maid")
function module_2_upvr.new(arg1) -- Line 25
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: any_load_result1_upvr_4 (readonly)
        [4]: module_2_upvr (readonly)
    ]]
    local tbl_3 = {
        page = any_load_result1_upvr.CreateGroup(menu_upvr.color:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    }
    tbl_3.page:FadeOut()
    local module = {
        event = Instance.new("BindableEvent");
        bulkFadeGroups = tbl_3;
        maid = any_load_result1_upvr_4.new();
    }
    module.core = arg1
    return setmetatable(module, module_2_upvr)
end
local any_load_result1_upvr_2 = _engine:load("FormatNumber", "utils")
local mouse_upvr = _services_upvr.Players.LocalPlayer:GetMouse()
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("Network").new()
function module_2_upvr.prompt(arg1, arg2) -- Line 39
    --[[ Upvalues[8]:
        [1]: menu_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: _services_upvr (readonly)
        [5]: mouse_upvr (readonly)
        [6]: _references_upvr (readonly)
        [7]: any_load_result1_upvr_3 (readonly)
        [8]: any_new_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    assert(arg1.bulkFadeGroups, "ColorPicker [prompt]: Run '.new()' before calling :prompt()!")
    arg1.core:SetAttribute("freeze", true)
    arg1.value = arg2.Value
    local any_ToHSV_result1_4_upvw, any_ToHSV_result2_3_upvw, any_ToHSV_result3_4_upvw = arg1.value:ToHSV()
    local tbl_upvr = {}
    local tbl = {
        point = 0;
        color = Color3.new(1, 0, 0);
    }
    tbl_upvr[1] = tbl
    tbl_upvr[2] = {
        point = 60;
        color = Color3.new(1, 1, 0);
    }
    tbl_upvr[3] = {
        point = 120;
        color = Color3.new(0, 1, 0);
    }
    tbl_upvr[4] = {
        point = 180;
        color = Color3.new(0, 1, 1);
    }
    tbl_upvr[5] = {
        point = 240;
        color = Color3.new(0, 0, 1);
    }
    tbl_upvr[6] = {
        point = 300;
        color = Color3.new(1, 0, 1);
    }
    tbl_upvr[7] = {
        point = 360;
        color = Color3.new(1, 0, 0);
    }
    tbl = {}
    local var66_upvw = tbl
    var66_upvw.r = arg1.value.R * 255
    var66_upvw.g = arg1.value.G * 255
    var66_upvw.b = arg1.value.B * 255
    var66_upvw.h = any_ToHSV_result1_4_upvw * 360
    var66_upvw.s = any_ToHSV_result2_3_upvw * 100
    var66_upvw.v = any_ToHSV_result3_4_upvw * 100
    local tbl_2_upvr = {
        r = 255;
        g = 255;
        b = 255;
        h = 360;
        s = 100;
        v = 100;
    }
    local tbl_4_upvr = {
        rgb = false;
        value = false;
    }
    local function update_upvr() -- Line 99, Named "update"
        --[[ Upvalues[4]:
            [1]: tbl_upvr (readonly)
            [2]: var66_upvw (read and write)
            [3]: menu_upvr (copied, readonly)
            [4]: any_load_result1_upvr_2 (copied, readonly)
        ]]
        for i, v in next, tbl_upvr do
            if i < #tbl_upvr and v.point < var66_upvw.h and var66_upvw.h <= tbl_upvr[i + 1].point or v.point == 0 and var66_upvw.h == 0 then
                local any_Lerp_result1 = v.color:Lerp(tbl_upvr[i + 1].color, (var66_upvw.h - v.point) / (tbl_upvr[i + 1].point - v.point))
                local any_Lerp_result1_3 = any_Lerp_result1:Lerp(Color3.new(1, 1, 1), (100 - var66_upvw.s) / 100)
                local any_Lerp_result1_2 = any_Lerp_result1_3:Lerp(Color3.new(0, 0, 0), (100 - var66_upvw.v) / 100)
                menu_upvr.color.main.main.hsv.r.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.r, 0)
                menu_upvr.color.main.main.hsv.g.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.g, 0)
                menu_upvr.color.main.main.hsv.b.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.b, 0)
                menu_upvr.color.main.main.hsv.h.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.h, 0)
                menu_upvr.color.main.main.hsv.h.value.PlaceholderColor3 = any_Lerp_result1:Lerp(Color3.new(1, 1, 1), 0.5)
                menu_upvr.color.main.main.hsv.h.value.TextColor3 = any_Lerp_result1
                menu_upvr.color.main.main.hsv.s.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.s, 0)
                menu_upvr.color.main.main.hsv.s.value.PlaceholderColor3 = any_Lerp_result1_3:Lerp(Color3.new(1, 1, 1), 0.5)
                menu_upvr.color.main.main.hsv.s.value.TextColor3 = any_Lerp_result1_3
                menu_upvr.color.main.main.value.BackgroundColor3 = any_Lerp_result1_3
                menu_upvr.color.main.main.hsv.v.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw.v, 0)
                menu_upvr.color.main.main.hsv.v.value.PlaceholderColor3 = any_Lerp_result1_2:Lerp(Color3.new(1, 1, 1), 0.5)
                menu_upvr.color.main.main.hsv.v.value.TextColor3 = any_Lerp_result1_2
                menu_upvr.color.main.main.value.selector.Position = UDim2.new(var66_upvw.v / 100, 0, 0.5, 0)
                menu_upvr.color.main.main.value.selector.BackgroundColor3 = Color3.new(1, 1, 1):Lerp(Color3.new(0, 0, 0), var66_upvw.v / 100)
                menu_upvr.color.main.main.rgb.selector.Position = UDim2.new(var66_upvw.h / 360, 0, (100 - var66_upvw.s) / 100, 0)
                menu_upvr.color.main.main.rgb.selector.UIStroke.Color = Color3.new(1, 1, 1):Lerp(Color3.new(0, 0, 0), (100 - var66_upvw.s) / 100)
            end
        end
    end
    menu_upvr.color.Visible = true
    task.wait()
    for _, v_2 in next, menu_upvr.color:GetDescendants() do
        if v_2:IsA("GuiObject") then
            if v_2:IsA("TextLabel") or v_2:IsA("TextButton") or v_2:IsA("TextBox") then
                v_2.TextTransparency = 0
            elseif v_2:IsA("ImageLabel") or v_2:IsA("ImageButton") then
                v_2.ImageTransparency = 0
            end
            if v_2:IsA("Frame") or v_2:IsA("TextButton") or v_2:IsA("ImageButton") then
                if v_2.BackgroundTransparency ~= nil then
                    v_2.BackgroundTransparency = 0
                end
            end
        end
    end
    if menu_upvr.color.main.buttons then
        menu_upvr.color.main.buttons.BackgroundTransparency = 1
    end
    for _, v_3 in next, {"confirm", "cancel", "revert"} do
        if menu_upvr.color.main.buttons[v_3] and menu_upvr.color.main.buttons[v_3].button then
            menu_upvr.color.main.buttons[v_3].button.BackgroundTransparency = 1
        end
    end
    if menu_upvr.color.main then
        menu_upvr.color.main.BackgroundTransparency = 1
    end
    if menu_upvr.color.main.main.rgb then
        menu_upvr.color.main.main.rgb.rgb.ZIndex = 101
    end
    if menu_upvr.color.main.main.rgb and menu_upvr.color.main.main.rgb.selector then
        menu_upvr.color.main.main.rgb.selector.ZIndex = 102
    end
    if menu_upvr.color.main.main.value then
        menu_upvr.color.main.main.value.ZIndex = 100
    end
    if menu_upvr.color.main.main.value and menu_upvr.color.main.main.value.selector then
        menu_upvr.color.main.main.value.selector.ZIndex = 101
    end
    if menu_upvr.color.overlay then
        menu_upvr.color.overlay.BackgroundTransparency = 0.5
    end
    arg1.bulkFadeGroups.page = any_load_result1_upvr.CreateGroup(menu_upvr.color:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
    arg1.bulkFadeGroups.page:FadeOut()
    for _, v_4_upvr in next, menu_upvr.color.main.main.hsv:GetChildren() do
        if v_4_upvr and v_4_upvr:IsA("Frame") and var66_upvw[v_4_upvr.Name] then
            v_4_upvr.value.Text = any_load_result1_upvr_2.FormatDecimal(var66_upvw[v_4_upvr.Name], 0)
            v_4_upvr.value.PlaceholderText = any_load_result1_upvr_2.FormatDecimal(var66_upvw[v_4_upvr.Name], 0)
            v_4_upvr.value.PlaceholderColor3 = v_4_upvr.value.TextColor3:Lerp(Color3.new(1, 1, 1), 0.5)
            arg1.maid[v_4_upvr.Name.."_focusLost"] = v_4_upvr.value.FocusLost:Connect(function() -- Line 194
                --[[ Upvalues[9]:
                    [1]: v_4_upvr (readonly)
                    [2]: tbl_2_upvr (readonly)
                    [3]: arg1 (readonly)
                    [4]: menu_upvr (copied, readonly)
                    [5]: any_ToHSV_result1_4_upvw (read and write)
                    [6]: any_ToHSV_result2_3_upvw (read and write)
                    [7]: any_ToHSV_result3_4_upvw (read and write)
                    [8]: var66_upvw (read and write)
                    [9]: update_upvr (readonly)
                ]]
                if tonumber(v_4_upvr.value.Text) and 0 <= tonumber(v_4_upvr.value.Text) and tonumber(v_4_upvr.value.Text) <= tbl_2_upvr[v_4_upvr.Name] then
                    if v_4_upvr.Name == 'r' or v_4_upvr.Name == 'g' or v_4_upvr.Name == 'b' then
                        arg1.value = Color3.fromRGB(tonumber(menu_upvr.color.main.main.hsv.r.value.Text), tonumber(menu_upvr.color.main.main.hsv.g.value.Text), tonumber(menu_upvr.color.main.main.hsv.b.value.Text))
                    elseif v_4_upvr.Name == 'h' or v_4_upvr.Name == 's' or v_4_upvr.Name == 'v' then
                        arg1.value = Color3.fromHSV(tonumber(menu_upvr.color.main.main.hsv.h.value.Text) / 360, tonumber(menu_upvr.color.main.main.hsv.s.value.Text) / 100, tonumber(menu_upvr.color.main.main.hsv.v.value.Text) / 100)
                    end
                    local any_ToHSV_result1_3, any_ToHSV_result2_2, any_ToHSV_result3_3 = arg1.value:ToHSV()
                    any_ToHSV_result1_4_upvw = any_ToHSV_result1_3
                    any_ToHSV_result2_3_upvw = any_ToHSV_result2_2
                    any_ToHSV_result3_4_upvw = any_ToHSV_result3_3
                    var66_upvw = {
                        r = arg1.value.R * 255;
                        g = arg1.value.G * 255;
                        b = arg1.value.B * 255;
                        h = any_ToHSV_result1_4_upvw * 360;
                        s = any_ToHSV_result2_3_upvw * 100;
                        v = any_ToHSV_result3_4_upvw * 100;
                    }
                    update_upvr()
                else
                    v_4_upvr.value.Text = v_4_upvr.value.PlaceholderText
                end
            end)
        end
    end
    update_upvr()
    arg1.bulkFadeGroups.page:FadeIn()
    for _, v_5_upvr in next, {"rgb", "value"} do
        arg1.maid[v_5_upvr.."_mouseButton1Down"] = menu_upvr.color.main.main[v_5_upvr].button.MouseButton1Down:Connect(function() -- Line 225
            --[[ Upvalues[2]:
                [1]: tbl_4_upvr (readonly)
                [2]: v_5_upvr (readonly)
            ]]
            tbl_4_upvr[v_5_upvr] = true
        end)
        arg1.maid[v_5_upvr.."_inputEnded"] = _services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 229
            --[[ Upvalues[2]:
                [1]: tbl_4_upvr (readonly)
                [2]: v_5_upvr (readonly)
            ]]
            if tbl_4_upvr[v_5_upvr] and (arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch) then
                tbl_4_upvr[v_5_upvr] = false
            end
        end)
    end
    arg1.maid.mouseMove = mouse_upvr.Move:Connect(function() -- Line 236
        --[[ Upvalues[10]:
            [1]: tbl_4_upvr (readonly)
            [2]: mouse_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: _services_upvr (copied, readonly)
            [5]: arg1 (readonly)
            [6]: any_ToHSV_result1_4_upvw (read and write)
            [7]: any_ToHSV_result2_3_upvw (read and write)
            [8]: any_ToHSV_result3_4_upvw (read and write)
            [9]: var66_upvw (read and write)
            [10]: update_upvr (readonly)
        ]]
        if tbl_4_upvr.rgb or tbl_4_upvr.value then
            local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(mouse_upvr.Hit.Position)
            if tbl_4_upvr.rgb then
                arg1.value = Color3.fromHSV(math.clamp((any_WorldToViewportPoint_result1.X - menu_upvr.color.main.main.rgb.AbsolutePosition.X) / menu_upvr.color.main.main.rgb.AbsoluteSize.X, 0.0001, 1), 1 - math.clamp((any_WorldToViewportPoint_result1.Y - _services_upvr.GuiService:GetGuiInset().Y - menu_upvr.color.main.main.rgb.AbsolutePosition.Y) / menu_upvr.color.main.main.rgb.AbsoluteSize.Y, 0, 0.9999), menu_upvr.color.main.main.value.selector.Position.X.Scale)
            else
                arg1.value = Color3.fromHSV(menu_upvr.color.main.main.rgb.selector.Position.X.Scale, 1 - menu_upvr.color.main.main.rgb.selector.Position.Y.Scale, math.clamp((any_WorldToViewportPoint_result1.X - menu_upvr.color.main.main.value.AbsolutePosition.X) / menu_upvr.color.main.main.value.AbsoluteSize.X, 0.0001, 1))
            end
            local any_ToHSV_result1, any_ToHSV_result2, any_ToHSV_result3 = arg1.value:ToHSV()
            any_ToHSV_result1_4_upvw = any_ToHSV_result1
            any_ToHSV_result2_3_upvw = any_ToHSV_result2
            any_ToHSV_result3_4_upvw = any_ToHSV_result3
            var66_upvw = {
                r = arg1.value.R * 255;
                g = arg1.value.G * 255;
                b = arg1.value.B * 255;
                h = any_ToHSV_result1_4_upvw * 360;
                s = any_ToHSV_result2_3_upvw * 100;
                v = any_ToHSV_result3_4_upvw * 100;
            }
            update_upvr()
        end
    end)
    for _, v_6_upvr in next, {"confirm", "cancel", "revert"} do
        local var94_upvr = menu_upvr.color.main.buttons[v_6_upvr]
        arg1.maid[v_6_upvr.."_mouseEnter"] = var94_upvr.button.MouseEnter:Connect(function() -- Line 268
            --[[ Upvalues[5]:
                [1]: arg1 (readonly)
                [2]: _references_upvr (copied, readonly)
                [3]: _services_upvr (copied, readonly)
                [4]: var94_upvr (readonly)
                [5]: any_load_result1_upvr_3 (copied, readonly)
            ]]
            arg1.mouseOver = true
            _references_upvr.Main.sounds.UI.Hover:Play()
            _services_upvr.TweenService:Create(var94_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Accent;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
        end)
        arg1.maid[v_6_upvr.."_mouseLeave"] = var94_upvr.button.MouseLeave:Connect(function() -- Line 276
            --[[ Upvalues[4]:
                [1]: arg1 (readonly)
                [2]: _services_upvr (copied, readonly)
                [3]: var94_upvr (readonly)
                [4]: any_load_result1_upvr_3 (copied, readonly)
            ]]
            arg1.mouseOver = false
            _services_upvr.TweenService:Create(var94_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        arg1.maid[v_6_upvr.."_mouseButton1Down"] = var94_upvr.button.MouseButton1Down:Connect(function() -- Line 283
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: _services_upvr (copied, readonly)
                [3]: var94_upvr (readonly)
            ]]
            arg1.mouseOver = true
            _services_upvr.TweenService:Create(var94_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end)
        arg1.maid[v_6_upvr.."_inputEnded"] = _services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 288
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.mouseOver = false
            if arg1_3.UserInputType ~= Enum.UserInputType.MouseButton1 then
                if arg1_3.UserInputType ~= Enum.UserInputType.Touch then
                else
                end
            end
        end)
        arg1.maid[v_6_upvr.."_mouseButton1Click"] = var94_upvr.button.MouseButton1Click:Connect(function() -- Line 295
            --[[ Upvalues[14]:
                [1]: _references_upvr (copied, readonly)
                [2]: _services_upvr (copied, readonly)
                [3]: var94_upvr (readonly)
                [4]: any_load_result1_upvr_3 (copied, readonly)
                [5]: v_6_upvr (readonly)
                [6]: arg1 (readonly)
                [7]: arg2 (readonly)
                [8]: any_new_result1_upvr (copied, readonly)
                [9]: menu_upvr (copied, readonly)
                [10]: any_ToHSV_result1_4_upvw (read and write)
                [11]: any_ToHSV_result2_3_upvw (read and write)
                [12]: any_ToHSV_result3_4_upvw (read and write)
                [13]: var66_upvw (read and write)
                [14]: update_upvr (readonly)
            ]]
            _references_upvr.Main.sounds.UI.Click:Play()
            _services_upvr.TweenService:Create(var94_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            _services_upvr.TweenService:Create(var94_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
            if v_6_upvr == "confirm" then
                arg1.maid:DoCleaning()
                arg1.core:SetAttribute("freeze", false)
                arg1.bulkFadeGroups.page:FadeOut()
                if arg1.value then
                    arg2.Value = arg1.value
                    arg1.event:Fire(arg2)
                    any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
                end
                task.wait(0.2)
                menu_upvr.color.Visible = false
            else
                if v_6_upvr == "revert" then
                    arg1.value = arg2.DefaultValue.Value
                    local any_ToHSV_result1_2, any_ToHSV_result2_4, any_ToHSV_result3_2 = arg1.value:ToHSV()
                    any_ToHSV_result1_4_upvw = any_ToHSV_result1_2
                    any_ToHSV_result2_3_upvw = any_ToHSV_result2_4
                    any_ToHSV_result3_4_upvw = any_ToHSV_result3_2
                    var66_upvw = {
                        r = arg1.value.R * 255;
                        g = arg1.value.G * 255;
                        b = arg1.value.B * 255;
                        h = any_ToHSV_result1_4_upvw * 360;
                        s = any_ToHSV_result2_3_upvw * 100;
                        v = any_ToHSV_result3_4_upvw * 100;
                    }
                    update_upvr()
                    return
                end
                arg1.maid:DoCleaning()
                arg1.core:SetAttribute("freeze", false)
                arg1.bulkFadeGroups.page:FadeOut()
                task.wait(0.2)
                menu_upvr.color.Visible = false
            end
        end)
    end
end
return module_2_upvr
ModuleScript Binder ReplicatedStorage.engine.classes.Binder
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:19
-- Luau version 6, Types version 3
-- Time taken: 0.025716 seconds

local _engine = _G._engine
local _references_upvr = _G._references
local _services_upvr = _G._services
local PlayerGui_upvr = _references_upvr.PlayerGui
local menu_upvr = PlayerGui_upvr:WaitForChild("menu", 100)
local function isSpinTool_upvr(arg1) -- Line 23, Named "isSpinTool"
    for _, v in pairs({"Backspin", "Topspin", "Knuckle", "GKtopspin"}) do
        if arg1:gsub(" %(Gamepad%)$", "") == v then
            return true
        end
    end
    return false
end
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local any_load_result1_upvr_2 = _engine:load("BulkFade", "utils")
local BindableEvent_upvr = Instance.new("BindableEvent")
local any_load_result1_upvr_3 = _engine:load("Maid")
function module_2_upvr.new(arg1) -- Line 39
    --[[ Upvalues[5]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: menu_upvr (readonly)
        [3]: BindableEvent_upvr (readonly)
        [4]: any_load_result1_upvr_3 (readonly)
        [5]: module_2_upvr (readonly)
    ]]
    local tbl_3 = {
        page = any_load_result1_upvr_2.CreateGroup(menu_upvr.bind:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    }
    tbl_3.page:FadeOut()
    local module = {
        event = BindableEvent_upvr;
        bulkFadeGroups = tbl_3;
        maid = any_load_result1_upvr_3.new();
    }
    module.core = arg1
    return setmetatable(module, module_2_upvr)
end
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("Network").new()
function module_2_upvr.prompt(arg1, arg2, arg3, arg4) -- Line 53
    --[[ Upvalues[7]:
        [1]: PlayerGui_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: _services_upvr (readonly)
        [4]: _references_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: isSpinTool_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
    ]]
    if arg3 == nil then
        assert(arg1.bulkFadeGroups, "Binder [prompt]: Run '.new()' before calling :prompt()!")
        arg1.core:SetAttribute("freeze", true)
        if arg1.core.Parent then
            arg1.core.Parent:SetAttribute("freeze", true)
        end
        PlayerGui_upvr.menu.menu:SetAttribute("freeze", true)
        menu_upvr.bind.Visible = true
        menu_upvr.bind.main.title.Text = string.upper(arg2.Name or "EDIT BIND")
        if typeof(arg2.Value) ~= "string" or not arg2.Value then
        end
        menu_upvr.bind.main.bind.value.Text = string.format("[%s]", string.upper(tostring(arg2.Value)))
        arg1.bulkFadeGroups.page:FadeIn()
        arg1.maid.inputBegan = _services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 72
            --[[ Upvalues[6]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
                [3]: _references_upvr (copied, readonly)
                [4]: menu_upvr (copied, readonly)
                [5]: _services_upvr (copied, readonly)
                [6]: any_load_result1_upvr (copied, readonly)
            ]]
            if not arg1.debounce then
                local var47
                if not var47 then
                    var47 = arg1_2.KeyCode.Name
                    if var47 == "Unknown" then
                        var47 = arg1_2.UserInputType.Name
                        if var47 == "MouseMovement" then return end
                    end
                    if var47 == "Touch" then return end
                    local var48 = false
                    if not arg2.Name:find("%(Gamepad%)$") then
                        for _, v_2 in next, arg2.Parent:GetChildren() do
                            if v_2 and v_2.Name ~= arg2.Name and typeof(v_2.Value) == "string" and string.lower(v_2.Value) == string.lower(var47) then
                                var48 = true
                            end
                        end
                    end
                    if var48 then
                        _references_upvr.Main.sounds.UI.Error:Play()
                        menu_upvr.bind.main.bind.value.TextColor3 = Color3.fromRGB(255, 0, 0)
                        _services_upvr.TweenService:Create(menu_upvr.bind.main.bind.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = any_load_result1_upvr.Accent;
                        }):Play()
                        arg1.debounce = true
                        menu_upvr.bind.main.bind.value:TweenPosition(UDim2.new(0.5, -15, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.05, true)
                        task.wait(0.05)
                        menu_upvr.bind.main.bind.value:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Elastic, 0.25, true)
                        arg1.debounce = false
                        return
                    end
                    arg1.value = var47
                    _references_upvr.Main.sounds.UI.Click:Play()
                    menu_upvr.bind.main.bind.value.Text = string.format("[%s]", string.upper(var47))
                end
            end
        end)
        for _, v_3_upvr in next, {"confirm", "cancel"} do
            local var53_upvr = menu_upvr.bind.main.buttons[v_3_upvr]
            arg1.maid[v_3_upvr.."_mouseEnter"] = var53_upvr.button.MouseEnter:Connect(function() -- Line 125
                --[[ Upvalues[5]:
                    [1]: arg1 (readonly)
                    [2]: _references_upvr (copied, readonly)
                    [3]: _services_upvr (copied, readonly)
                    [4]: var53_upvr (readonly)
                    [5]: any_load_result1_upvr (copied, readonly)
                ]]
                arg1.mouseOver = true
                _references_upvr.Main.sounds.UI.Hover:Play()
                _services_upvr.TweenService:Create(var53_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1.03;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Accent;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = any_load_result1_upvr.Text;
                }):Play()
            end)
            arg1.maid[v_3_upvr.."_mouseLeave"] = var53_upvr.button.MouseLeave:Connect(function() -- Line 133
                --[[ Upvalues[4]:
                    [1]: arg1 (readonly)
                    [2]: _services_upvr (copied, readonly)
                    [3]: var53_upvr (readonly)
                    [4]: any_load_result1_upvr (copied, readonly)
                ]]
                arg1.mouseOver = false
                _services_upvr.TweenService:Create(var53_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
            end)
            arg1.maid[v_3_upvr.."_mouseButton1Down"] = var53_upvr.button.MouseButton1Down:Connect(function() -- Line 140
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: _services_upvr (copied, readonly)
                    [3]: var53_upvr (readonly)
                ]]
                arg1.mouseOver = true
                _services_upvr.TweenService:Create(var53_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 0.9;
                }):Play()
            end)
            arg1.maid[v_3_upvr.."_inputEnded"] = _services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 145
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.mouseOver = false
                if arg1_3.UserInputType ~= Enum.UserInputType.MouseButton1 then
                    if arg1_3.UserInputType ~= Enum.UserInputType.Touch then
                    else
                    end
                end
            end)
            arg1.maid[v_3_upvr.."_mouseButton1Click"] = var53_upvr.button.MouseButton1Click:Connect(function() -- Line 152
                --[[ Upvalues[11]:
                    [1]: _references_upvr (copied, readonly)
                    [2]: _services_upvr (copied, readonly)
                    [3]: var53_upvr (readonly)
                    [4]: any_load_result1_upvr (copied, readonly)
                    [5]: v_3_upvr (readonly)
                    [6]: arg1 (readonly)
                    [7]: PlayerGui_upvr (copied, readonly)
                    [8]: arg2 (readonly)
                    [9]: isSpinTool_upvr (copied, readonly)
                    [10]: any_new_result1_upvr (copied, readonly)
                    [11]: menu_upvr (copied, readonly)
                ]]
                _references_upvr.Main.sounds.UI.Click:Play()
                _services_upvr.TweenService:Create(var53_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
                _services_upvr.TweenService:Create(var53_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
                if v_3_upvr == "confirm" then
                    arg1.maid:DoCleaning()
                    arg1.core:SetAttribute("freeze", false)
                    if arg1.core.Parent then
                        arg1.core.Parent:SetAttribute("freeze", false)
                    end
                    PlayerGui_upvr.menu.menu:SetAttribute("freeze", false)
                    arg1.bulkFadeGroups.page:FadeOut()
                    if arg1.value then
                        if arg2.Name:find("%(Gamepad%)$") then
                            local isSpinTool_upvr_result1 = isSpinTool_upvr(arg2.Name)
                            for _, v_4 in pairs(_references_upvr.Profile.binds:GetChildren()) do
                                if v_4:IsA("Folder") then
                                    for _, v_5 in pairs(v_4:GetChildren()) do
                                        if v_5 and v_5.Name ~= arg2.Name and v_5.Name:find("%(Gamepad%)$") and typeof(v_5.Value) == "string" and string.lower(v_5.Value) == string.lower(arg1.value) then
                                            local isSpinTool_upvr_result1_2 = isSpinTool_upvr(v_5.Name)
                                            if isSpinTool_upvr_result1 and isSpinTool_upvr_result1_2 or not isSpinTool_upvr_result1 and not isSpinTool_upvr_result1_2 then
                                                v_5.Value = ""
                                                any_new_result1_upvr:send("replicateValue", v_5, "")
                                                arg1.event:Fire(v_5)
                                            end
                                        end
                                    end
                                end
                            end
                        end
                        arg2.Value = arg1.value
                        arg1.event:Fire(arg2)
                        any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
                    end
                    task.wait(0.2)
                    menu_upvr.bind.Visible = false
                else
                    arg1.maid:DoCleaning()
                    arg1.core:SetAttribute("freeze", false)
                    if arg1.core.Parent then
                        arg1.core.Parent:SetAttribute("freeze", false)
                    end
                    PlayerGui_upvr.menu.menu:SetAttribute("freeze", false)
                    arg1.bulkFadeGroups.page:FadeOut()
                    task.wait(0.2)
                    menu_upvr.bind.Visible = false
                end
            end)
        end
    else
        menu_upvr.bind.main.bind.value.Text = string.format("[%s]", string.upper(arg4))
        arg1.value = arg4
        arg2.Value = arg1.value
        any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
        arg1.event:Fire(arg2)
    end
end
return module_2_upvr
ModuleScript Purchase ReplicatedStorage.engine.classes.Purchase
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:22
-- Luau version 6, Types version 3
-- Time taken: 0.039314 seconds

local _engine = _G._engine
local _references_upvr = _G._references
local _services_upvr = _G._services
local menu_upvr = _references_upvr.PlayerGui:WaitForChild("menu", 100)
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
local any_load_result1_upvr_2 = _engine:load("BulkFade", "utils")
local any_load_result1_upvr = _engine:load("Maid")
function module_2_upvr.new(arg1) -- Line 26
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: menu_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: module_2_upvr (readonly)
    ]]
    local tbl = {
        page = any_load_result1_upvr_2.CreateGroup(menu_upvr.purchase:GetDescendants(), TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    }
    tbl.page:FadeOut()
    local module = {
        event = Instance.new("BindableEvent");
        bulkFadeGroups = tbl;
        maid = any_load_result1_upvr.new();
    }
    module.core = arg1
    return setmetatable(module, module_2_upvr)
end
local any_load_result1_upvr_3 = _engine:load("FormatNumber", "utils")
local Profile_upvr = _references_upvr.Profile
local LocalPlayer_upvr = _services_upvr.Players.LocalPlayer
local any_load_result1_upvr_4 = _engine:load("Theme", "utils")
local any_new_result1_upvr_2 = _engine:load("Network").new()
local any_new_result1_upvr = _engine:load("Notification").new()
function module_2_upvr.prompt(arg1, arg2, arg3) -- Line 40
    --[[ Upvalues[9]:
        [1]: menu_upvr (readonly)
        [2]: _services_upvr (readonly)
        [3]: any_load_result1_upvr_3 (readonly)
        [4]: Profile_upvr (readonly)
        [5]: LocalPlayer_upvr (readonly)
        [6]: _references_upvr (readonly)
        [7]: any_load_result1_upvr_4 (readonly)
        [8]: any_new_result1_upvr_2 (readonly)
        [9]: any_new_result1_upvr (readonly)
    ]]
    assert(arg1.bulkFadeGroups, "Purchase [prompt]: Run '.new()' before calling :prompt()!")
    local any_GenerateGUID_result1_upvr = _services_upvr.HttpService:GenerateGUID(false)
    local purchase_upvr = menu_upvr.purchase.main.purchase.purchase
    menu_upvr.purchase.Visible = true
    menu_upvr.purchase.main.info.title.Text = string.upper(arg2.Name)
    menu_upvr.purchase.main.info.category.Text = string.upper(arg3)
    arg1.session = any_GenerateGUID_result1_upvr
    if arg2:FindFirstChild("Price") and 0 < arg2.Price.Value then
        menu_upvr.purchase.main.purchase.price.price.Text = any_load_result1_upvr_3.FormatLong(arg2.Price.Value)
    else
        menu_upvr.purchase.main.purchase.price.price.Text = "FREE"
    end
    menu_upvr.purchase.main.purchase.owned.Visible = false
    menu_upvr.purchase.main.purchase.purchase.Visible = true
    menu_upvr.purchase.main.purchase.purchase.background.BackgroundTransparency = 0
    menu_upvr.purchase.main.purchase.purchase.UIStroke.Transparency = 0
    menu_upvr.purchase.main.purchase.purchase.label.TextTransparency = 0
    if Profile_upvr.inventory[arg3]:FindFirstChild(arg2.Name) then
        menu_upvr.purchase.main.purchase.owned.Visible = true
        menu_upvr.purchase.main.purchase.purchase.Visible = false
    end
    task.spawn(function() -- Line 72
        --[[ Upvalues[8]:
            [1]: menu_upvr (copied, readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
            [3]: _references_upvr (copied, readonly)
            [4]: Profile_upvr (copied, readonly)
            [5]: arg3 (readonly)
            [6]: arg2 (readonly)
            [7]: arg1 (readonly)
            [8]: _services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 190 start (CF ANALYSIS FAILED)
        local var160
        if menu_upvr.purchase.main.viewport.viewport.WorldModel:FindFirstChild("previewer") then
            var160 = menu_upvr.purchase.main.viewport.viewport.WorldModel.previewer
        else
            var160 = workspace.game.rigs.previewer:Clone()
            local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 80
                --[[ Upvalues[1]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                ]]
                return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
            end)
            if pcall_result1_2 and pcall_result2_2 then
                for _, v in next, pcall_result2_2:GetChildren() do
                    if v:IsA("Accessory") and not v:FindFirstChildWhichIsA("WrapLayer", true) then
                        v.Parent = var160
                    elseif v:IsA("BodyColors") then
                        v.Parent = var160
                    elseif v:IsA("Decal") and v.Name == "face" then
                        var160.Head.face.Texture = v.Texture
                    end
                end
            end
            var160.Parent = workspace
        end
        var160.Accessories:ClearAllChildren()
        var160.Ball.design:ClearAllChildren()
        var160.RightHand.Transparency = 0
        var160.LeftHand.Transparency = 0
        for _, v_2 in next, var160.Gloves:GetChildren() do
            _ = next
            for _, v_3 in next, v_2:GetChildren() do
                v_3.Transparency = 1
            end
        end
        -- KONSTANTERROR: [0] 1. Error Block 190 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [162] 104. Error Block 171 start (CF ANALYSIS FAILED)
        for _, v_4 in next, var160.RightBoot:GetChildren() do
            if v_4 and v_4:IsA("SurfaceAppearance") then
                v_4:Destroy()
            end
        end
        for _, v_5 in next, var160.LeftBoot:GetChildren() do
            if v_5 and v_5:IsA("SurfaceAppearance") then
                v_5:Destroy()
            end
        end
        var160.RightBoot.TextureID = _references_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
        var160.LeftBoot.TextureID = _references_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
        if _references_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
            _references_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = var160.RightBoot
            _references_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = var160.LeftBoot
        end
        -- KONSTANTERROR: [162] 104. Error Block 171 end (CF ANALYSIS FAILED)
    end)
    arg1.core:SetAttribute("freeze", true)
    arg1.bulkFadeGroups.page:FadeIn()
    arg1.maid.mouseEnter = purchase_upvr.button.MouseEnter:Connect(function() -- Line 270
        --[[ Upvalues[4]:
            [1]: _references_upvr (copied, readonly)
            [2]: _services_upvr (copied, readonly)
            [3]: purchase_upvr (readonly)
            [4]: any_load_result1_upvr_4 (copied, readonly)
        ]]
        _references_upvr.Main.sounds.UI.Hover:Play()
        _services_upvr.TweenService:Create(purchase_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1.03;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_4.Accent;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_4.Text;
        }):Play()
    end)
    arg1.maid.mouseLeave = purchase_upvr.button.MouseLeave:Connect(function() -- Line 277
        --[[ Upvalues[3]:
            [1]: _services_upvr (copied, readonly)
            [2]: purchase_upvr (readonly)
            [3]: any_load_result1_upvr_4 (copied, readonly)
        ]]
        _services_upvr.TweenService:Create(purchase_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_4.Text;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    arg1.maid.mouseButton1Down = purchase_upvr.button.MouseButton1Down:Connect(function() -- Line 283
        --[[ Upvalues[2]:
            [1]: _services_upvr (copied, readonly)
            [2]: purchase_upvr (readonly)
        ]]
        _services_upvr.TweenService:Create(purchase_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
            Scale = 0.9;
        }):Play()
    end)
    arg1.maid.inputEnded = _services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_2) -- Line 287
        if arg1_3.UserInputType ~= Enum.UserInputType.MouseButton1 then
            if arg1_3.UserInputType ~= Enum.UserInputType.Touch then
            else
            end
        end
    end)
    local var186_upvw = false
    arg1.maid.mouseButton1Click = purchase_upvr.button.MouseButton1Click:Connect(function() -- Line 293
        --[[ Upvalues[11]:
            [1]: _references_upvr (copied, readonly)
            [2]: _services_upvr (copied, readonly)
            [3]: purchase_upvr (readonly)
            [4]: any_load_result1_upvr_4 (copied, readonly)
            [5]: var186_upvw (read and write)
            [6]: any_new_result1_upvr_2 (copied, readonly)
            [7]: arg2 (readonly)
            [8]: arg3 (readonly)
            [9]: arg1 (readonly)
            [10]: any_new_result1_upvr (copied, readonly)
            [11]: menu_upvr (copied, readonly)
        ]]
        _references_upvr.Main.sounds.UI.Click:Play()
        _services_upvr.TweenService:Create(purchase_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_4.Text;
        }):Play()
        _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        if not var186_upvw then
            var186_upvw = true
            _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 1;
            }):Play()
            task.wait(0.15)
            _services_upvr.TweenService:Create(purchase_upvr.loading, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            task.wait(0.3)
            local any_fetch_result1, any_fetch_result2_upvr = any_new_result1_upvr_2:fetch("purchase", arg2, arg3)
            _services_upvr.TweenService:Create(purchase_upvr.loading, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 1;
            }):Play()
            task.wait(0.15)
            if any_fetch_result1 == "success" then
                _services_upvr.TweenService:Create(purchase_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 1;
                }):Play()
                _services_upvr.TweenService:Create(purchase_upvr.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 1;
                }):Play()
                arg1.event:Fire(arg2)
                _references_upvr.Main.sounds.UI.Purchase:Play()
                task.spawn(function() -- Line 319
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (copied, readonly)
                        [2]: any_fetch_result2_upvr (readonly)
                    ]]
                    any_new_result1_upvr:create(string.upper(any_fetch_result2_upvr), Color3.fromRGB(69, 255, 162))
                end)
                task.wait(0.15)
                purchase_upvr.Visible = false
                menu_upvr.purchase.main.purchase.owned.Visible = true
                menu_upvr.purchase.main.purchase.owned.UIStroke.Transparency = 1
                menu_upvr.purchase.main.purchase.owned.label.icon.ImageTransparency = 1
                menu_upvr.purchase.main.purchase.owned.label.label.TextTransparency = 1
                _services_upvr.TweenService:Create(menu_upvr.purchase.main.purchase.owned.label.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                _services_upvr.TweenService:Create(menu_upvr.purchase.main.purchase.owned.label.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                _services_upvr.TweenService:Create(menu_upvr.purchase.main.purchase.owned.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 0;
                }):Play()
                task.wait(0.15)
                var186_upvw = false
                return
            end
            _references_upvr.Main.sounds.UI.Error:Play()
            task.spawn(function() -- Line 339
                --[[ Upvalues[2]:
                    [1]: any_new_result1_upvr (copied, readonly)
                    [2]: any_fetch_result2_upvr (readonly)
                ]]
                any_new_result1_upvr:create(string.upper(any_fetch_result2_upvr), Color3.fromRGB(255, 61, 61))
            end)
            purchase_upvr.label.TextColor3 = Color3.fromRGB(255, 0, 0)
            _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 0;
            }):Play()
            _services_upvr.TweenService:Create(purchase_upvr.label, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
            purchase_upvr.label:TweenPosition(UDim2.new(0.5, -15, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.05, true)
            task.wait(0.05)
            purchase_upvr.label:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Elastic, 0.25, true)
            task.wait(0.1)
            var186_upvw = false
        end
    end)
    local CFrame_upvr = menu_upvr.purchase.main.viewport.viewport.CurrentCamera.CFrame
    arg1.maid.back = menu_upvr.purchase.main.info.back.MouseButton1Click:Connect(function() -- Line 356
        --[[ Upvalues[4]:
            [1]: _references_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: CFrame_upvr (readonly)
        ]]
        _references_upvr.Main.sounds.UI.Click:Play()
        arg1.session = nil
        arg1.maid:DoCleaning()
        arg1.core:SetAttribute("freeze", false)
        arg1.bulkFadeGroups.page:FadeOut()
        task.wait(0.2)
        menu_upvr.purchase.main.viewport.viewport.CurrentCamera.CFrame = CFrame_upvr
        menu_upvr.purchase.main.viewport.viewport.CurrentCamera.FieldOfView = 30
        menu_upvr.purchase.Visible = false
    end)
    task.spawn(function() -- Line 371
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: any_GenerateGUID_result1_upvr (readonly)
            [3]: purchase_upvr (readonly)
            [4]: _services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 8 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 8 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [4] 4. Error Block 9 start (CF ANALYSIS FAILED)
        if arg1.session == any_GenerateGUID_result1_upvr then
            purchase_upvr.loading.Rotation = 0
            _services_upvr.TweenService:Create(purchase_upvr.loading, TweenInfo.new(0.35, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                Rotation = 360;
            }):Play()
            task.wait(0.35)
            -- KONSTANTWARNING: GOTO [46] #33
        end
        -- KONSTANTERROR: [4] 4. Error Block 9 end (CF ANALYSIS FAILED)
    end)
end
return module_2_upvr
ModuleScript Viewport ReplicatedStorage.engine.classes.Viewport
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:23
-- Luau version 6, Types version 3
-- Time taken: 0.018449 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local module_upvr = {
    _appearance = require(script._appearance);
    _ball = require(script._ball);
    _rotate = require(script._rotate);
    _maid = engine:load("Maid").new();
    _array = script._array;
    _objectsToRotate = {};
}
function module_upvr.create(arg1, arg2) -- Line 51
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    assert(arg2, "Viewport [create]: table 'Args' not found, will return nil.")
    assert(arg2._viewport, "Viewport [create]: viewportFrame '_viewport' not found, will return nil.")
    assert(arg2._model, "Viewport [create]: basePart '_model' not found, will return nil.")
    local clone = arg2._model:Clone()
    clone.Parent = workspace.game.debug
    local var12
    if arg2._loadAppearance then
        var12 = arg2._player
        module_upvr._appearance:load(var12, clone)
    end
    if arg2._shirt then
        for _, v in next, clone:GetChildren() do
            if v:IsA("Shirt") then
                v:Destroy()
            end
        end
        arg2._shirt:Clone().Parent = clone
    end
    if arg2._pants then
        local children, NONE = clone:GetChildren()
        for _, v_2 in next, children, NONE do
            if v_2:IsA("Pants") then
                v_2:Destroy()
            end
        end
        arg2._pants:Clone().Parent = clone
    end
    if arg2._ball then
        NONE = clone
        module_upvr._ball:create(NONE, arg2._ballOffset, arg2._hideBall)
    end
    NONE = "WorldModel"
    local SOME = arg2._viewport:FindFirstChild(NONE)
    if not SOME then
        NONE = "WorldModel"
        SOME = Instance.new(NONE, arg2._viewport)
    end
    local clone_upvr = clone:Clone()
    clone_upvr.Parent = SOME
    NONE = clone_upvr:FindFirstChild("HumanoidRootPart")
    if NONE then
        NONE = clone_upvr.HumanoidRootPart
        clone_upvr.PrimaryPart = NONE
    end
    NONE = nil
    if arg2._animationData then
        local Animation = Instance.new("Animation", clone)
        Animation.AnimationId = arg2._animationData._id
        NONE = clone_upvr.Humanoid.Animator:LoadAnimation(Animation)
        if arg2._animationData._looped then
            NONE.Looped = true
            NONE:Play(0)
        else
            NONE:Play()
        end
    end
    local Camera_upvr = Instance.new("Camera", arg2._viewport)
    Camera_upvr.FieldOfView = arg2._cameraFOV or 70
    if clone_upvr:FindFirstChild("HumanoidRootPart") then
        if arg2._cameraOffset then
            Camera_upvr.CFrame = clone_upvr.HumanoidRootPart.CFrame * arg2._cameraOffset
        else
            Camera_upvr.CFrame = clone_upvr.HumanoidRootPart.CFrame * CFrame.new(-2, 0, -5.6) * CFrame.Angles(math.pi, -0.4, (-math.pi))
        end
        -- KONSTANTWARNING: GOTO [397] #276
    end
    if clone_upvr:IsA("Model") and not arg2._usePrimaryPart then
        local any_GetBoundingBox_result1_2, _ = clone_upvr:GetBoundingBox()
        if arg2._cameraOffset then
            Camera_upvr.CFrame = any_GetBoundingBox_result1_2 * arg2._cameraOffset
        else
            Camera_upvr.CFrame = any_GetBoundingBox_result1_2 * CFrame.new(-0.4, 0, -2) * CFrame.Angles(math.pi, -0.2, (-math.pi))
        end
    elseif clone_upvr:IsA("Model") and clone_upvr.PrimaryPart or clone_upvr:IsA("Folder") and clone_upvr:FindFirstChild("PrimaryPart") or arg2._usePrimaryPart then
        if arg2._cameraOffset then
            Camera_upvr.CFrame = clone_upvr.PrimaryPart.CFrame * arg2._cameraOffset
        else
            Camera_upvr.CFrame = clone_upvr.PrimaryPart.CFrame * CFrame.new(-0.4, 0, -2) * CFrame.Angles(math.pi, -0.2, (-math.pi))
        end
    elseif clone_upvr:IsA("Accessory") then
        if arg2._cameraOffset then
            Camera_upvr.CFrame = clone_upvr.Handle.CFrame * arg2._cameraOffset
        else
            Camera_upvr.CFrame = clone_upvr.Handle.CFrame * CFrame.new(-0.4, 0, -2) * CFrame.Angles(math.pi, -0.2, (-math.pi))
        end
    elseif clone_upvr:IsA("BasePart") then
        if arg2._cameraOffset then
            Camera_upvr.CFrame = clone_upvr.CFrame * arg2._cameraOffset
        else
            Camera_upvr.CFrame = clone_upvr.CFrame * CFrame.new(1.75, 0, -1.3) * CFrame.Angles(math.pi, 1, (-math.pi))
        end
    end
    arg2._viewport.CurrentCamera = Camera_upvr
    clone:Destroy()
    if arg2._rotate then
        if arg2._rotate == "Array" then
            local var23
            local var24
            if clone_upvr:IsA("Model") then
                local any_GetBoundingBox_result1, any_GetBoundingBox_result2 = clone_upvr:GetBoundingBox()
                var23 = any_GetBoundingBox_result1
                var24 = any_GetBoundingBox_result2
            else
                var23 = clone_upvr.CFrame
                var24 = clone_upvr.Size
            end
            local ObjectValue = Instance.new("ObjectValue")
            ObjectValue.Name = clone_upvr.Name
            ObjectValue.Value = clone_upvr
            local CFrameValue = Instance.new("CFrameValue")
            CFrameValue.Name = "viewportCFrame"
            CFrameValue.Value = var23
            CFrameValue.Parent = ObjectValue
            local Vector3Value = Instance.new("Vector3Value")
            Vector3Value.Name = "viewportSize"
            Vector3Value.Value = var24
            Vector3Value.Parent = ObjectValue
            local ObjectValue_2 = Instance.new("ObjectValue")
            ObjectValue_2.Name = "viewportCamera"
            ObjectValue_2.Value = Camera_upvr
            ObjectValue_2.Parent = ObjectValue
            local NumberValue = Instance.new("NumberValue")
            NumberValue.Name = "viewportDistance"
            NumberValue.Value = arg2._viewportDistance or 0.8
            NumberValue.Parent = ObjectValue
            ObjectValue.Parent = module_upvr._array
            module_upvr._maid:GiveTask(ObjectValue)
        else
            task.spawn(function() -- Line 231
                --[[ Upvalues[4]:
                    [1]: module_upvr (copied, readonly)
                    [2]: clone_upvr (readonly)
                    [3]: Camera_upvr (readonly)
                    [4]: arg2 (readonly)
                ]]
                module_upvr._rotate:start(clone_upvr, Camera_upvr, arg2._rotate or "Dynamic", arg2._viewportDistance or 0.8)
            end)
        end
    end
    if arg2._return then
        if arg2._return == "Camera" then
            return {Camera_upvr, clone_upvr}
        end
        if arg2._return == "Animation" then
            return {clone_upvr, NONE}
        end
        return clone_upvr
    end
end
local Services_upvr = engine.Services
function module_upvr.rotateArray(arg1) -- Line 252
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    local function addObject_upvr(arg1_2) -- Line 253, Named "addObject"
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr._objectsToRotate[arg1_2.Value] = {arg1_2:WaitForChild("viewportCFrame", 100).Value, arg1_2:WaitForChild("viewportSize", 100).Value, arg1_2:WaitForChild("viewportCamera", 100).Value, arg1_2:WaitForChild("viewportDistance", 100).Value}
    end
    for _, v_3 in next, module_upvr._array:GetChildren() do
        if v_3 then
            addObject_upvr(v_3)
        end
    end
    module_upvr._maid.ChildAdded = module_upvr._array.ChildAdded:Connect(function(arg1_3) -- Line 269
        --[[ Upvalues[1]:
            [1]: addObject_upvr (readonly)
        ]]
        addObject_upvr(arg1_3)
    end)
    module_upvr._maid.Heartbeat = Services_upvr.RunService.Heartbeat:Connect(function(arg1_4) -- Line 273
        --[[ Upvalues[2]:
            [1]: module_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        for i_4, v_4 in next, module_upvr._objectsToRotate do
            if i_4 and v_4 then
                local var45 = os.clock() / 2
                Services_upvr.TweenService:Create(v_4[3], TweenInfo.new(arg1_4, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                    CFrame = v_4[1] * CFrame.Angles(0, var45 % (-math.pi*2), 0) * CFrame.Angles(math.sin(var45 * 0.5) * 0.25 - 0.3, 0, 0) * CFrame.new(0, 0, v_4[2].Magnitude * (v_4[4] or 0.8));
                }):Play()
            end
        end
    end)
end
function module_upvr.stopRotation(arg1) -- Line 286
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    module_upvr._maid:DoCleaning()
end
function module_upvr.new(arg1) -- Line 290
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    assert(arg1, "Viewport [new]: table 'Args' not found, will return nil.")
    if arg1._type and arg1._type == "Item" then
        module_upvr:create({
            _viewport = arg1._viewport;
            _model = arg1._model;
        })
    else
        if arg1._return then
            return module_upvr:create(arg1)
        end
        module_upvr:create(arg1)
    end
end
return module_upvr
ModuleScript _ball ReplicatedStorage.engine.classes.Viewport._ball
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:25
-- Luau version 6, Types version 3
-- Time taken: 0.001274 seconds

local module = {}
local References_upvr = require(game:GetService("ReplicatedStorage").engine).References
function module.create(arg1, arg2) -- Line 18
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    local clone = References_upvr.Main.balls["Adidas RF Pro 23/24"]:Clone()
    clone.Parent = arg2.Ball.design
    clone.Size = arg2.Ball.Size
    clone.CFrame = arg2.Ball.CFrame
    arg2.Ball.Transparency = 1
    local WeldConstraint = Instance.new("WeldConstraint", clone)
    WeldConstraint.Part0 = clone
    WeldConstraint.Part1 = arg2.Ball
end
return module
ModuleScript _appearance ReplicatedStorage.engine.classes.Viewport._appearance
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:26
-- Luau version 6, Types version 3
-- Time taken: 0.000967 seconds

local module = {}
local Players_upvr = require(game:GetService("ReplicatedStorage").engine).Services.Players
function module.load(arg1, arg2, arg3) -- Line 18
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    arg3.Humanoid:ApplyDescription(Players_upvr:GetHumanoidDescriptionFromUserId(arg2.UserId))
end
return module
ModuleScript _rotate ReplicatedStorage.engine.classes.Viewport._rotate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:28
-- Luau version 6, Types version 3
-- Time taken: 0.003953 seconds

local engine_upvr = require(game:GetService("ReplicatedStorage").engine)
local Services_upvr = engine_upvr.Services
local module = {}
local RunService_upvr = Services_upvr.RunService
function module.start(arg1, arg2, arg3, arg4, arg5) -- Line 17
    --[[ Upvalues[3]:
        [1]: Services_upvr (readonly)
        [2]: engine_upvr (readonly)
        [3]: RunService_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [166] 117. Error Block 18 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [166.12]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [167.13]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [168.11]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [172.5]
    local var6_upvw
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [172.6]
    local var7_upvw
    local var8_upvr = nil / 2 / nil + nil
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [180.9]
    nil.Heartbeat = RunService_upvr.Heartbeat:Connect(function(arg1_2) -- Line 51
        --[[ Upvalues[4]:
            [1]: var6_upvw (read and write)
            [2]: arg3 (readonly)
            [3]: var7_upvw (read and write)
            [4]: var8_upvr (readonly)
        ]]
        var6_upvw += 1 * arg1_2 * 60
        arg3.CFrame = var7_upvw * CFrame.fromEulerAnglesYXZ(0, -math.rad(var6_upvw), 0) * CFrame.new(0, 0, var8_upvr)
    end)
    local var10_upvr
    var10_upvr.AncestryChanged = arg2.AncestryChanged:Connect(function() -- Line 56
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: var10_upvr (readonly)
        ]]
        if not arg2.Parent or arg2.Parent and not arg2.Parent.Parent then
            var10_upvr:DoCleaning()
        end
    end)
    do
        return
    end
    -- KONSTANTERROR: [166] 117. Error Block 18 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [194] 139. Error Block 35 start (CF ANALYSIS FAILED)
    var6_upvw = nil
    local var11_upvw = var6_upvw
    var7_upvw = nil
    local var12_upvw = var7_upvw
    local any_new_result1_upvr = engine_upvr:load("Maid").new()
    if arg2:IsA("Model") then
        local any_GetBoundingBox_result1, any_GetBoundingBox_result2 = arg2:GetBoundingBox()
        var11_upvw = any_GetBoundingBox_result1
        var12_upvw = any_GetBoundingBox_result2
    else
        var11_upvw = arg2.CFrame
        var12_upvw = arg2.Size
    end
    any_new_result1_upvr.Heartbeat = RunService_upvr.Heartbeat:Connect(function(arg1_3) -- Line 72
        --[[ Upvalues[5]:
            [1]: var11_upvw (read and write)
            [2]: var12_upvw (read and write)
            [3]: arg5 (readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: arg3 (readonly)
        ]]
        local var17 = os.clock() / 2
        Services_upvr.TweenService:Create(arg3, TweenInfo.new(arg1_3, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
            CFrame = var11_upvw * CFrame.Angles(0, var17 % (-math.pi*2), 0) * CFrame.Angles(math.sin(var17 * 0.5) * 0.25 - 0.3, 0, 0) * CFrame.new(0, 0, var12_upvw.Magnitude * (arg5 or 0.8));
        }):Play()
    end)
    any_new_result1_upvr.AncestryChanged = arg2.AncestryChanged:Connect(function() -- Line 79
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: any_new_result1_upvr (readonly)
        ]]
        if not arg2.Parent or arg2.Parent and not arg2.Parent.Parent then
            any_new_result1_upvr:DoCleaning()
        end
    end)
    -- KONSTANTERROR: [194] 139. Error Block 35 end (CF ANALYSIS FAILED)
end
function module.clear(arg1) -- Line 87
    maid:DoCleaning()
end
return module
ModuleScript Messenger ReplicatedStorage.engine.classes.Messenger
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:29
-- Luau version 6, Types version 3
-- Time taken: 0.002418 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
module_2_upvr.Topic = script.Topic
module_2_upvr.TopicThread = script.TopicThread
local Topic_upvr = require(script.Topic)
function module_2_upvr.getData(arg1) -- Line 17
    return {arg1.placeId, arg1.jobId}
end
function module_2_upvr.getTopic(arg1, arg2) -- Line 24
    --[[ Upvalues[1]:
        [1]: Topic_upvr (readonly)
    ]]
    return Topic_upvr.new(arg1, arg2)
end
function module_2_upvr.subscribe(arg1, arg2, arg3) -- Line 34
    --[[ Upvalues[1]:
        [1]: Topic_upvr (readonly)
    ]]
    local any_new_result1 = Topic_upvr.new(arg1, arg2)
    return any_new_result1:subscribe(arg3), any_new_result1
end
function module_2_upvr.publish(arg1, arg2, arg3) -- Line 47
    --[[ Upvalues[1]:
        [1]: Topic_upvr (readonly)
    ]]
    local any_new_result1_2 = Topic_upvr.new(arg1, arg2)
    return any_new_result1_2:send(arg3), any_new_result1_2
end
function module_2_upvr.new() -- Line 58
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module = {}
    setmetatable(module, module_2_upvr)
    module.topics = {}
    module.placeId = game.PlaceId
    module.jobId = game.JobId
    return module
end
return module_2_upvr
ModuleScript Topic ReplicatedStorage.engine.classes.Messenger.Topic
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:31
-- Luau version 6, Types version 3
-- Time taken: 0.004145 seconds

local MessagingService_upvr = game:GetService("MessagingService")
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.publish(arg1, arg2) -- Line 16
    --[[ Upvalues[1]:
        [1]: MessagingService_upvr (readonly)
    ]]
    return MessagingService_upvr:PublishAsync(arg1.name, arg2)
end
function module_upvr.generateThreadId(arg1) -- Line 22
    return arg1.server.jobId..'-'..tostring(#arg1.threads + 1)
end
function module_upvr.send(arg1, arg2, arg3) -- Line 30
    local var3 = arg3
    if not var3 then
        var3 = arg1:generateThreadId()
    end
    local var4 = var3
    if var4 then
        local tbl_2 = {arg1.server:getData(), var4}
        tbl_2[3] = arg2
        arg1:publish(tbl_2)
        return var4
    end
end
local TopicThread_upvr = require(script.Parent.TopicThread)
function module_upvr.createThread(arg1, arg2) -- Line 44
    --[[ Upvalues[1]:
        [1]: TopicThread_upvr (readonly)
    ]]
    return TopicThread_upvr.new(arg1, arg2)
end
function module_upvr.handleMessage(arg1, arg2) -- Line 53
    local unpacked_value_1, unpacked_value_2, unpacked_value_3 = table.unpack(arg2)
    local unpacked_value_1_2, unpacked_value_2_2 = table.unpack(unpacked_value_1)
    local tbl = {
        server = {
            placeId = unpacked_value_1_2;
            jobId = unpacked_value_2_2;
        };
        threadId = unpacked_value_2;
    }
    tbl.data = arg2
    local var14 = arg1.threads[unpacked_value_2]
    if var14 then
        var14:handleMessage(tbl)
    end
    arg1._onMessage:Fire(tbl)
end
function module_upvr.subscribe(arg1, arg2) -- Line 84
    return arg1.onMessage:Connect(arg2)
end
function module_upvr.new(arg1, arg2) -- Line 93
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: MessagingService_upvr (readonly)
    ]]
    local module_upvr_2 = {}
    setmetatable(module_upvr_2, module_upvr)
    if arg1 and arg1.topics[arg2] then
        return arg1.topics[arg2]
    end
    module_upvr_2.name = arg2
    module_upvr_2.server = arg1
    module_upvr_2.threads = {}
    module_upvr_2._onMessage = Instance.new("BindableEvent")
    module_upvr_2.onMessage = module_upvr_2._onMessage.Event
    module_upvr_2.connection = MessagingService_upvr:SubscribeAsync(module_upvr_2.name, function(arg1_2) -- Line 112
        --[[ Upvalues[1]:
            [1]: module_upvr_2 (readonly)
        ]]
        return module_upvr_2:handleMessage(arg1_2.Data)
    end)
    if arg1 then
        arg1.topics[arg2] = module_upvr_2
    end
    return module_upvr_2
end
return module_upvr
ModuleScript TopicThread ReplicatedStorage.engine.classes.Messenger.TopicThread
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:32
-- Luau version 6, Types version 3
-- Time taken: 0.002279 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.send(arg1, arg2) -- Line 14
    return arg1.topic:send(arg2, arg1.threadId)
end
function module_upvr.handleMessage(arg1, arg2) -- Line 22
    arg1._onMessage:Fire(arg2)
end
function module_upvr.subscribe(arg1, arg2) -- Line 30
    return arg1.onMessage:Connect(arg2)
end
function module_upvr.new(arg1, arg2) -- Line 39
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local module = {}
    setmetatable(module, module_upvr)
    if arg1 and arg1.threads[arg2] then
        return arg1.threads[arg2]
    end
    module.topic = arg1
    module.threadId = arg2
    module._onMessage = Instance.new("BindableEvent")
    module.onMessage = module._onMessage.Event
    if arg1 then
        arg1.threads[arg2] = module
    end
    return module
end
return module_upvr
ModuleScript Walkout ReplicatedStorage.engine.classes.Walkout
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:34
-- Luau version 6, Types version 3
-- Time taken: 0.001323 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Walkout.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:36
-- Luau version 6, Types version 3
-- Time taken: 0.019892 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _maid = _G._engine:load("Maid").new();
    }, module_upvr)
end
function module_upvr.init(arg1) -- Line 10
    local tbl_4 = {
        home = {};
        away = {};
    }
    _G._references.RemoteEvent:FireAllClients("cutscene", "walkout")
    task.wait(1)
    for _, v in next, _G._services.Players:GetPlayers() do
        if v and v.Team and string.find(v.Team.Name, "Home") and string.find(v.Team.Name, "GK") and v.Character and v.Character.PrimaryPart and v.Character.PrimaryPart.Parent then
            table.insert(tbl_4.home, v)
        elseif v and v.Team and string.find(v.Team.Name, "Away") and string.find(v.Team.Name, "GK") and v.Character and v.Character.PrimaryPart and v.Character.PrimaryPart.Parent then
            table.insert(tbl_4.away, v)
        end
    end
    for _, v_2 in next, _G._services.Players:GetPlayers() do
        if v_2 and v_2.Team and string.find(v_2.Team.Name, "Home") and not string.find(v_2.Team.Name, "GK") and v_2.Character and v_2.Character.PrimaryPart and v_2.Character.PrimaryPart.Parent then
            table.insert(tbl_4.home, v_2)
        elseif v_2 and v_2.Team and string.find(v_2.Team.Name, "Away") and not string.find(v_2.Team.Name, "GK") and v_2.Character and v_2.Character.PrimaryPart and v_2.Character.PrimaryPart.Parent then
            table.insert(tbl_4.away, v_2)
        end
    end
    for _, v_3 in next, workspace.game.referee.rigs:GetChildren() do
        if v_3 and v_3:IsA("Model") and v_3.PrimaryPart and v_3.PrimaryPart.Parent and workspace.game.cutscenes.walkout.referee:FindFirstChild(v_3.Name) then
            v_3:SetPrimaryPartCFrame(workspace.game.cutscenes.walkout.referee[v_3.Name].CFrame)
        end
    end
    local BoolValue_4 = Instance.new("BoolValue")
    BoolValue_4.Name = "RTP"
    BoolValue_4.Value = true
    BoolValue_4.Parent = _G._references.Main.config.Override
    local BoolValue_2 = Instance.new("BoolValue")
    BoolValue_2.Name = "Referee"
    BoolValue_2.Parent = _G._references.Main.config.Override
    BoolValue_2.Value = true
    arg1._maid:GiveTask(BoolValue_4)
    arg1._maid:GiveTask(BoolValue_2)
    for _, v_4 in next, {"home", "away"} do
        for i_5, v_5 in next, tbl_4[v_4] do
            if v_5 and v_5.Character and v_5.Character.PrimaryPart and v_5.Character.PrimaryPart.Parent and workspace.game.cutscenes.walkout.positions['1'][v_4]:FindFirstChild(tostring(i_5)) then
                for i_6, v_6 in next, {"serverRagdollBinder", "getUpBinder"} do
                    while v_5 and v_5.Character:GetAttribute(v_6) do
                        task.wait()
                    end
                end
                if v_5 and v_5.Parent then
                    local BoolValue_6 = Instance.new("BoolValue", v_5)
                    BoolValue_6.Name = "Teleport"
                    BoolValue_6.Value = true
                    i_6 = _G
                    i_6 = BoolValue_6
                    v_6 = 3
                    i_6._services.Debris:AddItem(i_6, v_6)
                    i_6 = _G
                    i_6 = v_5
                    v_6 = "shiftLock"
                    i_6._references.RemoteEvent:FireClient(i_6, v_6, false)
                    i_6 = _G
                    i_6 = v_5
                    v_6 = "bindMovement"
                    i_6._references.RemoteEvent:FireClient(i_6, v_6, "freeze")
                    i_6 = _G
                    i_6 = v_5
                    v_6 = "forceDisable"
                    i_6._references.RemoteEvent:FireClient(i_6, v_6, true)
                    v_6 = workspace.game.cutscenes.walkout.positions['1'][v_4][tostring(i_5)]
                    i_6 = v_6.CFrame
                    v_5.Character:SetPrimaryPartCFrame(i_6)
                end
            end
        end
    end
    task.wait(5)
    for _, v_7_upvr in next, {"home", "away"} do
        for i_8_upvr, v_8_upvr in next, tbl_4[v_7_upvr] do
            if v_8_upvr and v_8_upvr.Character and v_8_upvr.Character.PrimaryPart and v_8_upvr.Character.PrimaryPart.Parent and workspace.game.cutscenes.walkout.positions['2'][v_7_upvr]:FindFirstChild(tostring(i_8_upvr)) then
                task.spawn(function() -- Line 84
                    --[[ Upvalues[3]:
                        [1]: v_7_upvr (readonly)
                        [2]: i_8_upvr (readonly)
                        [3]: v_8_upvr (readonly)
                    ]]
                    local Position_4 = workspace.game.cutscenes.walkout.positions['2'][v_7_upvr][tostring(i_8_upvr)].Position
                    v_8_upvr.Character:SetAttribute("moveTo", true)
                    v_8_upvr.Character.Humanoid:MoveTo(Position_4)
                    _G._references.RemoteFunction:InvokeClient(v_8_upvr, "moveTo", Position_4)
                end)
            end
        end
    end
    task.wait(0.7)
    for _, v_9_upvr in next, {"home", "away"} do
        for i_10_upvr, v_10_upvr in next, tbl_4[v_9_upvr] do
            if v_10_upvr and v_10_upvr.Character and v_10_upvr.Character.PrimaryPart and v_10_upvr.Character.PrimaryPart.Parent and workspace.game.cutscenes.walkout.positions['3'][v_9_upvr]:FindFirstChild(tostring(i_10_upvr)) then
                task.spawn(function() -- Line 99
                    --[[ Upvalues[3]:
                        [1]: v_9_upvr (readonly)
                        [2]: i_10_upvr (readonly)
                        [3]: v_10_upvr (readonly)
                    ]]
                    local Position = workspace.game.cutscenes.walkout.positions['3'][v_9_upvr][tostring(i_10_upvr)].Position
                    v_10_upvr.Character:SetAttribute("moveTo", true)
                    v_10_upvr.Character.Humanoid:MoveTo(Position)
                    _G._references.RemoteFunction:InvokeClient(v_10_upvr, "moveTo", Position)
                end)
            end
        end
    end
    task.wait(7)
    for _, v_11 in next, workspace.game.referee.rigs:GetChildren() do
        if v_11 and v_11:IsA("Model") and v_11.PrimaryPart and v_11.PrimaryPart.Parent then
            i_10_upvr = workspace
            if i_10_upvr.game.referee.positions:FindFirstChild(v_11.Name) then
                v_10_upvr = workspace.game.referee.positions
                i_10_upvr = v_10_upvr[v_11.Name]
                v_11:SetPrimaryPartCFrame(i_10_upvr.CFrame)
            end
        end
    end
    for _, v_12 in next, {"home", "away"} do
        for _, v_13 in next, tbl_4[v_12] do
            if v_13 and v_13.Character then
                v_13.Character:SetAttribute("moveTo", nil)
                _G._references.RemoteEvent:FireClient(v_13, "shiftLock", true)
                _G._references.RemoteEvent:FireClient(v_13, "forceDisable", false)
                _G._references.RemoteEvent:FireClient(v_13, "canSprint", true)
                _G._references.RemoteEvent:FireClient(v_13, "globalOverride", false)
                _G._references.RemoteEvent:FireClient(v_13, "bindMovement", "unfreeze")
            end
        end
    end
    arg1._maid:DoCleaning()
end
return module_upvr
ModuleScript client ReplicatedStorage.engine.classes.Walkout.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:37
-- Luau version 6, Types version 3
-- Time taken: 0.004603 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _player = _G._services.Players.LocalPlayer;
        _maid = _G._engine:load("Maid").new();
    }, module_upvr)
end
function module_upvr.init(arg1) -- Line 11
    local cutsceneSettings_upvr = workspace.game.cutscenes.walkout.camera.cutsceneSettings
    local BoolValue = Instance.new("BoolValue", workspace.game.debug)
    BoolValue.Name = arg1._player.Name
    BoolValue.Value = true
    arg1._player.PlayerGui.main.backpack.Visible = false
    arg1._maid:GiveTask(BoolValue)
    arg1._maid._renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 20
        --[[ Upvalues[1]:
            [1]: cutsceneSettings_upvr (readonly)
        ]]
        workspace.CurrentCamera.FieldOfView = tonumber(cutsceneSettings_upvr.CameraFieldOfView.Value)
        workspace.CurrentCamera.CFrame = cutsceneSettings_upvr.CameraTargets.CameraTarget1.Value.CFrame:Lerp(cutsceneSettings_upvr.CameraTargets.CameraTarget2.Value.CFrame, cutsceneSettings_upvr.CameraTargets.CameraTarget2.Lerp.Value):Lerp(cutsceneSettings_upvr.CameraTargets.CameraTarget3.Value.CFrame, cutsceneSettings_upvr.CameraTargets.CameraTarget3.Lerp.Value):Lerp(cutsceneSettings_upvr.CameraTargets.CameraTarget4.Value.CFrame, cutsceneSettings_upvr.CameraTargets.CameraTarget4.Lerp.Value)
    end)
    task.wait(5)
    _G._services.TweenService:Create(cutsceneSettings_upvr.CameraTargets.CameraTarget2.Lerp, TweenInfo.new(2.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Value = 1;
    }):Play()
    task.wait(1)
    _G._services.TweenService:Create(cutsceneSettings_upvr.CameraTargets.CameraTarget3.Lerp, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Value = 1;
    }):Play()
    task.wait(1.5)
    _G._services.TweenService:Create(cutsceneSettings_upvr.CameraTargets.CameraTarget4.Lerp, TweenInfo.new(5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Value = 1;
    }):Play()
    task.wait(4)
    arg1._player.PlayerGui.main.overlay.color.Visible = true
    _G._services.TweenService:Create(arg1._player.PlayerGui.main.overlay.color, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        BackgroundTransparency = 0;
    }):Play()
    task.wait(0.5)
    arg1._maid:DoCleaning()
    arg1._player.PlayerGui.main.backpack.Visible = true
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    _G._services.TweenService:Create(arg1._player.PlayerGui.main.overlay.color, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        BackgroundTransparency = 1;
    }):Play()
    task.wait(0.5)
    arg1._player.PlayerGui.main.overlay.color.Visible = false
    task.wait(0.35)
    cutsceneSettings_upvr.CameraTargets.CameraTarget2.Lerp.Value = 0
    cutsceneSettings_upvr.CameraTargets.CameraTarget3.Lerp.Value = 0
    cutsceneSettings_upvr.CameraTargets.CameraTarget4.Lerp.Value = 0
end
return module_upvr
ModuleScript Shootout ReplicatedStorage.engine.classes.Shootout
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:39
-- Luau version 6, Types version 3
-- Time taken: 0.000890 seconds

local module_upvr = {
    _client = require(script:WaitForChild("client", 100));
    _server = require(script:WaitForChild("server", 100));
}
function module_upvr.new(...) -- Line 5
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if _G._services.RunService:IsClient() then
        module_upvr._client.new(...):init()
    else
        module_upvr._server.new(...):init()
    end
end
return module_upvr
ModuleScript server ReplicatedStorage.engine.classes.Shootout.server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:41
-- Luau version 6, Types version 3
-- Time taken: 0.020141 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(arg1, "Penalty.server | dataModel 'player' expected, got "..typeof(arg1))
    local Character = arg1.Character
    if not Character then
        Character = arg1.CharacterAdded:Wait()
    end
    local HPK = _G._references.Main.admin.positions.HPK
    local clone = _G._references.Main["set pieces"].Shootout:Clone()
    clone.Parent = workspace.game.debug
    clone.Name = arg1.Name
    clone.Ball.Transparency = 1
    clone:SetPrimaryPartCFrame(CFrame.new(Vector3.new(HPK.Position.X, clone.Primary.Position.Y, HPK.Position.Z)) * CFrame.Angles(HPK.CFrame:ToOrientation()))
    clone.Team.Value = arg2
    local module = {}
    module._player = arg1
    module._character = Character
    module._profile = _G._references.Profiles:WaitForChild(tostring(arg1.UserId), 100)
    module._model = clone
    module._maid = _G._engine:load("Maid").new()
    module._touch = {}
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 31
    assert(arg1._model, "Penalty.server [init] | call .new() before running :init()!")
    assert(arg1._character.PrimaryPart, string.format("Penalty.server [init] | could not find PrimaryPart [%s]", tostring(arg1._player.UserId)))
    local BoolValue = Instance.new("BoolValue")
    BoolValue.Name = script.Parent.Parent.Name
    BoolValue.Value = true
    BoolValue.Parent = _G._references.Main.config["Set Pieces"]
    arg1._maid:GiveTask(BoolValue)
    arg1:initConnections()
    arg1._character.Archivable = false
    local BoolValue_6 = Instance.new("BoolValue", arg1._player)
    BoolValue_6.Name = "Teleport"
    BoolValue_6.Value = true
    _G._services.Debris:AddItem(BoolValue_6, 3)
    if arg1._profile.settings.Visual["Strong Foot"].Value == "Right" then
        arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    else
        arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        arg1._character.PrimaryPart.Anchored = true
    end
    if workspace.game.referee.rigs:FindFirstChild("main") then
        local BoolValue_5 = Instance.new("BoolValue")
        BoolValue_5.Name = "Referee"
        BoolValue_5.Value = true
        BoolValue_5.Parent = _G._references.Main.config.Override
        arg1._maid:GiveTask(BoolValue_5)
        workspace.game.referee.rigs.main.PrimaryPart.RootRigAttachment.AlignOrientation.CFrame = workspace.game.referee.teleport.penalty.home.CFrame
        workspace.game.referee.rigs.main:SetPrimaryPartCFrame(workspace.game.referee.teleport.penalty.home.CFrame)
    end
    if _G._references.Main.config.AutoRall.Value then
        for _, v in next, workspace.game.balls.spawns:GetChildren() do
            if v then
                v:Destroy()
            end
        end
    end
    _G._references.BindableEvent:Fire("clearSpace")
    local CFrameValue = Instance.new("CFrameValue")
    CFrameValue.Name = "RF"
    CFrameValue.Value = arg1._model.Ball.CFrame
    CFrameValue.Parent = workspace.game.balls.spawns
    local IntValue = Instance.new("IntValue")
    IntValue.Name = "possessor"
    IntValue.Value = arg1._player.UserId
    IntValue.Parent = CFrameValue
    for _, v_2 in next, _G._references.Main.config.Override:GetChildren() do
        if v_2 and v_2.Name == "Break" then
            v_2:Destroy()
        end
    end
    arg1._character.Humanoid.AutoRotate = false
    _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", false)
    _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", true)
    _G._references.RemoteEvent:FireClient(arg1._player, "shootout", arg1._model, CFrameValue)
end
function module_2_upvr.initConnections(arg1) -- Line 111
    local BindableEvent_upvr = Instance.new("BindableEvent", arg1._model)
    BindableEvent_upvr.Name = "Cancel"
    local RemoteEvent = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent.Name = "Clear"
    local RemoteEvent_2 = Instance.new("RemoteEvent", arg1._model)
    RemoteEvent_2.Name = "Animation"
    Instance.new("RemoteEvent", arg1._model).Name = "Collide"
    arg1._maid._onBindableEvent = BindableEvent_upvr.Event:Connect(function() -- Line 126
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    arg1._maid._onClearRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_2) -- Line 130
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == arg1._player then
            if arg1._animation then
                while arg1._animation do
                    task.wait()
                end
            end
            arg1:clear()
        end
    end)
    arg1._maid._onAnimationRemoteEvent = RemoteEvent_2.OnServerEvent:Connect(function(arg1_3, arg2) -- Line 142
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var30
        if arg1_3 == arg1._player then
            var30 = arg1_3.Character
            var30 = arg2
            local any_LoadAnimation_result1 = var30.Humanoid.Animator:LoadAnimation(var30)
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
            var30 = true
            arg1._animation = var30
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var30 = any_LoadAnimation_result1.Length - 0.6
                return var30
            end
            if 0.1 > any_LoadAnimation_result1.Length or not INLINED_2() then
                var30 = 3.85
            end
            task.wait(var30)
            if arg1_3 and arg1_3.Character then
                var30 = arg1._maid
                if var30._onAnimationRemoteEvent then
                    var30 = "BoolValue"
                    local any_2 = Instance.new(var30, arg1._player)
                    var30 = "Teleport"
                    any_2.Name = var30
                    var30 = true
                    any_2.Value = var30
                    var30 = _G._services.Debris:AddItem
                    var30(any_2, 3)
                    var30 = any_LoadAnimation_result1:AdjustSpeed
                    var30(0)
                    var30 = arg1_3.Character:SetPrimaryPartCFrame
                    var30(arg1_3.Character.LowerTorso.CFrame * _G._services.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(_G._services.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
                    var30 = any_LoadAnimation_result1:Stop
                    var30(0)
                    var30 = arg1
                    var30._animation = nil
                end
            end
        end
    end)
    arg1._maid._onCollideRemoteEvent = RemoteEvent.OnServerEvent:Connect(function(arg1_4) -- Line 165
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 == arg1._player then
            arg1._model.Detector.CanCollide = false
        end
    end)
    arg1._maid._onRespawn = arg1._player.CharacterAdded:Connect(function() -- Line 171
        --[[ Upvalues[1]:
            [1]: BindableEvent_upvr (readonly)
        ]]
        BindableEvent_upvr:Fire()
    end)
    arg1._maid._onLeave = _G._services.Players.PlayerRemoving:Connect(function(arg1_5) -- Line 175
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: BindableEvent_upvr (readonly)
        ]]
        if arg1_5 == arg1._player then
            BindableEvent_upvr:Fire()
        end
    end)
    local function onTouch(arg1_6) -- Line 181
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6.Parent and arg1_6.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_6:FindFirstAncestor("manager") and not arg1_6:FindFirstAncestor("referee") and arg1_6.Parent ~= arg1._character and not arg1._touch[arg1_6.Parent.Name] and arg1._model.Detector.CanCollide then
            local any_GetPlayerFromCharacter_result1_4 = _G._services.Players:GetPlayerFromCharacter(arg1_6.Parent)
            if any_GetPlayerFromCharacter_result1_4 and any_GetPlayerFromCharacter_result1_4.Team then
                arg1._touch[arg1_6.Parent.Name] = true
                local BoolValue_3 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1_4)
                BoolValue_3.Name = "Teleport"
                BoolValue_3.Value = true
                _G._services.Debris:AddItem(BoolValue_3, 3)
                if arg1._model.Team.Value == "home" and any_GetPlayerFromCharacter_result1_4.TeamColor == BrickColor.new("Navy blue") or arg1._model.Team.Value == "away" and any_GetPlayerFromCharacter_result1_4.TeamColor == BrickColor.new("Maroon") then
                    arg1_6.Parent:SetPrimaryPartCFrame(arg1._model.GK.CFrame)
                else
                    arg1_6.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                end
                task.delay(0.5, function() -- Line 198
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_6 (readonly)
                    ]]
                    arg1._touch[arg1_6.Parent.Name] = false
                end)
            end
        end
    end
    local function onTouchGK(arg1_7) -- Line 205
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_7 and arg1_7.Parent and arg1_7.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_7:FindFirstAncestor("manager") and not arg1_7:FindFirstAncestor("referee") and arg1_7.Parent ~= arg1._character and not arg1._touch[arg1_7.Parent.Name] and arg1._model.Detector.CanCollide then
            local any_GetPlayerFromCharacter_result1_2 = _G._services.Players:GetPlayerFromCharacter(arg1_7.Parent)
            if any_GetPlayerFromCharacter_result1_2 and any_GetPlayerFromCharacter_result1_2.Team and (any_GetPlayerFromCharacter_result1_2.TeamColor == BrickColor.new("Storm blue") or any_GetPlayerFromCharacter_result1_2.TeamColor == BrickColor.new("Crimson")) then
                arg1._touch[arg1_7.Parent.Name] = true
                local BoolValue_7 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1_2)
                BoolValue_7.Name = "Teleport"
                BoolValue_7.Value = true
                _G._services.Debris:AddItem(BoolValue_7, 3)
                arg1_7.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                task.delay(0.5, function() -- Line 218
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_7 (readonly)
                    ]]
                    arg1._touch[arg1_7.Parent.Name] = false
                end)
            end
        end
    end
    local function onTouchDetector(arg1_8) -- Line 225
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_8 and arg1_8.Parent and arg1_8.Parent:FindFirstChildWhichIsA("Humanoid") and not arg1_8:FindFirstAncestor("manager") and not arg1_8:FindFirstAncestor("referee") and arg1_8.Parent ~= arg1._character and not arg1._touch[arg1_8.Parent.Name] and arg1._model.Detector.CanCollide then
            local any_GetPlayerFromCharacter_result1 = _G._services.Players:GetPlayerFromCharacter(arg1_8.Parent)
            if any_GetPlayerFromCharacter_result1 and any_GetPlayerFromCharacter_result1.Team then
                arg1._touch[arg1_8.Parent.Name] = true
                if arg1._model.Team.Value ~= "away" or any_GetPlayerFromCharacter_result1.TeamColor ~= BrickColor.new("Navy blue") or arg1._model.Team.Value ~= "home" or any_GetPlayerFromCharacter_result1.TeamColor ~= BrickColor.new("Maroon") then
                    local BoolValue_2 = Instance.new("BoolValue", any_GetPlayerFromCharacter_result1)
                    BoolValue_2.Name = "Teleport"
                    BoolValue_2.Value = true
                    _G._services.Debris:AddItem(BoolValue_2, 3)
                    arg1_8.Parent:SetPrimaryPartCFrame(arg1._model.Teleport.CFrame)
                end
                task.delay(0.5, function() -- Line 239
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_8 (readonly)
                    ]]
                    arg1._touch[arg1_8.Parent.Name] = false
                end)
            end
        end
    end
    for _, v_3 in next, arg1._model.Area:GetChildren() do
        if v_3 and v_3:IsA("BasePart") then
            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
            arg1._maid[any_GenerateGUID_result1.."_onTouched"] = v_3.Touched:Connect(onTouch)
            arg1._maid[any_GenerateGUID_result1.."_onTouchEnded"] = v_3.TouchEnded:Connect(onTouch)
        end
    end
    arg1._maid._areaTouched = workspace.game.regions.under.Touched:Connect(onTouch)
    arg1._maid._areaTouchEnded = workspace.game.regions.under.TouchEnded:Connect(onTouch)
    arg1._maid._gkTouched = arg1._model.Box.Touched:Connect(onTouchGK)
    arg1._maid._gkTouchEnded = arg1._model.Box.TouchEnded:Connect(onTouchGK)
    arg1._maid._detectorTouched = workspace.game.shootout.Detector.Touched:Connect(onTouchDetector)
    arg1._maid._detectorTouchEnded = workspace.game.shootout.Detector.TouchEnded:Connect(onTouchDetector)
    arg1._maid:GiveTask(arg1._model)
    arg1._maid:GiveTask(BindableEvent_upvr)
    arg1._maid:GiveTask(RemoteEvent)
    arg1._maid:GiveTask(RemoteEvent_2)
end
function module_2_upvr.clear(arg1, arg2) -- Line 269
    if arg1._character and arg1._character:FindFirstChild("HumanoidRootPart") then
        arg1._character.HumanoidRootPart.Anchored = false
    end
    _G._references.RemoteEvent:FireAllClients("clearTeleporter")
    if arg1._player then
        _G._references.RemoteEvent:FireClient(arg1._player, "shiftLock", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "forceDisable", false)
        _G._references.RemoteEvent:FireClient(arg1._player, "canSprint", true)
        _G._references.RemoteEvent:FireClient(arg1._player, "globalOverride", false)
    end
    for _, v_4 in next, _G._references.Main.config.Override:GetChildren() do
        if v_4 and (v_4.Name == "DisableFouls" or v_4.Name == "RTP") then
            v_4:Destroy()
        end
    end
    _G._references.Main.config.TimerSpeed.Value = 5
    _G._references.Main.config.Penalties.Taken.Value = true
    arg1._maid:DoCleaning()
end
return module_2_upvr
ModuleScript client ReplicatedStorage.engine.classes.Shootout.client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:57:43
-- Luau version 6, Types version 3
-- Time taken: 0.040906 seconds

local any_load_result1_upvr = _G._engine:load("Maid")
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 7
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    assert(arg1, "Penalty.client | Model 'model' expected, got "..typeof(arg1))
    assert(arg2, "Penalty.client | BasePart 'ball' expected, got "..typeof(arg2))
    local LocalPlayer = _G._references.LocalPlayer
    local Character = LocalPlayer.Character
    if not Character then
        Character = LocalPlayer.CharacterAdded:Wait()
    end
    local module = {}
    module._ball = arg2
    module._player = LocalPlayer
    module._model = arg1
    module._character = Character
    module._root = _G._root
    module._mouse = LocalPlayer:GetMouse()
    module._formatNumber = _G._engine:load("FormatNumber", "utils")
    module._maid = any_load_result1_upvr.new()
    module._states = {
        charging = false;
        released = false;
    }
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.init(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr (readonly)
    ]]
    local tbl_upvr_3 = {}
    local var18_upvr
    for _, v in var18_upvr, arg1._model.Overlay:GetChildren() do
        if v and (v:FindFirstChildWhichIsA("BillboardGui") or v:FindFirstChildWhichIsA("SurfaceGui")) then
            local class_BillboardGui = v:FindFirstChildWhichIsA("BillboardGui")
            if not class_BillboardGui then
                class_BillboardGui = v:FindFirstChildWhichIsA("SurfaceGui")
            end
            class_BillboardGui.Parent = arg1._player.PlayerGui:WaitForChild("billboardUI", 100)
            class_BillboardGui.Adornee = v
            tbl_upvr_3['_'..string.lower(v.Name)] = class_BillboardGui
        end
    end
    var18_upvr = tbl_upvr_3._aim
    var18_upvr.Enabled = true
    var18_upvr = tbl_upvr_3._composure
    var18_upvr.Enabled = true
    var18_upvr = _G._services.UserInputService.TouchEnabled
    if var18_upvr then
        var18_upvr = tbl_upvr_3._mobile.Size.X.Offset
        tbl_upvr_3._mobile.Enabled = true
        tbl_upvr_3._mobile.Size = UDim2.new(0, 0, 0, tbl_upvr_3._mobile.Size.Y.Offset)
        _G._services.TweenService:Create(tbl_upvr_3._mobile, TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, var18_upvr, 0, tbl_upvr_3._mobile.Size.Y.Offset);
        }):Play()
    end
    var18_upvr = arg1._player.PlayerGui:FindFirstChild("UI")
    if var18_upvr then
        var18_upvr = arg1._player.PlayerGui.UI
        var18_upvr.Enabled = false
    end
    var18_upvr = arg1._player.PlayerGui.main.mobile
    var18_upvr.Visible = false
    var18_upvr = arg1._player.PlayerGui.main.backpack
    var18_upvr.Visible = false
    var18_upvr = arg1._player.PlayerGui.main.gamepad
    var18_upvr.Visible = false
    var18_upvr = next
    for _, v_2 in var18_upvr, arg1._player.PlayerGui.main.mobile.contextTabContainer:GetChildren() do
        if v_2 and v_2:IsA("Frame") then
            v_2.Visible = false
        end
    end
    if _G._references.Profile.settings.Visual["Strong Foot"].Value == "Right" then
        var18_upvr = 'R'
    else
        var18_upvr = 'L'
    end
    local tbl_upvr = {
        _idle = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Idle);
        _kick = arg1._character.Humanoid.Animator:LoadAnimation(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Kick);
    }
    tbl_upvr._idle.Priority = Enum.AnimationPriority.Action3
    tbl_upvr._idle.Looped = true
    tbl_upvr._idle:Play()
    tbl_upvr._kick.Priority = Enum.AnimationPriority.Action4
    arg1._model.Detector.CanCollide = false
    arg1._maid._attributeChanged = arg1._root:GetAttributeChangedSignal("globalOverride"):Connect(function() -- Line 87
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1._root:GetAttribute("globalOverride") then
            arg1._root:SetAttribute("globalOverride", true)
        end
    end)
    arg1._maid._onDied = arg1._character.Humanoid.Died:Connect(function() -- Line 93
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear()
    end)
    local var26_upvw = false
    workspace.CurrentCamera.FieldOfView = 45
    workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
    workspace.CurrentCamera.CFrame = arg1._model.Camera.CFrame
    arg1._maid._propertyChanged = workspace.CurrentCamera:GetPropertyChangedSignal("FieldOfView"):Connect(function() -- Line 105
        --[[ Upvalues[1]:
            [1]: var26_upvw (read and write)
        ]]
        if not var26_upvw then
            workspace.CurrentCamera.FieldOfView = 45
        end
    end)
    local tbl_upvr_2 = {
        minDistance = 1.5;
        increaseRate = 0.3;
        x = 0;
        y = 0;
        composure = {
            pressed = false;
            composed = false;
        };
        lastMousePosition = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position);
        limits = {
            x = {
                right = 3;
                left = -3;
            };
            y = {
                up = 1;
                down = -0.7;
            };
        };
        directions = {
            up = false;
            down = false;
            right = false;
            left = false;
        };
    }
    local any_new_result1_upvr = any_load_result1_upvr.new()
    local any_Create_result1_upvr = _G._services.TweenService:Create(arg1._model.Overlay.Composure, TweenInfo.new(0.8, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
        Size = Vector3.new(3, arg1._model.Overlay.Composure.Size.Y, 3);
    })
    arg1._character.Humanoid:UnequipTools()
    task.spawn(function() -- Line 153
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: any_Create_result1_upvr (readonly)
        ]]
        while not tbl_upvr_2.composure.pressed and arg1._model and arg1._model.Parent do
            arg1._model.Overlay.Composure.Size = Vector3.new(29, arg1._model.Overlay.Composure.Size.Y, 29)
            any_Create_result1_upvr:Play()
            task.wait(0.815)
        end
    end)
    local function release_upvr() -- Line 166, Named "release"
        --[[ Upvalues[8]:
            [1]: var26_upvw (read and write)
            [2]: tbl_upvr_2 (readonly)
            [3]: any_Create_result1_upvr (readonly)
            [4]: arg1 (readonly)
            [5]: tbl_upvr_3 (readonly)
            [6]: var18_upvr (readonly)
            [7]: any_new_result1_upvr (readonly)
            [8]: tbl_upvr (readonly)
        ]]
        var26_upvw = true
        tbl_upvr_2.composure.pressed = true
        any_Create_result1_upvr:Pause()
        local var38
        if arg1._model.Overlay.Composure.Size.X <= var38 then
            var38 = tbl_upvr_2
            var38 = true
            var38.composure.composed = var38
        else
            var38 = tbl_upvr_2
            var38 = false
            var38.composure.composed = var38
        end
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._composure.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundTransparency = 1;
        }):Play()
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._composure.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        var38 = tbl_upvr_2.composure
        if var38.composed then
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = Color3.fromRGB(0, 255, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(0, 255, 0);
            }):Play()
        else
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = Color3.fromRGB(255, 0, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(tbl_upvr_3._aim.Main.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(255, 0, 0);
            }):Play()
            var38 = _G._services
            var38.TweenService:Create(arg1._model.Overlay.Aim, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Size = Vector3.new(20, 20, arg1._model.Overlay.Aim.Size.Z);
            }):Play()
        end
        var38 = arg1._model
        var38.Animation:FireServer(_G._references.Main.animations["Set Piece"].Penalty[var18_upvr].Kick)
        var38 = arg1._player:GetNetworkPing()
        task.wait(var38)
        var38 = arg1._model.Overlay.Composure.Size
        var38 = 10
        if var38.X <= var38 then
            var38 = tbl_upvr_3._composure
            var38 = Color3.new(0, 255, 0)
            var38.Main.BackgroundColor3 = var38
            var38 = tbl_upvr_3._composure.Main
            var38 = Color3.new(0, 255, 0)
            var38.UIStroke.Color = var38
        else
            var38 = tbl_upvr_3._composure
            var38 = Color3.new(255, 0, 0)
            var38.Main.BackgroundColor3 = var38
            var38 = tbl_upvr_3._composure.Main
            var38 = Color3.new(255, 0, 0)
            var38.UIStroke.Color = var38
        end
        var38 = _G._services
        var38.TweenService:Create(tbl_upvr_3._mobile, TweenInfo.new(1.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Size = UDim2.new(0, 0, 0, tbl_upvr_3._mobile.Size.Y.Offset);
        }):Play()
        var38 = _G._services
        var38.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = 35;
        }):Play()
        var38 = _G._services.RunService.RenderStepped
        var38 = var38:Connect(function() -- Line 205
            --[[ Upvalues[4]:
                [1]: arg1 (copied, readonly)
                [2]: var18_upvr (copied, readonly)
                [3]: tbl_upvr_2 (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
            ]]
            if arg1._model and arg1._model:FindFirstChild("Ball") then
                local var49
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var49 = tbl_upvr_2.minDistance
                    var49 = arg1._model.Ball.Position - arg1._character.RightLowerLeg.Position
                    return var49.Magnitude <= var49
                end
                local function INLINED_2() -- Internal function, doesn't exist in bytecode
                    var49 = tbl_upvr_2.minDistance
                    var49 = arg1._model.Ball.Position - arg1._character.LeftLowerLeg.Position
                    return var49.Magnitude <= var49
                end
                if var18_upvr == 'R' and INLINED() or INLINED_2() then
                    any_new_result1_upvr:DoCleaning()
                    var49 = workspace.CurrentCamera
                    var49 = Vector3.new(0, 0, 0)
                    if not tbl_upvr_2.composure.composed then
                        local randint = math.random(-30, 30)
                        if randint <= 0 then
                            randint = math.clamp(randint, -30, -10)
                        else
                            randint = math.clamp(randint, 10, 30)
                        end
                        var49 = workspace.CurrentCamera.CFrame.RightVector * randint + workspace.CurrentCamera.CFrame.UpVector * math.clamp(randint, 10, 1000)
                    end
                    arg1._model.Collide:FireServer()
                    local Folder = Instance.new("Folder")
                    Folder.Name = "react"
                    local ObjectValue = Instance.new("ObjectValue", Folder)
                    ObjectValue.Name = "ball"
                    ObjectValue.Value = arg1._ball
                    local Vector3Value_2 = Instance.new("Vector3Value", Folder)
                    Vector3Value_2.Name = "vector"
                    Vector3Value_2.Value = (arg1._model.Overlay.Aim.Position + Vector3.new(0, 1.75, 0) - arg1._model.Ball.Position).Unit * Vector3.new(80, 100, 80) + var49
                    local Vector3Value = Instance.new("Vector3Value", Folder)
                    Vector3Value.Name = "maxForce"
                    Vector3Value.Value = Vector3.new(10000, 10000, 10000)
                    local BoolValue_4 = Instance.new("BoolValue", Folder)
                    BoolValue_4.Name = "ignoreReactDecline"
                    BoolValue_4.Value = true
                    local BoolValue_3 = Instance.new("BoolValue", Folder)
                    BoolValue_3.Name = "penalty"
                    BoolValue_3.Value = true
                    local BoolValue_2 = Instance.new("BoolValue", Folder)
                    BoolValue_2.Name = "curve"
                    BoolValue_2.Value = true
                    local StringValue = Instance.new("StringValue", Folder)
                    StringValue.Name = "curveType"
                    StringValue.Value = "none"
                    local StringValue_2 = Instance.new("StringValue", Folder)
                    StringValue_2.Name = "spinType"
                    StringValue_2.Value = "topspin"
                    local BoolValue = Instance.new("BoolValue", Folder)
                    BoolValue.Name = "grassEffect"
                    BoolValue.Value = true
                    Folder.Parent = arg1._player
                    Folder:SetAttribute("loaded", true)
                end
            end
        end)
        any_new_result1_upvr._renderStepped = var38
        var38 = 0.3
        task.delay(var38, function() -- Line 272
            --[[ Upvalues[1]:
                [1]: tbl_upvr (copied, readonly)
            ]]
            tbl_upvr._idle:Stop(0.1)
        end)
        local function INLINED_3() -- Internal function, doesn't exist in bytecode
            var38 = tbl_upvr._kick.Length - 0.6
            return var38
        end
        if 0.1 > tbl_upvr._kick.Length or not INLINED_3() then
            var38 = 3.85
        end
        task.wait(var38)
        var38 = arg1._character
        var38 = true
        var38.Humanoid.AutoRotate = var38
        var38 = arg1
        if var38._model:FindFirstChild("Clear") then
            var38 = arg1._model
            var38.Clear:FireServer()
        end
        arg1:clear()
    end
    task.delay(15, function() -- Line 285
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: release_upvr (readonly)
        ]]
        if not tbl_upvr_2.composure.pressed and arg1._model and arg1._model.Parent then
            release_upvr()
        end
    end)
    any_new_result1_upvr._inputBegan = _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 291
        --[[ Upvalues[4]:
            [1]: tbl_upvr_2 (readonly)
            [2]: any_Create_result1_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: release_upvr (readonly)
        ]]
        if arg1_2.KeyCode == Enum.KeyCode.W then
            tbl_upvr_2.directions.up = true
        else
            if arg1_2.KeyCode == Enum.KeyCode.A then
                tbl_upvr_2.directions.left = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.S then
                tbl_upvr_2.directions.down = true
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.D then
                tbl_upvr_2.directions.right = true
                return
            end
            if not arg2 and (arg1_2.KeyCode == Enum.KeyCode.Space or arg1_2.KeyCode == Enum.KeyCode.ButtonA) or not tbl_upvr_2.composure.pressed then
                any_Create_result1_upvr:Pause()
                tbl_upvr_2.composure.pressed = true
                if arg1._model.Overlay.Composure.Size.X <= 10 then
                    tbl_upvr_2.composure.composed = true
                else
                    tbl_upvr_2.composure.composed = false
                end
                release_upvr()
            end
        end
    end)
    any_new_result1_upvr._inputEnded = _G._services.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 314
        --[[ Upvalues[1]:
            [1]: tbl_upvr_2 (readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.W then
            tbl_upvr_2.directions.up = false
        else
            if arg1_3.KeyCode == Enum.KeyCode.A then
                tbl_upvr_2.directions.left = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.S then
                tbl_upvr_2.directions.down = false
                return
            end
            if arg1_3.KeyCode == Enum.KeyCode.D then
                tbl_upvr_2.directions.right = false
            end
        end
    end)
    any_new_result1_upvr._inputChanged = _G._services.UserInputService.InputChanged:Connect(function(arg1_4, arg2) -- Line 326
        --[[ Upvalues[1]:
            [1]: tbl_upvr_2 (readonly)
        ]]
        if arg1_4.KeyCode == Enum.KeyCode.Thumbstick1 then
            if 0.7 <= arg1_4.Position.X then
                tbl_upvr_2.directions.right = true
                tbl_upvr_2.directions.left = false
            elseif arg1_4.Position.X <= -0.7 then
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = true
            end
            if 0.7 <= arg1_4.Position.Y then
                tbl_upvr_2.directions.up = true
                tbl_upvr_2.directions.down = false
            elseif arg1_4.Position.Y <= -0.7 then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = true
            end
            if arg1_4.Position.X < 0.35 and -0.35 < arg1_4.Position.X and arg1_4.Position.Y < 0.35 and -0.35 < arg1_4.Position.Y then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = false
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = false
            end
        end
    end)
    if _G._services.UserInputService.TouchEnabled then
        any_new_result1_upvr._mouseMove = arg1._mouse.Move:Connect(function() -- Line 354
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_2 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                local any_WorldToViewportPoint_result1 = workspace.CurrentCamera:WorldToViewportPoint(arg1._mouse.Hit.Position)
                local var68 = any_WorldToViewportPoint_result1.X - tbl_upvr_2.lastMousePosition.X
                local var69 = any_WorldToViewportPoint_result1.Y - tbl_upvr_2.lastMousePosition.Y
                tbl_upvr_2.lastMousePosition = any_WorldToViewportPoint_result1
                if 1 <= var69 then
                    tbl_upvr_2.directions.down = true
                    tbl_upvr_2.directions.up = false
                    return
                end
                if var69 <= -1 then
                    tbl_upvr_2.directions.down = false
                    tbl_upvr_2.directions.up = true
                    return
                end
                if 1 <= var68 then
                    tbl_upvr_2.directions.right = true
                    tbl_upvr_2.directions.left = false
                    return
                end
                if var68 <= -1 then
                    tbl_upvr_2.directions.right = false
                    tbl_upvr_2.directions.left = true
                    return
                end
                if var68 < 1 and -1 < var68 and var69 < 1 and -1 < var69 then
                    tbl_upvr_2.directions.up = false
                    tbl_upvr_2.directions.down = false
                    tbl_upvr_2.directions.right = false
                    tbl_upvr_2.directions.left = false
                end
            end
        end)
        any_new_result1_upvr._touchEnded = _G._services.UserInputService.TouchEnded:Connect(function(arg1_5, arg2) -- Line 383
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: tbl_upvr_2 (readonly)
            ]]
            if not arg1._states.charging and not arg1._states._released then
                tbl_upvr_2.directions.up = false
                tbl_upvr_2.directions.down = false
                tbl_upvr_2.directions.right = false
                tbl_upvr_2.directions.left = false
            end
        end)
        any_new_result1_upvr._mouseButton1Click = tbl_upvr_3._mobile.Main.Container.Bind.Button.MouseButton1Click:Connect(function() -- Line 392
            --[[ Upvalues[4]:
                [1]: any_Create_result1_upvr (readonly)
                [2]: tbl_upvr_2 (readonly)
                [3]: arg1 (readonly)
                [4]: release_upvr (readonly)
            ]]
            any_Create_result1_upvr:Pause()
            tbl_upvr_2.composure.pressed = true
            if arg1._model.Overlay.Composure.Size.X <= 10 then
                tbl_upvr_2.composure.composed = true
            else
                tbl_upvr_2.composure.composed = false
            end
            release_upvr()
        end)
    end
    any_new_result1_upvr._renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 406
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: tbl_upvr_3 (readonly)
            [3]: var18_upvr (readonly)
        ]]
        if arg1._model.Overlay.Composure.Size.X <= 10 then
            tbl_upvr_3._composure.Main.BackgroundColor3 = Color3.new(0, 255, 0)
            tbl_upvr_3._composure.Main.UIStroke.Color = Color3.new(0, 255, 0)
        else
            tbl_upvr_3._composure.Main.BackgroundColor3 = Color3.new(255, 0, 0)
            tbl_upvr_3._composure.Main.UIStroke.Color = Color3.new(255, 0, 0)
        end
        arg1._character.Humanoid.AutoRotate = false
        if var18_upvr == 'R' then
            arg1._character:SetPrimaryPartCFrame(arg1._model.Right.CFrame)
        else
            arg1._character:SetPrimaryPartCFrame(arg1._model.Left.CFrame)
        end
    end)
    local CFrame_upvr = arg1._model.Overlay.Aim.CFrame
    task.spawn(function() -- Line 423
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: CFrame_upvr (readonly)
        ]]
        while true do
            if tbl_upvr_2.directions.up and tbl_upvr_2.y + tbl_upvr_2.increaseRate <= tbl_upvr_2.limits.y.up then
                local var75 = tbl_upvr_2
                var75.y += tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.down and tbl_upvr_2.limits.y.down <= tbl_upvr_2.y - tbl_upvr_2.increaseRate then
                local var76 = tbl_upvr_2
                var76.y -= tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.right and tbl_upvr_2.x + tbl_upvr_2.increaseRate <= tbl_upvr_2.limits.x.right then
                local var77 = tbl_upvr_2
                var77.x += tbl_upvr_2.increaseRate
            end
            if tbl_upvr_2.directions.left and tbl_upvr_2.limits.x.left <= tbl_upvr_2.x - tbl_upvr_2.increaseRate then
                local var78 = tbl_upvr_2
                var78.x -= tbl_upvr_2.increaseRate
            end
            _G._services.TweenService:Create(arg1._model.Overlay.Aim, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                CFrame = CFrame_upvr * CFrame.new(-tbl_upvr_2.x * 5, tbl_upvr_2.y * 5, 0);
            }):Play()
            task.wait(0.05)
        end
    end)
end
function module_2_upvr.clear(arg1) -- Line 456
    -- KONSTANTERROR: [0] 1. Error Block 19 start (CF ANALYSIS FAILED)
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(_G._references.Profile.settings.Visual["Field of View"].Value)
    if arg1._player.PlayerGui:FindFirstChild("UI") then
        arg1._player.PlayerGui.UI.Enabled = true
    end
    if _G._services.UserInputService.TouchEnabled then
        arg1._player.PlayerGui.main.mobile.Visible = true
        -- KONSTANTWARNING: GOTO [121] #69
    end
    -- KONSTANTERROR: [0] 1. Error Block 19 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [71] 41. Error Block 16 start (CF ANALYSIS FAILED)
    if _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.gamepad.Visible = true
    elseif not _G._services.UserInputService.TouchEnabled and not _G._services.UserInputService.GamepadEnabled then
        arg1._player.PlayerGui.main.backpack.Visible = true
    end
    -- KONSTANTERROR: [71] 41. Error Block 16 end (CF ANALYSIS FAILED)
end
return module_2_upvr
ModuleScript ballController ReplicatedStorage.game.dummy.StarterPlayer.controllers.ballController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript firstPersonController ReplicatedStorage.game.dummy.StarterPlayer.controllers.firstPersonController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript jukeboxController ReplicatedStorage.game.dummy.StarterPlayer.controllers.jukeboxController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript movementController ReplicatedStorage.game.dummy.StarterPlayer.controllers.movementController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript physicsController ReplicatedStorage.game.dummy.StarterPlayer.controllers.physicsController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript stadiumController ReplicatedStorage.game.dummy.StarterPlayer.controllers.stadiumController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript weatherController ReplicatedStorage.game.dummy.StarterPlayer.controllers.weatherController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript playerSoundsController ReplicatedStorage.game.dummy.StarterPlayer.controllers.playerSoundsController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript markerController ReplicatedStorage.game.dummy.StarterPlayer.controllers.markerController
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript collisions ReplicatedStorage.game.dummy.StarterPlayer.mechanics.collisions
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript getUp ReplicatedStorage.game.dummy.StarterPlayer.mechanics.getUp
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript config ReplicatedStorage.game.dummy.StarterPlayer.mechanics.getUp.config
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript raycast ReplicatedStorage.game.dummy.StarterPlayer.mechanics.getUp.raycast
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript ragdoll ReplicatedStorage.game.dummy.StarterPlayer.mechanics.ragdoll
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript root ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript kick ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root.kick
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript tackle ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root.tackle
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript skills ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root.skills
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript gk ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root.gk
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript pass ReplicatedStorage.game.dummy.StarterPlayer.mechanics.root.pass
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript ballSelection ReplicatedStorage.game.dummy.StarterPlayer.visuals.ballSelection
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript draggableObject ReplicatedStorage.game.dummy.StarterPlayer.visuals.draggableObject
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript scoreboard ReplicatedStorage.game.dummy.StarterPlayer.visuals.scoreboard
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript backpack ReplicatedStorage.game.dummy.StarterPlayer.visuals.backpack
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript bootSelection ReplicatedStorage.game.dummy.StarterPlayer.visuals.bootSelection
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript playerList ReplicatedStorage.game.dummy.StarterPlayer.visuals.playerList
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript accessorySelection ReplicatedStorage.game.dummy.StarterPlayer.visuals.accessorySelection
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript skybox ReplicatedStorage.game.dummy.StarterPlayer.visuals.skybox
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript engine ReplicatedStorage.game.dummy.ReplicatedStorage.engine
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript classes ReplicatedStorage.game.dummy.ReplicatedStorage.engine.classes
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript modules ReplicatedStorage.game.dummy.ReplicatedStorage.engine.modules
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript utils ReplicatedStorage.game.dummy.ReplicatedStorage.engine.utils
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript references ReplicatedStorage.game.dummy.ReplicatedStorage.engine.references
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
ModuleScript services ReplicatedStorage.game.dummy.ReplicatedStorage.engine.services
KONSTANTERROR: After: buffer access out of bounds
K
K
K
K
K
K
K
Script Animate ReplicatedStorage.game.referee.rig.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Animate ReplicatedStorage.game.manager.rig.Animate
-- [SERVER SCRIPT] Source hidden from client.
Script Crossers ReplicatedStorage.game.admin.crossers.Crossers
-- [SERVER SCRIPT] Source hidden from client.
Script Runtime ReplicatedStorage.PopupShop.Runtime
-- [SERVER SCRIPT] Source hidden from client.
ModuleScript Number ReplicatedStorage.PopupShop.Utils.Number
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:27
-- Luau version 6, Types version 3
-- Time taken: 0.001338 seconds

return {
    ToCommaFormat = function(arg1, arg2) -- Line 8, Named "ToCommaFormat"
        return tostring(arg2):reverse():gsub("%d%d%d", "%1,"):reverse():gsub("^,", "")
    end;
    ToMultiplierFormat = function(arg1, arg2) -- Line 22, Named "ToMultiplierFormat"
        return string.format("%0.1fx", arg2)
    end;
    ToOrdinal = function(arg1, arg2) -- Line 36, Named "ToOrdinal"
        local var2 = arg2 % 10
        if var2 == 1 and arg2 ~= 11 then
            return "st"
        end
        if var2 == 2 and arg2 ~= 12 then
            return "nd"
        end
        if var2 == 3 and arg2 ~= 13 then
            return "rd"
        end
        return "th"
    end;
}
ModuleScript makeCountdownText ReplicatedStorage.PopupShop.Utils.makeCountdownText
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:28
-- Luau version 6, Types version 3
-- Time taken: 0.003642 seconds

local table_freeze_result1_upvr = table.freeze({"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"})
local Number_upvr = require(script.Parent.Number)
local DubitUtils_upvr = require(game:GetService("ReplicatedStorage").PopupShop.Packages.DubitUtils)
return function(arg1, arg2, arg3) -- Line 23, Named "makeCountdownText"
    --[[ Upvalues[3]:
        [1]: table_freeze_result1_upvr (readonly)
        [2]: Number_upvr (readonly)
        [3]: DubitUtils_upvr (readonly)
    ]]
    local var5
    if typeof(arg1) == "number" then
        var5 = DateTime.fromUnixTimestampMillis(var5)
    elseif typeof(var5) ~= "DateTime" then
        return
    end
    local var6 = arg2 or ""
    local maximum = math.max(0, var5.UnixTimestamp - os.time(os.date("!*t")))
    local any_ToLocalTime_result1 = var5:ToLocalTime()
    if 604800 < maximum then
        return `{var6} {table_freeze_result1_upvr[any_ToLocalTime_result1.Month]} {any_ToLocalTime_result1.Day}{Number_upvr:ToOrdinal(any_ToLocalTime_result1.Day)}`
    end
    if 86400 < maximum then
        local floored = math.floor(maximum / 86400)
        if floored == 1 then
            return `{var6} {floored} DAY`
        end
        return `{var6} {floored} DAYS`
    end
    return `{arg3 or ""} {DubitUtils_upvr.Time.formatToCountdownTimer(maximum)}`
end
ModuleScript Navbar ReplicatedStorage.PopupShop.Views.Navbar
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:30
-- Luau version 6, Types version 3
-- Time taken: 0.003638 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local module_upvr = require(ReplicatedStorage:WaitForChild("MetaverseRewardsClient"))
local function _(arg1, arg2) -- Line 15, Named "createRoduxAction"
    local var3 = arg2
    if not var3 then
        var3 = {}
    end
    var3.type = arg1
    return var3
end
local Store_upvr = require(script.Store)
local Rewards_upvr = module_upvr.Rewards
local StarterPlayer_upvr = game:GetService("StarterPlayer")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local RoactRodux_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactRodux)
local Main_upvr = require(script.Main)
local View_upvr = module_upvr.View
return function() -- Line 22
    --[[ Upvalues[8]:
        [1]: Store_upvr (readonly)
        [2]: Rewards_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: StarterPlayer_upvr (readonly)
        [5]: Roact_upvr (readonly)
        [6]: RoactRodux_upvr (readonly)
        [7]: Main_upvr (readonly)
        [8]: View_upvr (readonly)
    ]]
    local var13 = {
        LoyaltyPoints = Rewards_upvr:GetPoints();
    }
    if not var13 then
        var13 = {}
    end
    var13.type = "setLoyaltyPoints"
    Store_upvr:dispatch(var13)
    Rewards_upvr.OnPointsChanged:Connect(function(arg1) -- Line 27
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local tbl = {}
        tbl.LoyaltyPoints = arg1
        local var16 = tbl
        if not var16 then
            var16 = {}
        end
        var16.type = "setLoyaltyPoints"
        Store_upvr:dispatch(var16)
    end)
    module_upvr.View.Overwrite("RetailNavbar", function(arg1) -- Line 33
        --[[ Upvalues[6]:
            [1]: StarterPlayer_upvr (copied, readonly)
            [2]: Roact_upvr (copied, readonly)
            [3]: RoactRodux_upvr (copied, readonly)
            [4]: Store_upvr (copied, readonly)
            [5]: Main_upvr (copied, readonly)
            [6]: View_upvr (copied, readonly)
        ]]
        if not StarterPlayer_upvr.StarterPlayerScripts:GetAttribute("ShowAdidasNavbar") then
            return function() -- Line 37
            end
        end
        local any_mount_result1_upvr = Roact_upvr.mount(Roact_upvr.createElement(RoactRodux_upvr.StoreProvider, {
            store = Store_upvr;
        }, {
            NavbarScreen = Roact_upvr.createElement(Main_upvr, {
                OnCatalogButtonPressed = function() -- Line 45, Named "OnCatalogButtonPressed"
                    --[[ Upvalues[1]:
                        [1]: View_upvr (copied, readonly)
                    ]]
                    View_upvr.Open("Retail", '/', "CatalogButton")
                end;
            });
        }), arg1)
        return function() -- Line 53
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: any_mount_result1_upvr (readonly)
            ]]
            Roact_upvr.unmount(any_mount_result1_upvr)
        end
    end)
end
ModuleScript Main ReplicatedStorage.PopupShop.Views.Navbar.Main
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:32
-- Luau version 6, Types version 3
-- Time taken: 0.000894 seconds

local Roact_upvr = require(game:GetService("ReplicatedStorage").PopupShop.Packages.Roact)
local Navbar_upvr = require(script.Parent.Parent.Components.Navbar)
return function(arg1) -- Line 9
    --[[ Upvalues[2]:
        [1]: Roact_upvr (readonly)
        [2]: Navbar_upvr (readonly)
    ]]
    return Roact_upvr.createElement(Navbar_upvr, {
        OnCatalogButtonPressed = arg1.OnCatalogButtonPressed;
        AllowCustomization = true;
    })
end
ModuleScript Store ReplicatedStorage.PopupShop.Views.Navbar.Store
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:33
-- Luau version 6, Types version 3
-- Time taken: 0.000737 seconds

local Rodux = require(game:GetService("ReplicatedStorage").MetaverseRewardsShared.Packages.Rodux)
return Rodux.Store.new(Rodux.createReducer({
    LoyaltyPoints = nil;
}, {
    setLoyaltyPoints = function(arg1, arg2) -- Line 10, Named "setLoyaltyPoints"
        arg1.LoyaltyPoints = arg2.LoyaltyPoints
        return arg1
    end;
}))
ModuleScript Retail ReplicatedStorage.PopupShop.Views.Retail
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:35
-- Luau version 6, Types version 3
-- Time taken: 0.029436 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local module_upvr = require(ReplicatedStorage:WaitForChild("MetaverseRewardsClient"))
local Store_upvr = require(script.Store)
local function _(arg1, arg2) -- Line 29, Named "createRoduxAction"
    local var5 = arg2
    if not var5 then
        var5 = {}
    end
    var5.type = arg1
    return var5
end
local function updateHumanoidDescription_upvr() -- Line 36, Named "updateHumanoidDescription"
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Store_upvr (readonly)
    ]]
    if not LocalPlayer_upvr.Character then
    else
        local Humanoid_2 = LocalPlayer_upvr.Character:FindFirstChild("Humanoid")
        if not Humanoid_2 then return end
        Store_upvr:dispatch({
            type = "updateAvatarHumanoidDescription";
            AvatarHumanoidDescription = Humanoid_2:GetAppliedDescription();
        })
    end
end
local Trove_upvr = require(ReplicatedStorage.PopupShop.Packages.Trove)
local function observeLocalHumanoidDescription_upvr() -- Line 53, Named "observeLocalHumanoidDescription"
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Trove_upvr (readonly)
        [3]: updateHumanoidDescription_upvr (readonly)
    ]]
    local function observeHumanoidDescription() -- Line 54
        --[[ Upvalues[3]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: Trove_upvr (copied, readonly)
            [3]: updateHumanoidDescription_upvr (copied, readonly)
        ]]
        if not LocalPlayer_upvr.Character then
        else
            local Humanoid = LocalPlayer_upvr.Character:WaitForChild("Humanoid", 10)
            if not Humanoid then return end
            local any_new_result1_upvr = Trove_upvr.new()
            any_new_result1_upvr:Connect(Humanoid.DescendantAdded, function() -- Line 67
                --[[ Upvalues[1]:
                    [1]: updateHumanoidDescription_upvr (copied, readonly)
                ]]
                updateHumanoidDescription_upvr()
            end)
            any_new_result1_upvr:Connect(LocalPlayer_upvr.CharacterRemoving, function() -- Line 71
                --[[ Upvalues[1]:
                    [1]: any_new_result1_upvr (readonly)
                ]]
                any_new_result1_upvr:Destroy()
            end)
            updateHumanoidDescription_upvr()
        end
    end
    observeHumanoidDescription()
    LocalPlayer_upvr.CharacterAdded:Connect(observeHumanoidDescription)
    LocalPlayer_upvr.CharacterAppearanceLoaded:Connect(function() -- Line 82
        --[[ Upvalues[1]:
            [1]: updateHumanoidDescription_upvr (copied, readonly)
        ]]
        updateHumanoidDescription_upvr()
    end)
end
local function _(arg1) -- Line 87, Named "addProductDisplayData"
    --[[ Upvalues[1]:
        [1]: Store_upvr (readonly)
    ]]
    local var15 = {
        Id = arg1.Id;
        Products = arg1.Listings;
        DisplaySlot = arg1.VerseId;
    }
    if not var15 then
        var15 = {}
    end
    var15.type = "addProductDisplay"
    Store_upvr:dispatch(var15)
end
local Wishlist_upvr = module_upvr.Wishlist
local Retail_upvr = module_upvr.Retail
local ClothingDisplay_upvr = module_upvr.ClothingDisplay
local Analytics_upvr = module_upvr.Analytics
local Analytic_upvr = module_upvr.Analytic
local var22_upvw
local var23_upvw
local tbl_12_upvr = {}
local Rewards_upvr = module_upvr.Rewards
local tbl_3_upvw = {}
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local RoactRodux_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactRodux)
local Main_upvr = require(script.Main)
local View_upvr = module_upvr.View
return function() -- Line 98
    --[[ Upvalues[17]:
        [1]: Wishlist_upvr (readonly)
        [2]: Store_upvr (readonly)
        [3]: Retail_upvr (readonly)
        [4]: ClothingDisplay_upvr (readonly)
        [5]: Analytics_upvr (readonly)
        [6]: Analytic_upvr (readonly)
        [7]: var22_upvw (read and write)
        [8]: var23_upvw (read and write)
        [9]: tbl_12_upvr (readonly)
        [10]: Rewards_upvr (readonly)
        [11]: module_upvr (readonly)
        [12]: tbl_3_upvw (read and write)
        [13]: Roact_upvr (readonly)
        [14]: RoactRodux_upvr (readonly)
        [15]: Main_upvr (readonly)
        [16]: View_upvr (readonly)
        [17]: observeLocalHumanoidDescription_upvr (readonly)
    ]]
    Wishlist_upvr.OnChanged:Connect(function() -- Line 99
        --[[ Upvalues[2]:
            [1]: Store_upvr (copied, readonly)
            [2]: Wishlist_upvr (copied, readonly)
        ]]
        local var45 = {
            WishlistedProducts = Wishlist_upvr:GetWishlisted();
        }
        if not var45 then
            var45 = {}
        end
        var45.type = "setWishlistedProducts"
        Store_upvr:dispatch(var45)
    end)
    local var47 = {
        WishlistedProducts = Wishlist_upvr:GetWishlisted();
    }
    if not var47 then
        var47 = {}
    end
    var47.type = "setWishlistedProducts"
    Store_upvr:dispatch(var47)
    Retail_upvr.OnProductPurchaseSucceed:Connect(function() -- Line 109
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local var50 = {
            PotentialLoyaltyPoints = nil;
        }
        if not var50 then
            var50 = {}
        end
        var50.type = "setPotentialLoyaltyPoints"
        Store_upvr:dispatch(var50)
    end)
    Retail_upvr.OnProductPurchaseFailed:Connect(function(arg1, arg2) -- Line 115
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local var53 = {
            PotentialLoyaltyPoints = nil;
        }
        if not var53 then
            var53 = {}
        end
        var53.type = "setPotentialLoyaltyPoints"
        Store_upvr:dispatch(var53)
        if arg2 == "ROBLOX_FAIL" then
        else
            local var54 = arg2
            if arg2 == "Player cannot purchase product" then
                var54 = "It looks like you don't have enough points. Keep earning them in order to claim this item!"
            end
            local var56 = {
                Text = var54;
            }
            if not var56 then
                var56 = {}
            end
            var56.type = "setNotificationMessage"
            Store_upvr:dispatch(var56)
        end
    end)
    local var58 = {
        EquippedProducts = Retail_upvr.GetEquippedProducts();
    }
    if not var58 then
        var58 = {}
    end
    var58.type = "setEquippedIds"
    Store_upvr:dispatch(var58)
    Retail_upvr.OnEquippedProductsChanged:Connect(function(arg1) -- Line 140
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local tbl_9 = {}
        tbl_9.EquippedProducts = arg1
        local var61 = tbl_9
        if not var61 then
            var61 = {}
        end
        var61.type = "setEquippedIds"
        Store_upvr:dispatch(var61)
    end)
    Retail_upvr.OnProductPurchaseRequested:Connect(function(arg1) -- Line 146
        --[[ Upvalues[2]:
            [1]: Retail_upvr (copied, readonly)
            [2]: Store_upvr (copied, readonly)
        ]]
        local any_GetProductData_result1_2 = Retail_upvr.RemoteData:GetProductData(arg1)
        if not any_GetProductData_result1_2 or any_GetProductData_result1_2.Reservable then
        else
            local rounded = math.round(any_GetProductData_result1_2.Price * (any_GetProductData_result1_2.CashbackPercentage or 0) / 100)
            if rounded <= 0 then return end
            local var66 = {
                PotentialLoyaltyPoints = rounded;
            }
            if not var66 then
                var66 = {}
            end
            var66.type = "setPotentialLoyaltyPoints"
            Store_upvr:dispatch(var66)
        end
    end)
    local tbl_2 = {}
    local tbl_13 = {
        OnSearch = function(arg1) -- Line 164, Named "OnSearch"
            --[[ Upvalues[2]:
                [1]: Retail_upvr (copied, readonly)
                [2]: Store_upvr (copied, readonly)
            ]]
            local any_SearchProducts_result1, any_SearchProducts_result2 = Retail_upvr:SearchProducts(arg1)
            if not any_SearchProducts_result1 and typeof(any_SearchProducts_result2) == "string" then
                local var72 = {
                    SearchError = any_SearchProducts_result2;
                }
                if not var72 then
                    var72 = {}
                end
                var72.type = "setSearchError"
                Store_upvr:dispatch(var72)
            else
                var72 = {
                    SearchResults = any_SearchProducts_result2;
                }
                local var74 = var72
                if not var74 then
                    var74 = {}
                end
                var74.type = "setSearchResults"
                Store_upvr:dispatch(var74)
            end
        end;
        ClearSearchError = function() -- Line 182, Named "ClearSearchError"
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var76 = {
                SearchError = nil;
            }
            if not var76 then
                var76 = {}
            end
            var76.type = "setSearchError"
            Store_upvr:dispatch(var76)
        end;
        OnRequestAssetDetails = function(arg1) -- Line 188, Named "OnRequestAssetDetails"
            --[[ Upvalues[2]:
                [1]: ClothingDisplay_upvr (copied, readonly)
                [2]: Store_upvr (copied, readonly)
            ]]
            if typeof(arg1) == "number" then
                ClothingDisplay_upvr.ItemDetails.GetAssetDetailsAsync(arg1, function(arg1_2) -- Line 191
                    --[[ Upvalues[1]:
                        [1]: Store_upvr (copied, readonly)
                    ]]
                    if not arg1_2 then
                    else
                        local tbl_14 = {}
                        local tbl_7 = {
                            Name = arg1_2.Name;
                            VerseId = arg1_2.Id;
                            ThumbnailId = `rbxthumb://type=Asset&id={arg1_2.Id}&w=150&h=150`;
                            Robux = arg1_2.Price;
                            IsOffSale = arg1_2.IsOffSale;
                            Limited = arg1_2.Limited;
                        }
                        tbl_14.AssetData = tbl_7
                        tbl_7 = tbl_14
                        local var80 = tbl_7
                        if not var80 then
                            var80 = {}
                        end
                        var80.type = "addRobloxAssetDetails"
                        Store_upvr:dispatch(var80)
                    end
                end)
            end
        end;
        OnRequestAssetWishlist = function(arg1) -- Line 214, Named "OnRequestAssetWishlist"
            --[[ Upvalues[5]:
                [1]: Store_upvr (copied, readonly)
                [2]: Retail_upvr (copied, readonly)
                [3]: Wishlist_upvr (copied, readonly)
                [4]: Analytics_upvr (copied, readonly)
                [5]: Analytic_upvr (copied, readonly)
            ]]
            local any_getState_result1_5 = Store_upvr:getState()
            local any_GetProductData_result1 = Retail_upvr.RemoteData:GetProductData(tostring(arg1))
            local selected = select(2, next(Retail_upvr.RemoteData:GetCatalogs()))
            if Wishlist_upvr:IsWishlisted(arg1) then
                Wishlist_upvr:RemoveFromWishlist(arg1)
                Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.ProductRemovedWishlisted, {
                    verseId = any_GetProductData_result1.VerseId;
                    uuid = selected.Id or "unknown";
                    steps = #any_getState_result1_5.FullHistory;
                    location = any_getState_result1_5.RawPath;
                })
            else
                Wishlist_upvr:AddToWishlist(arg1)
                Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.ProductAddedWishlisted, {
                    verseId = any_GetProductData_result1.VerseId;
                    uuid = selected.Id or "unknown";
                    steps = #any_getState_result1_5.FullHistory;
                    location = any_getState_result1_5.RawPath;
                })
            end
        end;
        GoToPath = function(arg1) -- Line 241, Named "GoToPath"
            --[[ Upvalues[5]:
                [1]: Store_upvr (copied, readonly)
                [2]: var22_upvw (copied, read and write)
                [3]: Analytics_upvr (copied, readonly)
                [4]: Analytic_upvr (copied, readonly)
                [5]: var23_upvw (copied, read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 23 start (CF ANALYSIS FAILED)
            local any_getState_result1_3 = Store_upvr:getState()
            local var87 = arg1 or '/'
            if any_getState_result1_3.PathParameters and any_getState_result1_3.PathParameters.category then
                -- KONSTANTWARNING: GOTO [37] #26
            end
            -- KONSTANTERROR: [0] 1. Error Block 23 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [19] 14. Error Block 24 start (CF ANALYSIS FAILED)
            local var88
            if any_getState_result1_3.PathParameters and any_getState_result1_3.PathParameters.section then
                var88 = any_getState_result1_3.PathParameters.section
            elseif var22_upvw then
                var88 = var22_upvw.Id
            end
            if var87 == '/' then
                Store_upvr:dispatch({
                    type = "clearHistory";
                })
            end
            local var91 = {
                path = var87;
            }
            if not var91 then
                var91 = {}
            end
            var91.type = "navigateTo"
            Store_upvr:dispatch(var91)
            Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.CatalogView, {
                steps = #any_getState_result1_3.FullHistory;
                location = any_getState_result1_3.RawPath;
                verseId = var23_upvw;
                uuid = var88;
            })
            -- KONSTANTERROR: [19] 14. Error Block 24 end (CF ANALYSIS FAILED)
        end;
        OnRequestAssetEquip = function(arg1) -- Line 271, Named "OnRequestAssetEquip"
            --[[ Upvalues[3]:
                [1]: Retail_upvr (copied, readonly)
                [2]: Store_upvr (copied, readonly)
                [3]: tbl_12_upvr (copied, readonly)
            ]]
            Retail_upvr:EquipProduct(arg1)
            local any_GetProductData_result1_4 = Retail_upvr.RemoteData:GetProductData(arg1)
            if not any_GetProductData_result1_4 then
            else
                local var102
                if var102 == "Bundle" then
                    var102 = 0
                    for i_6, v_6 in any_GetProductData_result1_4.Items do
                        if v_6.Type == "Asset" then
                            local tbl_11 = {
                                AssetId = v_6.Id;
                            }
                            tbl_11.ProductId = arg1
                            local var104 = tbl_11
                            if not var104 then
                                var104 = {}
                            end
                            var104.type = "addBundledItem"
                            Store_upvr:dispatch(var104)
                        elseif v_6.Type == "Animation" then
                            var102 += 1
                        end
                    end
                    if var102 == #any_GetProductData_result1_4.Items then
                        i_6 = nil
                        for _, v_7 in any_GetProductData_result1_4.Items, nil, i_6 do
                            if v_7.Type == "Animation" then
                                table.insert({}, v_7.AnimationId)
                            end
                        end
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        ;({}).AnimationIds = {}
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        if not {} then
                        end
                        ;({}).type = "queueAnimationsSequence"
                        i_6 = {}
                        Store_upvr:dispatch(i_6)
                    end
                end
                tbl_12_upvr[any_GetProductData_result1_4.VerseId] = os.clock()
            end
        end;
        OnRequestAssetUnequip = function(arg1) -- Line 313, Named "OnRequestAssetUnequip"
            --[[ Upvalues[5]:
                [1]: Retail_upvr (copied, readonly)
                [2]: Store_upvr (copied, readonly)
                [3]: Analytics_upvr (copied, readonly)
                [4]: Analytic_upvr (copied, readonly)
                [5]: tbl_12_upvr (copied, readonly)
            ]]
            local any_GetProductData_result1_3 = Retail_upvr.RemoteData:GetProductData(tostring(arg1))
            Retail_upvr:UnequipProduct(arg1)
            if not any_GetProductData_result1_3 then
            else
                local any_getState_result1_6 = Store_upvr:getState()
                Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.ProductTriedOn, {
                    verseId = any_GetProductData_result1_3.VerseId;
                    uuid = any_GetProductData_result1_3.Id;
                    steps = #any_getState_result1_6.FullHistory;
                    location = any_getState_result1_6.RawPath;
                })
                tbl_12_upvr[any_GetProductData_result1_3.VerseId] = nil
            end
        end;
        OnRequestAssetPurchase = function(arg1) -- Line 334, Named "OnRequestAssetPurchase"
            --[[ Upvalues[1]:
                [1]: Retail_upvr (copied, readonly)
            ]]
            Retail_upvr:PurchaseProduct(arg1)
        end;
        OnRequestCharacterReset = function() -- Line 338, Named "OnRequestCharacterReset"
            --[[ Upvalues[1]:
                [1]: Retail_upvr (copied, readonly)
            ]]
            Retail_upvr:ResetAppearance()
        end;
    }
    tbl_2.Callbacks = tbl_13
    tbl_13 = tbl_2
    local var108 = tbl_13
    if not var108 then
        var108 = {}
    end
    var108.type = "setCallback"
    Store_upvr:dispatch(var108)
    Rewards_upvr.OnPointsChanged:Connect(function(arg1) -- Line 344
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local tbl_4 = {}
        tbl_4.LoyaltyPoints = arg1
        local var111 = tbl_4
        if not var111 then
            var111 = {}
        end
        var111.type = "setLoyaltyPoints"
        Store_upvr:dispatch(var111)
    end)
    Rewards_upvr.OnReservedProductsChanged:Connect(function(arg1) -- Line 350
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local tbl_10 = {}
        for _, v in arg1 do
            table.insert(tbl_10, v.Id)
        end
        if not {
            ReservedProducts = tbl_10;
        } then
        end
        ;({}).type = "updateReserved"
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Store_upvr:dispatch({})
    end)
    for _, v_2 in Retail_upvr.RemoteData:GetProducts() do
        local var123 = {
            ProductData = v_2;
        }
        if not var123 then
            var123 = {}
        end
        var123.type = "addProductData"
        Store_upvr:dispatch(var123)
    end
    Retail_upvr.RemoteData.OnProductDataReceived:Connect(function(arg1) -- Line 367
        --[[ Upvalues[1]:
            [1]: Store_upvr (copied, readonly)
        ]]
        local tbl_6 = {}
        tbl_6.ProductData = arg1
        local var126 = tbl_6
        if not var126 then
            var126 = {}
        end
        var126.type = "addProductData"
        Store_upvr:dispatch(var126)
    end)
    for i_3, v_3 in Retail_upvr.RemoteData:GetCatalogs() do
        Retail_upvr.RemoteData:SubscribeToCatalogData("Adidas_Retail", i_3, function(arg1) -- Line 376
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var133 = {
                Sections = arg1.Sections;
            }
            if not var133 then
                var133 = {}
            end
            var133.type = "syncSections"
            Store_upvr:dispatch(var133)
        end)
        for _, v_4 in v_3.Sections do
            ({})[v_4.Id] = Retail_upvr.RemoteData:SubscribeToSectionData("Adidas_Retail", v_4.Id, function(arg1) -- Line 386
                --[[ Upvalues[1]:
                    [1]: Store_upvr (copied, readonly)
                ]]
                local tbl_8 = {}
                tbl_8.SectionData = arg1
                local var136 = tbl_8
                if not var136 then
                    var136 = {}
                end
                var136.type = "setSectionContent"
                Store_upvr:dispatch(var136)
            end)
            local var137_upvr
        end
    end
    Retail_upvr.RemoteData.OnSectionAdded:Connect(function(arg1) -- Line 395
        --[[ Upvalues[3]:
            [1]: var137_upvr (readonly)
            [2]: Retail_upvr (copied, readonly)
            [3]: Store_upvr (copied, readonly)
        ]]
        var137_upvr[arg1] = Retail_upvr.RemoteData:SubscribeToSectionData("Adidas_Retail", arg1, function(arg1_3) -- Line 399
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local tbl = {}
            tbl.SectionData = arg1_3
            local var141 = tbl
            if not var141 then
                var141 = {}
            end
            var141.type = "setSectionContent"
            Store_upvr:dispatch(var141)
        end)
    end)
    Retail_upvr.RemoteData.OnSectionRemoved:Connect(function(arg1) -- Line 407
        --[[ Upvalues[1]:
            [1]: var137_upvr (readonly)
        ]]
        if not var137_upvr[arg1] then
        else
            var137_upvr[arg1]()
            var137_upvr[arg1] = nil
        end
    end)
    module_upvr.View.Overwrite("Retail", function(arg1, arg2, arg3, arg4) -- Line 418
        --[[ Upvalues[11]:
            [1]: var22_upvw (copied, read and write)
            [2]: var23_upvw (copied, read and write)
            [3]: tbl_3_upvw (copied, read and write)
            [4]: Retail_upvr (copied, readonly)
            [5]: Store_upvr (copied, readonly)
            [6]: Analytics_upvr (copied, readonly)
            [7]: Analytic_upvr (copied, readonly)
            [8]: Roact_upvr (copied, readonly)
            [9]: RoactRodux_upvr (copied, readonly)
            [10]: Main_upvr (copied, readonly)
            [11]: View_upvr (copied, readonly)
        ]]
        var22_upvw = arg4
        var23_upvw = arg3
        if arg4 and arg4.Id then
            table.insert(tbl_3_upvw, Retail_upvr.RemoteData:SubscribeToProductDisplayData("Adidas_Retail", arg4.Id, function(arg1_4) -- Line 428
                --[[ Upvalues[1]:
                    [1]: Store_upvr (copied, readonly)
                ]]
                local var146 = {
                    Id = arg1_4.Id;
                    Products = arg1_4.Listings;
                    DisplaySlot = arg1_4.VerseId;
                }
                if not var146 then
                    var146 = {}
                end
                var146.type = "addProductDisplay"
                Store_upvr:dispatch(var146)
            end))
        end
        local var148 = {
            path = arg2 or '/';
        }
        if not var148 then
            var148 = {}
        end
        var148.type = "navigateTo"
        Store_upvr:dispatch(var148)
        local tbl_5 = {
            steps = 1;
            location = arg2 or '/';
        }
        local var150 = var22_upvw
        if var150 then
            var150 = var22_upvw.Id
        end
        tbl_5.uuid = var150
        tbl_5.verseId = var23_upvw
        Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.CatalogView, tbl_5)
        local any_mount_result1_upvr = Roact_upvr.mount(Roact_upvr.createElement(RoactRodux_upvr.StoreProvider, {
            store = Store_upvr;
        }, {
            RetailScreen = Roact_upvr.createElement(Main_upvr, {
                CloseInterfaceRequested = function() -- Line 451, Named "CloseInterfaceRequested"
                    --[[ Upvalues[1]:
                        [1]: View_upvr (copied, readonly)
                    ]]
                    View_upvr.Close("Retail")
                end;
                OnCatalogButtonPressed = function() -- Line 455, Named "OnCatalogButtonPressed"
                    --[[ Upvalues[5]:
                        [1]: Store_upvr (copied, readonly)
                        [2]: var22_upvw (copied, read and write)
                        [3]: Analytics_upvr (copied, readonly)
                        [4]: Analytic_upvr (copied, readonly)
                        [5]: var23_upvw (copied, read and write)
                    ]]
                    local any_getState_result1_4 = Store_upvr:getState()
                    local var155
                    if any_getState_result1_4.PathParameters and any_getState_result1_4.PathParameters.category then
                        var155 = any_getState_result1_4.PathParameters.category
                    elseif any_getState_result1_4.PathParameters and any_getState_result1_4.PathParameters.section then
                        var155 = any_getState_result1_4.PathParameters.section
                    elseif var22_upvw then
                        var155 = var22_upvw.Id
                    end
                    Store_upvr:dispatch({
                        type = "clearHistory";
                    })
                    Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.CatalogView, {
                        steps = #any_getState_result1_4.FullHistory;
                        location = any_getState_result1_4.RawPath;
                        uuid = var155;
                        verseId = var23_upvw;
                    })
                end;
                NavigateToProductDisplayRequested = function() -- Line 478, Named "NavigateToProductDisplayRequested"
                    --[[ Upvalues[1]:
                        [1]: Store_upvr (copied, readonly)
                    ]]
                    Store_upvr:dispatch({
                        type = "navigateToPreviousProductDisplay";
                    })
                end;
                OnCollectionsFilterOptionActivated = function(arg1_5) -- Line 482, Named "OnCollectionsFilterOptionActivated"
                    --[[ Upvalues[5]:
                        [1]: Store_upvr (copied, readonly)
                        [2]: var22_upvw (copied, read and write)
                        [3]: Analytics_upvr (copied, readonly)
                        [4]: Analytic_upvr (copied, readonly)
                        [5]: var23_upvw (copied, read and write)
                    ]]
                    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [17] 14. Error Block 6 start (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [17] 14. Error Block 6 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [5] 6. Error Block 2 start (CF ANALYSIS FAILED)
                    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [17.7]
                    -- KONSTANTERROR: [5] 6. Error Block 2 end (CF ANALYSIS FAILED)
                end;
                OnProductTypeFilterOptionActivated = function(arg1_6) -- Line 534, Named "OnProductTypeFilterOptionActivated"
                end;
                OnPlayerInteractedWithViewport = function() -- Line 538, Named "OnPlayerInteractedWithViewport"
                    --[[ Upvalues[5]:
                        [1]: Store_upvr (copied, readonly)
                        [2]: var22_upvw (copied, read and write)
                        [3]: Analytics_upvr (copied, readonly)
                        [4]: Analytic_upvr (copied, readonly)
                        [5]: var23_upvw (copied, read and write)
                    ]]
                    local any_getState_result1_2 = Store_upvr:getState()
                    local var160
                    if any_getState_result1_2.PathParameters and any_getState_result1_2.PathParameters.category then
                        var160 = any_getState_result1_2.PathParameters.category
                    elseif any_getState_result1_2.PathParameters and any_getState_result1_2.PathParameters.section then
                        var160 = any_getState_result1_2.PathParameters.section
                    elseif var22_upvw then
                        var160 = var22_upvw.Id
                    end
                    Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.CatalogView, {
                        steps = #any_getState_result1_2.FullHistory;
                        location = any_getState_result1_2.RawPath;
                        verseId = var23_upvw;
                        uuid = var160;
                    })
                end;
                OnBackgroundPressedWhenLoyaltyPointsPromptWasOpen = function() -- Line 559, Named "OnBackgroundPressedWhenLoyaltyPointsPromptWasOpen"
                    --[[ Upvalues[1]:
                        [1]: Store_upvr (copied, readonly)
                    ]]
                    local var163 = {
                        PotentialLoyaltyPoints = nil;
                    }
                    if not var163 then
                        var163 = {}
                    end
                    var163.type = "setPotentialLoyaltyPoints"
                    Store_upvr:dispatch(var163)
                end;
            });
        }), arg1)
        return function() -- Line 568
            --[[ Upvalues[8]:
                [1]: tbl_3_upvw (copied, read and write)
                [2]: Store_upvr (copied, readonly)
                [3]: var22_upvw (copied, read and write)
                [4]: Analytics_upvr (copied, readonly)
                [5]: Analytic_upvr (copied, readonly)
                [6]: var23_upvw (copied, read and write)
                [7]: Roact_upvr (copied, readonly)
                [8]: any_mount_result1_upvr (readonly)
            ]]
            local var170
            for _, v_5 in tbl_3_upvw, var170 do
                v_5()
            end
            local any_getState_result1 = Store_upvr:getState()
            var170 = nil
            tbl_3_upvw = {}
            if any_getState_result1.PathParameters and any_getState_result1.PathParameters.category then
                var170 = any_getState_result1.PathParameters.category
            elseif any_getState_result1.PathParameters and any_getState_result1.PathParameters.section then
                var170 = any_getState_result1.PathParameters.section
            elseif var22_upvw then
                var170 = var22_upvw.Id
            end
            Analytics_upvr.InvokeAnalyticAsync(Analytic_upvr.CatalogView, {
                steps = #any_getState_result1.FullHistory;
                location = any_getState_result1.RawPath;
                verseId = var23_upvw;
                eventEndTime = workspace:GetServerTimeNow();
                uuid = var170;
            })
            Store_upvr:dispatch({
                type = "clearHistory";
            })
            Roact_upvr.unmount(any_mount_result1_upvr)
        end
    end)
    observeLocalHumanoidDescription_upvr()
end
ModuleScript Main ReplicatedStorage.PopupShop.Views.Retail.Main
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:36
-- Luau version 6, Types version 3
-- Time taken: 0.027856 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.Component:extend("RetailScreen")
any_extend_result1.defaultProps = {
    Path = '/';
    OnCatalogButtonPressed = function() -- Line 23, Named "OnCatalogButtonPressed"
    end;
    NavigateToProductDisplayRequested = function() -- Line 24, Named "NavigateToProductDisplayRequested"
    end;
    CloseInterfaceRequested = function() -- Line 25, Named "CloseInterfaceRequested"
    end;
}
local tbl_7_upvr = {}
;(function() -- Line 30, Named "collectPossibleRoutes"
    --[[ Upvalues[1]:
        [1]: tbl_7_upvr (readonly)
    ]]
    for _, v in script.Parent.Routes:GetChildren() do
        if v:IsA("ModuleScript") then
            local string_lower_result1 = string.lower(v.Name)
            if string_lower_result1 == "main" then
                tbl_7_upvr['/'] = require(v)
            else
                tbl_7_upvr[`/{string_lower_result1}`] = require(v)
            end
        end
    end
end)()
function any_extend_result1.init(arg1) -- Line 48
    arg1:setState({
        introCompleted = false;
        enabled = true;
        notificationShowing = false;
    })
end
local GuiService_upvr = game:GetService("GuiService")
local Sift_upvr = require(ReplicatedStorage.PopupShop.Packages.Sift)
local Intro_upvr = require(script.Parent.Components.Intro)
local Navbar_upvr = require(script.Parent.Parent.Components.Navbar)
local LoyaltyPointsPrompt_upvr = require(script.Parent.Components.LoyaltyPointsPrompt)
local Notification_upvr = require(script.Parent.Components.Notification)
function any_extend_result1.render(arg1) -- Line 56
    --[[ Upvalues[8]:
        [1]: GuiService_upvr (readonly)
        [2]: tbl_7_upvr (readonly)
        [3]: Roact_upvr (readonly)
        [4]: Sift_upvr (readonly)
        [5]: Intro_upvr (readonly)
        [6]: Navbar_upvr (readonly)
        [7]: LoyaltyPointsPrompt_upvr (readonly)
        [8]: Notification_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var52 = GuiService_upvr:GetGuiInset() + Vector2.new(0, 4)
    local string_gsub_result1 = string.gsub(arg1.props.Path, "/wishlist", "/catalog")
    local var54
    if tbl_7_upvr[string_gsub_result1] then
    end
    if Sift_upvr.Array.findWhereLast(arg1.props.FullHistory, function(arg1_3) -- Line 76
        local var57
        if string.find(arg1_3, "^/productdisplay") == nil then
            var57 = false
        else
            var57 = true
        end
        return var57
    end) == nil then
    else
    end
    local module = {}
    var54 = 1
    module.Size = UDim2.fromScale(var54, 1)
    module.BackgroundTransparency = 1
    module.ImageTransparency = 1
    var54 = arg1.state
    module.Visible = var54.enabled
    module.AutoButtonColor = false
    local module_2 = {}
    var54 = not arg1.state.introCompleted
    if var54 then
        var54 = Roact_upvr.createElement
        var54 = var54(Intro_upvr, {
            Finished = function() -- Line 90, Named "Finished"
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:setState({
                    introCompleted = true;
                })
            end;
        })
    end
    module_2.Intro = var54
    var54 = arg1.state.introCompleted
    if var54 then
        var54 = Roact_upvr.createElement
        local tbl = {}
        local introCompleted_4 = arg1.state.introCompleted
        if introCompleted_4 then
            introCompleted_4 = Roact_upvr.createElement
            introCompleted_4 = introCompleted_4("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder;
            })
        end
        tbl.UIListLayout = introCompleted_4
        local var66
        if arg1.state.introCompleted then
            local tbl_9 = {}
            if string_gsub_result1 ~= '/' then
                var66 = false
            else
                var66 = true
            end
            tbl_9.CatalogButtonHidden = var66
            var66 = arg1.props.OnCatalogButtonPressed
            tbl_9.OnCatalogButtonPressed = var66
            var66 = false
            tbl_9.AllowCustomization = var66
            if string_gsub_result1 == '/' then
                var66 = false
            else
                var66 = true
            end
            tbl_9.ShowSearchBar = var66
            var66 = {}
            var66.CloseButton = Roact_upvr.createElement("ImageButton", {
                AnchorPoint = Vector2.new(1, 0);
                Position = UDim2.fromScale(1, 0);
                Size = UDim2.fromScale(1, 1);
                BackgroundColor3 = Color3.fromRGB(0, 0, 0);
                BorderColor3 = Color3.fromRGB(255, 255, 255);
                Image = "rbxassetid://15511528148";
                [Roact_upvr.Event.Activated] = arg1.props.CloseInterfaceRequested;
            }, {
                UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
            })
            local var70 = true
            if var70 then
                var70 = false
                if string_gsub_result1 == '/' then
                    var70 = Roact_upvr.createElement
                    var70 = var70("ImageButton", {
                        AnchorPoint = Vector2.new(0.5, 0);
                        Position = UDim2.fromScale(0.5, 0);
                        Size = UDim2.fromScale(1, 1);
                        BackgroundColor3 = Color3.fromRGB(0, 0, 0);
                        BorderColor3 = Color3.fromRGB(255, 255, 255);
                        Image = "rbxassetid://16543364017";
                        [Roact_upvr.Event.Activated] = arg1.props.NavigateToProductDisplayRequested;
                    }, {
                        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
                    })
                end
            end
            var66.BackButton = var70
        end
        tbl.Navbar = Roact_upvr.createElement(Navbar_upvr, tbl_9, var66)
        local introCompleted_2 = arg1.state.introCompleted
        if introCompleted_2 then
            introCompleted_2 = Roact_upvr.createElement
            local tbl_18 = {}
            var66 = UDim2.new(1, 0, 1, -var52.Y)
            tbl_18.Size = var66
            var66 = 1
            tbl_18.BackgroundTransparency = var66
            var66 = 2
            tbl_18.LayoutOrder = var66
            var66 = {}
            var66.UIPadding = Roact_upvr.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 10);
                PaddingLeft = UDim.new(0, 10);
                PaddingRight = UDim.new(0, 10);
                PaddingTop = UDim.new(0, 10);
            })
            var66[string_gsub_result1] = Roact_upvr.createElement(tbl_7_upvr[string_gsub_result1], {
                Parameters = arg1.props.PathParameters;
                OnCollectionsFilterOptionActivated = arg1.props.OnCollectionsFilterOptionActivated;
                OnProductTypeFilterOptionActivated = arg1.props.OnProductTypeFilterOptionActivated;
            })
            introCompleted_2 = introCompleted_2("Frame", tbl_18, var66)
        end
        tbl.Content = introCompleted_2
        var54 = var54("Frame", {
            Size = UDim2.fromScale(1, 1);
            BackgroundTransparency = 1;
        }, tbl)
    end
    module_2.RetailContent = var54
    if arg1.state.introCompleted then
        local tbl_3 = {}
        local tbl_28 = {}
        var66 = Vector2.new(0.5, 0)
        tbl_28.AnchorPoint = var66
        var66 = UDim2.fromScale(0.5, 0)
        tbl_28.Position = var66
        var66 = UDim2.new(2, 0, 0, var52.Y)
        tbl_28.Size = var66
        var66 = Color3.fromRGB(0, 0, 0)
        tbl_28.BackgroundColor3 = var66
        if arg1.state.introCompleted then
            var66 = 0.2
        else
            var66 = 1
        end
        tbl_28.BackgroundTransparency = var66
        tbl_28.BorderSizePixel = 0
        tbl_3.Header = Roact_upvr.createElement("Frame", tbl_28)
        local tbl_8 = {
            Position = UDim2.fromOffset(0, var52.Y);
            Size = UDim2.new(1.1, 0, 1, -var52.Y);
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
        }
        if arg1.state.introCompleted then
        else
        end
        tbl_8.BackgroundTransparency = 1
        tbl_8.BorderSizePixel = 0
        ;({}).UIGradient = Roact_upvr.createElement("UIGradient", {
            Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.2, 1), NumberSequenceKeypoint.new(0.3, 0), NumberSequenceKeypoint.new(1, 0)});
        })
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        tbl_3.Content = Roact_upvr.createElement("Frame", tbl_8, {})
    end
    module_2.RetailBackground = Roact_upvr.createElement("Frame", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        ZIndex = -1;
    }, tbl_3)
    if arg1.state.introCompleted then
    end
    module_2.ModalFix = Roact_upvr.createElement("TextButton", {
        Size = UDim2.fromScale(0, 0);
        BackgroundTransparency = 1;
        Text = "";
        Modal = true;
    })
    if arg1.state.introCompleted then
    end
    module_2.LoyaltyPointsPrompt = Roact_upvr.createElement(LoyaltyPointsPrompt_upvr, {
        PotentialLoyaltyPoints = arg1.props.PotentialLoyaltyPoints;
        OnBackgroundPressed = arg1.props.OnBackgroundPressedWhenLoyaltyPointsPromptWasOpen;
    })
    if arg1.state.introCompleted then
    end
    module_2.Notification = Roact_upvr.createElement(Notification_upvr, {
        NotificationMessage = arg1.props.NotificationMessage;
    })
    return Roact_upvr.createElement("ImageButton", module, module_2)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 218
    return {
        Path = arg1.Path;
        PageStack = arg1.PageStack;
        PathParameters = arg1.PathParameters;
        FullHistory = arg1.FullHistory;
        PotentialLoyaltyPoints = arg1.PotentialLoyaltyPoints;
        NotificationMessage = arg1.NotificationMessage;
    }
end)(any_extend_result1)
ModuleScript Store ReplicatedStorage.PopupShop.Views.Retail.Store
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:38
-- Luau version 6, Types version 3
-- Time taken: 0.010086 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Sift_upvr = require(ReplicatedStorage.PopupShop.Packages.Sift)
local Rodux = require(ReplicatedStorage.PopupShop.Packages.Rodux)
local function processPath_upvr(arg1, arg2) -- Line 134, Named "processPath"
    --[[ Upvalues[1]:
        [1]: Sift_upvr (readonly)
    ]]
    local string_match_result1_2, string_match_result2_2 = string.match(arg1, "([^?]+)%??(.*)")
    for _, v in string.split(string_match_result2_2, '&') do
        if v ~= "" then
            local string_match_result1, string_match_result2 = string.match(v, "(.*)=(.*)")
            if tonumber(string_match_result2) then
                ({})[string_match_result1] = tonumber(string_match_result2)
            elseif string_match_result2 == "true" then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[string_match_result1] = true
            elseif string_match_result2 == "false" then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[string_match_result1] = false
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[string_match_result1] = string_match_result2
            end
        end
    end
    arg2.Path = string_match_result1_2
    arg2.LastRawPath = arg2.RawPath
    arg2.RawPath = arg1
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    arg2.PathParameters = {}
    arg2.FullHistory = Sift_upvr.Array.push(arg2.FullHistory, arg1)
end
local module = {
    addRobloxAssetDetails = function(arg1, arg2) -- Line 165, Named "addRobloxAssetDetails"
        arg1.RobloxAssetData[arg2.AssetData.VerseId] = arg2.AssetData
        return arg1
    end;
    updateReserved = function(arg1, arg2) -- Line 171, Named "updateReserved"
        arg1.ReservedProducts = arg2.ReservedProducts
        return arg1
    end;
    clearHistory = function(arg1) -- Line 177, Named "clearHistory"
        --[[ Upvalues[1]:
            [1]: processPath_upvr (readonly)
        ]]
        arg1.PageStack = {}
        arg1.FullHistory = {}
        processPath_upvr('/', arg1)
        return arg1
    end;
    navigateTo = function(arg1, arg2) -- Line 185, Named "navigateTo"
        --[[ Upvalues[2]:
            [1]: Sift_upvr (readonly)
            [2]: processPath_upvr (readonly)
        ]]
        arg1.PageStack = Sift_upvr.Array.push(arg1.PageStack, arg1.RawPath)
        processPath_upvr(arg2.path, arg1)
        return arg1
    end;
    navigateBack = function(arg1) -- Line 192, Named "navigateBack"
        --[[ Upvalues[2]:
            [1]: processPath_upvr (readonly)
            [2]: Sift_upvr (readonly)
        ]]
        if #arg1.PageStack == 0 then return end
        processPath_upvr(arg1.PageStack[1], arg1)
        arg1.PageStack = Sift_upvr.Array.pop(arg1.PageStack, 1)
        return arg1
    end;
    navigateToPreviousProductDisplay = function(arg1) -- Line 206, Named "navigateToPreviousProductDisplay"
        --[[ Upvalues[2]:
            [1]: Sift_upvr (readonly)
            [2]: processPath_upvr (readonly)
        ]]
        if #arg1.FullHistory == 0 then return end
        local any_findWhereLast_result1 = Sift_upvr.Array.findWhereLast(arg1.FullHistory, function(arg1_2) -- Line 211
            local var16
            if arg1_2:sub(1, 15) ~= "/productdisplay" then
                var16 = false
            else
                var16 = true
            end
            return var16
        end)
        if not any_findWhereLast_result1 then return end
        processPath_upvr(arg1.FullHistory[any_findWhereLast_result1], arg1)
        arg1.PageStack = Sift_upvr.Array.push(arg1.PageStack, '/')
        return arg1
    end;
    syncSections = function(arg1, arg2) -- Line 229, Named "syncSections"
        arg1.Sections = arg2.Sections
        return arg1
    end;
    addProductDisplay = function(arg1, arg2) -- Line 235, Named "addProductDisplay"
        arg1.ProductDisplays[arg2.Id] = {
            Products = arg2.Products;
            DisplaySlot = arg2.DisplaySlot;
        }
        return arg1
    end;
    addBundledItem = function(arg1, arg2) -- Line 244, Named "addBundledItem"
        arg1.BundledItems[arg2.AssetId] = arg2.ProductId
        return arg1
    end;
    setEquippedIds = function(arg1, arg2) -- Line 250, Named "setEquippedIds"
        arg1.EquippedProducts = table.clone(arg2.EquippedProducts)
        return arg1
    end;
    setPotentialLoyaltyPoints = function(arg1, arg2) -- Line 256, Named "setPotentialLoyaltyPoints"
        arg1.PotentialLoyaltyPoints = arg2.PotentialLoyaltyPoints
        return arg1
    end;
    setWishlistedProducts = function(arg1, arg2) -- Line 262, Named "setWishlistedProducts"
        arg1.WishlistedProducts = table.clone(arg2.WishlistedProducts)
        return arg1
    end;
    updateAvatarHumanoidDescription = function(arg1, arg2) -- Line 268, Named "updateAvatarHumanoidDescription"
        arg1.AvatarHumanoidDescription = arg2.AvatarHumanoidDescription
        return arg1
    end;
    setCallback = function(arg1, arg2) -- Line 274, Named "setCallback"
        for i_2, v_2 in arg2.Callbacks do
            if arg1[i_2] then
                arg1[i_2] = v_2
            end
        end
        return arg1
    end;
    setLoyaltyPoints = function(arg1, arg2) -- Line 284, Named "setLoyaltyPoints"
        arg1.LoyaltyPoints = arg2.LoyaltyPoints
        return arg1
    end;
}
local HttpService_upvr = game:GetService("HttpService")
function module.setNotificationMessage(arg1, arg2) -- Line 290
    --[[ Upvalues[1]:
        [1]: HttpService_upvr (readonly)
    ]]
    local var22
    if arg2.Text == nil then
        var22 = nil
    else
        var22 = {
            Text = arg2.Text;
            MessageId = HttpService_upvr:GenerateGUID(false);
        }
    end
    arg1.NotificationMessage = var22
    return arg1
end
function module.setSectionContent(arg1, arg2) -- Line 307
    arg1.SectionContent[arg2.SectionData.Id] = arg2.SectionData
    arg1.SectionContent = table.clone(arg1.SectionContent)
    return arg1
end
function module.addProductData(arg1, arg2) -- Line 314
    arg2.ProductData.IsNewFormat = true
    arg1.ProductData[arg2.ProductData.Id] = arg2.ProductData
    arg1.ProductDataAssetLookup[arg2.ProductData.VerseId] = arg2.ProductData
    return arg1
end
function module.setSearchResults(arg1, arg2) -- Line 322
    arg1.SearchResults = table.clone(arg2.SearchResults)
    if not arg2.ShouldRetainSearchError then
        arg1.SearchError = nil
    end
    return arg1
end
function module.setSearchError(arg1, arg2) -- Line 332
    arg1.SearchError = arg2.SearchError
    return arg1
end
function module.queueAnimationsSequence(arg1, arg2) -- Line 338
    arg1.AnimationsSequence = table.clone(arg2.AnimationIds)
    return arg1
end
function module.dequeueFromAnimationsSequence(arg1, arg2) -- Line 344
    table.remove(arg1.AnimationsSequence, table.find(arg1.AnimationsSequence, arg2.AnimationId))
    arg1.AnimationsSequence = table.clone(arg1.AnimationsSequence)
    return arg1
end
return Rodux.Store.new(Rodux.createReducer({
    LastRawPath = '/';
    RawPath = '/';
    Path = '/';
    PathParameters = {};
    PageStack = {};
    FullHistory = {};
    EquippedProducts = {};
    WishlistedProducts = {};
    ReservedProducts = {};
    SearchResults = {};
    SearchError = nil;
    BundledItems = {};
    Sections = {};
    Categories = {};
    ProductDisplays = {};
    SectionContent = {};
    AvatarHumanoidDescription = Instance.new("HumanoidDescription");
    LoyaltyPoints = nil;
    PotentialLoyaltyPoints = nil;
    NotificationMessage = nil;
    ProductData = {};
    ProductDataAssetLookup = {};
    RobloxAssetData = {};
    AnimationsSequence = {};
    OnRequestAssetDetails = function() -- Line 93, Named "OnRequestAssetDetails"
        warn("OnRequestAssetDetails isn't overwritten.")
    end;
    OnRequestAssetPurchase = function() -- Line 97, Named "OnRequestAssetPurchase"
        warn("OnRequestAssetPurchase isn't overwritten.")
    end;
    OnRequestAssetEquip = function() -- Line 101, Named "OnRequestAssetEquip"
        warn("OnRequestAssetEquip isn't overwritten.")
    end;
    OnRequestAssetUnequip = function() -- Line 105, Named "OnRequestAssetUnequip"
        warn("OnRequestAssetUnequip isn't overwritten.")
    end;
    OnRequestAssetWishlist = function() -- Line 109, Named "OnRequestAssetWishlist"
        warn("OnRequestAssetWishlist isn't overwritten.")
    end;
    GoToPath = function() -- Line 113, Named "GoToPath"
        warn("GoToPath isn't overwritten.")
    end;
    OnRequestCharacterReset = function() -- Line 117, Named "OnRequestCharacterReset"
        warn("OnRequestCharacterReset isn't overwritten.")
    end;
    OnRemoveAssetFromQueue = function() -- Line 121, Named "OnRemoveAssetFromQueue"
        warn("OnRemoveAssetFromQueue isn't overwritten.")
    end;
    OnSearch = function() -- Line 125, Named "OnSearch"
        warn("OnSearch isn't overwritten.")
    end;
    ClearSearchError = function() -- Line 129, Named "ClearSearchError"
        warn("ClearSearchError isn't overwritten.")
    end;
}, module))
ModuleScript FilterBar ReplicatedStorage.PopupShop.Views.Retail.Components.FilterBar
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:39
-- Luau version 6, Types version 3
-- Time taken: 0.014504 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.PureComponent:extend("FilterBar")
local tbl_3 = {
    AnchorPoint = Vector2.zero;
    Position = UDim2.new();
    Size = UDim2.new(1, 0, 0, 40);
    Options = {{
        Name = "Test";
        Value = false;
    }};
}
function tbl_3.OnOptionActivated() -- Line 26
    warn("OnOptionActivated not overwritten.")
end
any_extend_result1.defaultProps = tbl_3
function any_extend_result1.RefreshCanScroll(arg1) -- Line 31
    local any_getValue_result1_2 = arg1.ScrolligFrameRef:getValue()
    local var10
    if not any_getValue_result1_2 then
    else
        if any_getValue_result1_2.AbsoluteWindowSize.X >= any_getValue_result1_2.AbsoluteCanvasSize.X then
            var10 = false
        else
            var10 = true
        end
        if any_getValue_result1_2.AbsoluteCanvasSize.X - any_getValue_result1_2.AbsoluteWindowSize.X <= any_getValue_result1_2.CanvasPosition.X + 10 and var10 then
            arg1:setState({
                CanScrollLeft = true;
                CanScrollRight = false;
                UIGradientTransparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1, 0), NumberSequenceKeypoint.new(0.9, 0), NumberSequenceKeypoint.new(1, 0)});
            })
            return
        end
        if any_getValue_result1_2.CanvasPosition.X <= 10 and var10 then
            arg1:setState({
                CanScrollLeft = false;
                CanScrollRight = true;
                UIGradientTransparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.1, 0), NumberSequenceKeypoint.new(0.9, 0), NumberSequenceKeypoint.new(1, 1)});
            })
            return
        end
        if 0 < any_getValue_result1_2.CanvasPosition.X then
            arg1:setState({
                CanScrollLeft = true;
                CanScrollRight = true;
                UIGradientTransparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1, 0), NumberSequenceKeypoint.new(0.9, 0), NumberSequenceKeypoint.new(1, 1)});
            })
            return
        end
        arg1:setState({
            CanScrollLeft = false;
            CanScrollRight = false;
            UIGradientTransparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.1, 0), NumberSequenceKeypoint.new(0.9, 0), NumberSequenceKeypoint.new(1, 0)});
        })
    end
end
function any_extend_result1.CreateFilter(arg1, arg2, arg3, arg4) -- Line 90
    --[[ Upvalues[1]:
        [1]: Roact_upvr (readonly)
    ]]
    local module = {
        Size = UDim2.fromScale(0, 1);
        AutomaticSize = Enum.AutomaticSize.X;
    }
    local var20
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var20 = Color3.fromRGB(25, 127, 182)
        return var20
    end
    if not arg3 or not INLINED() then
        var20 = Color3.fromRGB(0, 0, 0)
    end
    module.BackgroundColor3 = var20
    var20 = Color3.fromRGB(255, 255, 255)
    module.BorderColor3 = var20
    var20 = Enum.BorderMode.Inset
    module.BorderMode = var20
    var20 = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
    module.FontFace = var20
    var20 = string.upper(arg2)
    module.Text = var20
    var20 = Color3.fromRGB(255, 255, 255)
    module.TextColor3 = var20
    var20 = 20
    module.TextSize = var20
    var20 = Roact_upvr.Event.Activated
    module[var20] = arg4
    var20 = {}
    var20.UIPadding = Roact_upvr.createElement("UIPadding", {
        PaddingBottom = UDim.new(0, 6);
        PaddingLeft = UDim.new(0, 10);
        PaddingRight = UDim.new(0, 10);
        PaddingTop = UDim.new(0, 6);
    })
    return Roact_upvr.createElement("TextButton", module, var20)
end
function any_extend_result1.didUpdate(arg1, arg2) -- Line 121
    if arg1.props.Options ~= arg2.Options then
        arg1:RefreshCanScroll()
    end
end
function any_extend_result1.init(arg1) -- Line 127
    --[[ Upvalues[2]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
    ]]
    arg1.ScrolligFrameRef = Roact_upvr.createRef()
    arg1.ScrollMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.ScrollMotor:onStep(function(arg1_2) -- Line 131
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local any_getValue_result1 = arg1.ScrolligFrameRef:getValue()
        if not any_getValue_result1 then
        else
            any_getValue_result1.CanvasPosition = Vector2.new(arg1_2, 0)
        end
    end)
    arg1:setState({
        CanScrollLeft = false;
        CanScrollRight = false;
        UIGradientTransparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.1, 0), NumberSequenceKeypoint.new(0.9, 0), NumberSequenceKeypoint.new(1, 1)});
    })
end
function any_extend_result1.didMount(arg1) -- Line 153
    task.defer(arg1.RefreshCanScroll, arg1)
end
function any_extend_result1.willUnmount(arg1) -- Line 158
    arg1.ScrollMotor:stop()
end
local table_freeze_result1_upvr = table.freeze({
    frequency = 1.7;
    dampingRatio = 0.9;
})
function any_extend_result1.render(arg1) -- Line 162
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: table_freeze_result1_upvr (readonly)
    ]]
    for _, v_upvr in arg1.props.Options do
        if not v_upvr.Hidden then
            table.insert({}, arg1:CreateFilter(v_upvr.Name, v_upvr.Value, function() -- Line 171
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: v_upvr (readonly)
                ]]
                arg1.props.OnOptionActivated(v_upvr.Name)
            end))
        end
    end
    local module_2 = {}
    local CanScrollLeft = arg1.state.CanScrollLeft
    if CanScrollLeft then
        CanScrollLeft = Roact_upvr.createElement
        CanScrollLeft = CanScrollLeft("ImageButton", {
            Size = UDim2.fromScale(1, 1);
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BorderSizePixel = 0;
            Image = "rbxassetid://16568014588";
            ScaleType = Enum.ScaleType.Fit;
            Rotation = -90;
            ZIndex = 2;
            [Roact_upvr.Event.Activated] = function() -- Line 199
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: Flipper_upvr (copied, readonly)
                    [3]: table_freeze_result1_upvr (copied, readonly)
                ]]
                local any_getValue_result1_3 = arg1.ScrolligFrameRef:getValue()
                if not any_getValue_result1_3 then
                else
                    arg1.ScrollMotor:setGoal(Flipper_upvr.Spring.new(math.max(0, any_getValue_result1_3.CanvasPosition.X - any_getValue_result1_3.AbsoluteSize.X * 0.5), table_freeze_result1_upvr))
                end
            end;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
            UIGradient = Roact_upvr.createElement("UIGradient", {
                Rotation = 90;
                Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.6, 0), NumberSequenceKeypoint.new(1, 1)});
            });
        })
    end
    module_2.LeftArrow = CanScrollLeft
    CanScrollLeft = arg1.state.CanScrollRight
    local var41 = CanScrollLeft
    if var41 then
        var41 = Roact_upvr.createElement
        var41 = var41("ImageButton", {
            AnchorPoint = Vector2.new(1, 0);
            Position = UDim2.fromScale(1, 0);
            Size = UDim2.fromScale(1, 1);
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BorderSizePixel = 0;
            Image = "rbxassetid://16568014588";
            ScaleType = Enum.ScaleType.Fit;
            Rotation = 90;
            ZIndex = 2;
            [Roact_upvr.Event.Activated] = function() -- Line 238
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: Flipper_upvr (copied, readonly)
                    [3]: table_freeze_result1_upvr (copied, readonly)
                ]]
                local any_getValue_result1_4 = arg1.ScrolligFrameRef:getValue()
                if not any_getValue_result1_4 then
                else
                    arg1.ScrollMotor:setGoal(Flipper_upvr.Spring.new(math.min(any_getValue_result1_4.AbsoluteCanvasSize.X - any_getValue_result1_4.AbsoluteWindowSize.X, any_getValue_result1_4.CanvasPosition.X + any_getValue_result1_4.AbsoluteSize.X * 0.5), table_freeze_result1_upvr))
                end
            end;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
            UIGradient = Roact_upvr.createElement("UIGradient", {
                Rotation = 90;
                Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.6, 0), NumberSequenceKeypoint.new(1, 1)});
            });
        })
    end
    module_2.RightArrow = var41
    local tbl_2 = {
        UIGradient = Roact_upvr.createElement("UIGradient", {
            Transparency = arg1.state.UIGradientTransparency;
        });
    }
    local tbl = {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            Padding = UDim.new(0, 12);
            FillDirection = Enum.FillDirection.Horizontal;
            SortOrder = Enum.SortOrder.LayoutOrder;
        });
    }
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    tbl.Children = Roact_upvr.createFragment({})
    tbl_2.ScrollingFrame = Roact_upvr.createElement("ScrollingFrame", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        BorderSizePixel = 0;
        AutomaticCanvasSize = Enum.AutomaticSize.X;
        CanvasSize = UDim2.new();
        ScrollBarThickness = 0;
        ScrollingDirection = Enum.ScrollingDirection.X;
        ClipsDescendants = true;
        [Roact_upvr.Ref] = arg1.ScrolligFrameRef;
        [Roact_upvr.Change.CanvasPosition] = function(arg1_3) -- Line 292
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: Flipper_upvr (copied, readonly)
            ]]
            arg1:RefreshCanScroll()
            if not arg1.ScrollMotor._state.complete then
            else
                arg1.ScrollMotor:setGoal(Flipper_upvr.Instant.new(arg1_3.CanvasPosition.X))
            end
        end;
    }, tbl)
    module_2.CanvasGroup = Roact_upvr.createElement("CanvasGroup", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        BorderSizePixel = 0;
        [Roact_upvr.Change.AbsoluteSize] = function() -- Line 269
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:RefreshCanScroll()
        end;
    }, tbl_2)
    return Roact_upvr.createElement("Frame", {
        AnchorPoint = arg1.props.AnchorPoint;
        Position = arg1.props.Position;
        Size = arg1.props.Size;
        BackgroundTransparency = 1;
        BorderSizePixel = 0;
    }, module_2)
end
return any_extend_result1
ModuleScript FlexibleGrid ReplicatedStorage.PopupShop.Views.Retail.Components.FlexibleGrid
KONSTANTERROR: After: K:0: attempt to index nil with 'debug_name'
K
K
K
K
K
K
K
ModuleScript GridTile ReplicatedStorage.PopupShop.Views.Retail.Components.GridTile
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:41
-- Luau version 6, Types version 3
-- Time taken: 0.010388 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.PureComponent:extend("GridTile")
any_extend_result1.defaultProps = {
    Position = UDim2.new();
    Size = UDim2.fromScale(1, 1);
    ColorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 255, 255))});
    Text = "";
    Thumbnail = "";
    CenterContent = false;
}
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 29
    --[[ Upvalues[2]:
        [1]: Flipper_upvr (readonly)
        [2]: RoactFlipper_upvr (readonly)
    ]]
    arg1.hoverMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.hoverBinding = RoactFlipper_upvr.getBinding(arg1.hoverMotor)
    arg1.viewportSizeObserver = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 33
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:setState({
            titleFontSize = workspace.CurrentCamera.ViewportSize.Y * 0.09;
        })
    end)
    arg1:setState({
        titleFontSize = workspace.CurrentCamera.ViewportSize.Y * 0.09;
    })
end
function any_extend_result1.willUnmount(arg1) -- Line 44
    arg1.viewportSizeObserver:Disconnect()
end
local table_freeze_result1_upvr = table.freeze({
    velocity = 7;
})
function any_extend_result1.render(arg1) -- Line 48
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: table_freeze_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local module = {
        UIGradient = Roact_upvr.createElement("UIGradient", {
            Color = arg1.props.ColorSequence;
            Rotation = 33;
        });
    }
    local tbl_2 = {}
    local var19
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var19 = Vector2.new(0, 0.5)
        return var19
    end
    if not arg1.props.CenterContent or not INLINED() then
        var19 = Vector2.new(0.5, 0.5)
    end
    tbl_2.AnchorPoint = var19
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var19 = UDim2.fromScale(0.075, 0.5)
        return var19
    end
    if not arg1.props.CenterContent or not INLINED_2() then
        var19 = UDim2.fromScale(0.5, 0.5)
    end
    tbl_2.Position = var19
    var19 = arg1.hoverBinding
    var19 = var19:map(function(arg1_2) -- Line 81
        return UDim2.fromScale(1, 1):Lerp(UDim2.fromScale(1.08, 1.08), arg1_2)
    end)
    tbl_2.Size = var19
    var19 = 1
    tbl_2.BackgroundTransparency = var19
    var19 = arg1.props.Thumbnail
    tbl_2.Image = var19
    var19 = Enum.ScaleType.Crop
    tbl_2.ScaleType = var19
    var19 = -1
    tbl_2.ZIndex = var19
    var19 = {}
    local CenterContent = arg1.props.CenterContent
    if CenterContent then
        CenterContent = Roact_upvr.createElement("UIAspectRatioConstraint")
    end
    var19.UIAspectRatioConstraint = CenterContent
    module.Thumbnail = Roact_upvr.createElement("ImageLabel", tbl_2, var19)
    local tbl = {}
    var19 = UDim2.fromScale(1, 1)
    tbl.Size = var19
    var19 = Color3.fromRGB(0, 0, 0)
    tbl.BackgroundColor3 = var19
    var19 = 0
    tbl.BorderSizePixel = var19
    var19 = 0
    tbl.ZIndex = var19
    var19 = {}
    var19.UIGradient = Roact_upvr.createElement("UIGradient", {
        Rotation = -90;
        Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.3), NumberSequenceKeypoint.new(0.3, 1), NumberSequenceKeypoint.new(1, 1)});
    })
    module.Backdrop = Roact_upvr.createElement("Frame", tbl, var19)
    local tbl_4 = {}
    var19 = Vector2.new(0, 1)
    tbl_4.AnchorPoint = var19
    var19 = UDim2.fromScale(0, 1)
    tbl_4.Position = var19
    var19 = UDim2.new(1, 0, 0, arg1.state.titleFontSize)
    tbl_4.Size = var19
    var19 = 1
    tbl_4.BackgroundTransparency = var19
    var19 = 1
    tbl_4.ZIndex = var19
    var19 = {}
    local tbl_3 = {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
        Text = string.upper(arg1.props.Text);
        TextColor3 = arg1.hoverBinding:map(function(arg1_3) -- Line 134
            if 0 < arg1_3 then
                return Color3.fromRGB(0, 0, 0)
            end
            return Color3.fromRGB(255, 255, 255)
        end);
        TextSize = arg1.state.titleFontSize * 0.65;
    }
    if not arg1.props.CenterContent or not Enum.TextXAlignment.Right then
    end
    tbl_3.TextXAlignment = Enum.TextXAlignment.Center
    tbl_3.AutoLocalize = false
    var19.NameLabel = Roact_upvr.createElement("TextLabel", tbl_3, {
        UIPadding = Roact_upvr.createElement("UIPadding", {
            PaddingLeft = UDim.new(0.075, 0);
            PaddingRight = UDim.new(0.075, 0);
        });
    })
    var19.Background = Roact_upvr.createElement("Frame", {
        Position = arg1.hoverBinding:map(function(arg1_4) -- Line 153
            return UDim2.fromScale(0, 1):Lerp(UDim2.fromScale(0, 0), arg1_4)
        end);
        Size = UDim2.fromScale(1, 1);
        BackgroundColor3 = Color3.fromRGB(255, 255, 255);
        BackgroundTransparency = arg1.hoverBinding:map(function(arg1_5) -- Line 159
            return 1 - arg1_5
        end);
        BorderSizePixel = 0;
        ZIndex = 0;
    })
    module.Title = Roact_upvr.createElement("Frame", tbl_4, var19)
    return Roact_upvr.createElement("ImageButton", {
        Size = arg1.props.Size;
        Position = arg1.props.Position;
        BackgroundColor3 = Color3.fromRGB(255, 255, 255);
        BorderSizePixel = 0;
        ImageTransparency = 1;
        ClipsDescendants = true;
        AutoLocalize = false;
        AutoButtonColor = false;
        [Roact_upvr.Event.Activated] = arg1.props[Roact_upvr.Event.Activated];
        [Roact_upvr.Event.MouseEnter] = function() -- Line 65
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: Flipper_upvr (copied, readonly)
                [3]: table_freeze_result1_upvr (copied, readonly)
            ]]
            arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(1, table_freeze_result1_upvr))
        end;
        [Roact_upvr.Event.MouseLeave] = function() -- Line 69
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: Flipper_upvr (copied, readonly)
                [3]: table_freeze_result1_upvr (copied, readonly)
            ]]
            arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(0, table_freeze_result1_upvr))
        end;
    }, module)
end
return any_extend_result1
ModuleScript Intro ReplicatedStorage.PopupShop.Views.Retail.Components.Intro
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:43
-- Luau version 6, Types version 3
-- Time taken: 0.007730 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("Intro")
any_extend_result1.defaultProps = {
    Finished = function() -- Line 23, Named "Finished"
        warn("Finished not overwritten")
    end;
}
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 28
    --[[ Upvalues[2]:
        [1]: Flipper_upvr (readonly)
        [2]: RoactFlipper_upvr (readonly)
    ]]
    arg1.animationStage = 0
    arg1.animationMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.animationBinding = RoactFlipper_upvr.getBinding(arg1.animationMotor)
    arg1.isReseting = false
    function arg1.resetMotor() -- Line 36
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: Flipper_upvr (copied, readonly)
        ]]
        arg1.isReseting = true
        arg1.animationMotor:setGoal(Flipper_upvr.Instant.new(0))
        arg1.animationMotor:step()
    end
    function arg1.playAnimation() -- Line 42
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: Flipper_upvr (copied, readonly)
        ]]
        if arg1.animationStage == 0 then
            arg1.animationStage = 1
            arg1.resetMotor()
            arg1.animationMotor:setGoal(Flipper_upvr.Linear.new(1, {
                velocity = 3;
            }))
        else
            if arg1.animationStage == 1 then
                task.wait(0.25)
                arg1.animationStage = 2
                arg1.resetMotor()
                arg1.animationMotor:setGoal(Flipper_upvr.Linear.new(1, {
                    velocity = 3;
                }))
                return
            end
            if arg1.animationStage == 2 then
                arg1.animationStage = 3
                arg1.resetMotor()
                arg1.animationMotor:setGoal(Flipper_upvr.Linear.new(1, {
                    velocity = 5;
                }))
                arg1.props.Finished()
            end
        end
    end
    arg1.animationMotor:onComplete(function() -- Line 70
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.isReseting then
            arg1.isReseting = false
        else
            arg1.playAnimation()
        end
    end)
end
function any_extend_result1.didMount(arg1) -- Line 79
    arg1.playAnimation()
end
function any_extend_result1.willUnmount(arg1) -- Line 83
    arg1.animationMotor:stop()
end
local udim2_upvr_5 = UDim2.fromScale(0.25, 0.2)
local udim2_upvr_2 = UDim2.fromScale(2, 2.5)
local udim2_upvr_4 = UDim2.fromScale(0, 0)
local udim2_upvr = UDim2.fromScale(1, 1)
local udim2_upvr_3 = UDim2.fromScale(0.25, 0.25)
function any_extend_result1.render(arg1) -- Line 87
    --[[ Upvalues[6]:
        [1]: Roact_upvr (readonly)
        [2]: udim2_upvr_5 (readonly)
        [3]: udim2_upvr_2 (readonly)
        [4]: udim2_upvr_4 (readonly)
        [5]: udim2_upvr (readonly)
        [6]: udim2_upvr_3 (readonly)
    ]]
    local logoAspectRatio = arg1.props.logoAspectRatio
    local module = {}
    local tbl = {
        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
        Circle = Roact_upvr.createElement("Frame", {
            Size = UDim2.fromScale(1, 1);
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BackgroundTransparency = arg1.animationBinding:map(function(arg1_3) -- Line 115
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                if arg1.animationStage == 2 then
                    return 0
                end
                if arg1.animationStage == 3 then
                    return arg1_3
                end
                return 1 - arg1_3
            end);
        }, {
            UICorner = Roact_upvr.createElement("UICorner", {
                CornerRadius = UDim.new(0.5, 0);
            });
        });
    }
    local tbl_2 = {}
    local var32 = logoAspectRatio
    if var32 then
        var32 = Roact_upvr.createElement
        var32 = var32("UIAspectRatioConstraint", {
            AspectRatio = logoAspectRatio;
        })
    end
    tbl_2.UIAspectRatioConstraint = var32
    tbl.Logo = Roact_upvr.createElement("ImageLabel", {
        AnchorPoint = Vector2.new(0.5, 0.5);
        Position = UDim2.fromScale(0.5, 0.5);
        Size = arg1.animationBinding:map(function(arg1_4) -- Line 132
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: udim2_upvr (copied, readonly)
                [3]: udim2_upvr_3 (copied, readonly)
            ]]
            if arg1.animationStage == 1 then
                return udim2_upvr
            end
            if arg1.animationStage == 2 then
                return udim2_upvr:Lerp(udim2_upvr_3, arg1_4)
            end
            return udim2_upvr_3
        end);
        BackgroundTransparency = 1;
        Image = "rbxassetid://15243427241";
        ImageTransparency = arg1.animationBinding:map(function(arg1_5) -- Line 145
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1.animationStage == 2 then
                return arg1_5
            end
            if arg1.animationStage == 3 then
                return 1
            end
            return 1 - arg1_5
        end);
    }, tbl_2)
    module.Container = Roact_upvr.createElement("Frame", {
        AnchorPoint = Vector2.new(0.5, 0.5);
        Position = UDim2.fromScale(0.5, 0.5);
        Size = arg1.animationBinding:map(function(arg1_2) -- Line 98
            --[[ Upvalues[4]:
                [1]: arg1 (readonly)
                [2]: udim2_upvr_5 (copied, readonly)
                [3]: udim2_upvr_2 (copied, readonly)
                [4]: udim2_upvr_4 (copied, readonly)
            ]]
            if arg1.animationStage == 2 then
                return udim2_upvr_5:Lerp(udim2_upvr_2, arg1_2)
            end
            if arg1.animationStage == 3 then
                return udim2_upvr_2
            end
            return udim2_upvr_4:Lerp(udim2_upvr_5, arg1_2)
        end);
        BackgroundTransparency = 1;
    }, tbl)
    return Roact_upvr.createElement("Frame", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
    }, module)
end
return any_extend_result1
ModuleScript LabeledImageButton ReplicatedStorage.PopupShop.Views.Retail.Components.LabeledImageButton
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:44
-- Luau version 6, Types version 3
-- Time taken: 0.003975 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.PureComponent:extend("LabeledImageButton")
any_extend_result1.defaultProps = {
    AnchorPoint = Vector2.zero;
    Position = UDim2.new();
    Size = UDim2.fromScale(1, 1);
    Image = "";
    Text = "";
}
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 22
    --[[ Upvalues[2]:
        [1]: Flipper_upvr (readonly)
        [2]: RoactFlipper_upvr (readonly)
    ]]
    arg1.hoverMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.hoverBinding = RoactFlipper_upvr.getBinding(arg1.hoverMotor)
end
local table_freeze_result1_upvr = table.freeze({
    velocity = 7;
})
function any_extend_result1.render(arg1) -- Line 27
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: table_freeze_result1_upvr (readonly)
    ]]
    return Roact_upvr.createElement("ImageButton", {
        AnchorPoint = arg1.props.AnchorPoint;
        Position = arg1.props.Position;
        Size = arg1.props.Size;
        ImageTransparency = 1;
        BackgroundColor3 = Color3.fromRGB(255, 255, 255);
        BackgroundTransparency = arg1.hoverBinding:map(function(arg1_2) -- Line 36
            return 1 - arg1_2 - 0.6
        end);
        BorderSizePixel = 0;
        AutoButtonColor = false;
        [Roact_upvr.Event.Activated] = arg1.props[Roact_upvr.Event.Activated];
        [Roact_upvr.Event.MouseEnter] = function() -- Line 45
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: Flipper_upvr (copied, readonly)
                [3]: table_freeze_result1_upvr (copied, readonly)
            ]]
            arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(1, table_freeze_result1_upvr))
        end;
        [Roact_upvr.Event.MouseLeave] = function() -- Line 49
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: Flipper_upvr (copied, readonly)
                [3]: table_freeze_result1_upvr (copied, readonly)
            ]]
            arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(0, table_freeze_result1_upvr))
        end;
    }, {
        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint", {
            AspectRatio = 0.75;
        });
        Icon = Roact_upvr.createElement("ImageLabel", {
            Size = UDim2.fromScale(1, 1);
            BackgroundTransparency = 1;
            Image = arg1.props.Image;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
        });
        TextLabel = Roact_upvr.createElement("TextLabel", {
            AnchorPoint = Vector2.new(0, 1);
            Position = UDim2.fromScale(0, 1);
            Size = UDim2.fromScale(1, 0.25);
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BackgroundTransparency = 0.2;
            BorderSizePixel = 0;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = string.upper(arg1.props.Text);
            TextColor3 = Color3.fromRGB(255, 255, 255);
            TextScaled = true;
        });
    })
end
return any_extend_result1
ModuleScript LoyaltyPointsPrompt ReplicatedStorage.PopupShop.Views.Retail.Components.LoyaltyPointsPrompt
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:45
-- Luau version 6, Types version 3
-- Time taken: 0.015089 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.Component:extend("LoyaltyPointsPrompt")
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
local Trove_upvr = require(ReplicatedStorage.PopupShop.Packages.Trove)
function any_extend_result1.init(arg1) -- Line 12
    --[[ Upvalues[3]:
        [1]: Flipper_upvr (readonly)
        [2]: RoactFlipper_upvr (readonly)
        [3]: Trove_upvr (readonly)
    ]]
    arg1.state = {
        shouldDisplayAtTheBottom = arg1:_shouldDisplayAtTheBottom();
    }
    arg1.promptToggleMotor = Flipper_upvr.SingleMotor.new(1)
    arg1.promptToggleBinding = RoactFlipper_upvr.getBinding(arg1.promptToggleMotor)
    arg1._trove = Trove_upvr.new()
end
function any_extend_result1.didMount(arg1) -- Line 23
    arg1._trove:Add(workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 24
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:setState(function(arg1_2) -- Line 25
            --[[ Upvalues[1]:
                [1]: arg1 (copied, readonly)
            ]]
            local any__shouldDisplayAtTheBottom_result1 = arg1:_shouldDisplayAtTheBottom()
            if arg1_2.shouldDisplayAtTheBottom == any__shouldDisplayAtTheBottom_result1 then
                return nil
            end
            return {
                shouldDisplayAtTheBottom = any__shouldDisplayAtTheBottom_result1;
            }
        end)
    end))
end
function any_extend_result1.didUpdate(arg1, arg2) -- Line 36
    --[[ Upvalues[1]:
        [1]: Flipper_upvr (readonly)
    ]]
    if arg2.PotentialLoyaltyPoints == nil and arg1.props.PotentialLoyaltyPoints ~= nil then
        arg1.promptToggleMotor:setGoal(Flipper_upvr.Instant.new(1))
        arg1.promptToggleMotor:step()
        arg1.promptToggleMotor:setGoal(Flipper_upvr.Spring.new(0, {
            frequency = 3;
            dampingRatio = 1;
        }))
        arg1.mostRecentPotentialLoyaltyPoints = arg1.props.PotentialLoyaltyPoints
    elseif arg2.PotentialLoyaltyPoints ~= nil and arg1.props.PotentialLoyaltyPoints == nil then
        arg1.promptToggleMotor:setGoal(Flipper_upvr.Instant.new(0))
        arg1.promptToggleMotor:step()
        arg1.promptToggleMotor:setGoal(Flipper_upvr.Spring.new(1, {
            frequency = 3;
            dampingRatio = 1;
        }))
    end
end
function any_extend_result1.willUnmount(arg1) -- Line 60
    arg1._trove:Destroy()
end
function any_extend_result1.render(arg1) -- Line 64
    --[[ Upvalues[1]:
        [1]: Roact_upvr (readonly)
    ]]
    local shouldDisplayAtTheBottom_upvr_2 = arg1.state.shouldDisplayAtTheBottom
    local module_3 = {}
    local tbl_12 = {
        AnchorPoint = arg1.promptToggleBinding:map(function(arg1_7) -- Line 79
            --[[ Upvalues[1]:
                [1]: shouldDisplayAtTheBottom_upvr_2 (readonly)
            ]]
            if shouldDisplayAtTheBottom_upvr_2 then
                return Vector2.new(0.5, 1 - arg1_7)
            end
            return Vector2.new(1 - arg1_7, 0.5)
        end);
        Position = arg1.promptToggleBinding:map(function(arg1_8) -- Line 87
            --[[ Upvalues[1]:
                [1]: shouldDisplayAtTheBottom_upvr_2 (readonly)
            ]]
            if shouldDisplayAtTheBottom_upvr_2 then
                return UDim2.fromScale(0.5, 0.9 + arg1_8 * 0.1)
            end
            return UDim2.fromScale(0.95 + arg1_8 * 0.05, 0.5)
        end);
    }
    local var42
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var42 = UDim2.fromScale(0.4, 0.15)
        return var42
    end
    if not shouldDisplayAtTheBottom_upvr_2 or not INLINED_2() then
        var42 = UDim2.fromScale(0.1, 0.5)
    end
    tbl_12.Size = var42
    var42 = Color3.new(0, 0, 0)
    tbl_12.BackgroundColor3 = var42
    var42 = 0
    tbl_12.BorderSizePixel = var42
    var42 = 0.2
    tbl_12.BackgroundTransparency = var42
    var42 = {}
    var42.UISizeConstraint = Roact_upvr.createElement("UISizeConstraint", {
        MaxSize = Vector2.new(700, math.huge);
    })
    local tbl_2 = {
        AnchorPoint = Vector2.new(0.5, 0.5);
    }
    local var45 = 0.25
    tbl_2.Position = UDim2.fromScale(0.5, var45)
    if shouldDisplayAtTheBottom_upvr_2 then
        var45 = 0.15
    else
        var45 = 0.5
    end
    tbl_2.Size = UDim2.fromScale(0.8, var45)
    tbl_2.BackgroundTransparency = 1
    tbl_2.FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
    tbl_2.Text = "THIS PURCHASE EARNS YOU"
    tbl_2.TextColor3 = Color3.new(1, 1, 1)
    tbl_2.TextScaled = true
    var42.Header = Roact_upvr.createElement("TextLabel", tbl_2)
    local tbl = {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            Padding = UDim.new(0.01, 0);
            FillDirection = Enum.FillDirection.Horizontal;
            HorizontalAlignment = Enum.HorizontalAlignment.Center;
            VerticalAlignment = Enum.VerticalAlignment.Center;
            SortOrder = Enum.SortOrder.LayoutOrder;
        });
    }
    local var49 = not shouldDisplayAtTheBottom_upvr_2
    if var49 then
        var49 = Roact_upvr.createElement
        var49 = var49("UIAspectRatioConstraint", {
            AspectRatio = 2;
        })
    end
    tbl.UIAspectRatioConstraint = var49
    tbl.Icon = Roact_upvr.createElement("ImageLabel", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        Image = "http://www.roblox.com/asset/?id=16173596317";
        LayoutOrder = 1;
    }, {
        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
    })
    local tbl_13 = {
        AutomaticSize = Enum.AutomaticSize.X;
        Size = UDim2.fromScale(0, 0.7);
        BackgroundTransparency = 1;
        FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
    }
    local PotentialLoyaltyPoints = arg1.props.PotentialLoyaltyPoints
    if not PotentialLoyaltyPoints then
        PotentialLoyaltyPoints = arg1.mostRecentPotentialLoyaltyPoints
        if not PotentialLoyaltyPoints then
            PotentialLoyaltyPoints = ""
        end
    end
    tbl_13.Text = PotentialLoyaltyPoints
    tbl_13.TextColor3 = Color3.fromRGB(237, 231, 52)
    tbl_13.TextScaled = true
    tbl_13.LayoutOrder = 2
    tbl_13.AutoLocalize = false
    tbl.Amount = Roact_upvr.createElement("TextLabel", tbl_13)
    var42.LoyaltyPointsContainer = Roact_upvr.createElement("Frame", {
        AnchorPoint = Vector2.new(0.5, 0.5);
        Position = UDim2.fromScale(0.5, 0.6);
        Size = UDim2.fromScale(0.7, 0.3);
        BackgroundTransparency = 1;
    }, tbl)
    module_3.Prompt = Roact_upvr.createElement("Frame", tbl_12, var42)
    return Roact_upvr.createElement("ImageButton", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
        Visible = arg1.promptToggleBinding:map(function(arg1_6) -- Line 72
            local var37
            if arg1_6 >= 1 then
                var37 = false
            else
                var37 = true
            end
            return var37
        end);
        [Roact_upvr.Event.Activated] = arg1.props.OnBackgroundPressed;
    }, module_3)
end
function any_extend_result1._shouldDisplayAtTheBottom(arg1) -- Line 188
    local var55
    if 650 > workspace.CurrentCamera.viewportSize.Y then
        var55 = false
    else
        var55 = true
    end
    return var55
end
return any_extend_result1
ModuleScript Notification ReplicatedStorage.PopupShop.Views.Retail.Components.Notification
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:46
-- Luau version 6, Types version 3
-- Time taken: 0.003722 seconds

local Roact_upvr = require(game:GetService("ReplicatedStorage").PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.Component:extend("Notification")
function any_extend_result1.init(arg1) -- Line 9
    arg1.state = {
        notificationShowing = false;
    }
end
function any_extend_result1.didUpdate(arg1, arg2, arg3) -- Line 15
    if arg2.NotificationMessage ~= arg1.props.NotificationMessage and arg1.props.NotificationMessage ~= nil then
        arg1:setState({
            notificationShowing = true;
        })
    elseif arg3.notificationShowing == false and arg1.state.notificationShowing == true then
        local MessageId_upvr = arg1.props.NotificationMessage.MessageId
        task.delay(5, function() -- Line 27
            --[[ Upvalues[2]:
                [1]: MessageId_upvr (readonly)
                [2]: arg1 (readonly)
            ]]
            if MessageId_upvr ~= arg1.props.NotificationMessage.MessageId then
            else
                arg1:setState(function(arg1_2) -- Line 32
                    if not arg1_2.notificationShowing then return end
                    return {
                        notificationShowing = false;
                    }
                end)
            end
        end)
    end
end
function any_extend_result1.render(arg1) -- Line 43
    --[[ Upvalues[1]:
        [1]: Roact_upvr (readonly)
    ]]
    local module = {
        AutomaticSize = Enum.AutomaticSize.XY;
        AnchorPoint = Vector2.new(0.5, 0.5);
        Position = UDim2.fromScale(0.5, 0.5);
        BackgroundColor3 = Color3.new(0, 0, 0);
        BorderSizePixel = 0;
        BackgroundTransparency = 0.2;
        FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
    }
    local NotificationMessage = arg1.props.NotificationMessage
    if NotificationMessage then
        NotificationMessage = string.upper(arg1.props.NotificationMessage.Text)
    end
    module.Text = NotificationMessage
    module.TextColor3 = Color3.new(1, 1, 1)
    module.TextScaled = true
    module.TextWrapped = true
    module.Visible = arg1.state.notificationShowing
    return Roact_upvr.createElement("TextLabel", module, {
        UITextSizeConstraint = Roact_upvr.createElement("UITextSizeConstraint", {
            MinTextSize = 14;
            MaxTextSize = 48;
        });
        UIPadding = Roact_upvr.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 10);
            PaddingBottom = UDim.new(0, 10);
            PaddingLeft = UDim.new(0, 10);
            PaddingRight = UDim.new(0, 10);
        });
        UISizeConstraint = Roact_upvr.createElement("UISizeConstraint", {
            MaxSize = Vector2.new(600, 400);
        });
    })
end
return any_extend_result1
ModuleScript PlayerPreview ReplicatedStorage.PopupShop.Views.Retail.Components.PlayerPreview
KONSTANTERROR: After: K:0: attempt to index nil with 'debug_name'
K
K
K
K
K
K
K
ModuleScript PreviewCartCombo ReplicatedStorage.PopupShop.Views.Retail.Components.PreviewCartCombo
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:49
-- Luau version 6, Types version 3
-- Time taken: 0.003073 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("PreviewCartCombo")
any_extend_result1.defaultProps = {
    Size = UDim2.fromScale(1, 1);
    LayoutOrder = 0;
}
local PlayerPreview_upvr = require(script.Parent.PlayerPreview)
local LabeledImageButton_upvr = require(script.Parent.LabeledImageButton)
local ShoppingCart_upvr = require(script.Parent.ShoppingCart)
function any_extend_result1.render(arg1) -- Line 22
    --[[ Upvalues[4]:
        [1]: Roact_upvr (readonly)
        [2]: PlayerPreview_upvr (readonly)
        [3]: LabeledImageButton_upvr (readonly)
        [4]: ShoppingCart_upvr (readonly)
    ]]
    return Roact_upvr.createElement("Frame", {
        Size = arg1.props.Size;
        BackgroundTransparency = 1;
        LayoutOrder = arg1.props.LayoutOrder;
    }, {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            HorizontalAlignment = Enum.HorizontalAlignment.Center;
            VerticalAlignment = Enum.VerticalAlignment.Top;
            FillDirection = Enum.FillDirection.Vertical;
            SortOrder = Enum.SortOrder.LayoutOrder;
            Padding = UDim.new(0, 0);
        });
        PlayerPreview = Roact_upvr.createElement("Frame", {
            Size = UDim2.new(1, 0, 0.7, 0);
            BackgroundTransparency = 1;
            LayoutOrder = -1;
        }, {
            UIPadding = Roact_upvr.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 10);
            });
            Viewport = Roact_upvr.createElement(PlayerPreview_upvr, {
                Size = UDim2.fromScale(1, 1);
                HumanoidDescription = arg1.props.HumanoidDescription;
                AnimationId = arg1.props.AnimationId;
                EquippedIDs = arg1.props.EquippedProducts;
                OnPlayerInteractedWithViewport = arg1.props.OnPlayerInteractedWithViewport;
            });
            ResetButton = Roact_upvr.createElement(LabeledImageButton_upvr, {
                AnchorPoint = Vector2.new(0, 1);
                Position = UDim2.fromScale(0, 1);
                Size = UDim2.fromScale(0.175, 1);
                Text = "RESET";
                Image = "rbxassetid://16196314999";
                [Roact_upvr.Event.Activated] = arg1.props.OnRequestCharacterReset;
            });
        });
        ShoppingCart = Roact_upvr.createElement(ShoppingCart_upvr, {
            Size = UDim2.new(1, 0, 0.3, 0);
        });
    })
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 78
    return {
        OnRequestCharacterReset = arg1.OnRequestCharacterReset;
    }
end)(any_extend_result1)
ModuleScript ProductFrame ReplicatedStorage.PopupShop.Views.Retail.Components.ProductFrame
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:50
-- Luau version 6, Types version 3
-- Time taken: 0.023672 seconds

local Players_upvr = game:GetService("Players")
local UserInputService_upvr = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ItemDetails_upvr = require(ReplicatedStorage:WaitForChild("MetaverseRewardsClient")).ClothingDisplay.ItemDetails
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.PureComponent:extend("ProductFrame")
local tbl_4_upvr = {
    velocity = 7;
}
any_extend_result1.defaultProps = {
    Position = UDim2.new();
    Size = UDim2.fromScale(1, 1);
    ProductId = 0;
    IsDefaultItem = false;
}
local any_createBinding_result1_upvr, any_createBinding_result2_upvr = Roact_upvr.createBinding(-2)
local var14_upvw = 0
game:GetService("RunService").Heartbeat:Connect(function(arg1) -- Line 44
    --[[ Upvalues[2]:
        [1]: var14_upvw (read and write)
        [2]: any_createBinding_result2_upvr (readonly)
    ]]
    var14_upvw += arg1 * 2
    var14_upvw %= 4
    any_createBinding_result2_upvr(var14_upvw - 2)
end)
local function _(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 51, Named "pointIsInRectangle"
    local var17 = false
    if arg1 <= arg5 then
        var17 = false
        if arg5 <= arg1 + arg3 then
            var17 = false
            if arg2 <= arg6 then
                if arg6 > arg2 + arg4 then
                    var17 = false
                else
                    var17 = true
                end
            end
        end
    end
    return var17
end
function any_extend_result1.FetchItemOwnership(arg1) -- Line 55
    --[[ Upvalues[2]:
        [1]: ItemDetails_upvr (readonly)
        [2]: Players_upvr (readonly)
    ]]
    task.spawn(function() -- Line 56
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: ItemDetails_upvr (copied, readonly)
            [3]: Players_upvr (copied, readonly)
        ]]
        local var19
        local var20 = "Asset"
        local tonumber_result1 = tonumber(arg1.props.ProductId)
        if tonumber_result1 then
            var19 = tonumber_result1
        else
            local var22 = arg1.props.ProductData[arg1.props.ProductId]
            if var22 then
                local var23 = var22
                if var23 then
                    var23 = var22.VerseId
                end
                var19 = var23
                if var22.ProductType == "Bundle" then
                    var20 = "Bundle"
                end
            end
        end
        if not var19 then
        else
            arg1.CurrentAsset = {
                Id = var19;
                Type = var20;
            }
            local var25
            if arg1.CurrentAsset.Type == "Asset" then
                var25 = ItemDetails_upvr.IsAssetOwned(Players_upvr.LocalPlayer, arg1.CurrentAsset.Id)
            elseif arg1.CurrentAsset.Type == "Bundle" then
                var25 = ItemDetails_upvr.IsBundleOwned(Players_upvr.LocalPlayer, arg1.CurrentAsset.Id)
            end
            if arg1.CurrentAsset.Id ~= arg1.CurrentAsset.Id then return end
            arg1:setState({
                Owned = var25;
            })
        end
    end)
end
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 103
    --[[ Upvalues[5]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: RoactFlipper_upvr (readonly)
        [4]: ItemDetails_upvr (readonly)
        [5]: Players_upvr (readonly)
    ]]
    arg1.state = {
        productData = nil;
        timeUntilStart = nil;
    }
    arg1.productFrameRef = Roact_upvr.createRef()
    arg1.hoverMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.hoverBinding = RoactFlipper_upvr.getBinding(arg1.hoverMotor)
    arg1.EquipClickDebounce = 0
    local any_createBinding_result1, any_createBinding_result2 = Roact_upvr.createBinding(0)
    arg1.PriceLabelFontSize = any_createBinding_result1
    arg1.UpdatePriceLabelFontSize = any_createBinding_result2
    arg1.AssetOwnershipChangedConnection = ItemDetails_upvr.OnAssetOwnershipRetrieved:Connect(function(arg1_2, arg2, arg3) -- Line 119
        --[[ Upvalues[2]:
            [1]: Players_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        if arg1_2 ~= Players_upvr.LocalPlayer then
        else
            if not arg1.CurrentAsset or arg1.CurrentAsset.Id ~= arg2 or arg1.CurrentAsset.Type ~= "Asset" then return end
            local tbl_8 = {}
            tbl_8.Owned = arg3
            arg1:setState(tbl_8)
        end
    end)
    arg1.BundleOwnershipChangedConnection = ItemDetails_upvr.OnBundleOwnershipRetrieved:Connect(function(arg1_3, arg2, arg3) -- Line 136
        --[[ Upvalues[2]:
            [1]: Players_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        if arg1_3 ~= Players_upvr.LocalPlayer then
        else
            if not arg1.CurrentAsset or arg1.CurrentAsset.Id ~= arg2 or arg1.CurrentAsset.Type ~= "Bundle" then return end
            local tbl_2 = {}
            tbl_2.Owned = arg3
            arg1:setState(tbl_2)
        end
    end)
    arg1:FetchItemOwnership()
    local var35 = not arg1.state.timeUntilStart
    if not var35 then
        if arg1.state.timeUntilStart > 0 then
            var35 = false
        else
            var35 = true
        end
    end
    arg1.productUnlocked = var35
end
function any_extend_result1.didMount(arg1) -- Line 157
    local var36 = arg1.props.ProductData[arg1.props.ProductId]
    if var36 and var36.StartDate and DateTime.now().UnixTimestampMillis < var36.StartDate then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        arg1:setState({
            timeUntilStart = var36.StartDate - DateTime.now().UnixTimestampMillis;
        })
    end
end
local GuiService_upvr = game:GetService("GuiService")
function any_extend_result1.isMouseOver(arg1) -- Line 168
    --[[ Upvalues[2]:
        [1]: UserInputService_upvr (readonly)
        [2]: GuiService_upvr (readonly)
    ]]
    local any_getValue_result1_3 = arg1.productFrameRef:getValue()
    if not any_getValue_result1_3 then
        return false
    end
    local AbsolutePosition_3 = any_getValue_result1_3.AbsolutePosition
    local AbsoluteSize_3 = any_getValue_result1_3.AbsoluteSize
    local var58 = UserInputService_upvr:GetMouseLocation() - GuiService_upvr:GetGuiInset()
    local X = AbsolutePosition_3.X
    local Y_2 = AbsolutePosition_3.Y
    local X_4 = var58.X
    local Y = var58.Y
    local var63 = false
    if X <= X_4 then
        var63 = false
        if X_4 <= X + AbsoluteSize_3.X then
            var63 = false
            if Y_2 <= Y then
                if Y > Y_2 + AbsoluteSize_3.Y then
                    var63 = false
                else
                    var63 = true
                end
            end
        end
    end
    return var63
end
function any_extend_result1.didUpdate(arg1, arg2, arg3) -- Line 192
    --[[ Upvalues[3]:
        [1]: UserInputService_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: Roact_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 51 start (CF ANALYSIS FAILED)
    local var74
    if UserInputService_upvr.MouseEnabled then
        var74 = arg1:isMouseOver()
    end
    if arg1.state.timeUntilStart ~= arg3.timeUntilStart then
        local var75 = not arg1.state.timeUntilStart
        if not var75 then
            if arg1.state.timeUntilStart > 0 then
                var75 = false
            else
                var75 = true
            end
        end
        arg1.productUnlocked = var75
    end
    local var76
    if arg2.ProductId ~= arg1.props.ProductId and not var74 then
        arg1.hoverMotor:setGoal(Flipper_upvr.Instant.new(0))
        arg1.hoverMotor:step()
        -- KONSTANTWARNING: GOTO [112] #76
    end
    -- KONSTANTERROR: [0] 1. Error Block 51 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [61] 40. Error Block 52 start (CF ANALYSIS FAILED)
    if var74 then
        if arg1.productUnlocked then
            local tbl = {}
            if arg1.state.Owned then
                var76 = 14
            else
                var76 = 7
            end
            tbl.velocity = var76
            arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(1, tbl))
            -- KONSTANTWARNING: GOTO [112] #76
        end
    end
    local tbl_7 = {}
    if arg1.state.Owned then
        var76 = 14
    else
    end
    tbl_7.velocity = 7
    arg1.hoverMotor:setGoal(Flipper_upvr.Linear.new(0, tbl_7))
    if arg2.ProductId ~= arg1.props.ProductId then
        arg1.EquipClickDebounce = 0
        arg1:setState({
            Owned = Roact_upvr.None;
        })
        task.defer(arg1.FetchItemOwnership, arg1)
    else
        if arg3.timeUntilStart ~= arg1.state.timeUntilStart and arg1.state.timeUntilStart then
            task.delay(1, function() -- Line 227
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: Roact_upvr (copied, readonly)
                ]]
                arg1:setState(function(arg1_5) -- Line 228
                    --[[ Upvalues[1]:
                        [1]: Roact_upvr (copied, readonly)
                    ]]
                    if arg1_5.timeUntilStart <= 0 then
                        return {
                            timeUntilStart = Roact_upvr.None;
                        }
                    end
                    return {
                        timeUntilStart = arg1_5.timeUntilStart - 1000;
                    }
                end)
            end)
        end
        -- KONSTANTERROR: [61] 40. Error Block 52 end (CF ANALYSIS FAILED)
    end
end
function any_extend_result1.willUnmount(arg1) -- Line 239
    arg1.AssetOwnershipChangedConnection:Disconnect()
    arg1.AssetOwnershipChangedConnection = nil
    arg1.BundleOwnershipChangedConnection:Disconnect()
    arg1.BundleOwnershipChangedConnection = nil
end
local makeCountdownText_upvr = require(script.Parent.Parent.Parent.Parent.Utils.makeCountdownText)
function any_extend_result1.render(arg1) -- Line 247
    --[[ Upvalues[6]:
        [1]: Roact_upvr (readonly)
        [2]: UserInputService_upvr (readonly)
        [3]: Flipper_upvr (readonly)
        [4]: tbl_4_upvr (readonly)
        [5]: makeCountdownText_upvr (readonly)
        [6]: any_createBinding_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local ProductId = arg1.props.ProductId
    local _ = {
        IsReservable = false;
        IsEquipped = false;
        IsWishlisted = false;
        IsLoaded = false;
        CanTryOn = true;
        CanBuy = true;
        CanWishlist = not arg1.props.IsDefaultItem;
        PendingReservation = table.find(arg1.props.ReservedProducts, ProductId);
    }
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 152 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 152 end (CF ANALYSIS FAILED)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 960
    return {
        BundledItems = arg1.BundledItems;
        ProductData = arg1.ProductData;
        RobloxAssetData = arg1.RobloxAssetData;
        ProductDataAssetLookup = arg1.ProductDataAssetLookup;
        EquippedProducts = arg1.EquippedProducts;
        WishlistedProducts = arg1.WishlistedProducts;
        ReservedProducts = arg1.ReservedProducts;
        OnRequestAssetEquip = arg1.OnRequestAssetEquip;
        OnRequestAssetUnequip = arg1.OnRequestAssetUnequip;
        OnRequestAssetPurchase = arg1.OnRequestAssetPurchase;
        OnRequestAssetWishlist = arg1.OnRequestAssetWishlist;
        OnRequestAssetDetails = arg1.OnRequestAssetDetails;
    }
end)(any_extend_result1)
ModuleScript ProductGrid ReplicatedStorage.PopupShop.Views.Retail.Components.ProductGrid
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:52
-- Luau version 6, Types version 3
-- Time taken: 0.035794 seconds

local GuiService_upvr = game:GetService("GuiService")
local UserInputService_upvr = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.Component:extend("ProductGrid")
any_extend_result1.defaultProps = {
    AnchorPoint = Vector2.zero;
    Position = UDim2.new();
    Size = UDim2.fromScale(1, 1);
    Scroll = 0;
    ScrollIntensity = 150;
    CellMinSize = 170;
    CellAspectRatio = 1.25;
    CellMargin = 10;
    ScrollBarWidth = 12;
    ScrollBarStroke = 2;
    ScrollBarStrokeTransparency = 0.75;
    MinRowSize = 5;
    LayoutOrder = 0;
    Products = {};
}
local function _(arg1, arg2, arg3, arg4, arg5, arg6) -- Line 41, Named "pointIsInRectangle"
    local var10 = false
    if arg1 <= arg5 then
        var10 = false
        if arg5 <= arg1 + arg3 then
            var10 = false
            if arg2 <= arg6 then
                if arg6 > arg2 + arg4 then
                    var10 = false
                else
                    var10 = true
                end
            end
        end
    end
    return var10
end
function any_extend_result1.GetCellSizeAt(arg1, arg2, arg3) -- Line 45
    local maximum = math.max(math.ceil(arg2 / arg1.props.CellMinSize), arg1.props.MinRowSize)
    local var12 = (arg2 - arg1.props.CellMargin * math.max(maximum - 1, 0)) / maximum
    local var13 = var12 * arg1.props.CellAspectRatio
    return UDim2.fromOffset(var12, var13), Vector2.new(maximum, math.ceil(arg3 / var13) + 1)
end
function any_extend_result1.CreateGridTiles(arg1) -- Line 59
    --[[ Upvalues[1]:
        [1]: Roact_upvr (readonly)
    ]]
    local GridCellUnits = arg1.state.GridCellUnits
    local var17 = GridCellUnits.X * GridCellUnits.Y
    local tbl = {}
    for i = 1, var17 do
        local any_createBinding_result1, any_createBinding_result2_2 = Roact_upvr.createBinding(UDim2.new())
        tbl[i] = {
            Position = any_createBinding_result1;
            UpdatePosition = any_createBinding_result2_2;
        }
    end
    arg1:setState({
        GridCellCount = var17;
        GridTileBindings = tbl;
    })
end
function any_extend_result1.RecalculateVisibleElements(arg1) -- Line 80
    local GridCellSize = arg1.state.GridCellSize
    local GridCellUnits_2 = arg1.state.GridCellUnits
    local var26 = 1 + math.floor(arg1.scrollAmount:getValue() / GridCellSize.Y.Offset) * GridCellUnits_2.X
    for i_2 = var26, var26 + GridCellUnits_2.Y * GridCellUnits_2.X - 1 do
        local var27 = i_2 - var26 + 1
        if not arg1.props.Products[i_2] then break end
        local var28 = (var27 - 1) % GridCellUnits_2.X
        local floored = math.floor((var27 - 1) / GridCellUnits_2.X)
        if arg1.state.GridTileBindings[var27] then
            arg1.state.GridTileBindings[var27].UpdatePosition(UDim2.fromOffset(GridCellSize.X.Offset * var28 + arg1.props.CellMargin * var28, GridCellSize.Y.Offset * floored - arg1.scrollAmount:getValue() % GridCellSize.Y.Offset + arg1.props.CellMargin * floored))
            ;({})[var27] = arg1.props.Products[i_2]
        end
    end
    local tbl_2 = {
        ChildrenFrames = table.create(GridCellUnits_2.X * GridCellUnits_2.Y, true);
    }
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    tbl_2.ChildrenProductIds = {}
    arg1:setState(tbl_2)
end
function any_extend_result1.RecalculateGridCellSize(arg1) -- Line 121
    local any_getValue_result1 = arg1.productGridFrameRef:getValue()
    local var32 = any_getValue_result1.AbsoluteSize.X - arg1.props.ScrollBarWidth - arg1.props.ScrollBarStroke - arg1.props.CellMargin
    local any_GetCellSizeAt_result1, any_GetCellSizeAt_result2_2 = arg1:GetCellSizeAt(var32, any_getValue_result1.AbsoluteSize.Y)
    local any_GetCellSizeAt_result1_2, any_GetCellSizeAt_result2 = arg1:GetCellSizeAt(any_getValue_result1.AbsoluteSize.X - arg1.props.CellMargin, any_getValue_result1.AbsoluteSize.Y)
    local var37 = math.ceil(#arg1.props.Products / any_GetCellSizeAt_result2_2.X) * any_GetCellSizeAt_result1.Y.Offset + arg1.props.CellMargin * math.max(any_GetCellSizeAt_result2_2.Y - 2, 0)
    local var38
    local var39
    local var40
    local var41 = false
    if var37 < any_getValue_result1.AbsoluteSize.Y then
        var40 = math.ceil(#arg1.props.Products / any_GetCellSizeAt_result2.X) * any_GetCellSizeAt_result1_2.Y.Offset + arg1.props.CellMargin * math.max(any_GetCellSizeAt_result2.Y - 2, 0)
        var38 = any_GetCellSizeAt_result1_2
        var39 = any_GetCellSizeAt_result2
    else
        var40 = var37
        var38 = any_GetCellSizeAt_result1
        var39 = any_GetCellSizeAt_result2_2
        var41 = true
    end
    arg1:setState({
        GridCellSize = var38;
        GridCellUnits = var39;
        ScrollHandleHeight = any_getValue_result1.AbsoluteSize.Y / var40;
        ScrollBarVisible = var41;
        CanvasSize = Vector2.new(var32, var40);
    })
    arg1:CreateGridTiles()
    arg1:RecalculateVisibleElements()
end
function any_extend_result1.SetScroll(arg1, arg2, arg3) -- Line 172
    --[[ Upvalues[1]:
        [1]: Flipper_upvr (readonly)
    ]]
    local any_getValue_result1_3 = arg1.productGridFrameRef:getValue()
    if not any_getValue_result1_3 then
    else
        local clamped = math.clamp(arg2, 0, math.max(arg1.state.CanvasSize.Y - any_getValue_result1_3.AbsoluteSize.Y, 0))
        if arg3 then
            arg1.scrollMotor:setGoal(Flipper_upvr.Instant.new(clamped))
            return
        end
        arg1.scrollMotor:setGoal(Flipper_upvr.Linear.new(clamped, {
            velocity = arg1.props.ScrollIntensity * 15;
        }))
    end
end
local Players_upvr = game:GetService("Players")
function any_extend_result1.ListenToTouchInput(arg1) -- Line 192
    --[[ Upvalues[3]:
        [1]: UserInputService_upvr (readonly)
        [2]: Players_upvr (readonly)
        [3]: GuiService_upvr (readonly)
    ]]
    arg1.inputBeganConnection = UserInputService_upvr.InputBegan:Connect(function(arg1_2) -- Line 193
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: UserInputService_upvr (copied, readonly)
            [3]: Players_upvr (copied, readonly)
            [4]: GuiService_upvr (copied, readonly)
        ]]
        if arg1_2.UserInputType ~= Enum.UserInputType.Touch then
        else
            local any_getValue_result1_2_upvr = arg1.productGridFrameRef:getValue()
            if not any_getValue_result1_2_upvr then return end
            local AbsolutePosition_3 = any_getValue_result1_2_upvr.AbsolutePosition
            local Position_upvr_2 = arg1_2.Position
            local X_3 = AbsolutePosition_3.X
            local Y_2 = AbsolutePosition_3.Y
            local X = Position_upvr_2.X
            local Y_4 = Position_upvr_2.Y
            local var87 = false
            if X_3 <= X then
                var87 = false
                if X <= X_3 + arg1.state.CanvasSize.X then
                    var87 = false
                    if Y_2 <= Y_4 then
                        if Y_4 > Y_2 + any_getValue_result1_2_upvr.AbsoluteSize.Y then
                            var87 = false
                        else
                            var87 = true
                        end
                    end
                end
            end
            if not var87 then return end
            local var88_upvw
            local any_getValue_result1_upvr_4 = arg1.scrollAmount:getValue()
            local var95_upvw
            local any_Connect_result1_upvr_4 = UserInputService_upvr.InputChanged:Connect(function(arg1_7) -- Line 224
                --[[ Upvalues[7]:
                    [1]: var88_upvw (read and write)
                    [2]: Players_upvr (copied, readonly)
                    [3]: any_getValue_result1_2_upvr (readonly)
                    [4]: GuiService_upvr (copied, readonly)
                    [5]: arg1 (copied, readonly)
                    [6]: Position_upvr_2 (readonly)
                    [7]: any_getValue_result1_upvr_4 (readonly)
                ]]
                if arg1_7.UserInputType ~= Enum.UserInputType.Touch then
                else
                    if not var88_upvw then
                        local ScreenGui = Instance.new("ScreenGui")
                        ScreenGui.Name = "[ProductGrid] Input Catcher"
                        ScreenGui.Parent = Players_upvr.LocalPlayer.PlayerGui
                        ScreenGui.DisplayOrder = math.huge
                        ScreenGui.IgnoreGuiInset = true
                        local var92 = any_getValue_result1_2_upvr.AbsolutePosition + GuiService_upvr:GetGuiInset()
                        local TextButton_3 = Instance.new("TextButton")
                        TextButton_3.BackgroundTransparency = 1
                        TextButton_3.Text = ""
                        TextButton_3.Position = UDim2.fromOffset(var92.X, var92.Y)
                        TextButton_3.Size = UDim2.fromOffset(arg1.state.CanvasSize.X, any_getValue_result1_2_upvr.AbsoluteSize.Y)
                        TextButton_3.Parent = ScreenGui
                        var88_upvw = ScreenGui
                    end
                    arg1:SetScroll((any_getValue_result1_upvr_4) + (Position_upvr_2.Y - arg1_7.Position.Y))
                end
            end)
            var95_upvw = UserInputService_upvr.InputEnded:Connect(function(arg1_8) -- Line 254
                --[[ Upvalues[3]:
                    [1]: var95_upvw (read and write)
                    [2]: any_Connect_result1_upvr_4 (readonly)
                    [3]: var88_upvw (read and write)
                ]]
                if arg1_8.UserInputType ~= Enum.UserInputType.Touch then
                else
                    var95_upvw:Disconnect()
                    any_Connect_result1_upvr_4:Disconnect()
                    if var88_upvw then
                        var88_upvw:Destroy()
                    end
                end
            end)
        end
    end)
end
function any_extend_result1.init(arg1) -- Line 269
    --[[ Upvalues[2]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
    ]]
    arg1.productGridFrameRef = Roact_upvr.createRef()
    arg1.scrollBarImageButtonRef = Roact_upvr.createRef()
    local any_createBinding_result1_2, any_createBinding_result2 = Roact_upvr.createBinding(arg1.props.Scroll)
    arg1.scrollAmount = any_createBinding_result1_2
    arg1.updateScrollAmount = any_createBinding_result2
    arg1.scrollMotor = Flipper_upvr.SingleMotor.new(arg1.props.Scroll)
    arg1.scrollMotor:onStep(function(arg1_9) -- Line 276
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.updateScrollAmount(arg1_9)
        arg1:RecalculateVisibleElements()
    end)
    arg1:setState({
        ScrollHandleHeight = 0;
        ScrollBarVisible = false;
        GridCellCount = 0;
        GridCellUnits = Vector2.new(0, 0);
        GridCellSize = UDim2.fromOffset(120, 150);
        ChildrenFrames = {};
        ChildrenProductIds = {};
        GridTileBindings = {};
        CanvasSize = Vector2.new(1, 1);
    })
    arg1:ListenToTouchInput()
end
local Sift_upvr = require(ReplicatedStorage.PopupShop.Packages.Sift)
function any_extend_result1.shouldUpdate(arg1, arg2, arg3) -- Line 300
    --[[ Upvalues[1]:
        [1]: Sift_upvr (readonly)
    ]]
    if arg1.props.Products ~= arg2.Products then
        return true
    end
    if arg1.state.GridCellCount ~= arg3.GridCellCount then
        return true
    end
    if arg1.state.CanvasSize ~= arg3.CanvasSize then
        return true
    end
    if arg1.state.ScrollHandleHeight ~= arg3.ScrollHandleHeight then
        return true
    end
    if arg1.state.ScrollBarVisible ~= arg3.ScrollBarVisible then
        return true
    end
    if arg1.state.GridTileBindings ~= arg3.GridTileBindings then
        return true
    end
    if not Sift_upvr.Array.equals(arg1.state.ChildrenProductIds, arg3.ChildrenProductIds) then
        return true
    end
    return false
end
function any_extend_result1.didUpdate(arg1, arg2) -- Line 332
    if arg1.props.Products ~= arg2.Products then
        task.defer(arg1.RecalculateGridCellSize, arg1)
        arg1:SetScroll(0, true)
    end
end
function any_extend_result1.didMount(arg1) -- Line 339
    arg1:RecalculateGridCellSize()
end
function any_extend_result1.willUnmount(arg1) -- Line 343
    arg1.scrollMotor:stop()
    arg1.inputBeganConnection:Disconnect()
end
local ProductFrame_upvr = require(script.Parent.Parent.Components.ProductFrame)
function any_extend_result1.render(arg1) -- Line 349
    --[[ Upvalues[4]:
        [1]: Roact_upvr (readonly)
        [2]: ProductFrame_upvr (readonly)
        [3]: GuiService_upvr (readonly)
        [4]: UserInputService_upvr (readonly)
    ]]
    for i_3 = 1, arg1.state.GridCellCount do
        if arg1.state.ChildrenProductIds[i_3] then
            ({})[i_3] = Roact_upvr.createElement(ProductFrame_upvr, {
                Size = arg1.state.GridCellSize;
                Position = arg1.state.GridTileBindings[i_3].Position;
                ProductId = arg1.state.ChildrenProductIds[i_3];
            })
        end
    end
    local module = {}
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    module.Products = Roact_upvr.createFragment({})
    local ScrollBarVisible = arg1.state.ScrollBarVisible
    if ScrollBarVisible then
        ScrollBarVisible = Roact_upvr.createElement
        ScrollBarVisible = ScrollBarVisible("ImageButton", {
            AnchorPoint = Vector2.new(1, 0);
            Position = UDim2.new(1, -arg1.props.ScrollBarStroke, 0, arg1.props.ScrollBarStroke);
            Size = UDim2.new(0, arg1.props.ScrollBarWidth, 1, -arg1.props.ScrollBarStroke * 2);
            BackgroundTransparency = 1;
            ImageTransparency = 1;
            ZIndex = 2;
            [Roact_upvr.Ref] = arg1.scrollBarImageButtonRef;
            [Roact_upvr.Event.InputBegan] = function(arg1_11, arg2) -- Line 402
                --[[ Upvalues[3]:
                    [1]: GuiService_upvr (copied, readonly)
                    [2]: UserInputService_upvr (copied, readonly)
                    [3]: arg1 (readonly)
                ]]
                if arg2.UserInputType ~= Enum.UserInputType.MouseButton1 and arg2.UserInputType ~= Enum.UserInputType.Touch then
                else
                    local var113_upvw = arg1_11.AbsolutePosition + GuiService_upvr:GetGuiInset()
                    local function _() -- Line 413, Named "getMouseNormalizedPosition"
                        --[[ Upvalues[3]:
                            [1]: UserInputService_upvr (copied, readonly)
                            [2]: var113_upvw (read and write)
                            [3]: arg1_11 (readonly)
                        ]]
                        return ((UserInputService_upvr:GetMouseLocation() - var113_upvw) / arg1_11.AbsoluteSize).Y
                    end
                    local var114 = arg1.scrollAmount:getValue() / arg1.state.CanvasSize.Y
                    local Y_5_upvw = ((UserInputService_upvr:GetMouseLocation() - var113_upvw) / arg1_11.AbsoluteSize).Y
                    if Y_5_upvw < var114 or var114 + arg1.state.ScrollHandleHeight < Y_5_upvw then return end
                    local var117_upvr = Y_5_upvw - var114
                    local var119_upvw
                    local any_Connect_result1_upvr_3 = UserInputService_upvr.InputChanged:Connect(function(arg1_12) -- Line 434
                        --[[ Upvalues[7]:
                            [1]: arg2 (readonly)
                            [2]: Y_5_upvw (read and write)
                            [3]: UserInputService_upvr (copied, readonly)
                            [4]: var113_upvw (read and write)
                            [5]: arg1_11 (readonly)
                            [6]: var117_upvr (readonly)
                            [7]: arg1 (copied, readonly)
                        ]]
                        if arg1_12.UserInputType ~= Enum.UserInputType.MouseMovement and arg2.UserInputType ~= Enum.UserInputType.Touch then
                        else
                            Y_5_upvw = ((UserInputService_upvr:GetMouseLocation() - var113_upvw) / arg1_11.AbsoluteSize).Y
                            arg1:SetScroll(math.clamp(Y_5_upvw - var117_upvr, 0, 1) * arg1.state.CanvasSize.Y, true)
                        end
                    end)
                    var119_upvw = UserInputService_upvr.InputEnded:Connect(function(arg1_13) -- Line 449
                        --[[ Upvalues[3]:
                            [1]: arg2 (readonly)
                            [2]: var119_upvw (read and write)
                            [3]: any_Connect_result1_upvr_3 (readonly)
                        ]]
                        if arg1_13.UserInputType ~= Enum.UserInputType.MouseButton1 and arg2.UserInputType ~= Enum.UserInputType.Touch then
                        else
                            var119_upvw:Disconnect()
                            any_Connect_result1_upvr_3:Disconnect()
                        end
                    end)
                end
            end;
        }, {
            UIStroke = Roact_upvr.createElement("UIStroke", {
                Color = Color3.fromRGB(255, 255, 255);
                Thickness = arg1.props.ScrollBarStroke;
                LineJoinMode = Enum.LineJoinMode.Miter;
                Transparency = arg1.props.ScrollBarStrokeTransparency;
            });
            Handle = Roact_upvr.createElement("Frame", {
                Position = arg1.scrollAmount:map(function(arg1_14) -- Line 470
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return UDim2.fromScale(0, arg1_14 / arg1.state.CanvasSize.Y)
                end);
                Size = UDim2.fromScale(1, arg1.state.ScrollHandleHeight);
                BackgroundColor3 = Color3.fromRGB(255, 255, 255);
                BorderSizePixel = 0;
            });
        })
    end
    module.ScrollBar = ScrollBarVisible
    ScrollBarVisible = false
    local var125 = ScrollBarVisible
    if #arg1.state.ChildrenFrames == 0 then
        var125 = Roact_upvr.createElement
        var125 = var125("TextLabel", {
            AnchorPoint = Vector2.new(0.5, 0.5);
            Position = UDim2.fromScale(0.5, 0.5);
            Size = UDim2.fromScale(1, 0.1);
            BackgroundTransparency = 1;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = "NO RESULTS";
            TextColor3 = Color3.fromRGB(255, 255, 255);
            TextScaled = true;
        })
    end
    module.TextLabel = var125
    return Roact_upvr.createElement("Frame", {
        AnchorPoint = arg1.props.AnchorPoint;
        Position = arg1.props.Position;
        Size = arg1.props.Size;
        BackgroundTransparency = 1;
        LayoutOrder = arg1.props.LayoutOrder;
        ClipsDescendants = true;
        [Roact_upvr.Ref] = arg1.productGridFrameRef;
        [Roact_upvr.Event.InputChanged] = function(arg1_10, arg2) -- Line 376
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg2.UserInputType ~= Enum.UserInputType.MouseWheel then
            else
                arg1:SetScroll(arg1.scrollAmount:getValue() + -arg2.Position.Z * arg1.props.ScrollIntensity)
            end
        end;
        [Roact_upvr.Change.AbsoluteSize] = function() -- Line 384
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:RecalculateGridCellSize()
        end;
    }, module)
end
return any_extend_result1
ModuleScript SearchBar ReplicatedStorage.PopupShop.Views.Retail.Components.SearchBar
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:53
-- Luau version 6, Types version 3
-- Time taken: 0.006508 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local tbl_upvr = {
    velocity = 7;
}
local any_extend_result1 = Roact_upvr.Component:extend("SearchBar")
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 14
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: RoactFlipper_upvr (readonly)
    ]]
    local any_createBinding_result1, any_createBinding_result2 = Roact_upvr.createBinding(0)
    arg1.searchBarHeight = any_createBinding_result1
    arg1.updateSearchBarHeight = any_createBinding_result2
    arg1.searchQuery = ""
    arg1.focusMotor = Flipper_upvr.SingleMotor.new(0)
    arg1.focusBinding = RoactFlipper_upvr.getBinding(arg1.focusMotor)
    function arg1.onSearchRequested() -- Line 22
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local string_gsub_result1 = string.gsub(arg1.searchQuery, "^%s*(.-)%s*$", "%1")
        if string_gsub_result1 == "" then
        else
            arg1.props.OnSearch(string_gsub_result1)
        end
    end
end
function any_extend_result1.render(arg1) -- Line 34
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: Flipper_upvr (readonly)
        [3]: tbl_upvr (readonly)
    ]]
    return Roact_upvr.createElement("Frame", {
        AnchorPoint = arg1.props.AnchorPoint;
        Position = arg1.props.Position;
        Size = arg1.focusBinding:map(function(arg1_2) -- Line 38
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if 750 < workspace.CurrentCamera.ViewportSize.X then
                return arg1.props.Size
            end
            return arg1.props.Size:Lerp(arg1.props.ExpandedSize, arg1_2)
        end);
        BackgroundTransparency = arg1.focusBinding:map(function(arg1_3) -- Line 45
            return (1 - arg1_3) * 0.2
        end);
        BackgroundColor3 = Color3.new(1, 1, 1);
        [Roact_upvr.Change.AbsoluteSize] = function(arg1_4) -- Line 49
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.updateSearchBarHeight(arg1_4.AbsoluteSize.Y)
        end;
    }, {
        SearchBox = Roact_upvr.createElement("TextBox", {
            Size = arg1.searchBarHeight:map(function(arg1_5) -- Line 54
                return UDim2.new(0.9, -arg1_5, 0.6, 0)
            end);
            Position = UDim2.fromScale(0.425, 0.5);
            AnchorPoint = Vector2.new(0.5, 0.5);
            BackgroundTransparency = 1;
            TextColor3 = Color3.new(0, 0, 0);
            PlaceholderColor3 = Color3.new(0, 0, 0);
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            PlaceholderText = "SEARCH...";
            Text = "";
            TextScaled = true;
            TextXAlignment = Enum.TextXAlignment.Left;
            [Roact_upvr.Change.Text] = function(arg1_6) -- Line 71
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.searchQuery = arg1_6.Text
            end;
            [Roact_upvr.Event.Focused] = function() -- Line 74
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: Flipper_upvr (copied, readonly)
                    [3]: tbl_upvr (copied, readonly)
                ]]
                arg1.focusMotor:setGoal(Flipper_upvr.Linear.new(1, tbl_upvr))
            end;
            [Roact_upvr.Event.FocusLost] = function(arg1_7, arg2) -- Line 77
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: Flipper_upvr (copied, readonly)
                    [3]: tbl_upvr (copied, readonly)
                ]]
                arg1.focusMotor:setGoal(Flipper_upvr.Linear.new(0, tbl_upvr))
                if not arg2 then
                else
                    arg1.onSearchRequested()
                end
            end;
        });
        SearchIcon = Roact_upvr.createElement("ImageLabel", {
            AnchorPoint = Vector2.new(1, 0);
            Size = UDim2.fromScale(1, 1);
            Position = UDim2.fromScale(1, 0);
            BackgroundTransparency = 1;
            Image = "rbxassetid://17577071500";
            ImageColor3 = Color3.new(0, 0, 0);
            ImageTransparency = arg1.focusBinding;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
        });
        EraseTextButton = Roact_upvr.createElement("ImageButton", {
            AnchorPoint = Vector2.new(1, 0);
            Size = UDim2.fromScale(1, 1);
            Position = UDim2.fromScale(1, 0);
            BackgroundTransparency = 1;
            Image = "rbxassetid://17577069904";
            ImageTransparency = arg1.focusBinding:map(function(arg1_8) -- Line 104
                return 1 - arg1_8
            end);
            Visible = arg1.focusBinding:map(function(arg1_9) -- Line 107
                local var26
                if 0.1 >= arg1_9 then
                    var26 = false
                else
                    var26 = true
                end
                return var26
            end);
            ZIndex = 2;
            [Roact_upvr.Event.Activated] = function() -- Line 112
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.searchQuery = ""
            end;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
        });
    })
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 121
    return {
        OnSearch = arg1.OnSearch;
    }
end)(any_extend_result1)
ModuleScript ShoppingCart ReplicatedStorage.PopupShop.Views.Retail.Components.ShoppingCart
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:54
-- Luau version 6, Types version 3
-- Time taken: 0.011269 seconds

local Players_upvr = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.Component:extend("ShoppingCart")
local LocalPlayer_upvr = Players_upvr.LocalPlayer
function any_extend_result1.GetLocalPlayerHumanoidDescription(arg1) -- Line 18
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    local pcall_result1, pcall_result2 = pcall(function() -- Line 19
        --[[ Upvalues[2]:
            [1]: Players_upvr (copied, readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
        ]]
        return Players_upvr:GetHumanoidDescriptionFromUserId(LocalPlayer_upvr.UserId)
    end)
    if pcall_result1 and pcall_result2 then
        arg1:setState({
            HumanoidDescription = pcall_result2;
        })
    end
end
function any_extend_result1.init(arg1) -- Line 30
    task.defer(arg1.GetLocalPlayerHumanoidDescription, arg1)
end
local UserInputService_upvr = game:GetService("UserInputService")
local ProductFrame_upvr = require(script.Parent.Parent.Components.ProductFrame)
function any_extend_result1.render(arg1) -- Line 34
    --[[ Upvalues[3]:
        [1]: UserInputService_upvr (readonly)
        [2]: Roact_upvr (readonly)
        [3]: ProductFrame_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl_2 = {}
    local tbl_3 = {}
    local var31
    if arg1.state.HumanoidDescription then
        tbl_3 = arg1.state.HumanoidDescription:GetAccessories(true)
    end
    for _, v in tbl_3 do
        local AssetId = v.AssetId
        ;({})[AssetId] = true
        table.insert(tbl_2, Roact_upvr.createElement(ProductFrame_upvr, {
            ProductId = AssetId;
            IsDefaultItem = true;
        }))
        local var35
    end
    for _, v_2 in arg1.props.EquippedProducts do
        if not var35[v_2] then
            local var36 = arg1.props.ProductDataAssetLookup[v_2]
            if var36 then
                var31 += var36.Price or 0
            end
            table.insert(tbl_2, Roact_upvr.createElement(ProductFrame_upvr, {
                ProductId = v_2;
            }))
        end
    end
    local module = {
        UIPadding = Roact_upvr.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, 10);
            PaddingLeft = UDim.new(0, 10);
            PaddingRight = UDim.new(0, 10);
            PaddingTop = UDim.new(0, 10);
        });
        Header = Roact_upvr.createElement("Frame", {
            Size = UDim2.fromScale(1, 0.15);
            BackgroundTransparency = 1;
        }, {
            UIListLayout = Roact_upvr.createElement("UIListLayout", {
                Padding = UDim.new(0.025, 0);
                FillDirection = Enum.FillDirection.Horizontal;
                SortOrder = Enum.SortOrder.LayoutOrder;
            });
            HeaderLabel = Roact_upvr.createElement("TextLabel", {
                Size = UDim2.fromScale(0, 1);
                BackgroundTransparency = 1;
                FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
                Text = "PREVIEW";
                TextColor3 = Color3.fromRGB(0, 0, 0);
                TextScaled = true;
                TextXAlignment = Enum.TextXAlignment.Left;
                AutomaticSize = Enum.AutomaticSize.X;
            });
            Count = Roact_upvr.createElement("TextLabel", {
                Size = UDim2.fromScale(0, 1);
                BackgroundColor3 = Color3.fromRGB(25, 127, 182);
                BorderSizePixel = 0;
                AutomaticSize = Enum.AutomaticSize.X;
                FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
                Text = ` {#arg1.props.EquippedProducts} `;
                TextColor3 = Color3.fromRGB(255, 255, 255);
                TextScaled = true;
                AutoLocalize = false;
            });
        });
        Price = Roact_upvr.createElement("TextLabel", {
            Size = UDim2.fromScale(1, 0.15);
            AutomaticSize = Enum.AutomaticSize.X;
            BackgroundTransparency = 1;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = ` {var31}`;
            TextColor3 = Color3.fromRGB(0, 0, 0);
            TextScaled = true;
            TextXAlignment = Enum.TextXAlignment.Right;
            AutoLocalize = false;
        });
    }
    local tbl = {
        AnchorPoint = Vector2.new(0, 1);
        Position = UDim2.fromScale(0, 1);
        Size = UDim2.fromScale(1, 0.8);
        BackgroundColor3 = Color3.fromRGB(255, 255, 255);
        BorderColor3 = Color3.fromRGB(0, 0, 0);
        BorderSizePixel = 0;
        CanvasSize = UDim2.new();
        AutomaticCanvasSize = Enum.AutomaticSize.X;
        ScrollingDirection = Enum.ScrollingDirection.X;
        ScrollBarImageColor3 = Color3.fromRGB(0, 0, 0);
    }
    if UserInputService_upvr.KeyboardEnabled then
    else
    end
    tbl.ScrollBarThickness = 0
    tbl.HorizontalScrollBarInset = Enum.ScrollBarInset.ScrollBar
    tbl.TopImage = "rbxassetid://5975715012"
    tbl.MidImage = "rbxassetid://5975715012"
    tbl.BottomImage = "rbxassetid://5975715012"
    module.List = Roact_upvr.createElement("ScrollingFrame", tbl, {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            Padding = UDim.new(0, 6);
            FillDirection = Enum.FillDirection.Horizontal;
            SortOrder = Enum.SortOrder.LayoutOrder;
        });
        Products = Roact_upvr.createFragment(tbl_2);
    })
    return Roact_upvr.createElement("Frame", {
        Size = UDim2.fromScale(1, 0.3);
        BackgroundColor3 = Color3.fromRGB(255, 255, 255);
        BorderColor3 = Color3.fromRGB(0, 0, 0);
        BorderSizePixel = 1;
        ClipsDescendants = true;
    }, module)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 198
    return {
        ProductDataAssetLookup = arg1.ProductDataAssetLookup;
        EquippedProducts = arg1.EquippedProducts;
    }
end)(any_extend_result1)
ModuleScript TouchFilters ReplicatedStorage.PopupShop.Views.Retail.Components.TouchFilters
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:56
-- Luau version 6, Types version 3
-- Time taken: 0.021208 seconds

local GuiService_upvr = game:GetService("GuiService")
local Roact_upvr = require(game:GetService("ReplicatedStorage").PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("TouchFilters")
any_extend_result1.defaultProps = {
    AnchorPoint = Vector2.zero;
    Position = UDim2.new();
    Size = UDim2.fromScale(1, 1);
    Options = {};
    OnOptionActivated = function(arg1, arg2) -- Line 15, Named "OnOptionActivated"
        warn("OnOptionActivated not overwritten.")
    end;
}
function any_extend_result1.CreateHeader(arg1, arg2, arg3, arg4) -- Line 20
    --[[ Upvalues[2]:
        [1]: GuiService_upvr (readonly)
        [2]: Roact_upvr (readonly)
    ]]
    local module = {
        Size = UDim2.new(1, 0, 0, GuiService_upvr:GetGuiInset().Y);
        BackgroundColor3 = Color3.fromRGB(0, 0, 0);
        BorderColor3 = Color3.fromRGB(255, 255, 255);
        BorderSizePixel = 1;
        ImageTransparency = 1;
    }
    module.LayoutOrder = arg4
    module[Roact_upvr.Event.Activated] = arg3
    local module_5 = {
        UIPadding = Roact_upvr.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, 8);
            PaddingTop = UDim.new(0, 8);
            PaddingLeft = UDim.new(0, 8);
            PaddingRight = UDim.new(0, 8);
        });
        TextLabel = Roact_upvr.createElement("TextLabel", {
            Size = UDim2.fromScale(0, 1);
            AutomaticSize = Enum.AutomaticSize.X;
            BackgroundTransparency = 1;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = string.upper(arg2);
            TextColor3 = Color3.fromRGB(255, 255, 255);
            TextScaled = true;
        });
    }
    local tbl_11 = {
        AnchorPoint = Vector2.new(1, 0.5);
        Position = UDim2.fromScale(1, 0.5);
        Size = UDim2.fromScale(1, 1.3);
        BackgroundTransparency = 1;
        BorderSizePixel = 0;
    }
    local var10 = "rbxassetid://16568014588"
    tbl_11.Image = var10
    if arg1.state.FoldedSections[arg2] then
        var10 = 0
    else
        var10 = 180
    end
    tbl_11.Rotation = var10
    module_5.FoldArrow = Roact_upvr.createElement("ImageLabel", tbl_11, {
        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
    })
    return Roact_upvr.createElement("ImageButton", module, module_5)
end
function any_extend_result1.CreateRadioButton(arg1, arg2, arg3, arg4, arg5) -- Line 77
    --[[ Upvalues[2]:
        [1]: GuiService_upvr (readonly)
        [2]: Roact_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local module_3 = {
        Size = UDim2.new(1, 0, 0, GuiService_upvr:GetGuiInset().Y);
    }
    local Color3_fromRGB_result1 = Color3.fromRGB(25, 127, 182)
    module_3.BackgroundColor3 = Color3_fromRGB_result1
    local var14
    if arg3 then
        Color3_fromRGB_result1 = 0
    else
        Color3_fromRGB_result1 = 1
    end
    module_3.BackgroundTransparency = Color3_fromRGB_result1
    module_3.BorderSizePixel = 0
    module_3.ImageTransparency = 1
    module_3.LayoutOrder = arg5
    module_3[Roact_upvr.Event.Activated] = arg4
    local module_4 = {}
    local tbl_10 = {}
    var14 = 0
    tbl_10.PaddingLeft = UDim.new(0.05, var14)
    module_4.UIPadding = Roact_upvr.createElement("UIPadding", tbl_10)
    local tbl_12 = {}
    var14 = 0
    tbl_12.Padding = UDim.new(0.05, var14)
    tbl_12.FillDirection = Enum.FillDirection.Horizontal
    tbl_12.SortOrder = Enum.SortOrder.LayoutOrder
    tbl_12.VerticalAlignment = Enum.VerticalAlignment.Center
    module_4.UIListLayout = Roact_upvr.createElement("UIListLayout", tbl_12)
    local tbl_2 = {}
    var14 = 0.55
    tbl_2.Size = UDim2.fromScale(0, var14)
    tbl_2.AutomaticSize = Enum.AutomaticSize.X
    tbl_2.BackgroundTransparency = 1
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var14 = Enum.FontWeight.Bold
        return var14
    end
    if not arg3 or not INLINED() then
        var14 = Enum.FontWeight.Regular
    end
    tbl_2.FontFace = Font.new("rbxasset://fonts/families/Roboto.json", var14, Enum.FontStyle.Normal)
    tbl_2.Text = arg2
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var14 = 255
        return Color3.fromRGB(255, var14, 255)
    end
    if not arg3 or not INLINED_2() then
        var14 = 0
    end
    tbl_2.TextColor3 = Color3.fromRGB(0, var14, 0)
    tbl_2.TextScaled = true
    tbl_2.LayoutOrder = 1
    module_4.OptionLabel = Roact_upvr.createElement("TextLabel", tbl_2)
    local tbl_4 = {}
    var14 = 0.3
    tbl_4.Size = UDim2.fromScale(0.3, var14)
    tbl_4.BackgroundTransparency = 1
    tbl_4.Image = "http://www.roblox.com/asset/?id=16209506182"
    var14 = 0
    tbl_4.ImageColor3 = Color3.fromRGB(0, var14, 0)
    local tbl_16 = {}
    var14 = Roact_upvr
    var14 = "UIAspectRatioConstraint"
    tbl_16.UIAspectRatioConstraint = var14.createElement(var14)
    local var21 = arg3
    if var21 then
        var14 = Roact_upvr
        var21 = var14.createElement
        var14 = "ImageLabel"
        var21 = var21(var14, {
            AnchorPoint = Vector2.new(0.5, 0.5);
            Position = UDim2.fromScale(0.5, 0.5);
            Size = UDim2.fromScale(0.5, 0.5);
            BackgroundTransparency = 1;
            Image = "http://www.roblox.com/asset/?id=16209506182";
        })
    end
    tbl_16.Checked = var21
    module_4.ImageLabel = Roact_upvr.createElement("ImageLabel", tbl_4, tbl_16)
    return Roact_upvr.createElement("ImageButton", module_3, module_4)
end
function any_extend_result1.init(arg1) -- Line 148
    arg1:setState({
        IsUnfolded = false;
        FoldedSections = {};
    })
end
function any_extend_result1.render(arg1) -- Line 156
    --[[ Upvalues[2]:
        [1]: GuiService_upvr (readonly)
        [2]: Roact_upvr (readonly)
    ]]
    local any_GetGuiInset_result1 = GuiService_upvr:GetGuiInset()
    local tbl_14 = {}
    local const_number = 0
    local var65
    for _, v in arg1.props.Options do
        if #v.Options > 1 then
            if not v.Hidden then
                local Name_upvr = v.Name
                function var65() -- Line 170
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: Name_upvr (readonly)
                    ]]
                    local clone = table.clone(arg1.state.FoldedSections)
                    clone[Name_upvr] = not clone[Name_upvr]
                    arg1:setState({
                        FoldedSections = clone;
                    })
                end
                table.insert(tbl_14, arg1:CreateHeader(Name_upvr, var65, const_number))
                if not arg1.state.FoldedSections[Name_upvr] then
                    for _, v_2_upvr in v.Options do
                        var65 = v_2_upvr.Hidden
                        if not var65 then
                            var65 = table.insert
                            var65(tbl_14, arg1:CreateRadioButton(v_2_upvr.Name, v_2_upvr.Value, function() -- Line 192
                                --[[ Upvalues[3]:
                                    [1]: arg1 (readonly)
                                    [2]: Name_upvr (readonly)
                                    [3]: v_2_upvr (readonly)
                                ]]
                                arg1.props.OnOptionActivated(Name_upvr, v_2_upvr.Name)
                            end, const_number + 1))
                        end
                    end
                end
            end
        end
    end
    local module_6 = {}
    Name_upvr = Roact_upvr
    Name_upvr = "ImageButton"
    local tbl_20 = {
        UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
    }
    local tbl_5 = {}
    var65 = Vector2.new(0.5, 0.5)
    tbl_5.AnchorPoint = var65
    var65 = UDim2.fromScale(0.5, 0.5)
    tbl_5.Position = var65
    var65 = UDim2.fromScale(0.85, 0.85)
    tbl_5.Size = var65
    var65 = 1
    tbl_5.BackgroundTransparency = var65
    if arg1.state.IsUnfolded then
        var65 = "rbxassetid://16210586303"
    else
        var65 = "rbxassetid://16210587037"
    end
    tbl_5.Image = var65
    tbl_20.Icon = Roact_upvr.createElement("ImageLabel", tbl_5)
    module_6.FilterButton = Name_upvr.createElement(Name_upvr, {
        AnchorPoint = Vector2.new(1, 0);
        Position = UDim2.fromScale(1, 0);
        Size = UDim2.fromOffset(any_GetGuiInset_result1.Y, any_GetGuiInset_result1.Y);
        ImageTransparency = 1;
        BackgroundColor3 = Color3.fromRGB(0, 0, 0);
        BorderColor3 = Color3.fromRGB(255, 255, 255);
        BorderMode = Enum.BorderMode.Inset;
        [Roact_upvr.Event.Activated] = function() -- Line 218
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:setState({
                IsUnfolded = not arg1.state.IsUnfolded;
            })
        end;
    }, tbl_20)
    Name_upvr = arg1.state
    local IsUnfolded = Name_upvr.IsUnfolded
    if IsUnfolded then
        Name_upvr = Roact_upvr
        IsUnfolded = Name_upvr.createElement
        Name_upvr = "ScrollingFrame"
        local tbl_19 = {}
        var65 = 0
        tbl_19.Size = UDim2.new(1, -any_GetGuiInset_result1.Y, 1, var65)
        tbl_19.BackgroundTransparency = 0.1
        tbl_19.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
        tbl_19.BorderSizePixel = 0
        tbl_19.CanvasSize = UDim2.new()
        tbl_19.AutomaticCanvasSize = Enum.AutomaticSize.Y
        tbl_19.ScrollingDirection = Enum.ScrollingDirection.Y
        tbl_19.ScrollBarThickness = 0
        local tbl_3 = {}
        local tbl_13 = {}
        var65 = Enum.SortOrder.LayoutOrder
        tbl_13.SortOrder = var65
        tbl_3.UIListLayout = Roact_upvr.createElement("UIListLayout", tbl_13)
        tbl_3.Children = Roact_upvr.createFragment(tbl_14)
        IsUnfolded = IsUnfolded(Name_upvr, tbl_19, tbl_3)
    end
    module_6.Content = IsUnfolded
    return Roact_upvr.createElement("Frame", {
        AnchorPoint = arg1.props.AnchorPoint;
        Size = arg1.props.Size;
        Position = arg1.props.Position;
        BackgroundTransparency = 1;
    }, module_6)
end
return any_extend_result1
ModuleScript Catalog ReplicatedStorage.PopupShop.Views.Retail.Routes.Catalog
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:57
-- Luau version 6, Types version 3
-- Time taken: 0.027622 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Parent = script.Parent.Parent
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("Catalog")
function any_extend_result1.IsCategoryActive(arg1, arg2) -- Line 18
    for _, v in arg1.state.ProductTypeFilter do
        if v.Name == arg2 then
            return v.Value
        end
    end
    return true
end
function any_extend_result1.GetCurrentSectionId(arg1) -- Line 28
    for _, v_2 in arg1.state.CollectionFilter do
        if v_2.Value then
            return v_2.Id
        end
    end
end
function any_extend_result1.GatherAvailableSections(arg1) -- Line 38
    local section = arg1.props.Parameters.section
    local tbl_21 = {}
    local tbl_22 = {
        Id = "Wishlist";
    }
    local var16 = "Wishlist"
    tbl_22.Name = var16
    if section ~= "Wishlist" then
        var16 = false
    else
        var16 = true
    end
    tbl_22.Value = var16
    table.insert(tbl_21, tbl_22)
    local tbl_8 = {}
    var16 = "SearchResults"
    tbl_8.Id = var16
    var16 = "Search Results"
    tbl_8.Name = var16
    if section ~= "SearchResults" then
        var16 = false
    else
        var16 = true
    end
    tbl_8.Value = var16
    var16 = true
    tbl_8.Hidden = var16
    table.insert(tbl_21, tbl_8)
    var16 = arg1.props
    for _, v_3 in var16.Sections do
        local tbl_2 = {
            Id = v_3.Id;
        }
        local Name = v_3.Name
        tbl_2.Name = Name
        if v_3.Id ~= section then
            Name = false
        else
            Name = true
        end
        tbl_2.Value = Name
        table.insert(tbl_21, tbl_2)
    end
    arg1:setState({
        CollectionFilter = tbl_21;
    })
end
function any_extend_result1.GatherAvailableCategories(arg1) -- Line 69
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var29 = arg1.props.SectionContent[arg1:GetCurrentSectionId()]
    local tbl_27 = {{
        Name = "All";
        Value = true;
    }}
    if var29 then
        for _, v_4 in var29.Categories do
            ({
                All = true;
            })[v_4.Name] = false
            table.insert(tbl_27, {
                Name = v_4.Name;
                Value = false;
            })
            local _
        end
    end
    arg1:setState({
        ProductTypeFilter = tbl_27;
    })
end
function any_extend_result1.SelectCollection(arg1, arg2) -- Line 99
    for _, v_5 in arg1.state.CollectionFilter do
        local var40
        if v_5.Name ~= arg2 then
            var40 = false
        else
            var40 = true
        end
        v_5.Value = var40
    end
    arg1:setState({
        CollectionFilter = table.clone(arg1.state.CollectionFilter);
    })
    arg1:GatherAvailableCategories()
    if arg2 == "Wishlist" then
        arg1.props.GoToPath("/wishlist")
    end
end
function any_extend_result1.SelectProductType(arg1, arg2) -- Line 118
    for _, v_6 in arg1.state.ProductTypeFilter do
        local var46
        if v_6.Name ~= arg2 then
            var46 = false
        else
            var46 = true
        end
        v_6.Value = var46
    end
    arg1:setState({
        ProductTypeFilter = table.clone(arg1.state.ProductTypeFilter);
    })
end
function any_extend_result1.init(arg1) -- Line 130
    arg1:setState({
        CollectionFilter = {};
        ProductTypeFilter = {};
    })
    arg1:GatherAvailableSections()
    arg1:GatherAvailableCategories()
end
function any_extend_result1.shouldUpdate(arg1, arg2) -- Line 140
    if arg1.props.WishlistedProducts ~= arg2.WishlistedProducts and arg1:GetCurrentSectionId() ~= "Wishlist" then
        arg1.props.WishlistedProducts = arg2.WishlistedProducts
        return false
    end
    if arg1.props.Sections ~= arg2.Sections then
        task.defer(function() -- Line 150
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:GatherAvailableSections()
            arg1:GatherAvailableCategories()
        end)
        return true
    end
    if arg1.props.SectionContent ~= arg2.SectionContent then
        task.defer(function() -- Line 158
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:GatherAvailableSections()
            arg1:GatherAvailableCategories()
        end)
        return true
    end
    return true
end
function any_extend_result1.didUpdate(arg1, arg2, arg3) -- Line 168
    if arg2.SearchResults ~= arg1.props.SearchResults or arg2.SearchError ~= arg1.props.SearchError and arg1.props.SearchError then
        arg1:SelectCollection("Search Results")
    end
    if arg3.CollectionFilter ~= arg1.state.CollectionFilter and arg1:GetCurrentSectionId() ~= "SearchResults" then
        arg1.props.ClearSearchError()
    end
end
local UserInputService_upvr = game:GetService("UserInputService")
local TouchFilters_upvr = require(Parent.Components.TouchFilters)
local PreviewCartCombo_upvr = require(Parent.Components.PreviewCartCombo)
local ProductGrid_upvr = require(Parent.Components.ProductGrid)
local FilterBar_upvr = require(Parent.Components.FilterBar)
function any_extend_result1.render(arg1) -- Line 181
    --[[ Upvalues[6]:
        [1]: UserInputService_upvr (readonly)
        [2]: Roact_upvr (readonly)
        [3]: TouchFilters_upvr (readonly)
        [4]: PreviewCartCombo_upvr (readonly)
        [5]: ProductGrid_upvr (readonly)
        [6]: FilterBar_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 77 start (CF ANALYSIS FAILED)
    local any_GetCurrentSectionId_result1 = arg1:GetCurrentSectionId()
    local var139
    if not UserInputService_upvr.KeyboardEnabled then
        if not UserInputService_upvr.GamepadEnabled then
            if any_GetCurrentSectionId_result1 == "SearchResults" then
            else
            end
        end
    end
    local var140 = arg1.props.SectionContent[any_GetCurrentSectionId_result1]
    if var140 then
        for _, v_7 in var140.Categories do
            if arg1:IsCategoryActive("All") or arg1:IsCategoryActive(v_7.Name) then
                for _, v_8 in v_7.Listings do
                    var139 = table.insert
                    var139({}, v_8)
                end
            end
        end
    elseif any_GetCurrentSectionId_result1 == "SearchResults" then
        for i_9, v_9 in arg1.props.SearchResults do
            v_7 = table.insert
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            v_7({}, v_9)
            local var141
        end
    elseif any_GetCurrentSectionId_result1 == "Wishlist" then
        i_9 = arg1.props
        for i_10 in i_9.WishlistedProducts do
            v_7 = table.insert
            v_7(var141, i_10)
            local var142
        end
    end
    i_10 = arg1.state
    if #i_10.ProductTypeFilter > 1 then
        -- KONSTANTWARNING: GOTO [103] #73
    end
    -- KONSTANTERROR: [0] 1. Error Block 77 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [102] 72. Error Block 73 start (CF ANALYSIS FAILED)
    local var143 = true
    if var143 then
        local _ = 46
    else
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        i_10 = arg1.props
        return i_10.SearchError
    end
    if any_GetCurrentSectionId_result1 ~= "SearchResults" or not INLINED_2() then
    end
    local module_3 = {}
    local tbl_10 = {}
    var139 = 0
    tbl_10.Padding = UDim.new(var139, 10)
    tbl_10.FillDirection = Enum.FillDirection.Horizontal
    tbl_10.SortOrder = Enum.SortOrder.LayoutOrder
    module_3.UIListLayout = Roact_upvr.createElement("UIListLayout", tbl_10)
    local tbl_14 = {}
    var139 = 0.3
    tbl_14.Size = UDim2.fromScale(var139, 1)
    tbl_14.BackgroundTransparency = 1
    tbl_14.LayoutOrder = 1
    local tbl_9 = {}
    var139 = UserInputService_upvr.TouchEnabled
    if var139 then
        var139 = Roact_upvr.createElement
        local tbl_17 = {
            Size = UDim2.fromScale(1, 1);
            Options = {{
                Name = "Collection";
                Options = arg1.state.CollectionFilter;
            }, {
                Name = "Product Type";
                Options = arg1.state.ProductTypeFilter;
            }};
        }
        local function OnOptionActivated(arg1_5, arg2) -- Line 251
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1_5 == "Product Type" then
                arg1:SelectProductType(arg2)
                arg1.props.OnProductTypeFilterOptionActivated(arg1.state.ProductTypeFilter)
            elseif arg1_5 == "Collection" then
                arg1:SelectCollection(arg2)
                arg1.props.OnCollectionsFilterOptionActivated(arg1.state.CollectionFilter)
            end
        end
        tbl_17.OnOptionActivated = OnOptionActivated
        var139 = var139(TouchFilters_upvr, tbl_17)
    end
    tbl_9.TouchFilters = var139
    var139 = Roact_upvr.createElement
    var139 = var139(PreviewCartCombo_upvr, {
        Size = UDim2.fromScale(1, 1);
        LayoutOrder = 1;
    })
    tbl_9.PreviewCartCombo = var139
    module_3.LeftPanel = Roact_upvr.createElement("Frame", tbl_14, tbl_9)
    local TouchEnabled = UserInputService_upvr.TouchEnabled
    if TouchEnabled then
        TouchEnabled = Roact_upvr.createElement
        local tbl_16 = {}
        var139 = 0.7
        tbl_16.Size = UDim2.new(var139, -10, 1, 0)
        tbl_16.LayoutOrder = 2
        tbl_16.Products = var142
        TouchEnabled = TouchEnabled(ProductGrid_upvr, tbl_16)
    end
    module_3.TouchProductGrid = TouchEnabled
    TouchEnabled = true
    local var157 = TouchEnabled
    if var157 then
        var157 = Roact_upvr.createElement
        local tbl_15 = {}
        var139 = 0.7
        tbl_15.Size = UDim2.new(var139, -10, 1, 0)
        tbl_15.BackgroundTransparency = 1
        tbl_15.LayoutOrder = 2
        local tbl_11 = {}
        var139 = Roact_upvr.createElement
        local tbl_28 = {
            Size = UDim2.new(1, 0, 0, 36);
            Options = arg1.state.CollectionFilter;
        }
        local function OnOptionActivated(arg1_6) -- Line 291
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:SelectCollection(arg1_6)
            arg1.props.OnCollectionsFilterOptionActivated(arg1.state.CollectionFilter)
        end
        tbl_28.OnOptionActivated = OnOptionActivated
        var139 = var139(FilterBar_upvr, tbl_28)
        tbl_11.CollectionsFilter = var139
        var139 = not var143
        if var139 then
            var139 = Roact_upvr.createElement
            var139 = var139(FilterBar_upvr, {
                Position = UDim2.fromOffset(0, 46);
                Size = UDim2.new(1, 0, 0, 36);
                Options = arg1.state.ProductTypeFilter;
                OnOptionActivated = function(arg1_7) -- Line 304, Named "OnOptionActivated"
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:SelectProductType(arg1_7)
                    arg1.props.OnProductTypeFilterOptionActivated(arg1.state.ProductTypeFilter)
                end;
            })
        end
        tbl_11.ProductTypeFilter = var139
        local tbl_13 = {
            Position = UDim2.fromOffset(0, 92);
        }
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        tbl_13.Size = UDim2.new(1, 0, 1, -92)
        tbl_13.LayoutOrder = 2
        tbl_13.Products = var142
        tbl_13.CustomErrorMessage = nil
        tbl_11.ProductGrid = Roact_upvr.createElement(ProductGrid_upvr, tbl_13)
        var157 = var157("Frame", tbl_15, tbl_11)
    end
    module_3.ProductGridFilterCombo = var157
    do
        return Roact_upvr.createElement("Frame", {
            Size = UDim2.fromScale(1, 1);
            BackgroundTransparency = 1;
        }, module_3)
    end
    -- KONSTANTERROR: [102] 72. Error Block 73 end (CF ANALYSIS FAILED)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 324
    return {
        Sections = arg1.Sections;
        SectionContent = arg1.SectionContent;
        WishlistedProducts = arg1.WishlistedProducts;
        GoToPath = arg1.GoToPath;
        RawPath = arg1.RawPath;
        SearchResults = arg1.SearchResults;
        SearchError = arg1.SearchError;
        ClearSearchError = arg1.ClearSearchError;
    }
end)(any_extend_result1)
ModuleScript Main ReplicatedStorage.PopupShop.Views.Retail.Routes.Main
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:58:58
-- Luau version 6, Types version 3
-- Time taken: 0.006521 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Parent = script.Parent.Parent
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("MainPage")
local tbl_upvr = {{
    Position = Vector2.new(1, 1);
    Size = Vector2.new(2, 2);
    Thumbnail = "rbxassetid://16369940007";
    ColorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(246, 197, 251)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(163, 115, 199)), ColorSequenceKeypoint.new(1, Color3.fromRGB(112, 81, 205))});
}, {
    Position = Vector2.new(3, 1);
    Size = Vector2.new(2, 1);
    Thumbnail = "rbxassetid://16635814528";
}, {
    Position = Vector2.new(3, 2);
    Size = Vector2.new(2, 1);
    Thumbnail = "rbxassetid://16370237746";
}, {
    Position = Vector2.new(5, 1);
    Size = Vector2.new(2, 2);
    Thumbnail = "rbxassetid://16370235814";
    ColorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(248, 208, 57)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 180, 57)), ColorSequenceKeypoint.new(1, Color3.fromRGB(241, 85, 53))});
}, {
    Position = Vector2.new(1, 3);
    Size = Vector2.new(3, 1);
    Thumbnail = "rbxassetid://16370236835";
    ColorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(226, 255, 149)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(185, 217, 102)), ColorSequenceKeypoint.new(1, Color3.fromRGB(243, 171, 215))});
    CenterContent = true;
}, {
    Position = Vector2.new(4, 3);
    Size = Vector2.new(3, 1);
    Thumbnail = "rbxassetid://16370233616";
    ColorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(179, 223, 241)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(88, 176, 209)), ColorSequenceKeypoint.new(1, Color3.fromRGB(67, 168, 203))});
    CenterContent = true;
}}
local GridTile_upvr = require(Parent.Components.GridTile)
local PreviewCartCombo_upvr = require(Parent.Components.PreviewCartCombo)
local FlexibleGrid_upvr = require(Parent.Components.FlexibleGrid)
function any_extend_result1.render(arg1) -- Line 71
    --[[ Upvalues[5]:
        [1]: tbl_upvr (readonly)
        [2]: Roact_upvr (readonly)
        [3]: GridTile_upvr (readonly)
        [4]: PreviewCartCombo_upvr (readonly)
        [5]: FlexibleGrid_upvr (readonly)
    ]]
    local tbl = {}
    for i, v_upvr in arg1.props.Sections do
        if #tbl_upvr < i then break end
        local var22 = tbl_upvr[i]
        tbl[i] = {
            Position = var22.Position;
            Size = var22.Size;
            Component = Roact_upvr.createElement(GridTile_upvr, {
                Text = v_upvr.Name;
                Thumbnail = var22.Thumbnail;
                ColorSequence = var22.ColorSequence;
                CenterContent = var22.CenterContent;
                [Roact_upvr.Event.Activated] = function() -- Line 91
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: v_upvr (readonly)
                    ]]
                    arg1.props.GoToPath(`/catalog?section={v_upvr.Id}`)
                end;
            });
        }
    end
    return Roact_upvr.createElement("Frame", {
        Size = UDim2.fromScale(1, 1);
        BackgroundTransparency = 1;
    }, {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            Padding = UDim.new(0, 10);
            FillDirection = Enum.FillDirection.Horizontal;
            SortOrder = Enum.SortOrder.LayoutOrder;
        });
        PreviewCartCombo = Roact_upvr.createElement(PreviewCartCombo_upvr, {
            Size = UDim2.fromScale(0.3, 1);
            LayoutOrder = 1;
        });
        FlexibleGrid = Roact_upvr.createElement(FlexibleGrid_upvr, {
            Size = UDim2.new(0.7, -10, 1, 0);
            LayoutOrder = 2;
            Tiles = tbl;
            GridSize = Vector2.new(6, 3);
        });
    })
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 126
    return {
        Sections = arg1.Sections;
        GoToPath = arg1.GoToPath;
    }
end)(any_extend_result1)
ModuleScript ProductDisplay ReplicatedStorage.PopupShop.Views.Retail.Routes.ProductDisplay
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:00
-- Luau version 6, Types version 3
-- Time taken: 0.001540 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Parent = script.Parent.Parent
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.PureComponent:extend("ProductDisplayPage")
local PreviewCartCombo_upvr = require(Parent.Components.PreviewCartCombo)
local ProductGrid_upvr = require(Parent.Components.ProductGrid)
function any_extend_result1.render(arg1) -- Line 15
    --[[ Upvalues[3]:
        [1]: Roact_upvr (readonly)
        [2]: PreviewCartCombo_upvr (readonly)
        [3]: ProductGrid_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [20] 14. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [20] 14. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [14] 10. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [20.8]
    -- KONSTANTERROR: [14] 10. Error Block 2 end (CF ANALYSIS FAILED)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 62
    return {
        ProductDisplays = arg1.ProductDisplays;
        OnRequestAssetDetails = arg1.OnRequestAssetDetails;
    }
end)(any_extend_result1)
ModuleScript LoyaltyPoints ReplicatedStorage.PopupShop.Views.Components.LoyaltyPoints
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:01
-- Luau version 6, Types version 3
-- Time taken: 0.008068 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local Flipper_upvr = require(ReplicatedStorage.PopupShop.Packages.Flipper)
local any_extend_result1 = Roact_upvr.Component:extend("LoyaltyPoints")
local RoactFlipper_upvr = require(ReplicatedStorage.PopupShop.Packages.RoactFlipper)
function any_extend_result1.init(arg1) -- Line 9
    --[[ Upvalues[3]:
        [1]: Flipper_upvr (readonly)
        [2]: RoactFlipper_upvr (readonly)
        [3]: Roact_upvr (readonly)
    ]]
    arg1.TextAnimationMotor = Flipper_upvr.SingleMotor.new(1)
    arg1.TextAnimationBinding = RoactFlipper_upvr.getBinding(arg1.TextAnimationMotor)
    local any_createBinding_result1, any_createBinding_result2 = Roact_upvr.createBinding(0)
    arg1.CounterDifferenceBinding = any_createBinding_result1
    arg1.SetCounterDifferenceBinding = any_createBinding_result2
end
function any_extend_result1.didUpdate(arg1, arg2) -- Line 16
    --[[ Upvalues[1]:
        [1]: Flipper_upvr (readonly)
    ]]
    if arg2.Counter ~= arg1.props.Counter then
        local var11
        if arg2.Counter ~= nil then
            local var12 = arg1.props.Counter - arg2.Counter
            if 0 < var12 then
                var11 = '+'
            else
                var11 = ""
            end
            arg1.SetCounterDifferenceBinding(var11..tostring(var12))
            var11 = Flipper_upvr.Instant.new(0)
            arg1.TextAnimationMotor:setGoal(var11)
            arg1.TextAnimationMotor:step()
            var11 = Flipper_upvr.Linear.new
            var11 = var11(1, {
                velocity = 1;
            })
            arg1.TextAnimationMotor:setGoal(var11)
        end
    end
end
function any_extend_result1.render(arg1) -- Line 32
    --[[ Upvalues[1]:
        [1]: Roact_upvr (readonly)
    ]]
    return Roact_upvr.createElement("Frame", {
        Size = UDim2.fromScale(0, 1);
        AutomaticSize = Enum.AutomaticSize.X;
        BackgroundColor3 = Color3.fromRGB(0, 0, 0);
        BackgroundTransparency = 0.2;
        BorderSizePixel = 0;
    }, {
        UIListLayout = Roact_upvr.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal;
            SortOrder = Enum.SortOrder.LayoutOrder;
        });
        UIGradient = Roact_upvr.createElement("UIGradient", {
            Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)});
        });
        UICorner = Roact_upvr.createElement("UICorner", {
            CornerRadius = UDim.new(1, 0);
        });
        Icon = Roact_upvr.createElement("ImageLabel", {
            Size = UDim2.fromScale(1, 1);
            BackgroundTransparency = 1;
            Image = "http://www.roblox.com/asset/?id=16173596317";
            LayoutOrder = 1;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint");
        });
        Amount = Roact_upvr.createElement("TextLabel", {
            Size = UDim2.fromScale(0, 1);
            AutomaticSize = Enum.AutomaticSize.X;
            BackgroundTransparency = 1;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = arg1.props.Counter or "Loading...";
            TextColor3 = Color3.fromRGB(237, 231, 52);
            TextSize = arg1.props.FontSize;
            AutoLocalize = false;
            LayoutOrder = 2;
        }, {
            UIPadding = Roact_upvr.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 4);
                PaddingRight = UDim.new(0, 10);
            });
            TextAnimation = Roact_upvr.createElement("TextLabel", {
                AnchorPoint = Vector2.new(0, 0.5);
                Position = arg1.TextAnimationBinding:map(function(arg1_2) -- Line 103
                    return UDim2.fromScale(0, 0.5 + arg1_2)
                end);
                Size = UDim2.fromScale(1, 0.5);
                BackgroundTransparency = 1;
                FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
                Text = arg1.CounterDifferenceBinding;
                TextColor3 = Color3.fromRGB(237, 231, 52);
                TextScaled = true;
                TextTransparency = arg1.TextAnimationBinding;
                AutoLocalize = false;
            });
        });
    })
end
return any_extend_result1
ModuleScript Navbar ReplicatedStorage.PopupShop.Views.Components.Navbar
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:02
-- Luau version 6, Types version 3
-- Time taken: 0.013068 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Roact_upvr = require(ReplicatedStorage.PopupShop.Packages.Roact)
local any_extend_result1 = Roact_upvr.Component:extend("Navbar")
any_extend_result1.defaultProps = {
    CatalogButtonHidden = false;
    ShowSearchBar = false;
    OnCatalogButtonPressed = function() -- Line 20, Named "OnCatalogButtonPressed"
    end;
}
local GuiService_upvr = game:GetService("GuiService")
local SearchBar_upvr = require(script.Parent.Parent.Retail.Components.SearchBar)
local LoyaltyPoints_upvr = require(script.Parent.LoyaltyPoints)
function any_extend_result1.render(arg1) -- Line 23
    --[[ Upvalues[4]:
        [1]: GuiService_upvr (readonly)
        [2]: Roact_upvr (readonly)
        [3]: SearchBar_upvr (readonly)
        [4]: LoyaltyPoints_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 59 start (CF ANALYSIS FAILED)
    local var8
    if GuiService_upvr:GetGuiInset().Y ~= 36 then
        var8 = false
    else
        var8 = true
    end
    local var9 = GuiService_upvr:GetGuiInset() + Vector2.new(0, 4)
    if var8 then
        -- KONSTANTWARNING: GOTO [26] #21
    end
    -- KONSTANTERROR: [0] 1. Error Block 59 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [23] 19. Error Block 46 start (CF ANALYSIS FAILED)
    local module = {}
    local tbl_6 = {}
    if not var8 or not UDim2.new(0, 104, 0, 0) then
    end
    tbl_6.Position = UDim2.fromOffset(170, 0)
    if not var8 or not UDim2.new(1, -166, 1, 0) then
    end
    tbl_6.Size = UDim2.new(1, -170, 1, 0)
    tbl_6.BackgroundTransparency = 1
    local tbl_2 = {}
    local tbl_5 = {}
    if var8 then
    else
    end
    tbl_5.PaddingBottom = UDim.new(0, 7)
    if var8 then
        -- KONSTANTWARNING: GOTO [110] #88
    end
    tbl_5.PaddingRight = UDim.new(0, 13)
    if var8 then
    else
    end
    local var15
    tbl_5.PaddingTop = var15
    tbl_2.UIPadding = Roact_upvr.createElement("UIPadding", tbl_5)
    if not arg1.props.CatalogButtonHidden then
        local tbl_4 = {}
        var15 = Vector2.new(0.5, 0)
        tbl_4.AnchorPoint = var15
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var15 = UDim2.fromScale(0.5, 0)
            return var15
        end
        if not var8 or not INLINED() then
            var15 = UDim2.new(0.5, -85, 0, 0)
        end
        tbl_4.Position = var15
        var15 = UDim2.fromScale(0, 1)
        tbl_4.Size = var15
        var15 = Enum.AutomaticSize.X
        tbl_4.AutomaticSize = var15
        var15 = Color3.fromRGB(0, 0, 0)
        tbl_4.BackgroundColor3 = var15
        var15 = Color3.fromRGB(255, 255, 255)
        tbl_4.BorderColor3 = var15
        var15 = 1
        tbl_4.ImageTransparency = var15
        var15 = Roact_upvr.Event.Activated
        tbl_4[var15] = arg1.props.OnCatalogButtonPressed
        var15 = {}
        local var17 = var15
        var17.UIListLayout = Roact_upvr.createElement("UIListLayout", {
            Padding = UDim.new(0, 8);
            FillDirection = Enum.FillDirection.Horizontal;
            SortOrder = Enum.SortOrder.LayoutOrder;
        })
        var17.UIPadding = Roact_upvr.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, 6);
            PaddingLeft = UDim.new(0, 10);
            PaddingRight = UDim.new(0, 10);
            PaddingTop = UDim.new(0, 6);
        })
        var17.ShopIcon = Roact_upvr.createElement("ImageLabel", {
            Size = UDim2.fromScale(1, 1);
            BackgroundTransparency = 1;
            Image = "http://www.roblox.com/asset/?id=16174037961";
            ScaleType = Enum.ScaleType.Fit;
        }, {
            UIAspectRatioConstraint = Roact_upvr.createElement("UIAspectRatioConstraint", {
                AspectRatio = 1.62;
            });
        })
        var17.CatalogLabel = Roact_upvr.createElement("TextLabel", {
            Size = UDim2.fromScale(0, 1);
            AutomaticSize = Enum.AutomaticSize.X;
            BackgroundTransparency = 1;
            FontFace = Font.new("rbxasset://fonts/families/RobotoCondensed.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal);
            Text = "CATALOG";
            TextColor3 = Color3.fromRGB(255, 255, 255);
            TextSize = var9.Y - 36;
            LayoutOrder = 1;
        })
    end
    tbl_2.CatalogButton = Roact_upvr.createElement("ImageButton", tbl_4, var17)
    local ShowSearchBar = arg1.props.ShowSearchBar
    if ShowSearchBar then
        ShowSearchBar = Roact_upvr.createElement
        local tbl_3 = {}
        var17 = Vector2.new(1, 0)
        tbl_3.AnchorPoint = var17
        var17 = UDim2.fromScale(0.3, 1)
        tbl_3.Size = var17
        var17 = UDim2.new(1, -var9.Y, 1, 0)
        tbl_3.ExpandedSize = var17
        var17 = UDim2.new(1, -var9.Y, 0, 0)
        tbl_3.Position = var17
        ShowSearchBar = ShowSearchBar(SearchBar_upvr, tbl_3)
    end
    tbl_2.SearchBar = ShowSearchBar
    local tbl = {}
    var17 = arg1.props.LoyaltyPoints
    tbl.Counter = var17
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    tbl.FontSize = var9.Y - 36
    tbl_2.LoyaltyPoints = Roact_upvr.createElement(LoyaltyPoints_upvr, tbl)
    var17 = Roact_upvr.Children
    tbl_2.Children = Roact_upvr.createFragment(arg1.props[var17])
    module.SafeArea = Roact_upvr.createElement("Frame", tbl_6, tbl_2)
    do
        return Roact_upvr.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, var9.Y);
            BackgroundTransparency = 1;
        }, module)
    end
    -- KONSTANTERROR: [23] 19. Error Block 46 end (CF ANALYSIS FAILED)
end
return require(ReplicatedStorage.PopupShop.Packages.RoactRodux).connect(function(arg1) -- Line 124
    return {
        LoyaltyPoints = arg1.LoyaltyPoints;
    }
end)(any_extend_result1)
ModuleScript Comm ReplicatedStorage.PopupShop.Packages.Comm
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:04
-- Luau version 6, Types version 3
-- Time taken: 0.000412 seconds

return require(script.Parent._Index["[email protected]"].comm)
ModuleScript DubitUtils ReplicatedStorage.PopupShop.Packages.DubitUtils
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:05
-- Luau version 6, Types version 3
-- Time taken: 0.000313 seconds

return require(script.Parent._Index["[email protected]"]["dubit-utils"])
ModuleScript Flipper ReplicatedStorage.PopupShop.Packages.Flipper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:07
-- Luau version 6, Types version 3
-- Time taken: 0.000304 seconds

return require(script.Parent._Index["[email protected]"].flipper)
ModuleScript Roact ReplicatedStorage.PopupShop.Packages.Roact
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:08
-- Luau version 6, Types version 3
-- Time taken: 0.000315 seconds

return require(script.Parent._Index["[email protected]"].roact)
ModuleScript RoactFlipper ReplicatedStorage.PopupShop.Packages.RoactFlipper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:10
-- Luau version 6, Types version 3
-- Time taken: 0.000324 seconds

return require(script.Parent._Index["[email protected]"]["roact-flipper"])
ModuleScript RoactRodux ReplicatedStorage.PopupShop.Packages.RoactRodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:11
-- Luau version 6, Types version 3
-- Time taken: 0.000422 seconds

return require(script.Parent._Index["[email protected]"]["roact-rodux"])
ModuleScript Rodux ReplicatedStorage.PopupShop.Packages.Rodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:13
-- Luau version 6, Types version 3
-- Time taken: 0.000429 seconds

return require(script.Parent._Index["[email protected]"].rodux)
ModuleScript Sift ReplicatedStorage.PopupShop.Packages.Sift
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:14
-- Luau version 6, Types version 3
-- Time taken: 0.000391 seconds

return require(script.Parent._Index["[email protected]"].sift)
ModuleScript Signal ReplicatedStorage.PopupShop.Packages.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:16
-- Luau version 6, Types version 3
-- Time taken: 0.000386 seconds

return require(script.Parent._Index["[email protected]"].signal)
ModuleScript Trove ReplicatedStorage.PopupShop.Packages.Trove
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:17
-- Luau version 6, Types version 3
-- Time taken: 0.000372 seconds

return require(script.Parent._Index["[email protected]"].trove)
ModuleScript sift ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:19
-- Luau version 6, Types version 3
-- Time taken: 0.000639 seconds

local module = {
    Array = require(script.Array);
    Dictionary = require(script.Dictionary);
    Set = require(script.Set);
    None = require(script.None);
    Types = require(script.Types);
    equalObjects = require(script.Util.equalObjects);
    isEmpty = require(script.Util.isEmpty);
    List = module.Array;
}
return module
ModuleScript Array ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:20
-- Luau version 6, Types version 3
-- Time taken: 0.002156 seconds

local module = {
    at = require(script.at);
    concat = require(script.concat);
    concatDeep = require(script.concatDeep);
    copy = require(script.copy);
    copyDeep = require(script.copyDeep);
    count = require(script.count);
    create = require(script.create);
    difference = require(script.difference);
    differenceSymmetric = require(script.differenceSymmetric);
    equals = require(script.equals);
    equalsDeep = require(script.equalsDeep);
    every = require(script.every);
    filter = require(script.filter);
    find = require(script.find);
    findLast = require(script.findLast);
    findWhere = require(script.findWhere);
    findWhereLast = require(script.findWhereLast);
    first = require(script.first);
    flatten = require(script.flatten);
    freeze = require(script.freeze);
    freezeDeep = require(script.freezeDeep);
    includes = require(script.includes);
    insert = require(script.insert);
    is = require(script.is);
    last = require(script.last);
    map = require(script.map);
    pop = require(script.pop);
    push = require(script.push);
    reduce = require(script.reduce);
    reduceRight = require(script.reduceRight);
    removeIndex = require(script.removeIndex);
    removeIndices = require(script.removeIndices);
    removeValue = require(script.removeValue);
    removeValues = require(script.removeValues);
    reverse = require(script.reverse);
    set = require(script.set);
    shift = require(script.shift);
    shuffle = require(script.shuffle);
    slice = require(script.slice);
    some = require(script.some);
    sort = require(script.sort);
    splice = require(script.splice);
    toSet = require(script.toSet);
    unshift = require(script.unshift);
    update = require(script.update);
    zip = require(script.zip);
    zipAll = require(script.zipAll);
    join = module.concat;
    merge = module.concat;
    joinDeep = module.concatDeep;
    mergeDeep = module.concatDeep;
    append = module.push;
    prepend = module.unshift;
    indexOf = module.find;
    has = module.includes;
    contains = module.includes;
    isArray = module.is;
}
return module
ModuleScript at ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.at
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:21
-- Luau version 6, Types version 3
-- Time taken: 0.000552 seconds

return function(arg1, arg2) -- Line 19, Named "at"
    local var1
    if var1 < 1 then
        var1 += #arg1
    end
    return arg1[var1]
end
ModuleScript concat ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.concat
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:23
-- Luau version 6, Types version 3
-- Time taken: 0.001056 seconds

local None_upvr = require(script.Parent.Parent.None)
return function(...) -- Line 26, Named "concat"
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if type(selected_arg) == "table" then
            for _, v in ipairs(selected_arg) do
                if v ~= None_upvr then
                    table.insert({}, v)
                end
            end
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript concatDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.concatDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:24
-- Luau version 6, Types version 3
-- Time taken: 0.001325 seconds

local None_upvr = require(script.Parent.Parent.None)
local copyDeep_upvr = require(script.Parent.copyDeep)
return function(...) -- Line 28, Named "concatDeep"
    --[[ Upvalues[2]:
        [1]: None_upvr (readonly)
        [2]: copyDeep_upvr (readonly)
    ]]
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if type(selected_arg) == "table" then
            for _, v in ipairs(selected_arg) do
                if v ~= None_upvr then
                    if type(v) == "table" then
                        table.insert({}, copyDeep_upvr(v))
                    else
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        table.insert({}, v)
                    end
                end
            end
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript copy ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.copy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:26
-- Luau version 6, Types version 3
-- Time taken: 0.000274 seconds

return table.clone
ModuleScript copyDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.copyDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:27
-- Luau version 6, Types version 3
-- Time taken: 0.000682 seconds

local function copyDeep_upvr(arg1) -- Line 20, Named "copyDeep"
    --[[ Upvalues[1]:
        [1]: copyDeep_upvr (readonly)
    ]]
    for i, v in arg1 do
        if type(v) == "table" then
            table.clone(arg1)[i] = copyDeep_upvr(v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return table.clone(arg1)
end
return copyDeep_upvr
ModuleScript count ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.count
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:29
-- Luau version 6, Types version 3
-- Time taken: 0.001430 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 25, Named "count"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var10
    if type(arg2) == "function" then
    else
        var10 = Util_upvr.func.truthy
    end
    for i, v in ipairs(arg1) do
        if var10(v, i, arg1) then
        end
    end
    return 0 + 1
end
ModuleScript create ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.create
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:31
-- Luau version 6, Types version 3
-- Time taken: 0.000289 seconds

return table.create
ModuleScript difference ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.difference
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:32
-- Luau version 6, Types version 3
-- Time taken: 0.001161 seconds

local toSet_upvr = require(script.Parent.toSet)
local difference_upvr = require(script.Parent.Parent.Set.difference)
local toArray_upvr = require(script.Parent.Parent.Set.toArray)
return function(arg1, ...) -- Line 25, Named "difference"
    --[[ Upvalues[3]:
        [1]: toSet_upvr (readonly)
        [2]: difference_upvr (readonly)
        [3]: toArray_upvr (readonly)
    ]]
    for _, v in {...} do
        if typeof(v) == "table" then
            table.insert({}, toSet_upvr(v))
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return toArray_upvr(difference_upvr(toSet_upvr(arg1), unpack({})))
end
ModuleScript differenceSymmetric ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.differenceSymmetric
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:34
-- Luau version 6, Types version 3
-- Time taken: 0.001215 seconds

local toSet_upvr = require(script.Parent.toSet)
local differenceSymmetric_upvr = require(script.Parent.Parent.Set.differenceSymmetric)
local toArray_upvr = require(script.Parent.Parent.Set.toArray)
return function(arg1, ...) -- Line 25, Named "differenceSymmetric"
    --[[ Upvalues[3]:
        [1]: toSet_upvr (readonly)
        [2]: differenceSymmetric_upvr (readonly)
        [3]: toArray_upvr (readonly)
    ]]
    for _, v in {...} do
        if typeof(v) == "table" then
            table.insert({}, toSet_upvr(v))
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return toArray_upvr(differenceSymmetric_upvr(toSet_upvr(arg1), unpack({})))
end
ModuleScript equals ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.equals
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:35
-- Luau version 6, Types version 3
-- Time taken: 0.002340 seconds

local function compare_upvr(arg1, arg2) -- Line 6, Named "compare"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var5
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var5 = type(arg2)
        return var5 ~= "table"
    end
    if var5 ~= "table" or INLINED() then
        if arg1 ~= arg2 then
            var5 = false
        else
            var5 = true
        end
        return var5
    end
    var5 = #arg1
    local var6 = var5
    if #arg2 ~= var6 then
        return false
    end
    for i = 1, var6 do
        if arg1[i] ~= arg2[i] then
            return false
        end
    end
    return true
end
local Util_upvr = require(script.Parent.Parent.Util)
return function(...) -- Line 44, Named "equals"
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: compare_upvr (readonly)
    ]]
    if Util_upvr.equalObjects(...) then
        return true
    end
    for i_2 = 2, select('#', ...) do
        if not compare_upvr(select(1, ...), select(i_2, ...)) then
            return false
        end
    end
    return true
end
ModuleScript equalsDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.equalsDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:37
-- Luau version 6, Types version 3
-- Time taken: 0.002454 seconds

local function compareDeep_upvr(arg1, arg2) -- Line 6, Named "compareDeep"
    --[[ Upvalues[1]:
        [1]: compareDeep_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var5
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var5 = type(arg2)
        return var5 ~= "table"
    end
    if var5 ~= "table" or INLINED() then
        if arg1 ~= arg2 then
            var5 = false
        else
            var5 = true
        end
        return var5
    end
    var5 = #arg1
    local var6 = var5
    if #arg2 ~= var6 then
        return false
    end
    for i = 1, var6 do
        if not compareDeep_upvr(arg1[i], arg2[i]) then
            return false
        end
    end
    return true
end
local Util_upvr = require(script.Parent.Parent.Util)
return function(...) -- Line 44, Named "equalsDeep"
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: compareDeep_upvr (readonly)
    ]]
    if Util_upvr.equalObjects(...) then
        return true
    end
    for i_2 = 2, select('#', ...) do
        if not compareDeep_upvr(select(1, ...), select(i_2, ...)) then
            return false
        end
    end
    return true
end
ModuleScript every ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.every
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:39
-- Luau version 6, Types version 3
-- Time taken: 0.000676 seconds

return function(arg1, arg2) -- Line 24, Named "every"
    for i, v in ipairs(arg1) do
        if not arg2(v, i, arg1) then
            return false
        end
    end
    return true
end
ModuleScript filter ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.filter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:40
-- Luau version 6, Types version 3
-- Time taken: 0.001190 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 26, Named "filter"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    local var6
    if type(arg2) == "function" then
    else
        var6 = Util_upvr.func.truthy
    end
    for i, v in ipairs(arg1) do
        if var6(v, i, arg1) then
            table.insert({}, v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript find ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.find
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:42
-- Luau version 6, Types version 3
-- Time taken: 0.001140 seconds

return function(arg1, arg2, arg3) -- Line 25, Named "find"
    -- KONSTANTERROR: [13] 11. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 11. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 10 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.4]
    if nil == "number" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.66188]
        if arg3 < nil then
            -- KONSTANTWARNING: GOTO [15] #13
        end
    else
    end
    -- KONSTANTERROR: [0] 1. Error Block 10 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [15] 13. Error Block 8 start (CF ANALYSIS FAILED)
    do
        return table.find(arg1, arg2, 1)
    end
    -- KONSTANTERROR: [15] 13. Error Block 8 end (CF ANALYSIS FAILED)
end
ModuleScript findLast ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.findLast
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:44
-- Luau version 6, Types version 3
-- Time taken: 0.001358 seconds

return function(arg1, arg2, arg3) -- Line 20, Named "findLast"
    -- KONSTANTERROR: [13] 11. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 11. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 18 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.4]
    if nil == "number" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.197202]
        if arg3 < nil then
            -- KONSTANTWARNING: GOTO [15] #13
        end
    else
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [14.3]
    end
    -- KONSTANTERROR: [0] 1. Error Block 18 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [15] 13. Error Block 14 start (CF ANALYSIS FAILED)
    for i = nil, 1, -1 do
        if arg1[i] == arg2 then
            return i
        end
    end
    -- KONSTANTERROR: [15] 13. Error Block 14 end (CF ANALYSIS FAILED)
end
ModuleScript findWhere ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.findWhere
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:45
-- Luau version 6, Types version 3
-- Time taken: 0.001037 seconds

return function(arg1, arg2, arg3) -- Line 21, Named "findWhere"
    -- KONSTANTERROR: [13] 11. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 11. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 18 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.4]
    if nil == "number" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.66188]
        if arg3 < nil then
            -- KONSTANTWARNING: GOTO [15] #13
        end
    else
    end
    -- KONSTANTERROR: [0] 1. Error Block 18 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [15] 13. Error Block 14 start (CF ANALYSIS FAILED)
    for i = 1, #arg1 do
        if arg2(arg1[i], i, arg1) then
            return i
        end
    end
    -- KONSTANTERROR: [15] 13. Error Block 14 end (CF ANALYSIS FAILED)
end
ModuleScript findWhereLast ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.findWhereLast
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:47
-- Luau version 6, Types version 3
-- Time taken: 0.001402 seconds

return function(arg1, arg2, arg3) -- Line 25, Named "findWhereLast"
    -- KONSTANTERROR: [13] 11. Error Block 4 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 11. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 18 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.4]
    if nil == "number" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [13.197202]
        if arg3 < nil then
            -- KONSTANTWARNING: GOTO [15] #13
        end
    else
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [14.3]
    end
    -- KONSTANTERROR: [0] 1. Error Block 18 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [15] 13. Error Block 14 start (CF ANALYSIS FAILED)
    for i = nil, 1, -1 do
        if arg2(arg1[i], i, arg1) then
            return i
        end
    end
    -- KONSTANTERROR: [15] 13. Error Block 14 end (CF ANALYSIS FAILED)
end
ModuleScript first ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.first
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:48
-- Luau version 6, Types version 3
-- Time taken: 0.000704 seconds

local at_upvr = require(script.Parent.at)
return function(arg1) -- Line 19, Named "first"
    --[[ Upvalues[1]:
        [1]: at_upvr (readonly)
    ]]
    return at_upvr(arg1, 1)
end
ModuleScript flatten ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.flatten
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:50
-- Luau version 6, Types version 3
-- Time taken: 0.002605 seconds

local function flatten_upvr(arg1, arg2) -- Line 24, Named "flatten"
    --[[ Upvalues[1]:
        [1]: flatten_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var17
    if type(arg2) == "number" then
    else
        var17 = math.huge
    end
    for _, v in ipairs(arg1) do
        if type(v) == "table" and 0 < var17 then
            for _, v_2 in ipairs(flatten_upvr(v, var17 - 1)) do
                table.insert({}, v_2)
                local var24
            end
        else
            table.insert(var24, v)
        end
    end
    return var24
end
return flatten_upvr
ModuleScript freeze ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.freeze
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:52
-- Luau version 6, Types version 3
-- Time taken: 0.000518 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1) -- Line 22, Named "freeze"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local copy_upvr_result1 = copy_upvr(arg1)
    table.freeze(copy_upvr_result1)
    return copy_upvr_result1
end
ModuleScript freezeDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.freezeDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:53
-- Luau version 6, Types version 3
-- Time taken: 0.000912 seconds

local function freezeDeep_upvr(arg1) -- Line 21, Named "freezeDeep"
    --[[ Upvalues[1]:
        [1]: freezeDeep_upvr (readonly)
    ]]
    local module = {}
    for i = 1, #arg1 do
        local var3 = arg1[i]
        if type(var3) == "table" then
            table.insert(module, freezeDeep_upvr(var3))
        else
            table.insert(module, var3)
        end
    end
    table.freeze(module)
    return module
end
return freezeDeep_upvr
ModuleScript includes ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.includes
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:55
-- Luau version 6, Types version 3
-- Time taken: 0.000770 seconds

local find_upvr = require(script.Parent.find)
return function(arg1, arg2, arg3) -- Line 28, Named "includes"
    --[[ Upvalues[1]:
        [1]: find_upvr (readonly)
    ]]
    local var2
    if find_upvr(arg1, arg2, arg3) == nil then
        var2 = false
    else
        var2 = true
    end
    return var2
end
ModuleScript insert ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.insert
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:57
-- Luau version 6, Types version 3
-- Time taken: 0.002085 seconds

return function(arg1, arg2, ...) -- Line 21, Named "insert"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local len = #arg1
    local var14
    if var14 < 1 then
        var14 += len + 1
    end
    if len < var14 then
        if len + 1 < var14 then
            return arg1
        end
        var14 = len + 1
    end
    for i = 1, len + 1 do
        if i == var14 then
            for _, v in ipairs({...}) do
                table.insert({}, v)
                local var20
            end
        end
        table.insert(var20, arg1[i])
    end
    return var20
end
ModuleScript is ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.is
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 08:59:59
-- Luau version 6, Types version 3
-- Time taken: 0.001597 seconds

return function(arg1) -- Line 21, Named "is"
    local var2 = false
    if typeof(arg1) == "table" then
        var2 = false
        if 0 < #arg1 then
            if next(arg1, #arg1) ~= nil then
                var2 = false
            else
                var2 = true
            end
        end
    end
    return var2
end
ModuleScript last ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.last
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:00
-- Luau version 6, Types version 3
-- Time taken: 0.000588 seconds

local at_upvr = require(script.Parent.at)
return function(arg1) -- Line 19, Named "last"
    --[[ Upvalues[1]:
        [1]: at_upvr (readonly)
    ]]
    return at_upvr(arg1, 0)
end
ModuleScript map ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.map
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:02
-- Luau version 6, Types version 3
-- Time taken: 0.001116 seconds

return function(arg1, arg2) -- Line 20, Named "map"
    for i, v in ipairs(arg1) do
        local arg2_result1 = arg2(v, i, arg1)
        if arg2_result1 ~= nil then
            table.insert({}, arg2_result1)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript pop ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.pop
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:04
-- Luau version 6, Types version 3
-- Time taken: 0.000880 seconds

return function(arg1, arg2) -- Line 20, Named "pop"
    local module = {}
    local var4
    if type(arg2) == "number" then
    else
        var4 = 1
    end
    for i = 1, #arg1 - var4 do
        table.insert(module, arg1[i])
    end
    return module
end
ModuleScript push ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.push
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:05
-- Luau version 6, Types version 3
-- Time taken: 0.001007 seconds

return function(arg1, ...) -- Line 22, Named "push"
    local module = {}
    for _, v in ipairs(arg1) do
        table.insert(module, v)
    end
    for _, v_2 in ipairs({...}) do
        table.insert(module, v_2)
    end
    return module
end
ModuleScript reduce ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.reduce
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:07
-- Luau version 6, Types version 3
-- Time taken: 0.001070 seconds

return function(arg1, arg2, arg3) -- Line 27, Named "reduce"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var5 = 1
    if arg3 == nil then
        var5 = 2
    end
    for i = var5, #arg1 do
    end
    return arg2(arg1[1], arg1[i], i, arg1)
end
ModuleScript reduceRight ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.reduceRight
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:09
-- Luau version 6, Types version 3
-- Time taken: 0.001183 seconds

return function(arg1, arg2, arg3) -- Line 28, Named "reduceRight"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local len = #arg1
    if arg3 == nil then
        len -= 1
    end
    for i = len, 1, -1 do
    end
    return arg2(arg1[len], arg1[i], i, arg1)
end
ModuleScript removeIndex ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.removeIndex
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:11
-- Luau version 6, Types version 3
-- Time taken: 0.001231 seconds

return function(arg1, arg2) -- Line 19, Named "removeIndex"
    local var5
    if var5 < 1 then
        var5 += #arg1
    end
    for i, v in ipairs(arg1) do
        if i ~= var5 then
            table.insert({}, v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript removeIndices ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.removeIndices
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:12
-- Luau version 6, Types version 3
-- Time taken: 0.001304 seconds

return function(arg1, ...) -- Line 19, Named "removeIndices"
    local tbl = {}
    for _, v in ipairs({...}) do
        if v < 1 then
            v += #arg1
        end
        tbl[v] = true
    end
    for i_2, v_2 in ipairs(arg1) do
        if not tbl[i_2] then
            table.insert({}, v_2)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript removeValue ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.removeValue
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:14
-- Luau version 6, Types version 3
-- Time taken: 0.000876 seconds

return function(arg1, arg2) -- Line 18, Named "removeValue"
    for _, v in ipairs(arg1) do
        if v ~= arg2 then
            table.insert({}, v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript removeValues ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.removeValues
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:16
-- Luau version 6, Types version 3
-- Time taken: 0.001161 seconds

local toSet_upvr = require(script.Parent.toSet)
return function(arg1, ...) -- Line 20, Named "removeValues"
    --[[ Upvalues[1]:
        [1]: toSet_upvr (readonly)
    ]]
    for _, v in ipairs(arg1) do
        if not toSet_upvr({...})[v] then
            table.insert({}, v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript reverse ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.reverse
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:18
-- Luau version 6, Types version 3
-- Time taken: 0.000869 seconds

return function(arg1) -- Line 17, Named "reverse"
    local module = {}
    for i = #arg1, 1, -1 do
        table.insert(module, arg1[i])
    end
    return module
end
ModuleScript set ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.set
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:20
-- Luau version 6, Types version 3
-- Time taken: 0.001043 seconds

return function(arg1, arg2, arg3) -- Line 20, Named "set"
    local var5
    if var5 < 1 then
        var5 += #arg1
    end
    for i, v in ipairs(arg1) do
        if i == var5 then
            table.insert({}, arg3)
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            table.insert({}, v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript shift ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.shift
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:22
-- Luau version 6, Types version 3
-- Time taken: 0.001162 seconds

return function(arg1, arg2) -- Line 20, Named "shift"
    local module = {}
    local var4
    if type(arg2) == "number" then
        var4 += 1
    else
        var4 = 2
    end
    for i = var4, #arg1 do
        table.insert(module, arg1[i])
    end
    return module
end
ModuleScript shuffle ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.shuffle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:23
-- Luau version 6, Types version 3
-- Time taken: 0.001007 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1) -- Line 19, Named "shuffle"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local random_state = Random.new(os.time() * #arg1)
    local copy_upvr_result1 = copy_upvr(arg1)
    for i = #copy_upvr_result1, 1, -1 do
        local any_NextInteger_result1 = random_state:NextInteger(1, i)
        copy_upvr_result1[i] = copy_upvr_result1[any_NextInteger_result1]
        copy_upvr_result1[any_NextInteger_result1] = copy_upvr_result1[i]
    end
    return copy_upvr_result1
end
ModuleScript slice ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.slice
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:25
-- Luau version 6, Types version 3
-- Time taken: 0.002451 seconds

return function(arg1, arg2, arg3) -- Line 21, Named "slice"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local len = #arg1
    local module = {}
    local var7
    if type(arg2) == "number" then
    else
        var7 = 1
    end
    if type(arg3) == "number" then
    else
        local var8 = len
    end
    if var7 < 1 then
        var7 += len
    end
    if var8 < 1 then
    end
    for i = var7, var8 + len do
        table.insert(module, arg1[i])
    end
    return module
end
ModuleScript some ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.some
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:27
-- Luau version 6, Types version 3
-- Time taken: 0.000706 seconds

return function(arg1, arg2) -- Line 24, Named "some"
    for i, v in ipairs(arg1) do
        if arg2(v, i, arg1) then
            return true
        end
    end
    return false
end
ModuleScript sort ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.sort
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:29
-- Luau version 6, Types version 3
-- Time taken: 0.000779 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1, arg2) -- Line 22, Named "sort"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local copy_upvr_result1 = copy_upvr(arg1)
    table.sort(copy_upvr_result1, arg2)
    return copy_upvr_result1
end
ModuleScript splice ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.splice
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:31
-- Luau version 6, Types version 3
-- Time taken: 0.003706 seconds

return function(arg1, arg2, arg3, ...) -- Line 22, Named "splice"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local len = #arg1
    local module = {}
    local var19
    if type(arg2) == "number" then
    else
        var19 = 1
    end
    if type(arg3) == "number" then
    else
        local var20 = len
    end
    if var19 < 1 then
        var19 += len
    end
    if var20 < 1 then
    end
    for i = 1, var19 - 1 do
        table.insert(module, arg1[i])
    end
    for i_2, v in ipairs({...}) do
        table.insert(module, v)
    end
    for i_3 = var20 + len + 1, len do
        v = module
        i_2 = table.insert
        i_2(v, arg1[i_3])
    end
    return module
end
ModuleScript toSet ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.toSet
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:33
-- Luau version 6, Types version 3
-- Time taken: 0.000730 seconds

return function(arg1) -- Line 20, Named "toSet"
    local module = {}
    for _, v in ipairs(arg1) do
        module[v] = true
    end
    return module
end
ModuleScript unshift ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.unshift
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:35
-- Luau version 6, Types version 3
-- Time taken: 0.000919 seconds

return function(arg1, ...) -- Line 22, Named "unshift"
    local args_list = {...}
    for _, v in ipairs(arg1) do
        table.insert(args_list, v)
    end
    return args_list
end
ModuleScript update ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.update
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:36
-- Luau version 6, Types version 3
-- Time taken: 0.002260 seconds

local function _(arg1, arg2) -- Line 10, Named "call"
    if type(arg1) == "function" then
        return arg1(arg2)
    end
end
local copy_upvr = require(script.Parent.copy)
local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2, arg3, arg4) -- Line 44, Named "update"
    --[[ Upvalues[2]:
        [1]: copy_upvr (readonly)
        [2]: Util_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var1_result1 = copy_upvr(arg1)
    local var4
    if var4 < 1 then
        var4 += #arg1
    end
    if type(arg3) == "function" then
    else
    end
    if var1_result1[var4] ~= nil then
        var1_result1[var4] = Util_upvr.func.returned(var1_result1[var4], var4)
        return var1_result1
    end
    if type(arg4) == "function" then
    else
    end
    var1_result1[var4] = nil
    return var1_result1
end
ModuleScript zip ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.zip
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:38
-- Luau version 6, Types version 3
-- Time taken: 0.001935 seconds

local reduce_upvr = require(script.Parent.reduce)
return function(...) -- Line 20, Named "zip"
    --[[ Upvalues[1]:
        [1]: reduce_upvr (readonly)
    ]]
    local args_list = {...}
    local module = {}
    if select('#', ...) == 0 then
        return module
    end
    local function var10(arg1, arg2) -- Line 30
        return math.min(arg1, #arg2)
    end
    for i = 1, reduce_upvr(args_list, var10, #args_list[1]) do
        local tbl = {}
        for _, v in ipairs(args_list) do
            table.insert(tbl, v[i])
        end
        table.insert(module, tbl)
    end
    return module
end
ModuleScript zipAll ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Array.zipAll
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:40
-- Luau version 6, Types version 3
-- Time taken: 0.001827 seconds

local reduce_upvr = require(script.Parent.reduce)
local None_upvr = require(script.Parent.Parent.None)
return function(...) -- Line 24, Named "zipAll"
    --[[ Upvalues[2]:
        [1]: reduce_upvr (readonly)
        [2]: None_upvr (readonly)
    ]]
    local args_list = {...}
    local module = {}
    if select('#', ...) == 0 then
        return module
    end
    local function var11(arg1, arg2) -- Line 33
        return math.max(arg1, #arg2)
    end
    for i = 1, reduce_upvr(args_list, var11, #args_list[1]) do
        local tbl = {}
        for _, v in ipairs(args_list) do
            local var16 = v[i]
            local var17
            if var16 == nil then
                var17 = None_upvr
            else
                var17 = var16
            end
            table.insert(tbl, var17)
        end
        table.insert(module, tbl)
    end
    return module
end
ModuleScript Dictionary ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:41
-- Luau version 6, Types version 3
-- Time taken: 0.002171 seconds

local module = {
    copy = require(script.copy);
    copyDeep = require(script.copyDeep);
    count = require(script.count);
    entries = require(script.entries);
    equals = require(script.equals);
    equalsDeep = require(script.equalsDeep);
    every = require(script.every);
    filter = require(script.filter);
    flatten = require(script.flatten);
    flip = require(script.flip);
    freeze = require(script.freeze);
    freezeDeep = require(script.freezeDeep);
    fromArrays = require(script.fromArrays);
    fromEntries = require(script.fromEntries);
    has = require(script.has);
    includes = require(script.includes);
    keys = require(script.keys);
    map = require(script.map);
    merge = require(script.merge);
    mergeDeep = require(script.mergeDeep);
    removeKey = require(script.removeKey);
    removeKeys = require(script.removeKeys);
    removeValue = require(script.removeValue);
    removeValues = require(script.removeValues);
    set = require(script.set);
    some = require(script.some);
    update = require(script.update);
    values = require(script.values);
    withKeys = require(script.withKeys);
    join = module.merge;
    joinDeep = module.mergeDeep;
}
return module
ModuleScript copy ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.copy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:43
-- Luau version 6, Types version 3
-- Time taken: 0.000307 seconds

return table.clone
ModuleScript copyDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.copyDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:45
-- Luau version 6, Types version 3
-- Time taken: 0.000933 seconds

local function copyDeep_upvr(arg1) -- Line 20, Named "copyDeep"
    --[[ Upvalues[1]:
        [1]: copyDeep_upvr (readonly)
    ]]
    for i, v in pairs(arg1) do
        if type(v) == "table" then
            table.clone(arg1)[i] = copyDeep_upvr(v)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return table.clone(arg1)
end
return copyDeep_upvr
ModuleScript count ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.count
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:46
-- Luau version 6, Types version 3
-- Time taken: 0.001473 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 25, Named "count"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var10
    if type(arg2) == "function" then
    else
        var10 = Util_upvr.func.truthy
    end
    for i, v in pairs(arg1) do
        if var10(v, i, arg1) then
        end
    end
    return 0 + 1
end
ModuleScript entries ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.entries
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:48
-- Luau version 6, Types version 3
-- Time taken: 0.001168 seconds

return function(arg1) -- Line 17, Named "entries"
    local module = {}
    for i, v in pairs(arg1) do
        table.insert(module, {i, v})
    end
    return module
end
ModuleScript equals ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.equals
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:50
-- Luau version 6, Types version 3
-- Time taken: 0.003227 seconds

local function compare_upvr(arg1, arg2) -- Line 7, Named "compare"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var18
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var18 = type(arg2)
        return var18 ~= "table"
    end
    if var18 ~= "table" or INLINED() then
        if arg1 ~= arg2 then
            var18 = false
        else
            var18 = true
        end
        return var18
    end
    var18 = pairs(arg1)
    local pairs_result1_2, pairs_result2_2, pairs_result3 = pairs(arg1)
    for i, v in pairs_result1_2, pairs_result2_2, pairs_result3 do
        if arg2[i] ~= v then
            return false
        end
    end
    pairs_result1_2 = pairs(arg2)
    local pairs_result1, pairs_result2, pairs_result3_2 = pairs(arg2)
    for i_2, v_2 in pairs_result1, pairs_result2, pairs_result3_2 do
        if arg1[i_2] ~= v_2 then
            return false
        end
    end
    pairs_result1 = true
    return pairs_result1
end
local Util_upvr = require(script.Parent.Parent.Util)
return function(...) -- Line 45, Named "equals"
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: compare_upvr (readonly)
    ]]
    if Util_upvr.equalObjects(...) then
        return true
    end
    for i_3 = 2, select('#', ...) do
        if not compare_upvr(select(1, ...), select(i_3, ...)) then
            return false
        end
    end
    return true
end
ModuleScript equalsDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.equalsDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:52
-- Luau version 6, Types version 3
-- Time taken: 0.003501 seconds

local function compareDeep_upvr(arg1, arg2) -- Line 7, Named "compareDeep"
    --[[ Upvalues[1]:
        [1]: compareDeep_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var18
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var18 = type(arg2)
        return var18 ~= "table"
    end
    if var18 ~= "table" or INLINED() then
        if arg1 ~= arg2 then
            var18 = false
        else
            var18 = true
        end
        return var18
    end
    var18 = pairs(arg1)
    local pairs_result1_2, pairs_result2_2, pairs_result3 = pairs(arg1)
    for i, v in pairs_result1_2, pairs_result2_2, pairs_result3 do
        if not compareDeep_upvr(v, arg2[i]) then
            return false
        end
    end
    pairs_result1_2 = pairs(arg2)
    local pairs_result1, pairs_result2, pairs_result3_2 = pairs(arg2)
    for i_2, v_2 in pairs_result1, pairs_result2, pairs_result3_2 do
        if not compareDeep_upvr(v_2, arg1[i_2]) then
            return false
        end
    end
    pairs_result1 = true
    return pairs_result1
end
local Util_upvr = require(script.Parent.Parent.Util)
return function(...) -- Line 45, Named "equalsDeep"
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: compareDeep_upvr (readonly)
    ]]
    if Util_upvr.equalObjects(...) then
        return true
    end
    for i_3 = 2, select('#', ...) do
        if not compareDeep_upvr(select(1, ...), select(i_3, ...)) then
            return false
        end
    end
    return true
end
ModuleScript every ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.every
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:53
-- Luau version 6, Types version 3
-- Time taken: 0.000684 seconds

return function(arg1, arg2) -- Line 24, Named "every"
    for i, v in pairs(arg1) do
        if not arg2(v, i, arg1) then
            return false
        end
    end
    return true
end
ModuleScript filter ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.filter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:55
-- Luau version 6, Types version 3
-- Time taken: 0.001128 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 24, Named "filter"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    local var6
    if type(arg2) == "function" then
    else
        var6 = Util_upvr.func.truthy
    end
    for i, v in pairs(arg1) do
        if var6(v, i, arg1) then
            ({})[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript flatten ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.flatten
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:57
-- Luau version 6, Types version 3
-- Time taken: 0.002265 seconds

local function flatten_upvr(arg1, arg2) -- Line 30, Named "flatten"
    --[[ Upvalues[1]:
        [1]: flatten_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var17
    if type(arg2) == "number" then
    else
        var17 = math.huge
    end
    for i, v in pairs(arg1) do
        if type(v) == "table" and 0 < var17 then
            for i_2, v_2 in pairs({}) do
                flatten_upvr(v, var17 - 1)[i_2] = v_2
                local var25
            end
        else
            var25[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return var25
end
return flatten_upvr
ModuleScript flip ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.flip
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:00:58
-- Luau version 6, Types version 3
-- Time taken: 0.000611 seconds

return function(arg1) -- Line 17, Named "flip"
    local module = {}
    for i, v in pairs(arg1) do
        module[v] = i
    end
    return module
end
ModuleScript freeze ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.freeze
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:00
-- Luau version 6, Types version 3
-- Time taken: 0.000544 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1) -- Line 23, Named "freeze"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local copy_upvr_result1 = copy_upvr(arg1)
    table.freeze(copy_upvr_result1)
    return copy_upvr_result1
end
ModuleScript freezeDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.freezeDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:02
-- Luau version 6, Types version 3
-- Time taken: 0.000936 seconds

local function freezeDeep_upvr(arg1) -- Line 22, Named "freezeDeep"
    --[[ Upvalues[1]:
        [1]: freezeDeep_upvr (readonly)
    ]]
    local module = {}
    for i, v in pairs(arg1) do
        if type(v) == "table" then
            module[i] = freezeDeep_upvr(v)
        else
            module[i] = v
        end
    end
    table.freeze(module)
    return module
end
return freezeDeep_upvr
ModuleScript fromArrays ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.fromArrays
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:04
-- Luau version 6, Types version 3
-- Time taken: 0.001035 seconds

return function(arg1, arg2) -- Line 20, Named "fromArrays"
    local module = {}
    for i = 1, #arg1 do
        module[arg1[i]] = arg2[i]
    end
    return module
end
ModuleScript fromEntries ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.fromEntries
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:05
-- Luau version 6, Types version 3
-- Time taken: 0.000960 seconds

return function(arg1) -- Line 17, Named "fromEntries"
    local module = {}
    for _, v in ipairs(arg1) do
        module[v[1]] = v[2]
    end
    return module
end
ModuleScript has ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.has
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:07
-- Luau version 6, Types version 3
-- Time taken: 0.000608 seconds

return function(arg1, arg2) -- Line 21, Named "has"
    local var1
    if arg1[arg2] == nil then
        var1 = false
    else
        var1 = true
    end
    return var1
end
ModuleScript includes ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.includes
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:08
-- Luau version 6, Types version 3
-- Time taken: 0.000831 seconds

return function(arg1, arg2) -- Line 19, Named "includes"
    for _, v in pairs(arg1) do
        if v == arg2 then
            return true
        end
    end
    return false
end
ModuleScript keys ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.keys
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:10
-- Luau version 6, Types version 3
-- Time taken: 0.000721 seconds

return function(arg1) -- Line 17, Named "keys"
    local module = {}
    for i in pairs(arg1) do
        table.insert(module, i)
    end
    return module
end
ModuleScript map ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.map
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:12
-- Luau version 6, Types version 3
-- Time taken: 0.001056 seconds

return function(arg1, arg2) -- Line 26, Named "map"
    local module = {}
    for i, v in pairs(arg1) do
        local arg2_result1, arg2_result2 = arg2(v, i, arg1)
        module[arg2_result2 or i] = arg2_result1
    end
    return module
end
ModuleScript merge ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.merge
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:14
-- Luau version 6, Types version 3
-- Time taken: 0.001808 seconds

local None_upvr = require(script.Parent.Parent.None)
return function(...) -- Line 27, Named "merge"
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if type(selected_arg) == "table" then
            for i_2, v in pairs(selected_arg) do
                local var12
                if v == None_upvr then
                    var12 = nil
                else
                    var12 = v
                end
                ;({})[i_2] = var12
            end
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript mergeDeep ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.mergeDeep
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:15
-- Luau version 6, Types version 3
-- Time taken: 0.002295 seconds

local None_upvr = require(script.Parent.Parent.None)
local copyDeep_upvr = require(script.Parent.copyDeep)
local function mergeDeep_upvr(...) -- Line 28, Named "mergeDeep"
    --[[ Upvalues[3]:
        [1]: None_upvr (readonly)
        [2]: copyDeep_upvr (readonly)
        [3]: mergeDeep_upvr (readonly)
    ]]
    local module = {}
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if type(selected_arg) == "table" then
            for i_2, v in pairs(selected_arg) do
                if v == None_upvr then
                    module[i_2] = nil
                elseif type(v) == "table" then
                    if module[i_2] == nil or type(module[i_2]) ~= "table" then
                        module[i_2] = copyDeep_upvr(v)
                    else
                        module[i_2] = mergeDeep_upvr(module[i_2], v)
                    end
                else
                    module[i_2] = v
                end
            end
        end
    end
    return module
end
return mergeDeep_upvr
ModuleScript removeKey ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.removeKey
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:17
-- Luau version 6, Types version 3
-- Time taken: 0.000851 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1, arg2) -- Line 21, Named "removeKey"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local copy_upvr_result1 = copy_upvr(arg1)
    copy_upvr_result1[arg2] = nil
    return copy_upvr_result1
end
ModuleScript removeKeys ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.removeKeys
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:18
-- Luau version 6, Types version 3
-- Time taken: 0.000863 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1, ...) -- Line 20, Named "removeKeys"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local var1_result1 = copy_upvr(arg1)
    for _, v in ipairs({...}) do
        var1_result1[v] = nil
    end
    return var1_result1
end
ModuleScript removeValue ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.removeValue
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:20
-- Luau version 6, Types version 3
-- Time taken: 0.000892 seconds

return function(arg1, arg2) -- Line 19, Named "removeValue"
    for i, v in pairs(arg1) do
        if v ~= arg2 then
            ({})[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript removeValues ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.removeValues
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:21
-- Luau version 6, Types version 3
-- Time taken: 0.000894 seconds

local toSet_upvr = require(script.Parent.Parent.Array.toSet)
return function(arg1, ...) -- Line 23, Named "removeValues"
    --[[ Upvalues[1]:
        [1]: toSet_upvr (readonly)
    ]]
    for i, v in pairs(arg1) do
        if not toSet_upvr({...})[v] then
            ({})[i] = v
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript set ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.set
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:23
-- Luau version 6, Types version 3
-- Time taken: 0.000514 seconds

local copy_upvr = require(script.Parent.copy)
return function(arg1, arg2, arg3) -- Line 21, Named "set"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    local copy_upvr_result1 = copy_upvr(arg1)
    copy_upvr_result1[arg2] = arg3
    return copy_upvr_result1
end
ModuleScript some ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.some
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:24
-- Luau version 6, Types version 3
-- Time taken: 0.000722 seconds

return function(arg1, arg2) -- Line 24, Named "some"
    for i, v in pairs(arg1) do
        if arg2(v, i, arg1) then
            return true
        end
    end
    return false
end
ModuleScript update ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.update
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:26
-- Luau version 6, Types version 3
-- Time taken: 0.001541 seconds

local function _(arg1, arg2) -- Line 7, Named "call"
    if type(arg1) == "function" then
        return arg1(arg2)
    end
end
local copy_upvr = require(script.Parent.copy)
return function(arg1, arg2, arg3, arg4) -- Line 39, Named "update"
    --[[ Upvalues[1]:
        [1]: copy_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var1_result1 = copy_upvr(arg1)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 7. Error Block 3 start (CF ANALYSIS FAILED)
    var1_result1[arg2] = arg3(var1_result1[arg2], arg2)
    do
        return var1_result1
    end
    local var3
    -- KONSTANTERROR: [7] 7. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 13. Error Block 12 start (CF ANALYSIS FAILED)
    if arg4 then
        if type(arg4) == "function" then
            var3 = arg4(arg2)
        else
            var3 = nil
        end
        var1_result1[arg2] = var3
    end
    -- KONSTANTERROR: [13] 13. Error Block 12 end (CF ANALYSIS FAILED)
end
ModuleScript values ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.values
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:27
-- Luau version 6, Types version 3
-- Time taken: 0.000702 seconds

return function(arg1) -- Line 17, Named "values"
    local module = {}
    for _, v in pairs(arg1) do
        table.insert(module, v)
    end
    return module
end
ModuleScript withKeys ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Dictionary.withKeys
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:29
-- Luau version 6, Types version 3
-- Time taken: 0.001005 seconds

return function(arg1, ...) -- Line 19, Named "withKeys"
    local module = {}
    for _, v in ipairs({...}) do
        module[v] = arg1[v]
    end
    return module
end
ModuleScript None ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.None
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:31
-- Luau version 6, Types version 3
-- Time taken: 0.000564 seconds

local newproxy_result1 = newproxy(true)
getmetatable(newproxy_result1).__tostring = function() -- Line 12
    return "Sift.None"
end
return newproxy_result1
ModuleScript Set ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:33
-- Luau version 6, Types version 3
-- Time taken: 0.001200 seconds

local module = {
    add = require(script.add);
    copy = require(script.copy);
    count = require(script.count);
    delete = require(script.delete);
    difference = require(script.difference);
    differenceSymmetric = require(script.differenceSymmetric);
    filter = require(script.filter);
    fromArray = require(script.fromArray);
    has = require(script.has);
    intersection = require(script.intersection);
    isSubset = require(script.isSubset);
    isSuperset = require(script.isSuperset);
    map = require(script.map);
    merge = require(script.merge);
    toArray = require(script.toArray);
    fromList = module.fromArray;
    join = module.merge;
    subtract = module.delete;
    union = module.merge;
}
return module
ModuleScript add ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.add
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:34
-- Luau version 6, Types version 3
-- Time taken: 0.001369 seconds

return function(arg1, ...) -- Line 18, Named "add"
    local module = {}
    for i, _ in pairs(arg1) do
        module[i] = true
    end
    for _, v_2 in ipairs({...}) do
        module[v_2] = true
    end
    return module
end
ModuleScript copy ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.copy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:36
-- Luau version 6, Types version 3
-- Time taken: 0.000487 seconds

return require(script.Parent.Parent.Dictionary.copy)
ModuleScript count ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.count
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:38
-- Luau version 6, Types version 3
-- Time taken: 0.001426 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 25, Named "count"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var10
    if type(arg2) == "function" then
    else
        var10 = Util_upvr.func.truthy
    end
    for i, _ in pairs(arg1) do
        if var10(i, arg1) then
        end
    end
    return 0 + 1
end
ModuleScript delete ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.delete
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:40
-- Luau version 6, Types version 3
-- Time taken: 0.000935 seconds

return function(arg1, ...) -- Line 20, Named "delete"
    local module = {}
    for i, _ in pairs(arg1) do
        module[i] = true
    end
    for _, v_2 in ipairs({...}) do
        module[v_2] = nil
    end
    return module
end
ModuleScript difference ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.difference
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:41
-- Luau version 6, Types version 3
-- Time taken: 0.001300 seconds

return function(arg1, ...) -- Line 21, Named "difference"
    local clone = table.clone(arg1)
    for _, v in {...} do
        if typeof(v) == "table" then
            for i_2 in v do
                clone[i_2] = nil
            end
        end
    end
    return clone
end
ModuleScript differenceSymmetric ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.differenceSymmetric
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:43
-- Luau version 6, Types version 3
-- Time taken: 0.001553 seconds

return function(arg1, ...) -- Line 21, Named "differenceSymmetric"
    local clone = table.clone(arg1)
    for _, v in {...} do
        if typeof(v) == "table" then
            for i_2 in v do
                local var13
                if clone[i_2] == nil then
                    var13 = true
                else
                    var13 = false
                end
                clone[i_2] = var13
            end
        end
    end
    local var14
    for i_3, v_2 in clone do
        if v_2 then
            var14 = true
        else
            var14 = nil
        end
        clone[i_3] = var14
    end
    return clone
end
ModuleScript filter ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.filter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:45
-- Luau version 6, Types version 3
-- Time taken: 0.001581 seconds

local Util_upvr = require(script.Parent.Parent.Util)
return function(arg1, arg2) -- Line 24, Named "filter"
    --[[ Upvalues[1]:
        [1]: Util_upvr (readonly)
    ]]
    local var6
    if type(arg2) == "function" then
    else
        var6 = Util_upvr.func.truthy
    end
    for i, _ in pairs(arg1) do
        if var6(i, arg1) then
            ({})[i] = true
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript fromArray ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.fromArray
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:47
-- Luau version 6, Types version 3
-- Time taken: 0.000706 seconds

return function(arg1) -- Line 20, Named "fromArray"
    local table_create_result1 = table.create(#arg1)
    for _, v in ipairs(arg1) do
        table_create_result1[v] = true
    end
    return table_create_result1
end
ModuleScript has ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.has
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:49
-- Luau version 6, Types version 3
-- Time taken: 0.000703 seconds

return function(arg1, arg2) -- Line 18, Named "has"
    local var1
    if arg1[arg2] ~= true then
        var1 = false
    else
        var1 = true
    end
    return var1
end
ModuleScript intersection ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.intersection
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:51
-- Luau version 6, Types version 3
-- Time taken: 0.000750 seconds

return function(...) -- Line 20, Named "intersection"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local _, pairs_result2, _ = pairs(select(1, ...))
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [20] 17. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [20] 17. Error Block 2 end (CF ANALYSIS FAILED)
end
ModuleScript isSubset ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.isSubset
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:53
-- Luau version 6, Types version 3
-- Time taken: 0.000636 seconds

return function(arg1, arg2) -- Line 19, Named "isSubset"
    for i, v in pairs(arg1) do
        if arg2[i] ~= v then
            return false
        end
    end
    return true
end
ModuleScript isSuperset ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.isSuperset
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:56
-- Luau version 6, Types version 3
-- Time taken: 0.000600 seconds

local isSubset_upvr = require(script.Parent.isSubset)
return function(arg1, arg2) -- Line 21, Named "isSuperset"
    --[[ Upvalues[1]:
        [1]: isSubset_upvr (readonly)
    ]]
    return isSubset_upvr(arg2, arg1)
end
ModuleScript map ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.map
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:01:58
-- Luau version 6, Types version 3
-- Time taken: 0.000920 seconds

return function(arg1, arg2) -- Line 20, Named "map"
    for i, _ in pairs(arg1) do
        local arg2_result1 = arg2(i, arg1)
        if arg2_result1 ~= nil then
            ({})[arg2_result1] = true
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
ModuleScript merge ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.merge
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:01
-- Luau version 6, Types version 3
-- Time taken: 0.001039 seconds

return function(...) -- Line 20, Named "merge"
    local module = {}
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if type(selected_arg) == "table" then
            for i_2, _ in pairs(selected_arg) do
                module[i_2] = true
            end
        end
    end
    return module
end
ModuleScript toArray ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Set.toArray
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:03
-- Luau version 6, Types version 3
-- Time taken: 0.000689 seconds

return function(arg1) -- Line 17, Named "toArray"
    local module = {}
    for i, _ in pairs(arg1) do
        table.insert(module, i)
    end
    return module
end
ModuleScript Types ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Types
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:05
-- Luau version 6, Types version 3
-- Time taken: 0.000259 seconds

return nil
ModuleScript Util ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Util
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:07
-- Luau version 6, Types version 3
-- Time taken: 0.000397 seconds

return {
    equalObjects = require(script.equalObjects);
    func = require(script.func);
    isEmpty = require(script.isEmpty);
}
ModuleScript equalObjects ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Util.equalObjects
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:09
-- Luau version 6, Types version 3
-- Time taken: 0.000743 seconds

return function(...) -- Line 20, Named "equalObjects"
    for i = 2, select('#', ...) do
        if select(1, ...) ~= select(i, ...) then
            return false
        end
    end
    return true
end
ModuleScript func ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Util.func
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:11
-- Luau version 6, Types version 3
-- Time taken: 0.000875 seconds

return {
    truthy = function() -- Line 1, Named "truthy"
        return true
    end;
    noop = function() -- Line 5, Named "noop"
    end;
    returned = function(...) -- Line 7, Named "returned"
        return ...
    end;
}
ModuleScript isEmpty ReplicatedStorage.PopupShop.Packages._Index.csqrl_sift@0.0.8.sift.Util.isEmpty
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:13
-- Luau version 6, Types version 3
-- Time taken: 0.000815 seconds

return function(arg1) -- Line 22, Named "isEmpty"
    local var1
    if next(arg1) ~= nil then
        var1 = false
    else
        var1 = true
    end
    return var1
end
ModuleScript dubit-utils ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:15
-- Luau version 6, Types version 3
-- Time taken: 0.000919 seconds

return {
    Time = require(script.Time);
    Vector = require(script.Vector);
    Instance = require(script.InstanceUtility);
    Table = require(script.Table);
    Number = require(script.Number);
    Camera = require(script.Camera);
    Character = require(script.Character);
    RobloxGroup = require(script.RobloxGroup);
    Accessory = require(script.Accessory);
    BufferReader = require(script.BufferReader);
    BufferWriter = require(script.BufferWriter);
    MD5 = require(script.MD5);
    Stack = require(script.Stack);
    fzy = require(script.fzy);
}
ModuleScript Accessory ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Accessory
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:17
-- Luau version 6, Types version 3
-- Time taken: 0.001670 seconds

return {
    isAssetTypeAccessory = function(arg1) -- Line 25, Named "isAssetTypeAccessory"
        local var2
        if var2 ~= "EnumItem" then
            var2 = false
            return var2
        end
        if string.find(arg1.Name, "Accessory") then
            var2 = true
            return var2
        end
        if arg1 ~= Enum.AssetType.Hat then
            var2 = false
        else
            var2 = true
        end
        return var2
    end;
    matchAssetTypeToAccessoryType = function(arg1) -- Line 48, Named "matchAssetTypeToAccessoryType"
        if typeof(arg1) ~= "EnumItem" or not arg1.Name then
            return Enum.AccessoryType.Unknown
        end
        for _, v in Enum.AccessoryType:GetEnumItems() do
            if string.gsub(arg1.Name, "Accessory", "") == v.Name then
                return v
            end
        end
        return Enum.AccessoryType.Unknown
    end;
}
ModuleScript BufferReader ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.BufferReader
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:19
-- Luau version 6, Types version 3
-- Time taken: 0.005153 seconds

local module_2_upvr = {
    prototype = {};
    interface = {};
}
module_2_upvr.prototype.Readb8 = function(arg1) -- Line 33, Named "Readb8"
    local table_create_result1 = table.create(8, false)
    for i = 0, 7 do
        local var5
        if bit32.band(buffer.readu8(arg1.Buffer, arg1.Offset), bit32.lshift(1, i)) == 0 then
            var5 = false
        else
            var5 = true
        end
        table_create_result1[i + 1] = var5
    end
    arg1.Offset += 1
    return table_create_result1
end
module_2_upvr.prototype.Readu8 = function(arg1) -- Line 46, Named "Readu8"
    arg1.Offset += 1
    return buffer.readu8(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readu16 = function(arg1) -- Line 52, Named "Readu16"
    arg1.Offset += 2
    return buffer.readu16(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readu24 = function(arg1) -- Line 58, Named "Readu24"
    arg1.Offset += 3
    return bit32.bor(bit32.lshift(buffer.readu8(arg1.Buffer, arg1.Offset + 2), 16), bit32.lshift(buffer.readu8(arg1.Buffer, arg1.Offset + 1), 8), buffer.readu8(arg1.Buffer, arg1.Offset))
end
module_2_upvr.prototype.Readu32 = function(arg1) -- Line 69, Named "Readu32"
    arg1.Offset += 4
    return buffer.readu32(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readu40 = function(arg1) -- Line 75, Named "Readu40"
    arg1.Offset += 5
    return buffer.readu8(arg1.Buffer, arg1.Offset + 4) * 4294967296 + bit32.lshift(buffer.readu8(arg1.Buffer, arg1.Offset + 3), 24) + bit32.lshift(buffer.readu8(arg1.Buffer, arg1.Offset + 2), 16) + bit32.lshift(buffer.readu8(arg1.Buffer, arg1.Offset + 1), 8) + buffer.readu8(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readi8 = function(arg1) -- Line 92, Named "Readi8"
    arg1.Offset += 1
    return buffer.readi8(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readi16 = function(arg1) -- Line 98, Named "Readi16"
    arg1.Offset += 2
    return buffer.readi16(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readi32 = function(arg1) -- Line 104, Named "Readi32"
    arg1.Offset += 4
    return buffer.readi32(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readf32 = function(arg1) -- Line 110, Named "Readf32"
    arg1.Offset += 4
    return buffer.readf32(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.Readf64 = function(arg1) -- Line 116, Named "Readf64"
    arg1.Offset += 8
    return buffer.readf64(arg1.Buffer, arg1.Offset)
end
module_2_upvr.prototype.ReadString = function(arg1, arg2) -- Line 122, Named "ReadString"
    arg1.Offset += arg2
    return buffer.readstring(arg1.Buffer, arg1.Offset, arg2)
end
module_2_upvr.prototype.ReadVarLenString = function(arg1) -- Line 130, Named "ReadVarLenString"
    local buffer_readu8_result1 = buffer.readu8(arg1.Buffer, arg1.Offset)
    arg1.Offset += buffer_readu8_result1 + 1
    return buffer.readstring(arg1.Buffer, arg1.Offset + 1, buffer_readu8_result1)
end
module_2_upvr.interface.new = function(arg1) -- Line 137, Named "new"
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module = {}
    module.Buffer = arg1
    module.Offset = 0
    return setmetatable(module, {
        __index = module_2_upvr.prototype;
    })
end
module_2_upvr.interface.fromString = function(arg1) -- Line 149, Named "fromString"
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    return setmetatable({
        Buffer = buffer.fromstring(arg1);
        Offset = 0;
    }, {
        __index = module_2_upvr.prototype;
    })
end
return module_2_upvr.interface
ModuleScript BufferWriter ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.BufferWriter
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:21
-- Luau version 6, Types version 3
-- Time taken: 0.010374 seconds

local module_upvr = {
    prototype = {};
    interface = {};
}
module_upvr.prototype.Fit = function(arg1) -- Line 35, Named "Fit"
    local buffer_create_result1 = buffer.create(arg1.Offset)
    buffer.copy(buffer_create_result1, 0, arg1.Buffer, 0, arg1.Offset)
    arg1.Buffer = buffer_create_result1
end
module_upvr.prototype.Writeb8 = function(arg1, ...) -- Line 41, Named "Writeb8"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local args_list = {...}
    local var8
    if #args_list > 8 then
        var8 = false
    else
        var8 = true
    end
    assert(var8, "writeb8 allows only up to 8 booleans to be written")
    var8 = #args_list - 1
    for i = 0, var8 do
        local var9
        if type(args_list[i + 1]) ~= "boolean" then
            var9 = false
        else
            var9 = true
        end
        assert(var9, "writeb8 only allows booleans to be written")
        if args_list[i + 1] then
        else
        end
        var9 = 0
    end
    var8 = buffer.writeu8
    var8(arg1.Buffer, arg1.Offset, bit32.bor(var9, bit32.lshift(0, i)))
    var8 = arg1.Offset
    var8 += 1
    arg1.Offset = var8
end
module_upvr.prototype.Writeu8 = function(arg1, arg2) -- Line 54, Named "Writeu8"
    local var10 = false
    if 0 <= arg2 then
        if arg2 > 255 then
            var10 = false
        else
            var10 = true
        end
    end
    assert(var10, "number is out of range [0..255]")
    buffer.writeu8(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 1
end
module_upvr.prototype.Writeu16 = function(arg1, arg2) -- Line 61, Named "Writeu16"
    local var11 = false
    if 0 <= arg2 then
        if arg2 >= 65536 then
            var11 = false
        else
            var11 = true
        end
    end
    assert(var11, "number is out of range [0..65,536]")
    buffer.writeu16(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 2
end
module_upvr.prototype.Writeu24 = function(arg1, arg2) -- Line 68, Named "Writeu24"
    local var12 = false
    if 0 <= arg2 then
        if arg2 > 16777215 then
            var12 = false
        else
            var12 = true
        end
    end
    assert(var12, "number is out of range [0..16,777,215]")
    buffer.writeu8(arg1.Buffer, arg1.Offset, bit32.band(arg2, 255))
    buffer.writeu8(arg1.Buffer, arg1.Offset + 1, bit32.band(bit32.rshift(arg2, 8), 255))
    buffer.writeu8(arg1.Buffer, arg1.Offset + 2, bit32.band(bit32.rshift(arg2, 16), 255))
    arg1.Offset += 3
end
module_upvr.prototype.Writeu32 = function(arg1, arg2) -- Line 78, Named "Writeu32"
    local var13 = false
    if 0 <= arg2 then
        if arg2 > 4294967296 then
            var13 = false
        else
            var13 = true
        end
    end
    assert(var13, "number is out of range [0..4,294,967,296]")
    buffer.writeu32(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 4
end
module_upvr.prototype.Writeu40 = function(arg1, arg2) -- Line 85, Named "Writeu40"
    local var16 = false
    if 0 <= arg2 then
        if arg2 > 1099511627775 then
            var16 = false
        else
            var16 = true
        end
    end
    assert(var16, "number is out of range [0..1,099,511,627,775]")
    for i_2 = 0, 4 do
        buffer.writeu8(arg1.Buffer, arg1.Offset + i_2, bit32.band(arg2, 255))
    end
    arg1.Offset += 5
end
module_upvr.prototype.Writei8 = function(arg1, arg2) -- Line 96, Named "Writei8"
    local var17 = false
    if -128 <= arg2 then
        if arg2 > 127 then
            var17 = false
        else
            var17 = true
        end
    end
    assert(var17, "number is out of range [-128..127]")
    buffer.writei8(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 1
end
module_upvr.prototype.Writei16 = function(arg1, arg2) -- Line 103, Named "Writei16"
    local var18 = false
    if -32768 <= arg2 then
        if arg2 > 32767 then
            var18 = false
        else
            var18 = true
        end
    end
    assert(var18, "number is out of range [-32,768..32,767]")
    buffer.writei16(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 2
end
module_upvr.prototype.Writei32 = function(arg1, arg2) -- Line 110, Named "Writei32"
    local var19 = false
    if -2147483648 <= arg2 then
        if arg2 > 2147483647 then
            var19 = false
        else
            var19 = true
        end
    end
    assert(var19, "number is out of range [-2,147,483,648..2,147,483,647]")
    buffer.writei8(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 4
end
module_upvr.prototype.Writef32 = function(arg1, arg2) -- Line 117, Named "Writef32"
    buffer.writef32(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 4
end
module_upvr.prototype.Writef64 = function(arg1, arg2) -- Line 122, Named "Writef64"
    buffer.writef64(arg1.Buffer, arg1.Offset, arg2)
    arg1.Offset += 8
end
module_upvr.prototype.WriteString = function(arg1, arg2, arg3) -- Line 127, Named "WriteString"
    buffer.writestring(arg1.Buffer, arg1.Offset, arg2, arg3)
    arg1.Offset += arg3
end
module_upvr.prototype.WriteVarLenString = function(arg1, arg2) -- Line 134, Named "WriteVarLenString"
    local string_len_result1 = string.len(arg2)
    buffer.writeu8(arg1.Buffer, arg1.Offset, string_len_result1)
    buffer.writestring(arg1.Buffer, arg1.Offset + 1, arg2, string_len_result1)
    arg1.Offset += string_len_result1 + 1
end
module_upvr.interface.new = function(arg1) -- Line 141, Named "new"
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        Buffer = buffer.create(arg1);
        Offset = 0;
    }, {
        __index = module_upvr.prototype;
    })
end
module_upvr.interface.fromString = function(arg1) -- Line 153, Named "fromString"
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        Buffer = buffer.fromstring(arg1);
        Offset = 0;
    }, {
        __index = module_upvr.prototype;
    })
end
return module_upvr.interface
ModuleScript Camera ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Camera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:23
-- Luau version 6, Types version 3
-- Time taken: 0.001863 seconds

return {
    zoomToExtents = function(arg1, arg2) -- Line 21, Named "zoomToExtents"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var2
        if not var2 or not arg2:GetPivot() then
        end
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var2 = arg2:GetExtentsSize()
            return var2
        end
        if not arg2:IsA("Model") or not INLINED() then
            var2 = arg2.Size
        end
        local var3 = arg1.CFrame - arg1.CFrame.Position
        local Position = arg2.CFrame.Position
        arg1.CFrame = var3 + Position + (-var3.LookVector) * (var2.Magnitude / 2 / math.tan(math.rad(arg1.FieldOfView / 2)))
        arg1.Focus = var3 + Position
    end;
}
ModuleScript Character ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Character
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:24
-- Luau version 6, Types version 3
-- Time taken: 0.007791 seconds

local TweenService_upvr = game:GetService("TweenService")
local tbl_5_upvr = {}
local tbl_3_upvr = {}
local module_upvr = {
    cloneCharacter = function(arg1, arg2) -- Line 29, Named "cloneCharacter"
        if typeof(arg1) ~= "Instance" or not arg1:IsA("Model") then return end
        arg1.Archivable = true
        local clone = arg1:Clone()
        arg1.Archivable = false
        local HumanoidRootPart_2 = clone:FindFirstChild("HumanoidRootPart")
        local class_Humanoid = clone:FindFirstChildOfClass("Humanoid")
        if not class_Humanoid or not HumanoidRootPart_2 then return end
        HumanoidRootPart_2.Anchored = arg2 or false
        class_Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
        return clone
    end;
}
local Players_upvr = game:GetService("Players")
function module_upvr.setCharacterTransparency(arg1, arg2, arg3) -- Line 72
    --[[ Upvalues[5]:
        [1]: module_upvr (readonly)
        [2]: tbl_5_upvr (readonly)
        [3]: tbl_3_upvr (readonly)
        [4]: TweenService_upvr (readonly)
        [5]: Players_upvr (readonly)
    ]]
    if typeof(arg2) ~= "number" then
    else
        if arg2 == 0 then
            module_upvr.resetCharacterTransparency(arg1, arg3)
            return
        end
        if not tbl_5_upvr[arg1] then
            tbl_5_upvr[arg1] = {}
        elseif tbl_5_upvr[arg1] and not tbl_5_upvr[arg1]:IsDescendantOf(workspace) then
            tbl_5_upvr[arg1] = nil
            if tbl_3_upvr[arg1.Name] then
                tbl_3_upvr[arg1.Name]:Disconnect()
                tbl_3_upvr[arg1.Name] = nil
            end
        end
        if #arg1:GetDescendants() == 0 and not arg1:WaitForChild("HumanoidRootPart", 5) then return end
        for _, v in arg1:GetDescendants() do
            if v:IsA("BasePart") or v:IsA("Decal") then
                if not tbl_5_upvr[arg1][v] then
                    tbl_5_upvr[arg1][v] = v.Transparency
                end
                if arg3 then
                    local tbl_6 = {}
                    tbl_6.Transparency = arg2
                    TweenService_upvr:Create(v, arg3, tbl_6):Play()
                else
                    v.Transparency = arg2
                end
            end
        end
        tbl_3_upvr[arg1.Name] = arg1.DescendantAdded:Connect(function(arg1_4) -- Line 116
            --[[ Upvalues[5]:
                [1]: tbl_5_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: arg3 (readonly)
                [4]: TweenService_upvr (copied, readonly)
                [5]: arg2 (readonly)
            ]]
            if arg1_4:IsA("BasePart") or arg1_4:IsA("Decal") then
                if not tbl_5_upvr[arg1][arg1_4] then
                    tbl_5_upvr[arg1][arg1_4] = arg1_4.Transparency
                end
                if arg3 then
                    local tbl = {}
                    tbl.Transparency = arg2
                    TweenService_upvr:Create(arg1_4, arg3, tbl):Play()
                    return
                end
                arg1_4.Transparency = arg2
            end
        end)
        local any_GetPlayerFromCharacter_result1 = Players_upvr:GetPlayerFromCharacter(arg1)
        if any_GetPlayerFromCharacter_result1 then
            any_GetPlayerFromCharacter_result1.CharacterRemoving:Once(function(arg1_5) -- Line 133
                --[[ Upvalues[2]:
                    [1]: tbl_3_upvr (copied, readonly)
                    [2]: tbl_5_upvr (copied, readonly)
                ]]
                if tbl_3_upvr[arg1_5.Name] then
                    tbl_3_upvr[arg1_5.Name]:Disconnect()
                    tbl_3_upvr[arg1_5.Name] = nil
                end
                if tbl_5_upvr[arg1_5] then
                    tbl_5_upvr[arg1_5] = nil
                end
            end)
        end
    end
end
function module_upvr.resetCharacterTransparency(arg1, arg2) -- Line 166
    --[[ Upvalues[3]:
        [1]: tbl_5_upvr (readonly)
        [2]: TweenService_upvr (readonly)
        [3]: tbl_3_upvr (readonly)
    ]]
    if not next(tbl_5_upvr) or not tbl_5_upvr[arg1] then
    else
        for i_2, v_2 in tbl_5_upvr[arg1] do
            if arg2 then
                TweenService_upvr:Create(i_2, arg2, {
                    Transparency = v_2;
                }):Play()
            else
                i_2.Transparency = v_2
            end
        end
        tbl_3_upvr[arg1.Name]:Disconnect()
        tbl_3_upvr[arg1.Name] = nil
        tbl_5_upvr[arg1] = nil
    end
end
function module_upvr.setCharacterFrozen(arg1, arg2) -- Line 198
    local var32
    if typeof(arg2) == "boolean" then
    else
        var32 = true
    end
    local HumanoidRootPart = arg1:FindFirstChild("HumanoidRootPart")
    if HumanoidRootPart then
        HumanoidRootPart.Anchored = var32
    end
end
return module_upvr
ModuleScript InstanceUtility ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.InstanceUtility
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:26
-- Luau version 6, Types version 3
-- Time taken: 0.007106 seconds

local CollectionService_upvr = game:GetService("CollectionService")
local module = {
    verifyInstance = function(arg1, arg2, arg3, arg4) -- Line 43, Named "verifyInstance"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 31 start (CF ANALYSIS FAILED)
        local var3
        if var3 ~= "string" then
            var3 = warn
            var3(`Expected instanceType to be of type string, got {typeof(arg2)}`)
            var3 = nil
            return var3
        end
        if typeof(arg3) == "Instance" then
            var3 = arg3
        else
            var3 = workspace
        end
        if typeof(arg4) == "number" then
            -- KONSTANTWARNING: GOTO [42] #33
        end
        -- KONSTANTERROR: [0] 1. Error Block 31 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [41] 32. Error Block 33 start (CF ANALYSIS FAILED)
        local const_number = 0
        if 0 < const_number then
            local _ = var3:WaitForChild(arg1, const_number)
        else
        end
        if var3:FindFirstChild(arg1) and var3:FindFirstChild(arg1):IsA(arg2) then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return var3:FindFirstChild(arg1)
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if var3:FindFirstChild(arg1) then
            warn(`Found instance '{arg1}' is not of type '{arg2}', creating new instance of given type`)
        end
        local any = Instance.new(arg2)
        any.Name = arg1
        any.Parent = arg3
        do
            return any
        end
        -- KONSTANTERROR: [41] 32. Error Block 33 end (CF ANALYSIS FAILED)
    end;
    waitForChildren = function(arg1, arg2, arg3) -- Line 100, Named "waitForChildren"
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var15
        if typeof(arg3) == "number" then
        else
            var15 = 5
        end
        for _, v in arg2:split('.'), nil do
            local SOME = arg1:WaitForChild(v, var15)
            if not SOME then
                return nil
            end
        end
        return SOME
    end;
    findInstance = function(arg1, arg2) -- Line 140, Named "findInstance"
        local var21
        for _, v_2 in arg2:split('.'), nil do
            if v_2 == "" then
                error(`Invalid path: {arg2}`, 2)
            end
            var21 = var21:FindFirstChild(v_2)
            if var21 == nil then
                error(`Failed to find {arg2} in {var21:GetFullName():gsub("%.", '.')}`, 2)
            end
        end
        return var21
    end;
}
local RunService_upvr = game:GetService("RunService")
function module.setDescendantTransparency(arg1, arg2) -- Line 180
    --[[ Upvalues[1]:
        [1]: RunService_upvr (readonly)
    ]]
    if arg1:IsA("BasePart") then
        if RunService_upvr:IsClient() then
            arg1.LocalTransparencyModifier = arg2
        elseif RunService_upvr:IsServer() then
            arg1.Transparency = arg2
        end
    end
    for _, v_3 in arg1:GetDescendants() do
        if v_3:IsA("BasePart") then
            if RunService_upvr:IsClient() then
                v_3.LocalTransparencyModifier = arg2
            elseif RunService_upvr:IsServer() then
                v_3.Transparency = arg2
            end
        end
    end
end
function module.findAncestorWithTag(arg1, arg2) -- Line 220
    --[[ Upvalues[1]:
        [1]: CollectionService_upvr (readonly)
    ]]
    local Parent = arg1.Parent
    while Parent do
        if CollectionService_upvr:HasTag(Parent, arg2) then
            return Parent
        end
    end
    return nil
end
function module.findDescendantsWithTag(arg1, arg2) -- Line 253
    --[[ Upvalues[1]:
        [1]: CollectionService_upvr (readonly)
    ]]
    for _, v_4 in arg1:GetDescendants(), nil do
        if CollectionService_upvr:HasTag(v_4, arg2) then
            table.insert({}, v_4)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
return module
ModuleScript MD5 ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.MD5
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:28
-- Luau version 6, Types version 3
-- Time taken: 0.014676 seconds

local tbl_upvr_2 = {}
local tbl_upvr = {1732584193, 4023233417, 2562383102, 271733878, 3285377520}
local tbl_upvr_3 = {0, 0, 0, 0, 0, 0, 0, 0, 28, 25, 26, 27, 0, 0, 10, 9, 11, 12, 0, 15, 16, 17, 18, 0, 20, 22, 23, 21}
for i = 1, 64 do
    local math_modf_result1, math_modf_result2 = math.modf(math.abs(math.sin(i)) * 65536)
    tbl_upvr_2[i] = math_modf_result1 * 65536 + math.floor(math_modf_result2 * 65536)
end
local tbl_upvr_4 = {}
local function md5_feed_64_upvr(arg1, arg2, arg3, arg4) -- Line 72, Named "md5_feed_64"
    --[[ Upvalues[3]:
        [1]: tbl_upvr_4 (readonly)
        [2]: tbl_upvr_2 (readonly)
        [3]: tbl_upvr_3 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var33 = tbl_upvr_4
    local var34 = tbl_upvr_2
    local _2 = arg1[2]
    local _3 = arg1[3]
    local _4 = arg1[4]
    local var38
    for i_2 = arg3, arg3 + arg4 - 1, 64 do
        local var39 = i_2
        local var40
        for i_3 = 1, 16 do
            var39 += 4
            var40 = string.byte(arg2, var39 - 3, var39)
            local string_byte_result1, string_byte_result2, string_byte_result3, string_byte_result4 = string.byte(arg2, var39 - 3, var39)
            var33[i_3] = ((string_byte_result4 * 256 + string_byte_result3) * 256 + string_byte_result2) * 256 + string_byte_result1
        end
        local var45 = _2
        local var46 = _3
        string_byte_result1 = _4
        for i_4 = 1, 16 do
            string_byte_result1 = var46
            local var48 = var45
            var45 = bit32.rrotate(bit32.band(var45, var46) + bit32.band(-1 - var45, string_byte_result1) + var38 + var34[i_4] + var33[i_4], 25) + var45
            local var49
        end
        for i_5 = 17, 32 do
            string_byte_result1 = var48
            local var51 = var49
            var49 = bit32.rrotate(bit32.band(string_byte_result1, var49) + bit32.band(-1 - string_byte_result1, var48) + string_byte_result1 + var34[i_5] + var33[(5 * i_5 - 4) % 16 + 1], 27) + var49
            local var52
        end
        for i_6 = 33, 48 do
            string_byte_result1 = var51
            local var54 = var52
            var52 = bit32.rrotate(bit32.bxor(bit32.bxor(var52, var51), string_byte_result1) + string_byte_result1 + var34[i_6] + var33[(3 * i_6 + 2) % 16 + 1], 28) + var52
            local var55
        end
        for i_7 = 49, 64 do
            string_byte_result1 = var54
            local var57
        end
        var38 = (string_byte_result1 + var38) % 4294967296
    end
    arg1[1] = var38
    arg1[2] = (bit32.rrotate(bit32.bxor(var54, bit32.bor(var55, -1 - string_byte_result1)) + string_byte_result1 + var34[i_7] + var33[(i_7 * 7 - 7) % 16 + 1], 26) + var55 + _2) % 4294967296
    arg1[3] = (var55 + _3) % 4294967296
    arg1[4] = (string_byte_result1 + _4) % 4294967296
end
return function(arg1) -- Line 134
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: md5_feed_64_upvr (readonly)
    ]]
    local table_create_result1_upvw = table.create(4)
    table_create_result1_upvw[1] = tbl_upvr[1]
    table_create_result1_upvw[2] = tbl_upvr[2]
    table_create_result1_upvw[3] = tbl_upvr[3]
    table_create_result1_upvw[4] = tbl_upvr[4]
    local var60_upvw = ""
    local var61_upvw = 0
    local function partial_upvr(arg1_2) -- Line 139, Named "partial"
        --[[ Upvalues[5]:
            [1]: var60_upvw (read and write)
            [2]: var61_upvw (read and write)
            [3]: md5_feed_64_upvr (copied, readonly)
            [4]: table_create_result1_upvw (read and write)
            [5]: partial_upvr (readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        if arg1_2 then
            local len = #arg1_2
            if var60_upvw then
                var61_upvw += len
                local var71
                if var60_upvw ~= "" and 64 <= #var60_upvw + len then
                    var71 = 64 - #var60_upvw
                    md5_feed_64_upvr(table_create_result1_upvw, var60_upvw..string.sub(arg1_2, 1, var71), 0, 64)
                    var60_upvw = ""
                end
                local var72 = len - var71
                local var73 = var72 % 64
                md5_feed_64_upvr(table_create_result1_upvw, arg1_2, var71, var72 - var73)
                var60_upvw = var60_upvw..string.sub(arg1_2, len + 1 - var73)
                return partial_upvr
            end
            error("Adding more chunks is not allowed after receiving the result", 2)
        else
            if var60_upvw then
                local table_create_result1 = table.create(3)
                table_create_result1[1] = var60_upvw
                table_create_result1[2] = '\x80'
                table_create_result1[3] = string.rep('\x00', (-9 - var61_upvw) % 64)
                var60_upvw = nil
                var61_upvw *= 8
                for i_8 = 4, 11 do
                    local var75 = var61_upvw % 256
                    table_create_result1[i_8] = string.char(var75)
                    var61_upvw = (var61_upvw - var75) / 256
                    local var76
                end
                local NEVER = table.concat(var76)
                md5_feed_64_upvr(table_create_result1_upvw, NEVER, 0, #NEVER)
                for i_9 = 1, 4 do
                    table_create_result1_upvw[i_9] = string.format("%08x", table_create_result1_upvw[i_9] % 4294967296)
                end
                table_create_result1_upvw = string.gsub(table.concat(table_create_result1_upvw), "(..)(..)(..)(..)", "%4%3%2%1")
            end
            return table_create_result1_upvw
        end
    end
    return partial_upvr(arg1)()
end
ModuleScript Number ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Number
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:30
-- Luau version 6, Types version 3
-- Time taken: 0.006590 seconds

local module = {
    lerp = function(arg1, arg2, arg3) -- Line 46, Named "lerp"
        return arg1 + (arg2 - arg1) * arg3
    end;
    formatDigitLength = function(arg1, arg2) -- Line 70, Named "formatDigitLength"
        local var3
        while #var3 < arg2 do
            var3 = '0'..var3
        end
        return var3
    end;
    roundToNearest = function(arg1, arg2) -- Line 97, Named "roundToNearest"
        local var4 = arg1 + arg2 / 2
        return var4 - var4 % arg2
    end;
}
local table_freeze_result1_upvr = table.freeze({
    N = 1e+30;
    O = 1e+27;
    Sp = 1e+24;
    Sx = 1e+21;
    Qn = 1000000000000000000;
    Qd = 1000000000000000;
    T = 1000000000000;
    B = 1000000000;
    M = 1000000;
    K = 1000;
})
function module.abbreviate(arg1, arg2, arg3) -- Line 131
    --[[ Upvalues[1]:
        [1]: table_freeze_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var14
    if var14 == "boolean" then
    else
    end
    if typeof(arg3) == "number" then
        var14 = arg3
    else
        var14 = 0
    end
    for i, v in table_freeze_result1_upvr do
        local var15
        if v <= arg1 and 0 < v then
            var15 = math.floor(arg1 / v * 10 ^ var14)
            local var16 = 10
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var15 = true
                return v >= arg1
            end
            if not true or INLINED() then
                var15 = false
            end
            var15 = string.format("%."..var14..'f', var15 / var16 ^ var14)
            if var15 then
                var16 = '+'
            else
                var16 = ""
            end
        end
    end
    return var15..i..var16
end
function module.commaSeparate(arg1) -- Line 177
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tostring_result1 = tostring(arg1)
    local var22
    if tostring_result1:sub(1, 1) ~= '-' then
        var22 = false
    else
        var22 = true
        local var23
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var23 = tostring_result1:sub(2)
        return var23
    end
    if not var22 or not INLINED_2() then
        var23 = tostring_result1
    end
    var23 = var23:match("([^%.]*)(%.?.*)")
    local any_match_result1, any_match_result2 = var23:match("([^%.]*)(%.?.*)")
    local len = #any_match_result1
    for i_2 = 1, len do
        if (len - i_2) % 3 == 0 and i_2 < len then
        end
    end
    if any_match_result2 and 0 < #any_match_result2 then
    end
    if var22 then
    else
    end
    return ""..""..string.sub(any_match_result1, i_2, i_2)..','..any_match_result2
end
return module
ModuleScript RobloxGroup ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.RobloxGroup
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:31
-- Luau version 6, Types version 3
-- Time taken: 0.006826 seconds

local module_upvr = {}
local RunService_upvr = game:GetService("RunService")
function module_upvr.isPlayerAboveGroupRank(arg1, arg2, arg3, arg4, arg5) -- Line 37
    --[[ Upvalues[2]:
        [1]: RunService_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 45 start (CF ANALYSIS FAILED)
    local var3 = false
    if typeof(arg1) == "Instance" then
        var3 = arg1:IsA("Player")
    end
    assert(var3, `Player must be a Player instance, received '{typeof(arg1)}'.`)
    if typeof(arg2) ~= "number" then
        var3 = false
    else
        var3 = true
    end
    assert(var3, `minimumGroupRank must be a number, received '{typeof(arg2)}'.`)
    var3 = typeof(arg5)
    if var3 == "number" then
        -- KONSTANTWARNING: GOTO [64] #48
    end
    -- KONSTANTERROR: [0] 1. Error Block 45 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [60] 46. Error Block 52 start (CF ANALYSIS FAILED)
    var3 = game
    local CreatorId = var3.CreatorId
    var3 = typeof(arg2)
    if var3 == "number" then
    else
    end
    var3 = RunService_upvr:IsStudio()
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var3 = typeof(arg3)
        return var3 == "table"
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var3 = arg3[arg1.UserId]
        return var3
    end
    if var3 or INLINED() and INLINED_2() then
        var3 = true
        return var3
    end
    var3 = game.CreatorType
    if var3 == Enum.CreatorType.User then
        if arg1.UserId ~= CreatorId then
            var3 = false
        else
            var3 = true
        end
        return var3
    end
    local var5
    if game.CreatorType == Enum.CreatorType.Group then
        if 254 > (module_upvr.getMemberRank(arg1, CreatorId, arg4) or 0) then
        else
        end
        return true
    end
    do
        return false
    end
    -- KONSTANTERROR: [60] 46. Error Block 52 end (CF ANALYSIS FAILED)
end
function module_upvr.getMemberRank(arg1, arg2, arg3) -- Line 97
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var6_upvw
    if typeof(arg2) == "number" then
        var6_upvw = arg2
    else
        if game.CreatorType ~= Enum.CreatorType.Group then
            warn("Cannot get group rank if experience's creator ID is not that of a group.")
            return nil
        end
        var6_upvw = game.CreatorId
    end
    if typeof(arg3) == "number" then
    else
    end
    repeat
        local xpcall_result1, xpcall_result2 = xpcall(function() -- Line 115
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: var6_upvw (read and write)
            ]]
            return arg1:GetRankInGroup(var6_upvw)
        end, function(arg1_2) -- Line 117
            return arg1_2
        end)
        local var11 = xpcall_result1
        local var12 = xpcall_result2
        if not var11 then
            task.wait(1)
        end
    until var11 and 0 + 1 == 4
    if not var11 then
        warn(`Failed to get group rank for player '{arg1.Name}': {var12}`)
        return nil
    end
    return var12
end
return module_upvr
ModuleScript Stack ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Stack
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:33
-- Luau version 6, Types version 3
-- Time taken: 0.002940 seconds

local module_upvr = {}
function module_upvr.new() -- Line 21
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        first = 1;
        last = 0;
        size = 0;
    }, {
        __index = module_upvr;
    })
end
function module_upvr.pushFirst(arg1, arg2) -- Line 34
    arg1.size += 1
    arg1.first -= 1
    arg1[arg1.first] = arg2
end
function module_upvr.pushLast(arg1, arg2) -- Line 40
    arg1.size += 1
    arg1.last += 1
    arg1[arg1.last] = arg2
end
function module_upvr.popFirst(arg1) -- Line 46
    local first = arg1.first
    if arg1.last < first then return end
    arg1.size -= 1
    arg1[first] = nil
    arg1.first += 1
    return arg1[first]
end
function module_upvr.popLast(arg1) -- Line 60
    local last = arg1.last
    if last < arg1.first then return end
    arg1.size -= 1
    arg1[last] = nil
    arg1.last -= 1
    return arg1[last]
end
function module_upvr.peekFirst(arg1) -- Line 74
    return arg1[arg1.first]
end
function module_upvr.peekLast(arg1) -- Line 78
    return arg1[arg1.last]
end
module_upvr.peek = module_upvr.peekFirst
module_upvr.push = module_upvr.pushFirst
module_upvr.pop = module_upvr.popFirst
return module_upvr
ModuleScript Table ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Table
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:35
-- Luau version 6, Types version 3
-- Time taken: 0.004723 seconds

local module_upvr = {
    construct = function(arg1) -- Line 28, Named "construct"
        return arg1()
    end;
}
function module_upvr.deepFreeze(arg1) -- Line 49
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var6
    if type(arg1) ~= "table" then
        var6 = false
    else
        var6 = true
    end
    assert(var6, "First argument expected to be type of table")
    var6 = arg1
    table.freeze(var6)
    var6 = nil
    for _, v in arg1, var6 do
        if typeof(v) == "table" then
            module_upvr.deepFreeze(v)
        end
    end
end
function module_upvr.deepClone(arg1) -- Line 80
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var11
    if type(arg1) ~= "table" then
        var11 = false
    else
        var11 = true
    end
    assert(var11, "First argument expected to be type of table")
    var11 = arg1
    var11 = arg1
    for i_2, v_2 in var11 do
        if typeof(v_2) == "table" then
            table.clone(var11)[i_2] = module_upvr.deepClone(v_2)
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return table.clone(var11)
end
function module_upvr.merge(arg1, arg2) -- Line 114
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var16
    if type(arg1) ~= "table" then
        var16 = false
    else
        var16 = true
    end
    assert(var16, "First argument expected to be type of table")
    if type(arg2) ~= "table" then
        var16 = false
    else
        var16 = true
    end
    assert(var16, "Second argument expected to be type of table")
    var16 = module_upvr
    var16 = arg1
    var16 = arg2
    for i_3, v_3 in var16 do
        if typeof(v_3) == "table" then
            var16.deepClone(var16)[i_3] = module_upvr.deepClone(v_3)
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            var16.deepClone(var16)[i_3] = v_3
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return var16.deepClone(var16)
end
function module_upvr.getRandomDictionaryEntry(arg1) -- Line 145
    local tbl = {}
    for i_4 in arg1 do
        table.insert(tbl, i_4)
    end
    local var20 = tbl[math.random(#tbl)]
    return {
        Key = var20;
        Value = arg1[var20];
    }
end
return module_upvr
ModuleScript Time ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Time
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:36
-- Luau version 6, Types version 3
-- Time taken: 0.002324 seconds

return {
    formatToRaceTimer = function(arg1) -- Line 25, Named "formatToRaceTimer"
        local var2 = (arg1 - arg1 % 60) / 60
        return string.format("%02i:%02i.%02i", var2 - (var2 - var2 % 60) / 60 * 60, arg1 - var2 * 60, arg1 * 100 % 100)
    end;
    formatToRaceTimerDetailed = function(arg1) -- Line 52, Named "formatToRaceTimerDetailed"
        local var3 = (arg1 - arg1 % 60) / 60
        return string.format("%02i:%02i.%03i", var3 - (var3 - var3 % 60) / 60 * 60, arg1 - var3 * 60, arg1 * 1000 % 1000)
    end;
    formatToCountdownTimer = function(arg1) -- Line 77, Named "formatToCountdownTimer"
        local rounded = math.round(arg1)
        local var5 = (arg1 - rounded % 60) / 60
        local var6 = (var5 - var5 % 60) / 60
        return string.format("%02i:%02i:%02i", var6, var5 - var6 * 60, rounded - var5 * 60)
    end;
    getFormattedTimeOfDay = function(arg1) -- Line 102, Named "getFormattedTimeOfDay"
        local var7 = arg1
        if not var7 then
            var7 = DateTime.now().UnixTimestamp
        end
        return os.date("%X", var7)
    end;
    formatSecondsToMinutesAndSeconds = function(arg1) -- Line 124, Named "formatSecondsToMinutesAndSeconds"
        return string.format("%02d:%02d", math.floor(arg1 % 3600 / 60), math.floor(arg1 % 60))
    end;
}
ModuleScript Vector ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.Vector
KONSTANTERROR: After: K:0: attempt to index nil with 'debug_name'
K
K
K
K
K
K
K
ModuleScript fzy ReplicatedStorage.PopupShop.Packages._Index.dubit_dubit-utils@0.0.13.dubit-utils.fzy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:41
-- Luau version 6, Types version 3
-- Time taken: 0.009562 seconds

local module_upvr = {
    hasMatch = function(arg1, arg2, arg3) -- Line 36, Named "hasMatch"
        if not arg3 then
            local string_lower_result1 = string.lower(arg1)
        end
        for i = 1, string.len(string_lower_result1) do
            if not string.find(string.lower(arg2), string_lower_result1:sub(i, i), 1, true) then
                return false
            end
        end
        return true
    end;
}
local function _(arg1) -- Line 55, Named "isLower"
    return arg1:match("%l")
end
local function _(arg1) -- Line 59, Named "isUpper"
    return arg1:match("%u")
end
local function precomputeBonus_upvr(arg1) -- Line 63, Named "precomputeBonus"
    local const_string = '/'
    for i_2 = 1, string.len(arg1) do
        if const_string == '/' or const_string == '\\' then
            ({})[i_2] = 0.9
        elseif const_string == '-' or const_string == '_' or const_string == ' ' then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i_2] = 0.8
        elseif const_string == '.' then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i_2] = 0.6
        elseif const_string:match("%l") and arg1:sub(i_2, i_2):match("%u") then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i_2] = 0.7
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[i_2] = 0
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
local function compute_upvr(arg1, arg2, arg3, arg4, arg5) -- Line 87, Named "compute"
    --[[ Upvalues[1]:
        [1]: precomputeBonus_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local string_len_result1_4 = string.len(arg1)
    local string_len_result1_3 = string.len(arg2)
    local var22
    if not arg5 then
        var22 = string.lower(var22)
    end
    for i_3 = 1, string_len_result1_3 do
        ({})[i_3] = var22:sub(i_3, i_3)
        local var23
    end
    for i_4 = 1, string_len_result1_4 do
        arg3[i_4] = {}
        arg4[i_4] = {}
        local var24
        if i_4 == string_len_result1_4 then
            var24 = -0.005
        else
            var24 = -0.01
        end
        for i_5 = 1, string_len_result1_3 do
            if string.lower(arg1):sub(i_4, i_4) == var23[i_5] then
                local var25 = (-math.huge)
                if i_4 == 1 then
                    var25 = (i_5 - 1) * -0.005 + precomputeBonus_upvr(arg2)[i_5]
                elseif 1 < i_5 then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    var25 = math.max(arg4[i_4 - 1][i_5 - 1] + precomputeBonus_upvr(arg2)[i_5], arg3[i_4 - 1][i_5 - 1] + 1)
                end
                arg3[i_4][i_5] = var25
                arg4[i_4][i_5] = math.max(var25, (-math.huge) + var24)
            else
                arg3[i_4][i_5] = (-math.huge)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                arg4[i_4][i_5] = math.max(var25, (-math.huge) + var24) + var24
            end
        end
    end
end
function module_upvr.score(arg1, arg2, arg3) -- Line 148
    --[[ Upvalues[1]:
        [1]: compute_upvr (readonly)
    ]]
    local string_len_result1 = string.len(arg1)
    local string_len_result1_2 = string.len(arg2)
    if string_len_result1 == 0 or string_len_result1_2 == 0 or 1024 < string_len_result1_2 or string_len_result1_2 < string_len_result1 then
        return (-math.huge)
    end
    if string_len_result1 == string_len_result1_2 then
        return math.huge
    end
    local module = {}
    compute_upvr(arg1, arg2, {}, module, arg3)
    return module[string_len_result1][string_len_result1_2]
end
function module_upvr.positions(arg1, arg2, arg3) -- Line 179
    --[[ Upvalues[1]:
        [1]: compute_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 37 start (CF ANALYSIS FAILED)
    local string_len_result1_5 = string.len(arg1)
    local string_len_result1_6 = string.len(arg2)
    if string_len_result1_5 == 0 or string_len_result1_6 == 0 or 1024 < string_len_result1_6 or string_len_result1_6 < string_len_result1_5 then
        return {}, (-math.huge)
    end
    if string_len_result1_5 == string_len_result1_6 then
        for i_6 = 1, string_len_result1_5 do
            ({})[i_6] = i_6
            local var34
        end
        return var34, math.huge
    end
    compute_upvr(arg1, arg2, {}, {}, arg3)
    -- KONSTANTERROR: [0] 1. Error Block 37 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [90] 73. Error Block 30 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [90] 73. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [92] 75. Error Block 26 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [92] 75. Error Block 26 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [55] 44. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [92.13]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [92.461394]
    -- KONSTANTERROR: [55] 44. Error Block 12 end (CF ANALYSIS FAILED)
end
function module_upvr.filter(arg1, arg2, arg3) -- Line 227
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    for i_7, v in ipairs(arg2) do
        if module_upvr.hasMatch(arg1, v, arg3) then
            local any_positions_result1, any_positions_result2 = module_upvr.positions(arg1, v, arg3)
            table.insert({}, {i_7, any_positions_result1, any_positions_result2})
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
function module_upvr.getScoreMin() -- Line 247
    return (-math.huge)
end
function module_upvr.getScoreMax() -- Line 252
    return math.huge
end
function module_upvr.getMaxLength() -- Line 257
    return 1024
end
function module_upvr.getScoreFloor() -- Line 265
    return -10.24
end
function module_upvr.getScoreCeiling() -- Line 273
    return 1024
end
return module_upvr
ModuleScript promise ReplicatedStorage.PopupShop.Packages._Index.evaera_promise@4.0.0.promise
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:43
-- Luau version 6, Types version 3
-- Time taken: 0.084184 seconds

local tbl_6_upvr = {
    __mode = 'k';
}
local function _(arg1) -- Line 10, Named "isCallable"
    if type(arg1) == "function" then
        return true
    end
    if type(arg1) == "table" then
        local getmetatable_result1_11 = getmetatable(arg1)
        if getmetatable_result1_11 and type(rawget(getmetatable_result1_11, "__call")) == "function" then
            return true
        end
    end
    return false
end
local function makeEnum(arg1, arg2) -- Line 28
    local module_7 = {}
    for _, v in ipairs(arg2) do
        module_7[v] = v
    end
    return setmetatable(module_7, {
        __index = function(arg1_2, arg2_2) -- Line 36, Named "__index"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("%s is not in %s!", arg2_2, arg1), 2)
        end;
        __newindex = function() -- Line 39, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            error(string.format("Creating new members in %s is not allowed!", arg1), 2)
        end;
    })
end
local var15_upvw = {
    Kind = makeEnum("Promise.Error.Kind", {"ExecutionError", "AlreadyCancelled", "NotResolvedInTime", "TimedOut"});
}
var15_upvw.__index = var15_upvw
local function new(arg1, arg2) -- Line 64
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    local var16 = arg1
    if not var16 then
        var16 = {}
    end
    local var17 = var16
    local module_8 = {
        error = tostring(var17.error) or "[This error has no error text.]";
        trace = var17.trace;
        context = var17.context;
        kind = var17.kind;
    }
    module_8.parent = arg2
    module_8.createdTick = os.clock()
    module_8.createdTrace = debug.traceback()
    return setmetatable(module_8, var15_upvw)
end
var15_upvw.new = new
local function is(arg1) -- Line 77
    if type(arg1) == "table" then
        local getmetatable_result1_3 = getmetatable(arg1)
        if type(getmetatable_result1_3) == "table" then
            local var22 = false
            if rawget(arg1, "error") ~= nil then
                if type(rawget(getmetatable_result1_3, "extend")) ~= "function" then
                    var22 = false
                else
                    var22 = true
                end
            end
            return var22
        end
    end
    return false
end
var15_upvw.is = is
function var15_upvw.isKind(arg1, arg2) -- Line 89
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    if arg2 == nil then
    else
    end
    assert(true, "Argument #2 to Promise.Error.isKind must not be nil")
    if var15_upvw.is(arg1) then
        if arg1.kind ~= arg2 then
        else
        end
    end
    return true
end
function var15_upvw.extend(arg1, arg2) -- Line 95
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    local var23 = arg2
    if not var23 then
        var23 = {}
    end
    local var24 = var23
    var23 = var24.kind
    local var25 = var23
    if not var25 then
        var25 = arg1.kind
    end
    var24.kind = var25
    return var15_upvw.new(var24, arg1)
end
function var15_upvw.getErrorChain(arg1) -- Line 103
    local module_2 = {}
    module_2[1] = arg1
    while module_2[#module_2].parent do
        table.insert(module_2, module_2[#module_2].parent)
    end
    return module_2
end
local function __tostring(arg1) -- Line 113
    local module_10 = {string.format("-- Promise.Error(%s) --", arg1.kind or '?')}
    for _, v_2 in ipairs(arg1:getErrorChain()) do
        local tbl = {}
        local trace = v_2.trace
        if not trace then
            trace = v_2.error
        end
        tbl[1] = trace
        tbl[2] = v_2.context
        table.insert(module_10, table.concat(tbl, '\n'))
    end
    return table.concat(module_10, '\n')
end
var15_upvw.__tostring = __tostring
local function pack_upvr(...) -- Line 137, Named "pack"
    return select('#', ...), {...}
end
local function packResult_upvr(arg1, ...) -- Line 144, Named "packResult"
    return arg1, select('#', ...), {...}
end
local function _(arg1) -- Line 148, Named "makeErrorHandler"
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    if arg1 == nil then
    else
    end
    assert(true, "traceback is nil")
    return function(arg1_3) -- Line 151
        --[[ Upvalues[2]:
            [1]: var15_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_3) == "table" then
            return arg1_3
        end
        local module_11 = {}
        module_11.error = arg1_3
        module_11.kind = var15_upvw.Kind.ExecutionError
        module_11.trace = debug.traceback(tostring(arg1_3), 2)
        module_11.context = "Promise created at:\n\n"..arg1
        return var15_upvw.new(module_11)
    end
end
local function runExecutor_upvr(arg1, arg2, ...) -- Line 171, Named "runExecutor"
    --[[ Upvalues[2]:
        [1]: packResult_upvr (readonly)
        [2]: var15_upvw (read and write)
    ]]
    local var41
    if arg1 == nil then
        var41 = false
    else
        var41 = true
    end
    assert(var41, "traceback is nil")
    return packResult_upvr(xpcall(arg2, function(arg1_4) -- Line 151
        --[[ Upvalues[2]:
            [1]: var15_upvw (copied, read and write)
            [2]: arg1 (readonly)
        ]]
        if type(arg1_4) == "table" then
            return arg1_4
        end
        local module_3 = {}
        module_3.error = arg1_4
        module_3.kind = var15_upvw.Kind.ExecutionError
        module_3.trace = debug.traceback(tostring(arg1_4), 2)
        module_3.context = "Promise created at:\n\n"..arg1
        return var15_upvw.new(module_3)
    end, ...))
end
local function _(arg1, arg2, arg3, arg4) -- Line 179, Named "createAdvancer"
    --[[ Upvalues[1]:
        [1]: runExecutor_upvr (readonly)
    ]]
    return function(...) -- Line 180
        --[[ Upvalues[5]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
            [4]: arg3 (readonly)
            [5]: arg4 (readonly)
        ]]
        local runExecutor_upvr_result1_4, runExecutor_upvr_result2, runExecutor_upvr_result3 = runExecutor_upvr(arg1, arg2, ...)
        if runExecutor_upvr_result1_4 then
            arg3(unpack(runExecutor_upvr_result3, 1, runExecutor_upvr_result2))
        else
            arg4(runExecutor_upvr_result3[1])
        end
    end
end
local function _(arg1) -- Line 191, Named "isEmpty"
    local var48
    if next(arg1) ~= nil then
        var48 = false
    else
        var48 = true
    end
    return var48
end
local module_4_upvr = {
    Error = var15_upvw;
    Status = makeEnum("Promise.Status", {"Started", "Resolved", "Rejected", "Cancelled"});
    _getTime = os.clock;
    _timeEvent = game:GetService("RunService").Heartbeat;
    _unhandledRejectionCallbacks = {};
    prototype = {};
    __index = module_4_upvr.prototype;
}
function module_4_upvr._new(arg1, arg2, arg3) -- Line 230
    --[[ Upvalues[3]:
        [1]: module_4_upvr (readonly)
        [2]: tbl_6_upvr (readonly)
        [3]: runExecutor_upvr (readonly)
    ]]
    if arg3 ~= nil and not module_4_upvr.is(arg3) then
        error("Argument #2 to Promise.new must be a promise or nil", 2)
    end
    local module_5_upvr = {
        _thread = nil;
    }
    module_5_upvr._source = arg1
    module_5_upvr._status = module_4_upvr.Status.Started
    module_5_upvr._values = nil
    module_5_upvr._valuesLength = -1
    module_5_upvr._unhandledRejection = true
    module_5_upvr._queuedResolve = {}
    module_5_upvr._queuedReject = {}
    module_5_upvr._queuedFinally = {}
    module_5_upvr._cancellationHook = nil
    module_5_upvr._parent = arg3
    module_5_upvr._consumers = setmetatable({}, tbl_6_upvr)
    if arg3 and arg3._status == module_4_upvr.Status.Started then
        arg3._consumers[module_5_upvr] = true
    end
    setmetatable(module_5_upvr, module_4_upvr)
    local function resolve(...) -- Line 278
        --[[ Upvalues[1]:
            [1]: module_5_upvr (readonly)
        ]]
        module_5_upvr:_resolve(...)
    end
    local function reject(...) -- Line 282
        --[[ Upvalues[1]:
            [1]: module_5_upvr (readonly)
        ]]
        module_5_upvr:_reject(...)
    end
    local function onCancel_upvr(arg1_5) -- Line 286, Named "onCancel"
        --[[ Upvalues[2]:
            [1]: module_5_upvr (readonly)
            [2]: module_4_upvr (copied, readonly)
        ]]
        if arg1_5 then
            if module_5_upvr._status == module_4_upvr.Status.Cancelled then
                arg1_5()
            else
                module_5_upvr._cancellationHook = arg1_5
            end
        end
        if module_5_upvr._status ~= module_4_upvr.Status.Cancelled then
        else
        end
        return true
    end
    module_5_upvr._thread = coroutine.create(function() -- Line 298
        --[[ Upvalues[6]:
            [1]: runExecutor_upvr (copied, readonly)
            [2]: module_5_upvr (readonly)
            [3]: arg2 (readonly)
            [4]: resolve (readonly)
            [5]: reject (readonly)
            [6]: onCancel_upvr (readonly)
        ]]
        local runExecutor_result1, _, runExecutor_upvr_result3_5 = runExecutor_upvr(module_5_upvr._source, arg2, resolve, reject, onCancel_upvr)
        if not runExecutor_result1 then
            reject(runExecutor_upvr_result3_5[1])
        end
    end)
    task.spawn(module_5_upvr._thread)
    return module_5_upvr
end
function module_4_upvr.new(arg1) -- Line 349
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    return module_4_upvr._new(debug.traceback(nil, 2), arg1)
end
function module_4_upvr.__tostring(arg1) -- Line 353
    return string.format("Promise(%s)", arg1._status)
end
function module_4_upvr.defer(arg1) -- Line 375
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    local call_stack_3_upvr = debug.traceback(nil, 2)
    return module_4_upvr._new(call_stack_3_upvr, function(arg1_6, arg2, arg3) -- Line 378
        --[[ Upvalues[4]:
            [1]: module_4_upvr (copied, readonly)
            [2]: runExecutor_upvr (copied, readonly)
            [3]: call_stack_3_upvr (readonly)
            [4]: arg1 (readonly)
        ]]
        local var59_upvw
        var59_upvw = module_4_upvr._timeEvent:Connect(function() -- Line 380
            --[[ Upvalues[7]:
                [1]: var59_upvw (read and write)
                [2]: runExecutor_upvr (copied, readonly)
                [3]: call_stack_3_upvr (copied, readonly)
                [4]: arg1 (copied, readonly)
                [5]: arg1_6 (readonly)
                [6]: arg2 (readonly)
                [7]: arg3 (readonly)
            ]]
            var59_upvw:Disconnect()
            local runExecutor_upvr_result1, _, runExecutor_upvr_result3_2 = runExecutor_upvr(call_stack_3_upvr, arg1, arg1_6, arg2, arg3)
            if not runExecutor_upvr_result1 then
                arg2(runExecutor_upvr_result3_2[1])
            end
        end)
    end)
end
module_4_upvr.async = module_4_upvr.defer
function module_4_upvr.resolve(...) -- Line 418
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_4_upvr (readonly)
    ]]
    local pack_result1_upvr_3, pack_result2_upvr = pack_upvr(...)
    return module_4_upvr._new(debug.traceback(nil, 2), function(arg1) -- Line 420
        --[[ Upvalues[2]:
            [1]: pack_result2_upvr (readonly)
            [2]: pack_result1_upvr_3 (readonly)
        ]]
        arg1(unpack(pack_result2_upvr, 1, pack_result1_upvr_3))
    end)
end
function module_4_upvr.reject(...) -- Line 435
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_4_upvr (readonly)
    ]]
    local pack_result1_3_upvr, pack_result2_3_upvr = pack_upvr(...)
    return module_4_upvr._new(debug.traceback(nil, 2), function(arg1, arg2) -- Line 437
        --[[ Upvalues[2]:
            [1]: pack_result2_3_upvr (readonly)
            [2]: pack_result1_3_upvr (readonly)
        ]]
        arg2(unpack(pack_result2_3_upvr, 1, pack_result1_3_upvr))
    end)
end
function module_4_upvr._try(arg1, arg2, ...) -- Line 446
    --[[ Upvalues[2]:
        [1]: pack_upvr (readonly)
        [2]: module_4_upvr (readonly)
    ]]
    local pack_result1_2_upvr, pack_result2_4_upvr = pack_upvr(...)
    return module_4_upvr._new(arg1, function(arg1_7) -- Line 449
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: pack_result2_4_upvr (readonly)
            [3]: pack_result1_2_upvr (readonly)
        ]]
        arg1_7(arg2(unpack(pack_result2_4_upvr, 1, pack_result1_2_upvr)))
    end)
end
function module_4_upvr.try(arg1, ...) -- Line 477
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    return module_4_upvr._try(debug.traceback(nil, 2), arg1, ...)
end
function module_4_upvr._all(arg1, arg2, arg3) -- Line 486
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    if type(arg2) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.all"), 3)
    end
    for i_3, v_3 in pairs(arg2) do
        if not module_4_upvr.is(v_3) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.all", tostring(i_3)), 3)
        end
    end
    if #arg2 == 0 or arg3 == 0 then
        return module_4_upvr.resolve({})
    end
    return module_4_upvr._new(arg1, function(arg1_8, arg2_3, arg3_2) -- Line 504
        --[[ Upvalues[2]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
        ]]
        local tbl_7_upvr = {}
        local var87_upvw = 0
        local var88_upvw = false
        local function cancel() -- Line 515
            --[[ Upvalues[1]:
                [1]: tbl_7_upvr (readonly)
            ]]
            for _, v_4 in ipairs(tbl_7_upvr) do
                v_4:cancel()
            end
        end
        local var94_upvw = 0
        local tbl_5_upvr = {}
        local function resolveOne(arg1_9, ...) -- Line 522
            --[[ Upvalues[7]:
                [1]: var88_upvw (read and write)
                [2]: var94_upvw (read and write)
                [3]: arg3 (copied, readonly)
                [4]: tbl_5_upvr (readonly)
                [5]: arg2 (copied, readonly)
                [6]: arg1_8 (readonly)
                [7]: tbl_7_upvr (readonly)
            ]]
            if var88_upvw then
            else
                var94_upvw += 1
                if arg3 == nil then
                    tbl_5_upvr[arg1_9] = ...
                else
                    tbl_5_upvr[var94_upvw] = ...
                end
                local var100 = arg3
                if not var100 then
                    var100 = #arg2
                end
                if var100 <= var94_upvw then
                    var88_upvw = true
                    arg1_8(tbl_5_upvr)
                    for _, v_16 in ipairs(tbl_7_upvr) do
                        v_16:cancel()
                    end
                end
            end
        end
        arg3_2(cancel)
        for i_5_upvr, v_5 in ipairs(arg2) do
            tbl_7_upvr[i_5_upvr] = v_5:andThen(function(...) -- Line 547
                --[[ Upvalues[2]:
                    [1]: resolveOne (readonly)
                    [2]: i_5_upvr (readonly)
                ]]
                resolveOne(i_5_upvr, ...)
            end, function(...) -- Line 549
                --[[ Upvalues[6]:
                    [1]: var87_upvw (read and write)
                    [2]: arg3 (copied, readonly)
                    [3]: arg2 (copied, readonly)
                    [4]: tbl_7_upvr (readonly)
                    [5]: var88_upvw (read and write)
                    [6]: arg2_3 (readonly)
                ]]
                var87_upvw += 1
                if arg3 == nil or #arg2 - var87_upvw < arg3 then
                    for _, v_6 in ipairs(tbl_7_upvr) do
                        v_6:cancel()
                    end
                    var88_upvw = true
                    arg2_3(...)
                end
            end)
        end
        if var88_upvw then
            for _, v_7 in ipairs(tbl_7_upvr) do
                v_7:cancel()
            end
        end
    end)
end
function module_4_upvr.all(arg1) -- Line 591
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    return module_4_upvr._all(debug.traceback(nil, 2), arg1)
end
function module_4_upvr.fold(arg1, arg2, arg3) -- Line 620
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 20 start (CF ANALYSIS FAILED)
    local var123
    if type(arg1) ~= "table" then
        var123 = false
    else
        var123 = true
    end
    assert(var123, "Bad argument #1 to Promise.fold: must be a table")
    -- KONSTANTERROR: [0] 1. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [24] 19. Error Block 16 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [24] 19. Error Block 16 end (CF ANALYSIS FAILED)
end
function module_4_upvr.some(arg1, arg2) -- Line 653
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var124
    if type(arg2) ~= "number" then
        var124 = false
    else
        var124 = true
    end
    assert(var124, "Bad argument #2 to Promise.some: must be a number")
    var124 = module_4_upvr
    var124 = debug.traceback(nil, 2)
    return var124._all(var124, arg1, arg2)
end
function module_4_upvr.any(arg1) -- Line 677
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    return module_4_upvr._all(debug.traceback(nil, 2), arg1, 1):andThen(function(arg1_12) -- Line 678
        return arg1_12[1]
    end)
end
function module_4_upvr.allSettled(arg1) -- Line 699
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    if type(arg1) ~= "table" then
        error(string.format("Please pass a list of promises to %s", "Promise.allSettled"), 2)
    end
    for i_8, v_8 in pairs(arg1) do
        if not module_4_upvr.is(v_8) then
            error(string.format("Non-promise value passed into %s at index %s", "Promise.allSettled", tostring(i_8)), 2)
        end
    end
    if #arg1 == 0 then
        return module_4_upvr.resolve({})
    end
    return module_4_upvr._new(debug.traceback(nil, 2), function(arg1_13, arg2, arg3) -- Line 717
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_upvr_2 = {}
        local var137_upvw = 0
        local tbl_upvr = {}
        local function resolveOne_upvr(arg1_14, ...) -- Line 727, Named "resolveOne"
            --[[ Upvalues[4]:
                [1]: var137_upvw (read and write)
                [2]: tbl_upvr (readonly)
                [3]: arg1 (copied, readonly)
                [4]: arg1_13 (readonly)
            ]]
            var137_upvw += 1
            tbl_upvr[arg1_14] = ...
            if #arg1 <= var137_upvw then
                arg1_13(tbl_upvr)
            end
        end
        arg3(function() -- Line 737
            --[[ Upvalues[1]:
                [1]: tbl_upvr_2 (readonly)
            ]]
            for _, v_9 in ipairs(tbl_upvr_2) do
                v_9:cancel()
            end
        end)
        for i_10_upvr, v_10 in ipairs(arg1) do
            tbl_upvr_2[i_10_upvr] = v_10:finally(function(...) -- Line 746
                --[[ Upvalues[2]:
                    [1]: resolveOne_upvr (readonly)
                    [2]: i_10_upvr (readonly)
                ]]
                resolveOne_upvr(i_10_upvr, ...)
            end)
        end
    end)
end
function module_4_upvr.race(arg1) -- Line 777
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var153
    if type(arg1) ~= "table" then
        var153 = false
    else
        var153 = true
    end
    assert(var153, string.format("Please pass a list of promises to %s", "Promise.race"))
    var153 = arg1
    local pairs_result1, pairs_result2, pairs_result3_3 = pairs(var153)
    for i_11, v_11 in pairs_result1, pairs_result2, pairs_result3_3 do
        assert(module_4_upvr.is(v_11), string.format("Non-promise value passed into %s at index %s", "Promise.race", tostring(i_11)))
    end
    pairs_result2 = module_4_upvr
    pairs_result2 = debug.traceback(nil, 2)
    return pairs_result2._new(pairs_result2, function(arg1_15, arg2, arg3) -- Line 784
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local tbl_8_upvr = {}
        local var167_upvw = false
        local function cancel() -- Line 788
            --[[ Upvalues[1]:
                [1]: tbl_8_upvr (readonly)
            ]]
            for _, v_12 in ipairs(tbl_8_upvr) do
                v_12:cancel()
            end
        end
        local function _(arg1_16) -- Line 794, Named "finalize"
            --[[ Upvalues[2]:
                [1]: tbl_8_upvr (readonly)
                [2]: var167_upvw (read and write)
            ]]
            return function(...) -- Line 795
                --[[ Upvalues[3]:
                    [1]: tbl_8_upvr (copied, readonly)
                    [2]: var167_upvw (copied, read and write)
                    [3]: arg1_16 (readonly)
                ]]
                for _, v_13 in ipairs(tbl_8_upvr) do
                    v_13:cancel()
                end
                var167_upvw = true
                return arg1_16(...)
            end
        end
        if arg3(function(...) -- Line 795
            --[[ Upvalues[3]:
                [1]: tbl_8_upvr (readonly)
                [2]: var167_upvw (read and write)
                [3]: arg2 (readonly)
            ]]
            for _, v_14 in ipairs(tbl_8_upvr) do
                v_14:cancel()
            end
            var167_upvw = true
            return arg2(...)
        end) then
        else
            for i_17, v_17 in ipairs(arg1) do
                tbl_8_upvr[i_17] = v_17:andThen(function(...) -- Line 795
                    --[[ Upvalues[3]:
                        [1]: tbl_8_upvr (readonly)
                        [2]: var167_upvw (read and write)
                        [3]: arg1_15 (readonly)
                    ]]
                    for _, v_18 in ipairs(tbl_8_upvr) do
                        v_18:cancel()
                    end
                    var167_upvw = true
                    return arg1_15(...)
                end, function(...) -- Line 795
                    --[[ Upvalues[3]:
                        [1]: tbl_8_upvr (readonly)
                        [2]: var167_upvw (read and write)
                        [3]: arg2 (readonly)
                    ]]
                    for _, v_19 in ipairs(tbl_8_upvr) do
                        v_19:cancel()
                    end
                    var167_upvw = true
                    return arg2(...)
                end)
            end
            if var167_upvw then
                for _, v_20 in ipairs(tbl_8_upvr) do
                    v_20:cancel()
                end
            end
        end
    end)
end
function module_4_upvr.each(arg1, arg2) -- Line 872
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: var15_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 20 start (CF ANALYSIS FAILED)
    local var310
    if type(arg1) ~= "table" then
        var310 = false
    else
        var310 = true
    end
    assert(var310, string.format("Please pass a list of promises to %s", "Promise.each"))
    -- KONSTANTERROR: [0] 1. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [27] 22. Error Block 16 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [27] 22. Error Block 16 end (CF ANALYSIS FAILED)
end
function module_4_upvr.is(arg1) -- Line 971
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 2 start (CF ANALYSIS FAILED)
    do
        return false
    end
    -- KONSTANTERROR: [7] 6. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 3 end (CF ANALYSIS FAILED)
end
function module_4_upvr.promisify(arg1) -- Line 1020
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    return function(...) -- Line 1021
        --[[ Upvalues[2]:
            [1]: module_4_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        return module_4_upvr._try(debug.traceback(nil, 2), arg1, ...)
    end
end
local var312_upvw
local var313_upvw
function module_4_upvr.delay(arg1) -- Line 1051
    --[[ Upvalues[3]:
        [1]: module_4_upvr (readonly)
        [2]: var312_upvw (read and write)
        [3]: var313_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var314
    if type(arg1) ~= "number" then
        var314 = false
    else
        var314 = true
    end
    assert(var314, "Bad argument #1 to Promise.delay, must be a number.")
    if (1/60) > arg1 or arg1 == math.huge then
    end
    var314 = module_4_upvr
    var314 = debug.traceback(nil, 2)
    local const_number_upvw = (1/60)
    return var314._new(var314, function(arg1_18, arg2, arg3) -- Line 1059
        --[[ Upvalues[4]:
            [1]: module_4_upvr (copied, readonly)
            [2]: const_number_upvw (read and write)
            [3]: var312_upvw (copied, read and write)
            [4]: var313_upvw (copied, read and write)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 29 start (CF ANALYSIS FAILED)
        local any__getTime_result1 = module_4_upvr._getTime()
        local var318 = any__getTime_result1 + const_number_upvw
        local tbl_11_upvr = {}
        tbl_11_upvr.resolve = arg1_18
        tbl_11_upvr.startTime = any__getTime_result1
        tbl_11_upvr.endTime = var318
        if var312_upvw == nil then
            var313_upvw = tbl_11_upvr
            var312_upvw = module_4_upvr._timeEvent:Connect(function() -- Line 1071
                --[[ Upvalues[3]:
                    [1]: module_4_upvr (copied, readonly)
                    [2]: var313_upvw (copied, read and write)
                    [3]: var312_upvw (copied, read and write)
                ]]
                while var313_upvw ~= nil and var313_upvw.endTime < module_4_upvr._getTime() do
                    local var321 = var313_upvw
                    var313_upvw = var321.next
                    if var313_upvw == nil then
                        var312_upvw:Disconnect()
                        var312_upvw = nil
                    else
                        var313_upvw.previous = nil
                    end
                    var321.resolve(module_4_upvr._getTime() - var321.startTime)
                end
            end)
        else
            local var322
            if var313_upvw.endTime < var318 then
                local next_3 = var313_upvw.next
                while next_3 ~= nil and next_3.endTime < var318 do
                    local var324 = next_3
                    local next = var324.next
                end
                var324.next = tbl_11_upvr
                tbl_11_upvr.previous = var324
                if next ~= nil then
                    tbl_11_upvr.next = next
                    next.previous = tbl_11_upvr
                    -- KONSTANTWARNING: GOTO [65] #45
                end
            else
                tbl_11_upvr.next = var313_upvw
                var313_upvw.previous = tbl_11_upvr
                var313_upvw = tbl_11_upvr
            end
        end
        -- KONSTANTERROR: [0] 1. Error Block 29 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [65] 45. Error Block 14 start (CF ANALYSIS FAILED)
        arg3(function() -- Line 1116
            --[[ Upvalues[3]:
                [1]: tbl_11_upvr (readonly)
                [2]: var313_upvw (copied, read and write)
                [3]: var312_upvw (copied, read and write)
            ]]
            local next_2 = tbl_11_upvr.next
            if var313_upvw == tbl_11_upvr then
                if next_2 == nil then
                    var312_upvw:Disconnect()
                    var312_upvw = nil
                else
                    next_2.previous = nil
                end
                var313_upvw = next_2
            else
                local previous = tbl_11_upvr.previous
                previous.next = next_2
                if next_2 ~= nil then
                    next_2.previous = previous
                end
            end
        end)
        -- KONSTANTERROR: [65] 45. Error Block 14 end (CF ANALYSIS FAILED)
    end)
end
module_4_upvr.prototype.timeout = function(arg1, arg2, arg3) -- Line 1180, Named "timeout"
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: var15_upvw (read and write)
    ]]
    local module_6 = {}
    local call_stack_2_upvr = debug.traceback(nil, 2)
    module_6[1] = module_4_upvr.delay(arg2):andThen(function() -- Line 1184
        --[[ Upvalues[5]:
            [1]: module_4_upvr (copied, readonly)
            [2]: arg3 (readonly)
            [3]: var15_upvw (copied, read and write)
            [4]: arg2 (readonly)
            [5]: call_stack_2_upvr (readonly)
        ]]
        local var332
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var332 = var332(tbl_3)
            tbl_3.context = string.format("Timeout of %d seconds exceeded.\n:timeout() called at:\n\n%s", arg2, call_stack_2_upvr)
            tbl_3.error = "Timed out"
            tbl_3.kind = var15_upvw.Kind.TimedOut
            local tbl_3 = {}
            var332 = var15_upvw.new
            return var332
        end
        if arg3 ~= nil or not INLINED() then
            var332 = arg3
        end
        return module_4_upvr.reject(var332)
    end)
    module_6[2] = arg1
    return module_4_upvr.race(module_6)
end
module_4_upvr.prototype.getStatus = function(arg1) -- Line 1204, Named "getStatus"
    return arg1._status
end
module_4_upvr.prototype._andThen = function(arg1, arg2, arg3, arg4) -- Line 1213, Named "_andThen"
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: runExecutor_upvr (readonly)
    ]]
    arg1._unhandledRejection = false
    if arg1._status == module_4_upvr.Status.Cancelled then
        local any_new_result1 = module_4_upvr.new(function() -- Line 1218
        end)
        any_new_result1:cancel()
        return any_new_result1
    end
    return module_4_upvr._new(arg2, function(arg1_19, arg2_6, arg3_3) -- Line 1225
        --[[ Upvalues[6]:
            [1]: arg3 (readonly)
            [2]: arg2 (readonly)
            [3]: runExecutor_upvr (copied, readonly)
            [4]: arg4 (readonly)
            [5]: arg1 (readonly)
            [6]: module_4_upvr (copied, readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var342_upvw
        if var342_upvw then
            var342_upvw = arg2
            local function var338_upvw(...) -- Line 180
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: var342_upvw (readonly)
                    [3]: arg3 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_upvr_result1_2, runExecutor_result2, runExecutor_upvr_result3_4 = runExecutor_upvr(var342_upvw, arg3, ...)
                if runExecutor_upvr_result1_2 then
                    arg1_19(unpack(runExecutor_upvr_result3_4, 1, runExecutor_result2))
                else
                    arg2_6(runExecutor_upvr_result3_4[1])
                end
            end
        end
        var342_upvw = arg2_6
        if arg4 then
            function var342_upvw(...) -- Line 180
                --[[ Upvalues[5]:
                    [1]: runExecutor_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: arg4 (readonly)
                    [4]: arg1_19 (readonly)
                    [5]: arg2_6 (readonly)
                ]]
                local runExecutor_upvr_result1_3, runExecutor_upvr_result2_2, runExecutor_upvr_result3_3 = runExecutor_upvr(arg2, arg4, ...)
                if runExecutor_upvr_result1_3 then
                    arg1_19(unpack(runExecutor_upvr_result3_3, 1, runExecutor_upvr_result2_2))
                else
                    arg2_6(runExecutor_upvr_result3_3[1])
                end
            end
        end
        if arg1._status == module_4_upvr.Status.Started then
            table.insert(arg1._queuedResolve, var338_upvw)
            table.insert(arg1._queuedReject, var342_upvw)
            local function var346() -- Line 1244
                --[[ Upvalues[4]:
                    [1]: arg1 (copied, readonly)
                    [2]: module_4_upvr (copied, readonly)
                    [3]: var338_upvw (read and write)
                    [4]: var342_upvw (read and write)
                ]]
                if arg1._status == module_4_upvr.Status.Started then
                    table.remove(arg1._queuedResolve, table.find(arg1._queuedResolve, var338_upvw))
                    table.remove(arg1._queuedReject, table.find(arg1._queuedReject, var342_upvw))
                end
            end
            arg3_3(var346)
        else
            var346 = arg1
            var346 = module_4_upvr.Status.Resolved
            if var346._status == var346 then
                var346 = unpack(arg1._values, 1, arg1._valuesLength)
                var338_upvw(var346)
            else
                var346 = arg1
                var346 = module_4_upvr.Status.Rejected
                if var346._status == var346 then
                    var346 = unpack(arg1._values, 1, arg1._valuesLength)
                    var342_upvw(var346)
                end
            end
        end
    end, arg1)
end
module_4_upvr.prototype.andThen = function(arg1, arg2, arg3) -- Line 1283, Named "andThen"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 15. Error Block 27 start (CF ANALYSIS FAILED)
    local getmetatable_result1_5 = getmetatable(arg2)
    local var351
    if getmetatable_result1_5 and type(rawget(getmetatable_result1_5, "__call")) == "function" then
        var351 = true
    else
        -- KONSTANTERROR: [40] 31. Error Block 9 start (CF ANALYSIS FAILED)
        var351 = false
        -- KONSTANTERROR: [40] 31. Error Block 9 end (CF ANALYSIS FAILED)
    end
    -- KONSTANTERROR: [19] 15. Error Block 27 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 32. Error Block 24 start (CF ANALYSIS FAILED)
    assert(var351, string.format("Please pass a handler function to %s!", "Promise:andThen"))
    var351 = true
    -- KONSTANTERROR: [41] 32. Error Block 24 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.catch = function(arg1, arg2) -- Line 1310, Named "catch"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 15. Error Block 14 start (CF ANALYSIS FAILED)
    local getmetatable_result1_8 = getmetatable(arg2)
    local var353
    if getmetatable_result1_8 and type(rawget(getmetatable_result1_8, "__call")) == "function" then
        var353 = true
    else
        -- KONSTANTERROR: [40] 31. Error Block 9 start (CF ANALYSIS FAILED)
        var353 = false
        -- KONSTANTERROR: [40] 31. Error Block 9 end (CF ANALYSIS FAILED)
    end
    -- KONSTANTERROR: [19] 15. Error Block 14 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 32. Error Block 12 start (CF ANALYSIS FAILED)
    assert(var353, string.format("Please pass a handler function to %s!", "Promise:catch"))
    do
        return arg1:_andThen(debug.traceback(nil, 2), nil, arg2)
    end
    -- KONSTANTERROR: [41] 32. Error Block 12 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.tap = function(arg1, arg2) -- Line 1331, Named "tap"
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 8. Error Block 12 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.andThenCall = function(arg1, arg2, ...) -- Line 1366, Named "andThenCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 12 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.andThenReturn = function(arg1, ...) -- Line 1396, Named "andThenReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_result1_4_upvr, pack_result2_5_upvr = pack_upvr(...)
    return arg1:_andThen(debug.traceback(nil, 2), function() -- Line 1398
        --[[ Upvalues[2]:
            [1]: pack_result2_5_upvr (readonly)
            [2]: pack_result1_4_upvr (readonly)
        ]]
        return unpack(pack_result2_5_upvr, 1, pack_result1_4_upvr)
    end)
end
module_4_upvr.prototype.cancel = function(arg1) -- Line 1414, Named "cancel"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    if arg1._status ~= module_4_upvr.Status.Started then
    else
        arg1._status = module_4_upvr.Status.Cancelled
        if arg1._cancellationHook then
            arg1._cancellationHook()
        end
        coroutine.close(arg1._thread)
        if arg1._parent then
            arg1._parent:_consumerCancelled(arg1)
        end
        for i_21 in pairs(arg1._consumers) do
            i_21:cancel()
        end
        arg1:_finalize()
    end
end
module_4_upvr.prototype._consumerCancelled = function(arg1, arg2) -- Line 1442, Named "_consumerCancelled"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    if arg1._status ~= module_4_upvr.Status.Started then
    else
        arg1._consumers[arg2] = nil
        if next(arg1._consumers) == nil then
            arg1:cancel()
        end
    end
end
module_4_upvr.prototype._finally = function(arg1, arg2, arg3) -- Line 1458, Named "_finally"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    arg1._unhandledRejection = false
    return module_4_upvr._new(arg2, function(arg1_20, arg2_7, arg3_4) -- Line 1461
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: arg3 (readonly)
            [3]: module_4_upvr (copied, readonly)
        ]]
        local var367_upvw
        arg3_4(function() -- Line 1464
            --[[ Upvalues[2]:
                [1]: arg1 (copied, readonly)
                [2]: var367_upvw (read and write)
            ]]
            arg1:_consumerCancelled(arg1)
            if var367_upvw then
                var367_upvw:cancel()
            end
        end)
        local var370
        if arg3 then
            function var370(...) -- Line 1477
                --[[ Upvalues[6]:
                    [1]: arg3 (copied, readonly)
                    [2]: module_4_upvr (copied, readonly)
                    [3]: var367_upvw (read and write)
                    [4]: arg1_20 (readonly)
                    [5]: arg1 (copied, readonly)
                    [6]: arg2_7 (readonly)
                ]]
                local arg3_result1 = arg3(...)
                if module_4_upvr.is(arg3_result1) then
                    var367_upvw = arg3_result1
                    arg3_result1:finally(function(arg1_21) -- Line 1484
                        --[[ Upvalues[3]:
                            [1]: module_4_upvr (copied, readonly)
                            [2]: arg1_20 (copied, readonly)
                            [3]: arg1 (copied, readonly)
                        ]]
                        if arg1_21 ~= module_4_upvr.Status.Rejected then
                            arg1_20(arg1)
                        end
                    end):catch(function(...) -- Line 1489
                        --[[ Upvalues[1]:
                            [1]: arg2_7 (copied, readonly)
                        ]]
                        arg2_7(...)
                    end)
                else
                    arg1_20(arg1)
                end
            end
        end
        if arg1._status == module_4_upvr.Status.Started then
            table.insert(arg1._queuedFinally, var370)
        else
            var370(arg1._status)
        end
    end)
end
module_4_upvr.prototype.finally = function(arg1, arg2) -- Line 1559, Named "finally"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 15. Error Block 14 start (CF ANALYSIS FAILED)
    local getmetatable_result1_12 = getmetatable(arg2)
    local var375
    if getmetatable_result1_12 and type(rawget(getmetatable_result1_12, "__call")) == "function" then
        var375 = true
    else
        -- KONSTANTERROR: [40] 31. Error Block 9 start (CF ANALYSIS FAILED)
        var375 = false
        -- KONSTANTERROR: [40] 31. Error Block 9 end (CF ANALYSIS FAILED)
    end
    -- KONSTANTERROR: [19] 15. Error Block 14 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 32. Error Block 12 start (CF ANALYSIS FAILED)
    assert(var375, string.format("Please pass a handler function to %s!", "Promise:finally"))
    do
        return arg1:_finally(debug.traceback(nil, 2), arg2)
    end
    -- KONSTANTERROR: [41] 32. Error Block 12 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.finallyCall = function(arg1, arg2, ...) -- Line 1573, Named "finallyCall"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 12 end (CF ANALYSIS FAILED)
end
module_4_upvr.prototype.finallyReturn = function(arg1, ...) -- Line 1599, Named "finallyReturn"
    --[[ Upvalues[1]:
        [1]: pack_upvr (readonly)
    ]]
    local pack_result1_upvr, pack_result2_6_upvr = pack_upvr(...)
    return arg1:_finally(debug.traceback(nil, 2), function() -- Line 1601
        --[[ Upvalues[2]:
            [1]: pack_result2_6_upvr (readonly)
            [2]: pack_result1_upvr (readonly)
        ]]
        return unpack(pack_result2_6_upvr, 1, pack_result1_upvr)
    end)
end
module_4_upvr.prototype.awaitStatus = function(arg1) -- Line 1613, Named "awaitStatus"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    arg1._unhandledRejection = false
    if arg1._status == module_4_upvr.Status.Started then
        local current_thread_upvr = coroutine.running()
        arg1:finally(function() -- Line 1620
            --[[ Upvalues[1]:
                [1]: current_thread_upvr (readonly)
            ]]
            task.spawn(current_thread_upvr)
        end):catch(function() -- Line 1626
        end)
        coroutine.yield()
    end
    current_thread_upvr = arg1._status
    if current_thread_upvr == module_4_upvr.Status.Resolved then
        current_thread_upvr = arg1._status
        return current_thread_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    current_thread_upvr = arg1._status
    if current_thread_upvr == module_4_upvr.Status.Rejected then
        current_thread_upvr = arg1._status
        return current_thread_upvr, unpack(arg1._values, 1, arg1._valuesLength)
    end
    current_thread_upvr = arg1._status
    return current_thread_upvr
end
local function awaitHelper_upvr(arg1, ...) -- Line 1641, Named "awaitHelper"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var382
    if arg1 ~= module_4_upvr.Status.Resolved then
        var382 = false
    else
        var382 = true
    end
    return var382, ...
end
module_4_upvr.prototype.await = function(arg1) -- Line 1666, Named "await"
    --[[ Upvalues[1]:
        [1]: awaitHelper_upvr (readonly)
    ]]
    return awaitHelper_upvr(arg1:awaitStatus())
end
local function expectHelper_upvr(arg1, ...) -- Line 1670, Named "expectHelper"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local Status = module_4_upvr.Status
    if arg1 ~= Status.Resolved then
        if ... == nil then
            Status = "Expected Promise rejected with no value."
        else
            Status = ...
        end
        error(Status, 3)
    end
    return ...
end
module_4_upvr.prototype.expect = function(arg1) -- Line 1703, Named "expect"
    --[[ Upvalues[1]:
        [1]: expectHelper_upvr (readonly)
    ]]
    return expectHelper_upvr(arg1:awaitStatus())
end
module_4_upvr.prototype.awaitValue = module_4_upvr.prototype.expect
module_4_upvr.prototype._unwrap = function(arg1) -- Line 1717, Named "_unwrap"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var384
    if var384 == module_4_upvr.Status.Started then
        var384 = error
        var384("Promise has not resolved or rejected.", 2)
    end
    if arg1._status ~= module_4_upvr.Status.Resolved then
        var384 = false
    else
        var384 = true
    end
    return var384, unpack(arg1._values, 1, arg1._valuesLength)
end
module_4_upvr.prototype._resolve = function(arg1, ...) -- Line 1727, Named "_resolve"
    --[[ Upvalues[3]:
        [1]: module_4_upvr (readonly)
        [2]: var15_upvw (read and write)
        [3]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_4_upvr.Status.Started then
        if module_4_upvr.is(...) then
            ...:_consumerCancelled(arg1)
        end
    else
        if module_4_upvr.is(...) then
            if 1 < select('#', ...) then
                warn(string.format("When returning a Promise from andThen, extra arguments are discarded! See:\n\n%s", arg1._source))
            end
            local var387_upvr = ...
            local any_andThen_result1_2 = var387_upvr:andThen(function(...) -- Line 1748
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:_resolve(...)
            end, function(...) -- Line 1750
                --[[ Upvalues[3]:
                    [1]: var387_upvr (readonly)
                    [2]: var15_upvw (copied, read and write)
                    [3]: arg1 (readonly)
                ]]
                local _1 = var387_upvr._values[1]
                if var387_upvr._error then
                    _1 = var15_upvw.new({
                        error = var387_upvr._error;
                        kind = var15_upvw.Kind.ExecutionError;
                        context = "[No stack trace available as this Promise originated from an older version of the Promise library (< v2)]";
                    })
                end
                if var15_upvw.isKind(_1, var15_upvw.Kind.ExecutionError) then
                    return arg1:_reject(_1:extend({
                        error = "This Promise was chained to a Promise that errored.";
                        trace = "";
                        context = string.format("The Promise at:\n\n%s\n...Rejected because it was chained to the following Promise, which encountered an error:\n", arg1._source);
                    }))
                end
                arg1:_reject(...)
            end)
            if any_andThen_result1_2._status == module_4_upvr.Status.Cancelled then
                arg1:cancel()
            elseif any_andThen_result1_2._status == module_4_upvr.Status.Started then
                arg1._parent = any_andThen_result1_2
                any_andThen_result1_2._consumers[arg1] = true
            end
        end
        var387_upvr = module_4_upvr.Status.Resolved
        arg1._status = var387_upvr
        var387_upvr = pack_upvr(...)
        local pack_result1_5, pack_result2 = pack_upvr(...)
        arg1._valuesLength = pack_result1_5
        arg1._values = pack_result2
        pack_result1_5 = ipairs(arg1._queuedResolve)
        local ipairs_result1_10, ipairs_result2_3, ipairs_result3_7 = ipairs(arg1._queuedResolve)
        for _, v_21 in ipairs_result1_10, ipairs_result2_3, ipairs_result3_7 do
            coroutine.wrap(v_21)(...)
        end
        ipairs_result1_10 = arg1:_finalize
        ipairs_result1_10()
    end
end
module_4_upvr.prototype._reject = function(arg1, ...) -- Line 1798, Named "_reject"
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: pack_upvr (readonly)
    ]]
    if arg1._status ~= module_4_upvr.Status.Started then
    else
        arg1._status = module_4_upvr.Status.Rejected
        local pack_result1, pack_upvr_result2 = pack_upvr(...)
        arg1._valuesLength = pack_result1
        arg1._values = pack_upvr_result2
        if next(arg1._queuedReject) ~= nil then
            pack_result1 = false
        else
            pack_result1 = true
        end
        if not pack_result1 then
            for _, v_22 in ipairs(arg1._queuedReject) do
                coroutine.wrap(v_22)(...)
            end
        else
            local tostring_result1_upvr = tostring(...)
            coroutine.wrap(function() -- Line 1820
                --[[ Upvalues[3]:
                    [1]: module_4_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: tostring_result1_upvr (readonly)
                ]]
                module_4_upvr._timeEvent:Wait()
                if not arg1._unhandledRejection then
                else
                    for _, v_23 in ipairs(module_4_upvr._unhandledRejectionCallbacks) do
                        task.spawn(v_23, arg1, unpack(arg1._values, 1, arg1._valuesLength))
                    end
                    if module_4_upvr.TEST then return end
                    warn(string.format("Unhandled Promise rejection:\n\n%s\n\n%s", tostring_result1_upvr, arg1._source))
                end
            end)()
        end
        tostring_result1_upvr = arg1:_finalize
        tostring_result1_upvr()
    end
end
module_4_upvr.prototype._finalize = function(arg1) -- Line 1852, Named "_finalize"
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    for _, v_15 in ipairs(arg1._queuedFinally) do
        coroutine.wrap(v_15)(arg1._status)
    end
    arg1._queuedFinally = nil
    arg1._queuedReject = nil
    arg1._queuedResolve = nil
    if not module_4_upvr.TEST then
        arg1._parent = nil
        arg1._consumers = nil
    end
    task.defer(coroutine.close, arg1._thread)
end
module_4_upvr.prototype.now = function(arg1, arg2) -- Line 1889, Named "now"
    --[[ Upvalues[2]:
        [1]: module_4_upvr (readonly)
        [2]: var15_upvw (read and write)
    ]]
    local call_stack = debug.traceback(nil, 2)
    local var421
    if arg1._status == var421 then
        return arg1:_andThen(call_stack, function(...) -- Line 1892
            return ...
        end)
    end
    var421 = module_4_upvr
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var421 = var421(tbl_4)
        tbl_4.context = ":now() was called at:\n\n"..call_stack
        tbl_4.error = "This Promise was not resolved in time for :now()"
        tbl_4.kind = var15_upvw.Kind.NotResolvedInTime
        local tbl_4 = {}
        var421 = var15_upvw.new
        return var421
    end
    if arg2 ~= nil or not INLINED_2() then
        var421 = arg2
    end
    return var421.reject(var421)
end
function module_4_upvr.retry(arg1, arg2, ...) -- Line 1934
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 17 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 17 end (CF ANALYSIS FAILED)
end
function module_4_upvr.retryWithDelay(arg1, arg2, arg3, ...) -- Line 1962
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 22 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 9. Error Block 22 end (CF ANALYSIS FAILED)
end
function module_4_upvr.fromEvent(arg1, arg2) -- Line 2004
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    local var425_upvw = arg2
    if not var425_upvw then
        function var425_upvw() -- Line 2005
            return true
        end
    end
    return module_4_upvr._new(debug.traceback(nil, 2), function(arg1_22, arg2_8, arg3) -- Line 2009
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var425_upvw (read and write)
        ]]
        local var427_upvw
        local var428_upvw = false
        local function disconnect() -- Line 2013
            --[[ Upvalues[1]:
                [1]: var427_upvw (read and write)
            ]]
            var427_upvw:Disconnect()
            var427_upvw = nil
        end
        var427_upvw = arg1:Connect(function(...) -- Line 2022
            --[[ Upvalues[4]:
                [1]: var425_upvw (copied, read and write)
                [2]: arg1_22 (readonly)
                [3]: var427_upvw (read and write)
                [4]: var428_upvw (read and write)
            ]]
            local var425_result1 = var425_upvw(...)
            if var425_result1 == true then
                arg1_22(...)
                if var427_upvw then
                    var427_upvw:Disconnect()
                    var427_upvw = nil
                else
                    var428_upvw = true
                end
            end
            if type(var425_result1) ~= "boolean" then
                error("Promise.fromEvent predicate should always return a boolean")
            end
        end)
        if var428_upvw then
            if var427_upvw then
                return disconnect()
            end
        end
        arg3(disconnect)
    end)
end
function module_4_upvr.onUnhandledRejection(arg1) -- Line 2056
    --[[ Upvalues[1]:
        [1]: module_4_upvr (readonly)
    ]]
    table.insert(module_4_upvr._unhandledRejectionCallbacks, arg1)
    return function() -- Line 2059
        --[[ Upvalues[2]:
            [1]: module_4_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        local table_find_result1 = table.find(module_4_upvr._unhandledRejectionCallbacks, arg1)
        if table_find_result1 then
            table.remove(module_4_upvr._unhandledRejectionCallbacks, table_find_result1)
        end
    end
end
return module_4_upvr
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.evaera_promise@4.0.0.promise.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:47
-- Luau version 6, Types version 3
-- Time taken: 0.108263 seconds

return function() -- Line 1
    local Parent_upvr = require(script.Parent)
    Parent_upvr.TEST = true
    local BindableEvent_upvr_5 = Instance.new("BindableEvent")
    Parent_upvr._timeEvent = BindableEvent_upvr_5.Event
    local var4_upvw = 0
    function Parent_upvr._getTime() -- Line 12
        --[[ Upvalues[1]:
            [1]: var4_upvw (read and write)
        ]]
        return var4_upvw
    end
    local function advanceTime_upvw(arg1) -- Line 16, Named "advanceTime"
        --[[ Upvalues[2]:
            [1]: var4_upvw (read and write)
            [2]: BindableEvent_upvr_5 (readonly)
        ]]
        local var6 = arg1 or (1/60)
        var4_upvw += var6
        BindableEvent_upvr_5:Fire(var6)
    end
    local function pack_upvr(...) -- Line 24, Named "pack"
        return select('#', ...), {...}
    end
    describe("Promise.Status", function() -- Line 30
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should error if indexing nil value", function() -- Line 31
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 32
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
            end).to.throw()
        end)
    end)
    describe("Unhandled rejection signal", function() -- Line 38
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should call unhandled rejection callbacks", function() -- Line 39
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local var14_upvw = 0
            local any_new_result1_31_upvr = Parent_upvr.new(function(arg1, arg2) -- Line 40
                arg2(1, 2)
            end)
            advanceTime_upvw()
            expect(var14_upvw).to.equal(1)
            Parent_upvr.onUnhandledRejection(function(arg1, arg2, arg3) -- Line 46, Named "callback"
                --[[ Upvalues[2]:
                    [1]: var14_upvw (read and write)
                    [2]: any_new_result1_31_upvr (readonly)
                ]]
                var14_upvw += 1
                expect(arg1).to.equal(any_new_result1_31_upvr)
                expect(arg2).to.equal(1)
                expect(arg3).to.equal(2)
            end)()
            Parent_upvr.new(function(arg1, arg2) -- Line 62
                arg2(3, 4)
            end)
            advanceTime_upvw()
            expect(var14_upvw).to.equal(1)
        end)
    end)
    describe("Promise.new", function() -- Line 72
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should instantiate with a callback", function() -- Line 73
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.new(function() -- Line 74
            end)).to.be.ok()
        end)
        it("should invoke the given callback with resolve and reject", function() -- Line 79
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var21_upvw = 0
            local var22_upvw
            local var23_upvw
            local any_new_result1_7 = Parent_upvr.new(function(arg1, arg2) -- Line 84
                --[[ Upvalues[3]:
                    [1]: var21_upvw (read and write)
                    [2]: var22_upvw (read and write)
                    [3]: var23_upvw (read and write)
                ]]
                var21_upvw += 1
                var22_upvw = arg1
                var23_upvw = arg2
            end)
            expect(any_new_result1_7).to.be.ok()
            expect(var21_upvw).to.equal(1)
            expect(var22_upvw).to.be.a("function")
            expect(var23_upvw).to.be.a("function")
            expect(any_new_result1_7:getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
        it("should resolve promises on resolve()", function() -- Line 98
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var27_upvw = 0
            local any_new_result1_28 = Parent_upvr.new(function(arg1) -- Line 101
                --[[ Upvalues[1]:
                    [1]: var27_upvw (read and write)
                ]]
                var27_upvw += 1
                arg1()
            end)
            expect(any_new_result1_28).to.be.ok()
            expect(var27_upvw).to.equal(1)
            expect(any_new_result1_28:getStatus()).to.equal(Parent_upvr.Status.Resolved)
        end)
        it("should reject promises on reject()", function() -- Line 111
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var31_upvw = 0
            local any_new_result1_5 = Parent_upvr.new(function(arg1, arg2) -- Line 114
                --[[ Upvalues[1]:
                    [1]: var31_upvw (read and write)
                ]]
                var31_upvw += 1
                arg2()
            end)
            expect(any_new_result1_5).to.be.ok()
            expect(var31_upvw).to.equal(1)
            expect(any_new_result1_5:getStatus()).to.equal(Parent_upvr.Status.Rejected)
        end)
        it("should reject on error in callback", function() -- Line 124
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var35_upvw = 0
            local any_new_result1_11 = Parent_upvr.new(function() -- Line 127
                --[[ Upvalues[1]:
                    [1]: var35_upvw (read and write)
                ]]
                var35_upvw += 1
                error("hahah")
            end)
            expect(any_new_result1_11).to.be.ok()
            expect(var35_upvw).to.equal(1)
            expect(any_new_result1_11:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(tostring(any_new_result1_11._values[1]):find("hahah")).to.be.ok()
            expect(tostring(any_new_result1_11._values[1]):find("init.spec")).to.be.ok()
            expect(tostring(any_new_result1_11._values[1]):find("runExecutor")).to.be.ok()
        end)
        it("should work with C functions", function() -- Line 142
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 143
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.new(tick):andThen(tick)
            end).to.never.throw()
        end)
        it("should have a nice tostring", function() -- Line 148
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(tostring(Parent_upvr.resolve()):gmatch("Promise(Resolved)")).to.be.ok()
        end)
        it("should allow yielding", function() -- Line 152
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent_upvr = Instance.new("BindableEvent")
            local any_new_result1_26 = Parent_upvr.new(function(arg1) -- Line 154
                --[[ Upvalues[1]:
                    [1]: BindableEvent_upvr (readonly)
                ]]
                BindableEvent_upvr.Event:Wait()
                arg1(5)
            end)
            expect(any_new_result1_26:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_upvr:Fire()
            expect(any_new_result1_26:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_new_result1_26._values[1]).to.equal(5)
        end)
        it("should preserve stack traces of resolve-chained promises", function() -- Line 165
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local function _(arg1) -- Line 166, Named "nestedCall"
                error(arg1)
            end
            local any_new_result1_10 = Parent_upvr.new(function(arg1) -- Line 170
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                arg1(Parent_upvr.new(function() -- Line 171
                    error("sample text")
                end))
            end)
            expect(any_new_result1_10:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            local tostring_result1 = tostring(any_new_result1_10._values[1])
            expect(tostring_result1:find("sample text")).to.be.ok()
            expect(tostring_result1:find("nestedCall")).to.be.ok()
            expect(tostring_result1:find("runExecutor")).to.be.ok()
            expect(tostring_result1:find("runPlanNode")).to.be.ok()
            expect(tostring_result1:find("...Rejected because it was chained to the following Promise, which encountered an error:")).to.be.ok()
        end)
        it("should report errors from Promises with _error (< v2)", function() -- Line 188
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_reject_result1_2 = Parent_upvr.reject()
            any_reject_result1_2._error = "Sample error"
            local any_andThenReturn_result1 = Parent_upvr.resolve():andThenReturn(any_reject_result1_2)
            expect(any_andThenReturn_result1:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            local tostring_result1_2 = tostring(any_andThenReturn_result1._values[1])
            expect(tostring_result1_2:find("Sample error")).to.be.ok()
            expect(tostring_result1_2:find("...Rejected because it was chained to the following Promise, which encountered an error:")).to.be.ok()
            expect(tostring_result1_2:find("%[No stack trace available")).to.be.ok()
        end)
        it("should allow callable tables", function() -- Line 204
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_16 = {}
            local function __call(arg1, arg2) -- Line 206
                arg2(1)
            end
            tbl_16.__call = __call
            local var56_upvw = false
            Parent_upvr.new(setmetatable({}, tbl_16)):andThen(setmetatable({}, {
                __call = function(arg1, arg2) -- Line 213, Named "__call"
                    --[[ Upvalues[1]:
                        [1]: var56_upvw (read and write)
                    ]]
                    expect(arg2).to.equal(1)
                    var56_upvw = true
                end;
            }))
            expect(var56_upvw).to.equal(true)
        end)
        itSKIP("should close the thread after resolve", function() -- Line 222
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var59_upvw = 0
            Parent_upvr.new(function(arg1) -- Line 224
                --[[ Upvalues[2]:
                    [1]: var59_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                var59_upvw += 1
                arg1()
                Parent_upvr.delay(1):await()
                var59_upvw += 1
            end)
            task.wait(1)
            expect(var59_upvw).to.equal(1)
        end)
    end)
    describe("Promise.defer", function() -- Line 237
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should execute after the time event", function() -- Line 238
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local var63_upvw = 0
            local any_defer_result1 = Parent_upvr.defer(function(arg1, arg2, arg3, arg4) -- Line 240
                --[[ Upvalues[1]:
                    [1]: var63_upvw (read and write)
                ]]
                expect(type(arg1)).to.equal("function")
                expect(type(arg2)).to.equal("function")
                expect(type(arg3)).to.equal("function")
                expect(type(arg4)).to.equal("nil")
                var63_upvw += 1
                arg1("foo")
            end)
            expect(var63_upvw).to.equal(0)
            expect(any_defer_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw()
            expect(var63_upvw).to.equal(1)
            expect(any_defer_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            advanceTime_upvw()
            expect(var63_upvw).to.equal(1)
        end)
    end)
    describe("Promise.delay", function() -- Line 263
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should schedule promise resolution", function() -- Line 264
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local any_delay_result1 = Parent_upvr.delay(1)
            expect(any_delay_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw()
            expect(any_delay_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw(1)
            expect(any_delay_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
        end)
        it("should allow for delays to be cancelled", function() -- Line 276
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local any_delay_result1_upvr = Parent_upvr.delay(2)
            Parent_upvr.delay(1):andThen(function() -- Line 279
                --[[ Upvalues[1]:
                    [1]: any_delay_result1_upvr (readonly)
                ]]
                any_delay_result1_upvr:cancel()
            end)
            expect(any_delay_result1_upvr:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw()
            expect(any_delay_result1_upvr:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw(1)
            expect(any_delay_result1_upvr:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            advanceTime_upvw(1)
        end)
    end)
    describe("Promise.resolve", function() -- Line 292
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should immediately resolve with a value", function() -- Line 293
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_resolve_result1_2 = Parent_upvr.resolve(5, 6)
            expect(any_resolve_result1_2).to.be.ok()
            expect(any_resolve_result1_2:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_resolve_result1_2._values[1]).to.equal(5)
            expect(any_resolve_result1_2._values[2]).to.equal(6)
        end)
        it("should chain onto passed promises", function() -- Line 302
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_resolve_result1 = Parent_upvr.resolve(Parent_upvr.new(function(arg1, arg2) -- Line 303
                arg2(7)
            end))
            expect(any_resolve_result1).to.be.ok()
            expect(any_resolve_result1:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_resolve_result1._values[1]).to.equal(7)
        end)
    end)
    describe("Promise.reject", function() -- Line 313
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should immediately reject with a value", function() -- Line 314
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_reject_result1_5 = Parent_upvr.reject(6, 7)
            expect(any_reject_result1_5).to.be.ok()
            expect(any_reject_result1_5:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_reject_result1_5._values[1]).to.equal(6)
            expect(any_reject_result1_5._values[2]).to.equal(7)
        end)
        it("should pass a promise as-is as an error", function() -- Line 323
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_14 = Parent_upvr.new(function(arg1) -- Line 324
                arg1(6)
            end)
            local any_reject_result1_3 = Parent_upvr.reject(any_new_result1_14)
            expect(any_reject_result1_3).to.be.ok()
            expect(any_reject_result1_3:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_reject_result1_3._values[1]).to.equal(any_new_result1_14)
        end)
    end)
    describe("Promise:andThen", function() -- Line 336
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: pack_upvr (readonly)
        ]]
        it("should allow yielding", function() -- Line 337
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent_upvr_4 = Instance.new("BindableEvent")
            local any_andThen_result1_4 = Parent_upvr.resolve():andThen(function() -- Line 339
                --[[ Upvalues[1]:
                    [1]: BindableEvent_upvr_4 (readonly)
                ]]
                BindableEvent_upvr_4.Event:Wait()
                return 5
            end)
            expect(any_andThen_result1_4:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_upvr_4:Fire()
            expect(any_andThen_result1_4:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_andThen_result1_4._values[1]).to.equal(5)
        end)
        it("should run andThens on a new thread", function() -- Line 350
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var91_upvw
            local any_new_result1_30 = Parent_upvr.new(function(arg1) -- Line 354
                --[[ Upvalues[1]:
                    [1]: var91_upvw (read and write)
                ]]
                var91_upvw = arg1
            end)
            local BindableEvent_upvr_3 = Instance.new("BindableEvent")
            local any_andThen_result1 = any_new_result1_30:andThen(function() -- Line 363
                return "foo"
            end)
            expect(any_new_result1_30:getStatus()).to.equal(Parent_upvr.Status.Started)
            var91_upvw()
            expect(any_andThen_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_andThen_result1._values[1]).to.equal("foo")
            expect(any_new_result1_30:andThen(function() -- Line 358
                --[[ Upvalues[1]:
                    [1]: BindableEvent_upvr_3 (readonly)
                ]]
                BindableEvent_upvr_3.Event:Wait()
                return 5
            end):getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
        it("should chain onto resolved promises", function() -- Line 374
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: pack_upvr (copied, readonly)
            ]]
            local var99_upvw
            local var100_upvw
            local var101_upvw = 0
            local var102_upvw = 0
            local any_resolve_result1_3 = Parent_upvr.resolve(5)
            local any_andThen_result1_5 = any_resolve_result1_3:andThen(function(...) -- Line 382
                --[[ Upvalues[4]:
                    [1]: var100_upvw (read and write)
                    [2]: var99_upvw (read and write)
                    [3]: pack_upvr (copied, readonly)
                    [4]: var101_upvw (read and write)
                ]]
                local pack_result1_4, pack_result2_3 = pack_upvr(...)
                var100_upvw = pack_result1_4
                var99_upvw = pack_result2_3
                var101_upvw += 1
            end, function() -- Line 385
                --[[ Upvalues[1]:
                    [1]: var102_upvw (read and write)
                ]]
                var102_upvw += 1
            end)
            expect(var102_upvw).to.equal(0)
            expect(var101_upvw).to.equal(1)
            expect(var100_upvw).to.equal(1)
            expect(var99_upvw[1]).to.equal(5)
            expect(any_resolve_result1_3).to.be.ok()
            expect(any_resolve_result1_3:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_resolve_result1_3._values[1]).to.equal(5)
            expect(any_andThen_result1_5).to.be.ok()
            expect(any_andThen_result1_5).never.to.equal(any_resolve_result1_3)
            expect(any_andThen_result1_5:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_andThen_result1_5._values).to.equal(0)
        end)
        it("should chain onto rejected promises", function() -- Line 405
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: pack_upvr (copied, readonly)
            ]]
            local var110_upvw
            local var111_upvw
            local var112_upvw = 0
            local var113_upvw = 0
            local any_reject_result1 = Parent_upvr.reject(5)
            local any_andThen_result1_12 = any_reject_result1:andThen(function(...) -- Line 413
                --[[ Upvalues[1]:
                    [1]: var113_upvw (read and write)
                ]]
                var113_upvw += 1
            end, function(...) -- Line 415
                --[[ Upvalues[4]:
                    [1]: var111_upvw (read and write)
                    [2]: var110_upvw (read and write)
                    [3]: pack_upvr (copied, readonly)
                    [4]: var112_upvw (read and write)
                ]]
                local pack_result1_3, pack_result2_5 = pack_upvr(...)
                var111_upvw = pack_result1_3
                var110_upvw = pack_result2_5
                var112_upvw += 1
            end)
            expect(var113_upvw).to.equal(0)
            expect(var112_upvw).to.equal(1)
            expect(var111_upvw).to.equal(1)
            expect(var110_upvw[1]).to.equal(5)
            expect(any_reject_result1).to.be.ok()
            expect(any_reject_result1:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_reject_result1._values[1]).to.equal(5)
            expect(any_andThen_result1_12).to.be.ok()
            expect(any_andThen_result1_12).never.to.equal(any_reject_result1)
            expect(any_andThen_result1_12:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_andThen_result1_12._values).to.equal(0)
        end)
        it("should reject on error in callback", function() -- Line 436
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var121_upvw = 0
            local any_andThen_result1_8 = Parent_upvr.resolve(1):andThen(function() -- Line 439
                --[[ Upvalues[1]:
                    [1]: var121_upvw (read and write)
                ]]
                var121_upvw += 1
                error("hahah")
            end)
            expect(any_andThen_result1_8).to.be.ok()
            expect(var121_upvw).to.equal(1)
            expect(any_andThen_result1_8:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(tostring(any_andThen_result1_8._values[1]):find("hahah")).to.be.ok()
            expect(tostring(any_andThen_result1_8._values[1]):find("init.spec")).to.be.ok()
            expect(tostring(any_andThen_result1_8._values[1]):find("runExecutor")).to.be.ok()
        end)
        it("should chain onto asynchronously resolved promises", function() -- Line 454
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var125_upvw
            local var126_upvw
            local var127_upvw = 0
            local var128_upvw = 0
            local var129_upvw
            local any_new_result1_27 = Parent_upvr.new(function(arg1) -- Line 461
                --[[ Upvalues[1]:
                    [1]: var129_upvw (read and write)
                ]]
                var129_upvw = arg1
            end)
            local any_andThen_result1_7 = any_new_result1_27:andThen(function(...) -- Line 465
                --[[ Upvalues[3]:
                    [1]: var125_upvw (read and write)
                    [2]: var126_upvw (read and write)
                    [3]: var127_upvw (read and write)
                ]]
                var125_upvw = {...}
                var126_upvw = select('#', ...)
                var127_upvw += 1
            end, function() -- Line 469
                --[[ Upvalues[1]:
                    [1]: var128_upvw (read and write)
                ]]
                var128_upvw += 1
            end)
            expect(var127_upvw).to.equal(0)
            expect(var128_upvw).to.equal(0)
            var129_upvw(6)
            expect(var128_upvw).to.equal(0)
            expect(var127_upvw).to.equal(1)
            expect(var126_upvw).to.equal(1)
            expect(var125_upvw[1]).to.equal(6)
            expect(any_new_result1_27).to.be.ok()
            expect(any_new_result1_27:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_new_result1_27._values[1]).to.equal(6)
            expect(any_andThen_result1_7).to.be.ok()
            expect(any_andThen_result1_7).never.to.equal(any_new_result1_27)
            expect(any_andThen_result1_7:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_andThen_result1_7._values).to.equal(0)
        end)
        it("should chain onto asynchronously rejected promises", function() -- Line 494
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var137_upvw
            local var138_upvw
            local var139_upvw = 0
            local var140_upvw = 0
            local var141_upvw
            local any_new_result1_12 = Parent_upvr.new(function(arg1, arg2) -- Line 501
                --[[ Upvalues[1]:
                    [1]: var141_upvw (read and write)
                ]]
                var141_upvw = arg2
            end)
            local any_andThen_result1_2 = any_new_result1_12:andThen(function() -- Line 505
                --[[ Upvalues[1]:
                    [1]: var140_upvw (read and write)
                ]]
                var140_upvw += 1
            end, function(...) -- Line 507
                --[[ Upvalues[3]:
                    [1]: var137_upvw (read and write)
                    [2]: var138_upvw (read and write)
                    [3]: var139_upvw (read and write)
                ]]
                var137_upvw = {...}
                var138_upvw = select('#', ...)
                var139_upvw += 1
            end)
            expect(var139_upvw).to.equal(0)
            expect(var140_upvw).to.equal(0)
            var141_upvw(6)
            expect(var140_upvw).to.equal(0)
            expect(var139_upvw).to.equal(1)
            expect(var138_upvw).to.equal(1)
            expect(var137_upvw[1]).to.equal(6)
            expect(any_new_result1_12).to.be.ok()
            expect(any_new_result1_12:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_new_result1_12._values[1]).to.equal(6)
            expect(any_andThen_result1_2).to.be.ok()
            expect(any_andThen_result1_2).never.to.equal(any_new_result1_12)
            expect(any_andThen_result1_2:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_andThen_result1_2._values).to.equal(0)
        end)
        it("should propagate errors through multiple levels", function() -- Line 534
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var149_upvw
            local var150_upvw
            local var151_upvw
            Parent_upvr.new(function(arg1, arg2) -- Line 536
                arg2(1, 2, 3)
            end):andThen(function() -- Line 538
            end):catch(function(arg1, arg2, arg3) -- Line 538
                --[[ Upvalues[3]:
                    [1]: var149_upvw (read and write)
                    [2]: var150_upvw (read and write)
                    [3]: var151_upvw (read and write)
                ]]
                var149_upvw = arg1
                var150_upvw = arg2
                var151_upvw = arg3
            end)
            expect(var149_upvw).to.equal(1)
            expect(var150_upvw).to.equal(2)
            expect(var151_upvw).to.equal(3)
        end)
        it("should not call queued callbacks from a cancelled sub-promise", function() -- Line 547
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var156_upvw
            local var157_upvw = 0
            local any_new_result1_25 = Parent_upvr.new(function(arg1) -- Line 551
                --[[ Upvalues[1]:
                    [1]: var156_upvw (read and write)
                ]]
                var156_upvw = arg1
            end)
            any_new_result1_25:andThen(function() -- Line 555
                --[[ Upvalues[1]:
                    [1]: var157_upvw (read and write)
                ]]
                var157_upvw += 1
            end)
            any_new_result1_25:andThen(function() -- Line 560
                --[[ Upvalues[1]:
                    [1]: var157_upvw (read and write)
                ]]
                var157_upvw += 1
            end):cancel()
            var156_upvw("foo")
            expect(var157_upvw).to.equal(1)
        end)
    end)
    describe("Promise:cancel", function() -- Line 571
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should mark promises as cancelled and not resolve or reject them", function() -- Line 572
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var164_upvw = 0
            local var165_upvw = 0
            local any_finally_result1_3 = Parent_upvr.new(function() -- Line 575
            end):andThen(function() -- Line 576
                --[[ Upvalues[1]:
                    [1]: var164_upvw (read and write)
                ]]
                var164_upvw += 1
            end):finally(function() -- Line 579
                --[[ Upvalues[1]:
                    [1]: var165_upvw (read and write)
                ]]
                var165_upvw += 1
            end)
            any_finally_result1_3:cancel()
            any_finally_result1_3:cancel()
            expect(var164_upvw).to.equal(0)
            expect(var165_upvw).to.equal(1)
            expect(any_finally_result1_3:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should call the cancellation hook once", function() -- Line 591
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var171_upvw = 0
            local any_new_result1_29 = Parent_upvr.new(function(arg1, arg2, arg3) -- Line 594
                --[[ Upvalues[1]:
                    [1]: var171_upvw (read and write)
                ]]
                arg3(function() -- Line 595
                    --[[ Upvalues[1]:
                        [1]: var171_upvw (copied, read and write)
                    ]]
                    var171_upvw += 1
                end)
            end)
            any_new_result1_29:cancel()
            any_new_result1_29:cancel()
            expect(var171_upvw).to.equal(1)
        end)
        it("should propagate cancellations", function() -- Line 606
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_19 = Parent_upvr.new(function() -- Line 607
            end)
            local any_andThen_result1_10 = any_new_result1_19:andThen()
            local any_andThen_result1_6 = any_new_result1_19:andThen()
            expect(any_new_result1_19:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(any_andThen_result1_10:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(any_andThen_result1_6:getStatus()).to.equal(Parent_upvr.Status.Started)
            any_andThen_result1_10:cancel()
            expect(any_new_result1_19:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(any_andThen_result1_10:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_andThen_result1_6:getStatus()).to.equal(Parent_upvr.Status.Started)
            any_andThen_result1_6:cancel()
            expect(any_new_result1_19:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_andThen_result1_10:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_andThen_result1_6:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should affect downstream promises", function() -- Line 629
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_15 = Parent_upvr.new(function() -- Line 630
            end)
            any_new_result1_15:cancel()
            expect(any_new_result1_15:andThen():getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should track consumers", function() -- Line 638
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_resolve_result1_4 = Parent_upvr.resolve()
            local any_new_result1_2_upvr = Parent_upvr.new(function() -- Line 639
            end)
            local any_andThen_result1_11_upvr = any_resolve_result1_4:andThen(function() -- Line 641
                --[[ Upvalues[1]:
                    [1]: any_new_result1_2_upvr (readonly)
                ]]
                return any_new_result1_2_upvr
            end)
            local any_new_result1_9 = Parent_upvr.new(function(arg1) -- Line 644
                --[[ Upvalues[1]:
                    [1]: any_andThen_result1_11_upvr (readonly)
                ]]
                arg1(any_andThen_result1_11_upvr)
            end)
            local any_andThen_result1_9 = any_new_result1_9:andThen(function() -- Line 647
            end)
            expect(any_andThen_result1_11_upvr._parent).to.never.equal(any_resolve_result1_4)
            expect(any_new_result1_9._parent).to.never.equal(any_andThen_result1_11_upvr)
            expect(any_new_result1_9._consumers[any_andThen_result1_9]).to.be.ok()
            expect(any_andThen_result1_9._parent).to.equal(any_new_result1_9)
        end)
        it("should cancel resolved pending promises", function() -- Line 655
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_22_upvr = Parent_upvr.new(function() -- Line 656
            end)
            local any_finally_result1_4 = Parent_upvr.new(function(arg1) -- Line 658
                --[[ Upvalues[1]:
                    [1]: any_new_result1_22_upvr (readonly)
                ]]
                arg1(any_new_result1_22_upvr)
            end):finally(function() -- Line 660
            end)
            any_finally_result1_4:cancel()
            expect(any_new_result1_22_upvr._status).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_finally_result1_4._status).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should close the promise thread", function() -- Line 668
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local var200_upvw = 0
            Parent_upvr.new(function() -- Line 670
                --[[ Upvalues[2]:
                    [1]: var200_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                var200_upvw += 1
                Parent_upvr.delay(1):await()
                var200_upvw += 1
            end):cancel()
            advanceTime_upvw(2)
            expect(var200_upvw).to.equal(1)
        end)
    end)
    describe("Promise:finally", function() -- Line 683
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should be called upon resolve, reject, or cancel", function() -- Line 684
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var204_upvw = 0
            local function finally() -- Line 687
                --[[ Upvalues[1]:
                    [1]: var204_upvw (read and write)
                ]]
                var204_upvw += 1
            end
            Parent_upvr.new(function(arg1, arg2) -- Line 692
                arg1()
            end):finally(finally)
            Parent_upvr.resolve():andThen(function() -- Line 697
            end):finally(finally):finally(finally)
            Parent_upvr.reject():finally(finally)
            Parent_upvr.new(function() -- Line 702
            end):finally(finally):cancel()
            expect(var204_upvw).to.equal(5)
        end)
        it("should not forward return values", function() -- Line 708
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var209_upvw
            Parent_upvr.resolve(2):finally(function() -- Line 712
                return 1
            end):andThen(function(arg1) -- Line 715
                --[[ Upvalues[1]:
                    [1]: var209_upvw (read and write)
                ]]
                var209_upvw = arg1
            end)
            expect(var209_upvw).to.equal(2)
        end)
        it("should not consume rejections", function() -- Line 722
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var213_upvw = false
            local var214_upvw = false
            Parent_upvr.reject(5):finally(function() -- Line 726
                return 42
            end):andThen(function() -- Line 729
                --[[ Upvalues[1]:
                    [1]: var214_upvw (read and write)
                ]]
                var214_upvw = true
            end):catch(function(arg1) -- Line 732
                --[[ Upvalues[1]:
                    [1]: var213_upvw (read and write)
                ]]
                var213_upvw = true
                expect(arg1).to.equal(5)
            end)
            expect(var213_upvw).to.equal(true)
            expect(var214_upvw).to.equal(false)
        end)
        it("should wait for returned promises", function() -- Line 741
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var219_upvw
            local any_finally_result1_2 = Parent_upvr.reject("foo"):finally(function() -- Line 743
                --[[ Upvalues[2]:
                    [1]: Parent_upvr (copied, readonly)
                    [2]: var219_upvw (read and write)
                ]]
                return Parent_upvr.new(function(arg1) -- Line 744
                    --[[ Upvalues[1]:
                        [1]: var219_upvw (copied, read and write)
                    ]]
                    var219_upvw = arg1
                end)
            end)
            expect(any_finally_result1_2:getStatus()).to.equal(Parent_upvr.Status.Started)
            var219_upvw()
            expect(any_finally_result1_2:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            local _, any__unwrap_result2_2 = any_finally_result1_2:_unwrap()
            expect(any__unwrap_result2_2).to.equal("foo")
        end)
        it("should reject with a returned rejected promise's value", function() -- Line 758
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var226_upvw
            local any_finally_result1 = Parent_upvr.reject("foo"):finally(function() -- Line 760
                --[[ Upvalues[2]:
                    [1]: Parent_upvr (copied, readonly)
                    [2]: var226_upvw (read and write)
                ]]
                return Parent_upvr.new(function(arg1, arg2) -- Line 761
                    --[[ Upvalues[1]:
                        [1]: var226_upvw (copied, read and write)
                    ]]
                    var226_upvw = arg2
                end)
            end)
            expect(any_finally_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            var226_upvw("bar")
            expect(any_finally_result1:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            local _, any__unwrap_result2_5 = any_finally_result1:_unwrap()
            expect(any__unwrap_result2_5).to.equal("bar")
        end)
        it("should reject when handler errors", function() -- Line 775
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_6_upvr = {}
            local any__unwrap_result1_3, any__unwrap_result2_8 = Parent_upvr.reject("bar"):finally(function() -- Line 777
                --[[ Upvalues[1]:
                    [1]: tbl_6_upvr (readonly)
                ]]
                error(tbl_6_upvr)
            end):_unwrap()
            expect(any__unwrap_result1_3).to.equal(false)
            expect(any__unwrap_result2_8).to.equal(tbl_6_upvr)
        end)
        it("should not prevent cancellation", function() -- Line 787
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_8 = Parent_upvr.new(function() -- Line 788
            end)
            local var240_upvw = false
            any_new_result1_8:finally(function() -- Line 791
                --[[ Upvalues[1]:
                    [1]: var240_upvw (read and write)
                ]]
                var240_upvw = true
            end)
            any_new_result1_8:andThen(function() -- Line 795
            end):cancel()
            expect(any_new_result1_8:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(var240_upvw).to.equal(true)
        end)
        it("should propagate cancellation downwards", function() -- Line 803
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var244_upvw = false
            local any_new_result1_32 = Parent_upvr.new(function() -- Line 806
            end)
            any_new_result1_32:cancel()
            expect(any_new_result1_32:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_new_result1_32:finally(function() -- Line 808
                --[[ Upvalues[1]:
                    [1]: var244_upvw (read and write)
                ]]
                var244_upvw = true
            end):getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(var244_upvw).to.equal(true)
            expect(false).to.equal(false)
        end)
        it("should propagate cancellation upwards", function() -- Line 821
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var249_upvw = false
            local any_new_result1_4 = Parent_upvr.new(function() -- Line 824
            end)
            local any_finally_result1_5 = any_new_result1_4:finally(function() -- Line 826
                --[[ Upvalues[1]:
                    [1]: var249_upvw (read and write)
                ]]
                var249_upvw = true
            end)
            any_finally_result1_5:cancel()
            expect(any_new_result1_4:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_finally_result1_5:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(var249_upvw).to.equal(true)
            expect(false).to.equal(false)
        end)
        it("should cancel returned promise if cancelled", function() -- Line 839
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_6_upvr = Parent_upvr.new(function() -- Line 840
            end)
            Parent_upvr.resolve():finally(function() -- Line 842
                --[[ Upvalues[1]:
                    [1]: any_new_result1_6_upvr (readonly)
                ]]
                return any_new_result1_6_upvr
            end):cancel()
            expect(any_new_result1_6_upvr:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
    end)
    describe("Promise.all", function() -- Line 852
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: pack_upvr (readonly)
        ]]
        it("should error if given something other than a table", function() -- Line 853
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 854
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.all(1)
            end).to.throw()
        end)
        it("should resolve instantly with an empty table if given no promises", function() -- Line 859
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_all_result1 = Parent_upvr.all({})
            local any__unwrap_result1_4, any__unwrap_result2_6 = any_all_result1:_unwrap()
            expect(any__unwrap_result1_4).to.equal(true)
            expect(any_all_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any__unwrap_result2_6).to.be.a("table")
            expect(next(any__unwrap_result2_6)).to.equal(nil)
        end)
        it("should error if given non-promise values", function() -- Line 869
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 870
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.all({{}, {}, {}})
            end).to.throw()
        end)
        it("should wait for all promises to be resolved and return their values", function() -- Line 875
            --[[ Upvalues[2]:
                [1]: pack_upvr (copied, readonly)
                [2]: Parent_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local tbl_3_upvr = {}
            local pack_result1_6, pack_result2_2_upvr = pack_upvr(1, "A string", nil, false)
            local tbl_18 = {}
            for i_upvr = 1, pack_result1_6 do
                tbl_18[i_upvr] = Parent_upvr.new(function(arg1) -- Line 883
                    --[[ Upvalues[3]:
                        [1]: tbl_3_upvr (readonly)
                        [2]: i_upvr (readonly)
                        [3]: pack_result2_2_upvr (readonly)
                    ]]
                    local tbl = {}
                    tbl[1] = arg1
                    tbl[2] = pack_result2_2_upvr[i_upvr]
                    tbl_3_upvr[i_upvr] = tbl
                end)
            end
            for _, v in ipairs(tbl_3_upvr) do
                expect(Parent_upvr.all(tbl_18):getStatus()).to.equal(Parent_upvr.Status.Started)
                v[1](v[2])
                local var295
            end
            local pack_result1_2, pack_result2_4 = pack_upvr(var295:_unwrap())
            local unpack_result1_3, unpack_result2_2 = unpack(pack_result2_4, 1, pack_result1_2)
            expect(pack_result1_2).to.equal(2)
            expect(unpack_result1_3).to.equal(true)
            expect(unpack_result2_2).to.be.a("table")
            expect(#unpack_result2_2).to.equal(#tbl_18)
            for i_3 = 1, pack_result1_6 do
                expect(unpack_result2_2[i_3]).to.equal(pack_result2_2_upvr[i_3])
                local _
            end
        end)
        it("should reject if any individual promise rejected", function() -- Line 908
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: pack_upvr (copied, readonly)
            ]]
            local var302_upvw
            local var303_upvw
            local any_new_result1_20 = Parent_upvr.new(function(arg1) -- Line 916
                --[[ Upvalues[1]:
                    [1]: var303_upvw (read and write)
                ]]
                var303_upvw = arg1
            end)
            local any_all_result1_4 = Parent_upvr.all({Parent_upvr.new(function(arg1, arg2) -- Line 912
                --[[ Upvalues[1]:
                    [1]: var302_upvw (read and write)
                ]]
                var302_upvw = arg2
            end), any_new_result1_20})
            expect(any_all_result1_4:getStatus()).to.equal(Parent_upvr.Status.Started)
            var302_upvw("baz", "qux")
            var303_upvw("foo", "bar")
            local pack_result1_5, pack_result2_7 = pack_upvr(any_all_result1_4:_unwrap())
            local unpack_result1, unpack_result2_4, unpack_result3_2 = unpack(pack_result2_7, 1, pack_result1_5)
            expect(pack_result1_5).to.equal(3)
            expect(unpack_result1).to.equal(false)
            expect(unpack_result2_4).to.equal("baz")
            expect(unpack_result3_2).to.equal("qux")
            expect(any_new_result1_20:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should not resolve if resolved after rejecting", function() -- Line 937
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: pack_upvr (copied, readonly)
            ]]
            local var315_upvw
            local var316_upvw
            local any_all_result1_2 = Parent_upvr.all({Parent_upvr.new(function(arg1, arg2) -- Line 941
                --[[ Upvalues[1]:
                    [1]: var315_upvw (read and write)
                ]]
                var315_upvw = arg2
            end), Parent_upvr.new(function(arg1) -- Line 945
                --[[ Upvalues[1]:
                    [1]: var316_upvw (read and write)
                ]]
                var316_upvw = arg1
            end)})
            expect(any_all_result1_2:getStatus()).to.equal(Parent_upvr.Status.Started)
            var315_upvw("baz", "qux")
            var316_upvw("foo", "bar")
            local pack_result1_7, pack_result2 = pack_upvr(any_all_result1_2:_unwrap())
            local unpack_result1_2, unpack_result2_3, unpack_result3 = unpack(pack_result2, 1, pack_result1_7)
            expect(pack_result1_7).to.equal(3)
            expect(unpack_result1_2).to.equal(false)
            expect(unpack_result2_3).to.equal("baz")
            expect(unpack_result3).to.equal("qux")
        end)
        it("should only reject once", function() -- Line 965
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: pack_upvr (copied, readonly)
            ]]
            local var327_upvw
            local var328_upvw
            local any_all_result1_3 = Parent_upvr.all({Parent_upvr.new(function(arg1, arg2) -- Line 969
                --[[ Upvalues[1]:
                    [1]: var327_upvw (read and write)
                ]]
                var327_upvw = arg2
            end), Parent_upvr.new(function(arg1, arg2) -- Line 973
                --[[ Upvalues[1]:
                    [1]: var328_upvw (read and write)
                ]]
                var328_upvw = arg2
            end)})
            expect(any_all_result1_3:getStatus()).to.equal(Parent_upvr.Status.Started)
            var327_upvw("foo", "bar")
            expect(any_all_result1_3:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            var328_upvw("baz", "qux")
            local pack_result1, pack_result2_6 = pack_upvr(any_all_result1_3:_unwrap())
            local unpack_result1_4, unpack_result2, unpack_result3_3 = unpack(pack_result2_6, 1, pack_result1)
            expect(pack_result1).to.equal(3)
            expect(unpack_result1_4).to.equal(false)
            expect(unpack_result2).to.equal("foo")
            expect(unpack_result3_3).to.equal("bar")
        end)
        it("should error if a non-array table is passed in", function() -- Line 996
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local pcall_result1, pcall_result2_3 = pcall(function() -- Line 997
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.all(Parent_upvr.new(function() -- Line 998
                end))
            end)
            expect(pcall_result1).to.be.ok()
            expect(pcall_result2_3:find("Non%-promise")).to.be.ok()
        end)
        it("should cancel pending promises if one rejects", function() -- Line 1005
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_13 = Parent_upvr.new(function() -- Line 1006
            end)
            expect(Parent_upvr.all({Parent_upvr.resolve(), Parent_upvr.reject(), any_new_result1_13}):getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_new_result1_13:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should cancel promises if it is cancelled", function() -- Line 1015
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_17 = Parent_upvr.new(function() -- Line 1016
            end)
            any_new_result1_17:andThen(function() -- Line 1017
            end)
            local tbl_17 = {Parent_upvr.new(function() -- Line 1020
            end), Parent_upvr.new(function() -- Line 1021
            end), any_new_result1_17}
            Parent_upvr.all(tbl_17):cancel()
            expect(tbl_17[1]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_17[2]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_17[3]:getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
    end)
    describe("Promise.fold", function() -- Line 1033
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should return the initial value in a promise when the list is empty", function() -- Line 1034
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_2 = {}
            local any_fold_result1 = Parent_upvr.fold({}, function() -- Line 1036
                error("should not be called")
            end, tbl_2)
            expect(Parent_upvr.is(any_fold_result1)).to.equal(true)
            expect(any_fold_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_fold_result1:expect()).to.equal(tbl_2)
        end)
        it("should accept promises in the list", function() -- Line 1045
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var360_upvw
            local any_fold_result1_5 = Parent_upvr.fold({Parent_upvr.new(function(arg1) -- Line 1048
                --[[ Upvalues[1]:
                    [1]: var360_upvw (read and write)
                ]]
                var360_upvw = arg1
            end), 2, 3}, function(arg1, arg2) -- Line 1050
                return arg1 + arg2
            end, 0)
            var360_upvw(1)
            expect(Parent_upvr.is(any_fold_result1_5)).to.equal(true)
            expect(any_fold_result1_5:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_fold_result1_5:expect()).to.equal(6)
        end)
        it("should always return a promise even if the list or reducer don't use them", function() -- Line 1061
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local any_fold_result1_3 = Parent_upvr.fold({1, 2, 3}, function(arg1, arg2, arg3) -- Line 1062
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                if arg3 == 2 then
                    return Parent_upvr.delay(1):andThenReturn(arg1 + arg2)
                end
                return arg1 + arg2
            end, 0)
            expect(Parent_upvr.is(any_fold_result1_3)).to.equal(true)
            expect(any_fold_result1_3:getStatus()).to.equal(Parent_upvr.Status.Started)
            advanceTime_upvw(2)
            expect(any_fold_result1_3:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_fold_result1_3:expect()).to.equal(6)
        end)
        it("should return the first rejected promise", function() -- Line 1076
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_fold_result1_4 = Parent_upvr.fold({1, 2, 3}, function(arg1, arg2, arg3) -- Line 1078
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                if arg3 == 2 then
                    return Parent_upvr.reject("foo")
                end
                return arg1 + arg2
            end, 0)
            expect(Parent_upvr.is(any_fold_result1_4)).to.equal(true)
            local any_awaitStatus_result1, any_awaitStatus_result2 = any_fold_result1_4:awaitStatus()
            expect(any_awaitStatus_result1).to.equal(Parent_upvr.Status.Rejected)
            expect(any_awaitStatus_result2).to.equal("foo")
        end)
        it("should return the first canceled promise", function() -- Line 1091
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var376_upvw
            local any_fold_result1_2 = Parent_upvr.fold({1, 2, 3}, function(arg1, arg2, arg3) -- Line 1093
                --[[ Upvalues[2]:
                    [1]: var376_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                if arg3 == 1 then
                    return arg1 + arg2
                end
                if arg3 == 2 then
                    var376_upvw = Parent_upvr.delay(1):andThenReturn(arg1 + arg2)
                    return var376_upvw
                end
                error("this should not run if the promise is cancelled")
            end, 0)
            expect(Parent_upvr.is(any_fold_result1_2)).to.equal(true)
            expect(any_fold_result1_2:getStatus()).to.equal(Parent_upvr.Status.Started)
            var376_upvw:cancel()
            expect(any_fold_result1_2:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
    end)
    describe("Promise.race", function() -- Line 1110
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should resolve with the first settled value", function() -- Line 1111
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.race({Parent_upvr.resolve(1), Parent_upvr.resolve(2)}):andThen(function(arg1) -- Line 1115
                expect(arg1).to.equal(1)
            end):getStatus()).to.equal(Parent_upvr.Status.Resolved)
        end)
        it("should cancel other promises", function() -- Line 1122
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_33 = Parent_upvr.new(function() -- Line 1123
            end)
            any_new_result1_33:andThen(function() -- Line 1124
            end)
            local tbl_14 = {any_new_result1_33, Parent_upvr.new(function() -- Line 1127
            end), Parent_upvr.new(function(arg1) -- Line 1128
                arg1(2)
            end)}
            local any_race_result1 = Parent_upvr.race(tbl_14)
            expect(any_race_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_race_result1._values[1]).to.equal(2)
            expect(tbl_14[1]:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(tbl_14[2]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_14[3]:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            local any_new_result1_18 = Parent_upvr.new(function() -- Line 1141
            end)
            expect(Parent_upvr.race({Parent_upvr.reject(), Parent_upvr.resolve(), any_new_result1_18}):getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_new_result1_18:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should error if a non-array table is passed in", function() -- Line 1150
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local pcall_result1_3, pcall_result2 = pcall(function() -- Line 1151
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.race(Parent_upvr.new(function() -- Line 1152
                end))
            end)
            expect(pcall_result1_3).to.be.ok()
            expect(pcall_result2:find("Non%-promise")).to.be.ok()
        end)
        it("should cancel promises if it is cancelled", function() -- Line 1159
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_3 = Parent_upvr.new(function() -- Line 1160
            end)
            any_new_result1_3:andThen(function() -- Line 1161
            end)
            local tbl_15 = {Parent_upvr.new(function() -- Line 1164
            end), Parent_upvr.new(function() -- Line 1165
            end), any_new_result1_3}
            Parent_upvr.race(tbl_15):cancel()
            expect(tbl_15[1]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_15[2]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_15[3]:getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
    end)
    describe("Promise.promisify", function() -- Line 1177
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should wrap functions", function() -- Line 1178
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var409 = Parent_upvr.promisify(function(arg1) -- Line 1179, Named "test"
                return arg1 + 1
            end)(1)
            local any__unwrap_result1, any__unwrap_result2_3 = var409:_unwrap()
            expect(any__unwrap_result1).to.equal(true)
            expect(var409:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any__unwrap_result2_3).to.equal(2)
        end)
        it("should catch errors after a yield", function() -- Line 1192
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent_2_upvr = Instance.new("BindableEvent")
            local var415 = Parent_upvr.promisify(function() -- Line 1194
                --[[ Upvalues[1]:
                    [1]: BindableEvent_2_upvr (readonly)
                ]]
                BindableEvent_2_upvr.Event:Wait()
                error("errortext")
            end)()
            expect(var415:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_2_upvr:Fire()
            expect(var415:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(tostring(var415._values[1]):find("errortext")).to.be.ok()
        end)
    end)
    describe("Promise.tap", function() -- Line 1208
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should thread through values", function() -- Line 1209
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var418_upvw
            local var419_upvw
            Parent_upvr.resolve(1):andThen(function(arg1) -- Line 1213
                return arg1 + 1
            end):tap(function(arg1) -- Line 1216
                --[[ Upvalues[1]:
                    [1]: var418_upvw (read and write)
                ]]
                var418_upvw = arg1
                return arg1 + 1
            end):andThen(function(arg1) -- Line 1220
                --[[ Upvalues[1]:
                    [1]: var419_upvw (read and write)
                ]]
                var419_upvw = arg1
            end)
            expect(var418_upvw).to.equal(2)
            expect(var419_upvw).to.equal(2)
        end)
        it("should chain onto promises", function() -- Line 1228
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var424_upvw
            local var425_upvw
            local any_andThen_result1_3 = Parent_upvr.resolve(1):tap(function() -- Line 1232
                --[[ Upvalues[2]:
                    [1]: Parent_upvr (copied, readonly)
                    [2]: var424_upvw (read and write)
                ]]
                return Parent_upvr.new(function(arg1) -- Line 1233
                    --[[ Upvalues[1]:
                        [1]: var424_upvw (copied, read and write)
                    ]]
                    var424_upvw = arg1
                end)
            end):andThen(function(arg1) -- Line 1237
                --[[ Upvalues[1]:
                    [1]: var425_upvw (read and write)
                ]]
                var425_upvw = arg1
            end)
            expect(any_andThen_result1_3:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(var425_upvw).to.never.be.ok()
            var424_upvw(1)
            expect(any_andThen_result1_3:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(var425_upvw).to.equal(1)
        end)
    end)
    describe("Promise.try", function() -- Line 1251
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should catch synchronous errors", function() -- Line 1252
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var432_upvw
            Parent_upvr.try(function() -- Line 1254
                error("errortext")
            end):catch(function(arg1) -- Line 1256
                --[[ Upvalues[1]:
                    [1]: var432_upvw (read and write)
                ]]
                var432_upvw = tostring(arg1)
            end)
            expect(var432_upvw:find("errortext")).to.be.ok()
        end)
        it("should reject with error objects", function() -- Line 1263
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_13_upvr = {}
            local any__unwrap_result1_8, any__unwrap_result2_10 = Parent_upvr.try(function() -- Line 1265
                --[[ Upvalues[1]:
                    [1]: tbl_13_upvr (readonly)
                ]]
                error(tbl_13_upvr)
            end):_unwrap()
            expect(any__unwrap_result1_8).to.equal(false)
            expect(any__unwrap_result2_10).to.equal(tbl_13_upvr)
        end)
        it("should catch asynchronous errors", function() -- Line 1273
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent_upvr_2 = Instance.new("BindableEvent")
            local any_try_result1 = Parent_upvr.try(function() -- Line 1275
                --[[ Upvalues[1]:
                    [1]: BindableEvent_upvr_2 (readonly)
                ]]
                BindableEvent_upvr_2.Event:Wait()
                error("errortext")
            end)
            expect(any_try_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_upvr_2:Fire()
            expect(any_try_result1:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(tostring(any_try_result1._values[1]):find("errortext")).to.be.ok()
        end)
    end)
    describe("Promise:andThenReturn", function() -- Line 1287
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return the given values", function() -- Line 1288
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var446_upvw
            local var447_upvw
            Parent_upvr.resolve():andThenReturn(1, 2):andThen(function(arg1, arg2) -- Line 1291
                --[[ Upvalues[2]:
                    [1]: var446_upvw (read and write)
                    [2]: var447_upvw (read and write)
                ]]
                var446_upvw = arg1
                var447_upvw = arg2
            end)
            expect(var446_upvw).to.equal(1)
            expect(var447_upvw).to.equal(2)
        end)
    end)
    describe("Promise:andThenCall", function() -- Line 1301
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should call the given function with arguments", function() -- Line 1302
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var451_upvw
            local var452_upvw
            Parent_upvr.resolve():andThenCall(function(arg1, arg2) -- Line 1304
                --[[ Upvalues[2]:
                    [1]: var451_upvw (read and write)
                    [2]: var452_upvw (read and write)
                ]]
                var451_upvw = arg1
                var452_upvw = arg2
            end, 3, 4)
            expect(var451_upvw).to.equal(3)
            expect(var452_upvw).to.equal(4)
        end)
    end)
    describe("Promise.some", function() -- Line 1314
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should resolve once the goal is reached", function() -- Line 1315
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_some_result1_2 = Parent_upvr.some({Parent_upvr.resolve(1), Parent_upvr.reject(), Parent_upvr.resolve(2)}, 2)
            expect(any_some_result1_2:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_some_result1_2._values[1][1]).to.equal(1)
            expect(any_some_result1_2._values[1][2]).to.equal(2)
        end)
        it("should error if the goal can't be reached", function() -- Line 1326
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.some({Parent_upvr.resolve(), Parent_upvr.reject()}, 2):getStatus()).to.equal(Parent_upvr.Status.Rejected)
            local var460_upvw
            local any_some_result1_3 = Parent_upvr.some({Parent_upvr.resolve(), Parent_upvr.new(function(arg1, arg2) -- Line 1335
                --[[ Upvalues[1]:
                    [1]: var460_upvw (read and write)
                ]]
                var460_upvw = arg2
            end)}, 2)
            expect(any_some_result1_3:getStatus()).to.equal(Parent_upvr.Status.Started)
            var460_upvw("foo")
            expect(any_some_result1_3:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_some_result1_3._values[1]).to.equal("foo")
        end)
        it("should cancel pending Promises once the goal is reached", function() -- Line 1346
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var465_upvw
            local any_new_result1_23 = Parent_upvr.new(function() -- Line 1348
            end)
            local any_new_result1_34 = Parent_upvr.new(function(arg1) -- Line 1349
                --[[ Upvalues[1]:
                    [1]: var465_upvw (read and write)
                ]]
                var465_upvw = arg1
            end)
            local any_some_result1_5 = Parent_upvr.some({any_new_result1_23, any_new_result1_34, Parent_upvr.resolve()}, 2)
            expect(any_some_result1_5:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(any_new_result1_23:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(any_new_result1_34:getStatus()).to.equal(Parent_upvr.Status.Started)
            var465_upvw()
            expect(any_some_result1_5:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_new_result1_23:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(any_new_result1_34:getStatus()).to.equal(Parent_upvr.Status.Resolved)
        end)
        it("should error if passed a non-number", function() -- Line 1370
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 1371
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.some({}, "non-number")
            end).to.throw()
        end)
        it("should return an empty array if amount is 0", function() -- Line 1376
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_some_result1 = Parent_upvr.some({Parent_upvr.resolve(2)}, 0)
            expect(any_some_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_some_result1._values[1]).to.equal(0)
        end)
        it("should not return extra values", function() -- Line 1385
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_some_result1_4 = Parent_upvr.some({Parent_upvr.resolve(1), Parent_upvr.resolve(2), Parent_upvr.resolve(3), Parent_upvr.resolve(4)}, 2)
            expect(any_some_result1_4:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(#any_some_result1_4._values[1]).to.equal(2)
            expect(any_some_result1_4._values[1][1]).to.equal(1)
            expect(any_some_result1_4._values[1][2]).to.equal(2)
        end)
        it("should cancel promises if it is cancelled", function() -- Line 1399
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_24 = Parent_upvr.new(function() -- Line 1400
            end)
            any_new_result1_24:andThen(function() -- Line 1401
            end)
            local tbl_4 = {Parent_upvr.new(function() -- Line 1404
            end), Parent_upvr.new(function() -- Line 1405
            end), any_new_result1_24}
            Parent_upvr.some(tbl_4, 3):cancel()
            expect(tbl_4[1]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_4[2]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_4[3]:getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
        describe("Promise.any", function() -- Line 1416
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            it("should return the value directly", function() -- Line 1417
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                local any_any_result1 = Parent_upvr.any({Parent_upvr.reject(), Parent_upvr.reject(), Parent_upvr.resolve(1)})
                expect(any_any_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
                expect(any_any_result1._values[1]).to.equal(1)
            end)
            it("should error if all are rejected", function() -- Line 1428
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                expect(Parent_upvr.any({Parent_upvr.reject(), Parent_upvr.reject(), Parent_upvr.reject()}):getStatus()).to.equal(Parent_upvr.Status.Rejected)
            end)
        end)
    end)
    describe("Promise.allSettled", function() -- Line 1438
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should resolve with an array of PromiseStatuses", function() -- Line 1439
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var495_upvw
            local any_allSettled_result1 = Parent_upvr.allSettled({Parent_upvr.resolve(), Parent_upvr.reject(), Parent_upvr.resolve(), Parent_upvr.new(function(arg1, arg2) -- Line 1445
                --[[ Upvalues[1]:
                    [1]: var495_upvw (read and write)
                ]]
                var495_upvw = arg2
            end)})
            expect(any_allSettled_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            var495_upvw()
            expect(any_allSettled_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_allSettled_result1._values[1][1]).to.equal(Parent_upvr.Status.Resolved)
            expect(any_allSettled_result1._values[1][2]).to.equal(Parent_upvr.Status.Rejected)
            expect(any_allSettled_result1._values[1][3]).to.equal(Parent_upvr.Status.Resolved)
            expect(any_allSettled_result1._values[1][4]).to.equal(Parent_upvr.Status.Rejected)
        end)
        it("should cancel promises if it is cancelled", function() -- Line 1459
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_21 = Parent_upvr.new(function() -- Line 1460
            end)
            any_new_result1_21:andThen(function() -- Line 1461
            end)
            local tbl_10 = {Parent_upvr.new(function() -- Line 1464
            end), Parent_upvr.new(function() -- Line 1465
            end), any_new_result1_21}
            Parent_upvr.allSettled(tbl_10):cancel()
            expect(tbl_10[1]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_10[2]:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_10[3]:getStatus()).to.equal(Parent_upvr.Status.Started)
        end)
    end)
    describe("Promise:await", function() -- Line 1477
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should return the correct values", function() -- Line 1478
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_await_result1, any_await_result2_2, any_await_result3, any_await_result4, any_await_result5 = Parent_upvr.resolve(5, 6, nil, 7):await()
            expect(any_await_result1).to.equal(true)
            expect(any_await_result2_2).to.equal(5)
            expect(any_await_result3).to.equal(6)
            expect(any_await_result4).to.equal(nil)
            expect(any_await_result5).to.equal(7)
        end)
        it("should work if yielding is needed", function() -- Line 1490
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local var514_upvw = false
            task.spawn(function() -- Line 1492
                --[[ Upvalues[2]:
                    [1]: Parent_upvr (copied, readonly)
                    [2]: var514_upvw (read and write)
                ]]
                local _, any_await_result2 = Parent_upvr.delay(1):await()
                expect(type(any_await_result2)).to.equal("number")
                var514_upvw = true
            end)
            advanceTime_upvw(2)
            expect(var514_upvw).to.equal(true)
        end)
    end)
    describe("Promise:expect", function() -- Line 1503
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should throw the correct values", function() -- Line 1504
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_11 = {}
            local any_reject_result1_4_upvr = Parent_upvr.reject(tbl_11)
            local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 1508
                --[[ Upvalues[1]:
                    [1]: any_reject_result1_4_upvr (readonly)
                ]]
                any_reject_result1_4_upvr:expect()
            end)
            expect(pcall_result1_2).to.equal(false)
            expect(pcall_result2_2).to.equal(tbl_11)
        end)
    end)
    describe("Promise:now", function() -- Line 1517
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should resolve if the Promise is resolved", function() -- Line 1518
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any__unwrap_result1_7, any__unwrap_result2_9 = Parent_upvr.resolve("foo"):now():_unwrap()
            expect(any__unwrap_result1_7).to.equal(true)
            expect(any__unwrap_result2_9).to.equal("foo")
        end)
        it("should reject if the Promise is not resolved", function() -- Line 1525
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any__unwrap_result1_6, any__unwrap_result2_7 = Parent_upvr.new(function() -- Line 1526
            end):now():_unwrap()
            expect(any__unwrap_result1_6).to.equal(false)
            expect(Parent_upvr.Error.isKind(any__unwrap_result2_7, "NotResolvedInTime")).to.equal(true)
        end)
        it("should reject with a custom rejection value", function() -- Line 1532
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any__unwrap_result1_5, any__unwrap_result2_4 = Parent_upvr.new(function() -- Line 1533
            end):now("foo"):_unwrap()
            expect(any__unwrap_result1_5).to.equal(false)
            expect(any__unwrap_result2_4).to.equal("foo")
        end)
    end)
    describe("Promise.each", function() -- Line 1540
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should iterate", function() -- Line 1541
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any__unwrap_result1_2, any__unwrap_result2 = Parent_upvr.each({"foo", "bar", "baz", "qux"}, function(...) -- Line 1547
                return {...}
            end):_unwrap()
            expect(any__unwrap_result1_2).to.equal(true)
            expect(any__unwrap_result2[1][1]).to.equal("foo")
            expect(any__unwrap_result2[1][2]).to.equal(1)
            expect(any__unwrap_result2[2][1]).to.equal("bar")
            expect(any__unwrap_result2[2][2]).to.equal(2)
            expect(any__unwrap_result2[3][1]).to.equal("baz")
            expect(any__unwrap_result2[3][2]).to.equal(3)
            expect(any__unwrap_result2[4][1]).to.equal("qux")
            expect(any__unwrap_result2[4][2]).to.equal(4)
        end)
        it("should iterate serially", function() -- Line 1562
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_12_upvr = {}
            local tbl_5_upvr = {}
            local any_each_result1_5 = Parent_upvr.each({"foo", "bar", "baz"}, function(arg1, arg2) -- Line 1570
                --[[ Upvalues[3]:
                    [1]: tbl_5_upvr (readonly)
                    [2]: Parent_upvr (copied, readonly)
                    [3]: tbl_12_upvr (readonly)
                ]]
                tbl_5_upvr[arg2] = (tbl_5_upvr[arg2] or 0) + 1
                return Parent_upvr.new(function(arg1_2) -- Line 1573
                    --[[ Upvalues[2]:
                        [1]: tbl_12_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                    ]]
                    table.insert(tbl_12_upvr, function() -- Line 1574
                        --[[ Upvalues[2]:
                            [1]: arg1_2 (readonly)
                            [2]: arg1 (copied, readonly)
                        ]]
                        arg1_2(arg1:upper())
                    end)
                end)
            end)
            expect(any_each_result1_5:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(#tbl_12_upvr).to.equal(1)
            expect(tbl_5_upvr[1]).to.equal(1)
            expect(tbl_5_upvr[2]).to.never.be.ok()
            table.remove(tbl_12_upvr, 1)()
            expect(any_each_result1_5:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(#tbl_12_upvr).to.equal(1)
            expect(tbl_5_upvr[1]).to.equal(1)
            expect(tbl_5_upvr[2]).to.equal(1)
            expect(tbl_5_upvr[3]).to.never.be.ok()
            table.remove(tbl_12_upvr, 1)()
            expect(any_each_result1_5:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(tbl_5_upvr[1]).to.equal(1)
            expect(tbl_5_upvr[2]).to.equal(1)
            expect(tbl_5_upvr[3]).to.equal(1)
            table.remove(tbl_12_upvr, 1)()
            expect(any_each_result1_5:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(type(any_each_result1_5._values[1])).to.equal("table")
            expect(type(any_each_result1_5._values[2])).to.equal("nil")
            local _1 = any_each_result1_5._values[1]
            expect(_1[1]).to.equal("FOO")
            expect(_1[2]).to.equal("BAR")
            expect(_1[3]).to.equal("BAZ")
        end)
        it("should reject with the value if the predicate promise rejects", function() -- Line 1613
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_each_result1_2 = Parent_upvr.each({1, 2, 3}, function() -- Line 1614
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                return Parent_upvr.reject("foobar")
            end)
            expect(any_each_result1_2:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_each_result1_2._values[1]).to.equal("foobar")
        end)
        it("should allow Promises to be in the list and wait when it gets to them", function() -- Line 1622
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var558_upvw
            local any_each_result1_4 = Parent_upvr.each({Parent_upvr.new(function(arg1) -- Line 1624
                --[[ Upvalues[1]:
                    [1]: var558_upvw (read and write)
                ]]
                var558_upvw = arg1
            end)}, function(arg1) -- Line 1630
                return arg1 * 2
            end)
            expect(any_each_result1_4:getStatus()).to.equal(Parent_upvr.Status.Started)
            var558_upvw(2)
            expect(any_each_result1_4:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_each_result1_4._values[1][1]).to.equal(4)
        end)
        it("should reject with the value if a Promise from the list rejects", function() -- Line 1642
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var564_upvw = false
            local any_each_result1_6 = Parent_upvr.each({1, 2, Parent_upvr.reject("foobar")}, function(arg1) -- Line 1644
                --[[ Upvalues[1]:
                    [1]: var564_upvw (read and write)
                ]]
                var564_upvw = true
                return "never"
            end)
            expect(any_each_result1_6:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_each_result1_6._values[1]).to.equal("foobar")
            expect(var564_upvw).to.equal(false)
        end)
        it("should reject immediately if there's a cancelled Promise in the list initially", function() -- Line 1654
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1 = Parent_upvr.new(function() -- Line 1655
            end)
            any_new_result1:cancel()
            local var571_upvw = false
            local any_each_result1_3 = Parent_upvr.each({1, 2, any_new_result1}, function() -- Line 1659
                --[[ Upvalues[1]:
                    [1]: var571_upvw (read and write)
                ]]
                var571_upvw = true
            end)
            expect(any_each_result1_3:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(var571_upvw).to.equal(false)
            expect(any_each_result1_3._values[1].kind).to.equal(Parent_upvr.Error.Kind.AlreadyCancelled)
        end)
        it("should stop iteration if Promise.each is cancelled", function() -- Line 1668
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_8_upvr = {}
            local any_each_result1 = Parent_upvr.each({"foo", "bar", "baz"}, function(arg1, arg2) -- Line 1675
                --[[ Upvalues[2]:
                    [1]: tbl_8_upvr (readonly)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                tbl_8_upvr[arg2] = (tbl_8_upvr[arg2] or 0) + 1
                return Parent_upvr.new(function() -- Line 1678
                end)
            end)
            expect(any_each_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            expect(tbl_8_upvr[1]).to.equal(1)
            expect(tbl_8_upvr[2]).to.never.be.ok()
            any_each_result1:cancel()
            expect(any_each_result1:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
            expect(tbl_8_upvr[1]).to.equal(1)
            expect(tbl_8_upvr[2]).to.never.be.ok()
        end)
        it("should cancel the Promise returned from the predicate if Promise.each is cancelled", function() -- Line 1692
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var582_upvw
            Parent_upvr.each({"foo", "bar", "baz"}, function(arg1, arg2) -- Line 1699
                --[[ Upvalues[2]:
                    [1]: var582_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                var582_upvw = Parent_upvr.new(function() -- Line 1700
                end)
                return var582_upvw
            end):cancel()
            expect(var582_upvw:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
        it("should cancel Promises in the list if Promise.each is cancelled", function() -- Line 1709
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_new_result1_16 = Parent_upvr.new(function() -- Line 1710
            end)
            Parent_upvr.each({any_new_result1_16}, function() -- Line 1712
            end):cancel()
            expect(any_new_result1_16:getStatus()).to.equal(Parent_upvr.Status.Cancelled)
        end)
    end)
    describe("Promise.retry", function() -- Line 1720
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should retry N times", function() -- Line 1721
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local var594_upvw = 0
            local any_retry_result1 = Parent_upvr.retry(function(arg1) -- Line 1724
                --[[ Upvalues[2]:
                    [1]: var594_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                expect(arg1).to.equal("foo")
                var594_upvw += 1
                if var594_upvw == 5 then
                    return Parent_upvr.resolve("ok")
                end
                return Parent_upvr.reject("fail")
            end, 5, "foo")
            expect(any_retry_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_retry_result1._values[1]).to.equal("ok")
        end)
        it("should reject if threshold is exceeded", function() -- Line 1740
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_retry_result1_2 = Parent_upvr.retry(function() -- Line 1741
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                return Parent_upvr.reject("fail")
            end, 5)
            expect(any_retry_result1_2:getStatus()).to.equal(Parent_upvr.Status.Rejected)
            expect(any_retry_result1_2._values[1]).to.equal("fail")
        end)
    end)
    describe("Promise.retryWithDelay", function() -- Line 1750
        --[[ Upvalues[2]:
            [1]: Parent_upvr (readonly)
            [2]: advanceTime_upvw (read and write)
        ]]
        it("should retry after a delay", function() -- Line 1751
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: advanceTime_upvw (copied, read and write)
            ]]
            local var601_upvw = 0
            local any_retryWithDelay_result1 = Parent_upvr.retryWithDelay(function(arg1) -- Line 1754
                --[[ Upvalues[2]:
                    [1]: var601_upvw (read and write)
                    [2]: Parent_upvr (copied, readonly)
                ]]
                expect(arg1).to.equal("foo")
                var601_upvw += 1
                if var601_upvw == 3 then
                    return Parent_upvr.resolve("ok")
                end
                return Parent_upvr.reject("fail")
            end, 3, 10, "foo")
            expect(var601_upvw).to.equal(1)
            advanceTime_upvw(11)
            expect(var601_upvw).to.equal(2)
            advanceTime_upvw(11)
            expect(var601_upvw).to.equal(3)
            expect(any_retryWithDelay_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_retryWithDelay_result1._values[1]).to.equal("ok")
        end)
    end)
    describe("Promise.fromEvent", function() -- Line 1781
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should convert a Promise into an event", function() -- Line 1782
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent = Instance.new("BindableEvent")
            local any_fromEvent_result1 = Parent_upvr.fromEvent(BindableEvent.Event)
            expect(any_fromEvent_result1:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent:Fire("foo")
            expect(any_fromEvent_result1:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_fromEvent_result1._values[1]).to.equal("foo")
        end)
        it("should convert a Promise into an event with the predicate", function() -- Line 1795
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local BindableEvent_3 = Instance.new("BindableEvent")
            local any_fromEvent_result1_2 = Parent_upvr.fromEvent(BindableEvent_3.Event, function(arg1) -- Line 1798
                if arg1 ~= "foo" then
                else
                end
                return true
            end)
            expect(any_fromEvent_result1_2:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_3:Fire("bar")
            expect(any_fromEvent_result1_2:getStatus()).to.equal(Parent_upvr.Status.Started)
            BindableEvent_3:Fire("foo")
            expect(any_fromEvent_result1_2:getStatus()).to.equal(Parent_upvr.Status.Resolved)
            expect(any_fromEvent_result1_2._values[1]).to.equal("foo")
        end)
    end)
    describe("Promise.is", function() -- Line 1815
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should work with current version", function() -- Line 1816
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.is(Parent_upvr.resolve(1))).to.equal(true)
        end)
        it("should work with any object with an andThen", function() -- Line 1822
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_7 = {}
            local function andThen() -- Line 1824
                return 1
            end
            tbl_7.andThen = andThen
            expect(Parent_upvr.is(tbl_7)).to.equal(true)
        end)
        it("should work with older promises", function() -- Line 1832
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local tbl_9 = {
                prototype = {};
                __index = tbl_9.prototype;
            }
            tbl_9.prototype.andThen = function(arg1) -- Line 1837, Named "andThen"
            end
            expect(Parent_upvr.is(setmetatable({}, tbl_9))).to.equal(true)
        end)
    end)
end
ModuleScript flipper ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:49
-- Luau version 6, Types version 3
-- Time taken: 0.000689 seconds

return {
    SingleMotor = require(script.SingleMotor);
    GroupMotor = require(script.GroupMotor);
    Instant = require(script.Instant);
    Linear = require(script.Linear);
    Spring = require(script.Spring);
    isMotor = require(script.isMotor);
}
ModuleScript BaseMotor ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.BaseMotor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:51
-- Luau version 6, Types version 3
-- Time taken: 0.002297 seconds

local function var1() -- Line 5
end
local module_upvr = {}
module_upvr.__index = module_upvr
local Signal_upvr = require(script.Parent.Signal)
function module_upvr.new() -- Line 10
    --[[ Upvalues[2]:
        [1]: Signal_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    return setmetatable({
        _onStep = Signal_upvr.new();
        _onStart = Signal_upvr.new();
        _onComplete = Signal_upvr.new();
    }, module_upvr)
end
function module_upvr.onStep(arg1, arg2) -- Line 18
    return arg1._onStep:connect(arg2)
end
function module_upvr.onStart(arg1, arg2) -- Line 22
    return arg1._onStart:connect(arg2)
end
function module_upvr.onComplete(arg1, arg2) -- Line 26
    return arg1._onComplete:connect(arg2)
end
local RunService_upvr = game:GetService("RunService")
function module_upvr.start(arg1) -- Line 30
    --[[ Upvalues[1]:
        [1]: RunService_upvr (readonly)
    ]]
    if not arg1._connection then
        arg1._connection = RunService_upvr.RenderStepped:Connect(function(arg1_2) -- Line 32
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:step(arg1_2)
        end)
    end
end
function module_upvr.stop(arg1) -- Line 38
    if arg1._connection then
        arg1._connection:Disconnect()
        arg1._connection = nil
    end
end
module_upvr.destroy = module_upvr.stop
module_upvr.step = var1
module_upvr.getValue = var1
module_upvr.setGoal = var1
function module_upvr.__tostring(arg1) -- Line 51
    return "Motor"
end
return module_upvr
ModuleScript BaseMotor.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.BaseMotor.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:53
-- Luau version 6, Types version 3
-- Time taken: 0.002760 seconds

return function() -- Line 1
    local BaseMotor_upvr = require(script.Parent.BaseMotor)
    describe("connection management", function() -- Line 6
        --[[ Upvalues[1]:
            [1]: BaseMotor_upvr (readonly)
        ]]
        local any_new_result1_upvr = BaseMotor_upvr.new()
        it("should hook up connections on :start()", function() -- Line 9
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:start()
            expect(typeof(any_new_result1_upvr._connection)).to.equal("RBXScriptConnection")
        end)
        it("should remove connections on :stop() or :destroy()", function() -- Line 14
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:stop()
            expect(any_new_result1_upvr._connection).to.equal(nil)
        end)
    end)
    local RunService_upvr = game:GetService("RunService")
    it("should call :step() with deltaTime", function() -- Line 20
        --[[ Upvalues[2]:
            [1]: BaseMotor_upvr (readonly)
            [2]: RunService_upvr (readonly)
        ]]
        local any_new_result1_upvr_2 = BaseMotor_upvr.new()
        local var10_upvw
        function any_new_result1_upvr_2.step(arg1, ...) -- Line 24
            --[[ Upvalues[2]:
                [1]: var10_upvw (read and write)
                [2]: any_new_result1_upvr_2 (readonly)
            ]]
            var10_upvw = {...}
            any_new_result1_upvr_2:stop()
        end
        any_new_result1_upvr_2:start()
        RunService_upvr.RenderStepped:Wait()
        expect(var10_upvw).to.be.ok()
        expect(var10_upvw[1]).to.equal(RunService_upvr.RenderStepped:Wait())
    end)
end
ModuleScript GroupMotor ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.GroupMotor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:54
-- Luau version 6, Types version 3
-- Time taken: 0.007207 seconds

local BaseMotor_upvr = require(script.Parent.BaseMotor)
local setmetatable_result1_2_upvr = setmetatable({}, BaseMotor_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
local isMotor_upvr = require(script.Parent.isMotor)
local SingleMotor_upvr = require(script.Parent.SingleMotor)
local function toMotor_upvr(arg1) -- Line 9, Named "toMotor"
    --[[ Upvalues[3]:
        [1]: isMotor_upvr (readonly)
        [2]: SingleMotor_upvr (readonly)
        [3]: setmetatable_result1_2_upvr (readonly)
    ]]
    if isMotor_upvr(arg1) then
        return arg1
    end
    local typeof_result1 = typeof(arg1)
    if typeof_result1 == "number" then
        return SingleMotor_upvr.new(arg1, false)
    end
    if typeof_result1 == "table" then
        return setmetatable_result1_2_upvr.new(arg1, false)
    end
    error("Unable to convert %q to motor; type %s is unsupported":format(arg1, typeof_result1), 2)
end
function setmetatable_result1_2_upvr.new(arg1, arg2) -- Line 25
    --[[ Upvalues[3]:
        [1]: BaseMotor_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
        [3]: toMotor_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var14 = arg1
    assert(var14, "Missing argument #1: initialValues")
    if typeof(arg1) ~= "table" then
        var14 = false
    else
        var14 = true
    end
    assert(var14, "initialValues must be a table!")
    assert(not arg1.step, "initialValues contains disallowed property \"step\". Did you mean to put a table of values here?")
    local setmetatable_result1 = setmetatable(BaseMotor_upvr.new(), setmetatable_result1_2_upvr)
    if arg2 ~= nil then
        setmetatable_result1._useImplicitConnections = arg2
    else
        setmetatable_result1._useImplicitConnections = true
    end
    setmetatable_result1._complete = true
    setmetatable_result1._motors = {}
    for i, v in pairs(arg1) do
        setmetatable_result1._motors[i] = toMotor_upvr(v)
        local var19
    end
    return var19
end
function setmetatable_result1_2_upvr.step(arg1, arg2) -- Line 48
    local var24
    if var24 then
        var24 = true
        return var24
    end
    var24 = true
    for _, v_2 in pairs(arg1._motors) do
        if not v_2:step(arg2) then
            var24 = false
        end
    end
    arg1._onStep:fire(arg1:getValue())
    if var24 then
        if arg1._useImplicitConnections then
            arg1:stop()
        end
        arg1._complete = true
        arg1._onComplete:fire()
    end
    return var24
end
function setmetatable_result1_2_upvr.setGoal(arg1, arg2) -- Line 77
    assert(not arg2.step, "goals contains disallowed property \"step\". Did you mean to put a table of goals here?")
    arg1._complete = false
    arg1._onStart:fire()
    for i_3, v_3 in pairs(arg2) do
        assert(arg1._motors[i_3], "Unknown motor for key %s":format(i_3)):setGoal(v_3)
    end
    if arg1._useImplicitConnections then
        arg1:start()
    end
end
function setmetatable_result1_2_upvr.getValue(arg1) -- Line 93
    local module = {}
    for i_4, v_4 in pairs(arg1._motors) do
        module[i_4] = v_4:getValue()
    end
    return module
end
function setmetatable_result1_2_upvr.__tostring(arg1) -- Line 103
    return "Motor(Group)"
end
return setmetatable_result1_2_upvr
ModuleScript GroupMotor.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.GroupMotor.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:55
-- Luau version 6, Types version 3
-- Time taken: 0.006002 seconds

return function() -- Line 1
    local GroupMotor_upvr = require(script.Parent.GroupMotor)
    local Instant_upvr = require(script.Parent.Instant)
    local Spring_upvr = require(script.Parent.Spring)
    it("should complete when all child motors are complete", function() -- Line 7
        --[[ Upvalues[3]:
            [1]: GroupMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
            [3]: Spring_upvr (readonly)
        ]]
        local any_new_result1 = GroupMotor_upvr.new({
            A = 1;
            B = 2;
        }, false)
        expect(any_new_result1._complete).to.equal(true)
        any_new_result1:setGoal({
            A = Instant_upvr.new(3);
            B = Spring_upvr.new(4, {
                frequency = 7.5;
                dampingRatio = 1;
            });
        })
        expect(any_new_result1._complete).to.equal(false)
        any_new_result1:step((1/60))
        expect(any_new_result1._complete).to.equal(false)
        for _ = 1, 30 do
            any_new_result1:step((1/60))
        end
        expect(any_new_result1._complete).to.equal(true)
    end)
    it("should start when the goal is set", function() -- Line 33
        --[[ Upvalues[2]:
            [1]: GroupMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        local any_new_result1_2 = GroupMotor_upvr.new({
            A = 0;
        }, false)
        local var15_upvw = false
        any_new_result1_2:onStart(function() -- Line 39
            --[[ Upvalues[1]:
                [1]: var15_upvw (read and write)
            ]]
            var15_upvw = not var15_upvw
        end)
        any_new_result1_2:setGoal({
            A = Instant_upvr.new(1);
        })
        expect(var15_upvw).to.equal(true)
        any_new_result1_2:setGoal({
            A = Instant_upvr.new(1);
        })
        expect(var15_upvw).to.equal(false)
    end)
    it("should properly return all values", function() -- Line 56
        --[[ Upvalues[1]:
            [1]: GroupMotor_upvr (readonly)
        ]]
        local any_getValue_result1 = GroupMotor_upvr.new({
            A = 1;
            B = 2;
        }, false):getValue()
        expect(any_getValue_result1.A).to.equal(1)
        expect(any_getValue_result1.B).to.equal(2)
    end)
    it("should error when a goal is given to GroupMotor.new", function() -- Line 68
        --[[ Upvalues[2]:
            [1]: GroupMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        expect(pcall(function() -- Line 69
            --[[ Upvalues[2]:
                [1]: GroupMotor_upvr (copied, readonly)
                [2]: Instant_upvr (copied, readonly)
            ]]
            GroupMotor_upvr.new(Instant_upvr.new(0))
        end)).to.equal(false)
    end)
    it("should error when a single goal is provided to GroupMotor:step", function() -- Line 76
        --[[ Upvalues[2]:
            [1]: GroupMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        expect(pcall(function() -- Line 77
            --[[ Upvalues[2]:
                [1]: GroupMotor_upvr (copied, readonly)
                [2]: Instant_upvr (copied, readonly)
            ]]
            GroupMotor_upvr.new({
                a = 1;
            }):setGoal(Instant_upvr.new(0))
        end)).to.equal(false)
    end)
end
ModuleScript Instant ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Instant
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:57
-- Luau version 6, Types version 3
-- Time taken: 0.001107 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local module = {}
    module._targetValue = arg1
    return setmetatable(module, module_upvr)
end
function module_upvr.step(arg1) -- Line 10
    return {
        complete = true;
        value = arg1._targetValue;
    }
end
return module_upvr
ModuleScript Instant.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Instant.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:02:58
-- Luau version 6, Types version 3
-- Time taken: 0.001088 seconds

return function() -- Line 1
    local Instant_upvr = require(script.Parent.Instant)
    it("should return a completed state with the provided value", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Instant_upvr (readonly)
        ]]
        local any_step_result1 = Instant_upvr.new(1.23):step(0.1, {
            value = 0;
            complete = false;
        })
        expect(any_step_result1.complete).to.equal(true)
        expect(any_step_result1.value).to.equal(1.23)
    end)
end
ModuleScript Linear ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Linear
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:00
-- Luau version 6, Types version 3
-- Time taken: 0.003417 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(arg1, "Missing argument #1: targetValue")
    local var2 = arg2
    if not var2 then
        var2 = {}
    end
    local module = {}
    module._targetValue = arg1
    module._velocity = var2.velocity or 1
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.step(arg1, arg2, arg3) -- Line 15
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local value = arg2.value
    local _targetValue = arg1._targetValue
    local var6 = arg3 * arg1._velocity
    local var7
    if math.abs(_targetValue - value) > var6 then
        local _ = false
        -- KONSTANTWARNING: Skipped task `defvar` above
    else
    end
    if value < _targetValue then
        var7 = 1
    else
        var7 = -1
    end
    value += var6 * var7
    local var9 = value
    if true then
        var9 = arg1._targetValue
    end
    local module_3 = {}
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    module_3.complete = true
    module_3.value = var9
    module_3.velocity = 0
    return module_3
end
return module_2_upvr
ModuleScript Linear.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Linear.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:01
-- Luau version 6, Types version 3
-- Time taken: 0.004445 seconds

return function() -- Line 1
    local SingleMotor_upvr = require(script.Parent.SingleMotor)
    local Linear_upvr = require(script.Parent.Linear)
    describe("completed state", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Linear_upvr (readonly)
        ]]
        local any_new_result1_upvr_2 = SingleMotor_upvr.new(0, false)
        any_new_result1_upvr_2:setGoal(Linear_upvr.new(1, {
            velocity = 1;
        }))
        for _ = 1, 60 do
            any_new_result1_upvr_2:step((1/60))
        end
        it("should complete", function() -- Line 15
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_2 (readonly)
            ]]
            expect(any_new_result1_upvr_2._state.complete).to.equal(true)
        end)
        it("should be exactly the goal value when completed", function() -- Line 19
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_2 (readonly)
            ]]
            expect(any_new_result1_upvr_2._state.value).to.equal(1)
        end)
    end)
    describe("uncompleted state", function() -- Line 24
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Linear_upvr (readonly)
        ]]
        local any_new_result1_upvr_3 = SingleMotor_upvr.new(0, false)
        any_new_result1_upvr_3:setGoal(Linear_upvr.new(1, {
            velocity = 1;
        }))
        for _ = 1, 59 do
            any_new_result1_upvr_3:step((1/60))
        end
        it("should be uncomplete", function() -- Line 34
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_3 (readonly)
            ]]
            expect(any_new_result1_upvr_3._state.complete).to.equal(false)
        end)
    end)
    describe("negative velocity", function() -- Line 39
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Linear_upvr (readonly)
        ]]
        local any_new_result1_upvr = SingleMotor_upvr.new(1, false)
        any_new_result1_upvr:setGoal(Linear_upvr.new(0, {
            velocity = 1;
        }))
        for _ = 1, 60 do
            any_new_result1_upvr:step((1/60))
        end
        it("should complete", function() -- Line 49
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            expect(any_new_result1_upvr._state.complete).to.equal(true)
        end)
        it("should be exactly the goal value when completed", function() -- Line 53
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            expect(any_new_result1_upvr._state.value).to.equal(0)
        end)
    end)
end
ModuleScript Signal ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:02
-- Luau version 6, Types version 3
-- Time taken: 0.002602 seconds

local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local function new(arg1, arg2) -- Line 4
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local module = {}
    module.signal = arg1
    module.connected = true
    module._handler = arg2
    return setmetatable(module, tbl_upvr)
end
tbl_upvr.new = new
function tbl_upvr.disconnect(arg1) -- Line 12
    if arg1.connected then
        arg1.connected = false
        for i, v in pairs(arg1.signal._connections) do
            if v == arg1 then
                table.remove(arg1.signal._connections, i)
                return
            end
        end
    end
end
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 28
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({
        _connections = {};
        _threads = {};
    }, module_upvr)
end
function module_upvr.fire(arg1, ...) -- Line 35
    for _, v_2 in pairs(arg1._connections) do
        v_2._handler(...)
    end
    for _, v_3 in pairs(arg1._threads) do
        coroutine.resume(v_3, ...)
    end
    arg1._threads = {}
end
function module_upvr.connect(arg1, arg2) -- Line 47
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local any_new_result1 = tbl_upvr.new(arg1, arg2)
    table.insert(arg1._connections, any_new_result1)
    return any_new_result1
end
function module_upvr.wait(arg1) -- Line 53
    table.insert(arg1._threads, coroutine.running())
    return coroutine.yield()
end
return module_upvr
ModuleScript Signal.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Signal.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:04
-- Luau version 6, Types version 3
-- Time taken: 0.002190 seconds

return function() -- Line 1
    local Signal_upvr = require(script.Parent.Signal)
    it("should invoke all connections, instantly", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1 = Signal_upvr.new()
        local var5_upvw
        local var6_upvw
        any_new_result1:connect(function(arg1) -- Line 9
            --[[ Upvalues[1]:
                [1]: var5_upvw (read and write)
            ]]
            var5_upvw = arg1
        end)
        any_new_result1:connect(function(arg1) -- Line 13
            --[[ Upvalues[1]:
                [1]: var6_upvw (read and write)
            ]]
            var6_upvw = arg1
        end)
        any_new_result1:fire("hello")
        expect(var5_upvw).to.equal("hello")
        expect(var6_upvw).to.equal("hello")
    end)
    it("should return values when :wait() is called", function() -- Line 23
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_2_upvr = Signal_upvr.new()
        spawn(function() -- Line 26
            --[[ Upvalues[1]:
                [1]: any_new_result1_2_upvr (readonly)
            ]]
            any_new_result1_2_upvr:fire(123, "hello")
        end)
        local any_wait_result1, any_wait_result2 = any_new_result1_2_upvr:wait()
        expect(any_wait_result1).to.equal(123)
        expect(any_wait_result2).to.equal("hello")
    end)
    it("should properly handle disconnections", function() -- Line 36
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_3 = Signal_upvr.new()
        local var16_upvw = false
        any_new_result1_3:connect(function() -- Line 41
            --[[ Upvalues[1]:
                [1]: var16_upvw (read and write)
            ]]
            var16_upvw = true
        end):disconnect()
        any_new_result1_3:fire()
        expect(var16_upvw).to.equal(false)
    end)
end
ModuleScript SingleMotor ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.SingleMotor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:05
-- Luau version 6, Types version 3
-- Time taken: 0.003523 seconds

local BaseMotor_upvr = require(script.Parent.BaseMotor)
local setmetatable_result1_2_upvr = setmetatable({}, BaseMotor_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new(arg1, arg2) -- Line 6
    --[[ Upvalues[2]:
        [1]: BaseMotor_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local var3 = arg1
    assert(var3, "Missing argument #1: initialValue")
    if typeof(arg1) ~= "number" then
        var3 = false
    else
        var3 = true
    end
    assert(var3, "initialValue must be a number!")
    local setmetatable_result1 = setmetatable(BaseMotor_upvr.new(), setmetatable_result1_2_upvr)
    if arg2 ~= nil then
        setmetatable_result1._useImplicitConnections = arg2
    else
        setmetatable_result1._useImplicitConnections = true
    end
    setmetatable_result1._goal = nil
    local tbl = {
        complete = true;
    }
    tbl.value = arg1
    setmetatable_result1._state = tbl
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.step(arg1, arg2) -- Line 27
    if arg1._state.complete then
        return true
    end
    local any_step_result1 = arg1._goal:step(arg1._state, arg2)
    arg1._state = any_step_result1
    arg1._onStep:fire(any_step_result1.value)
    if any_step_result1.complete then
        if arg1._useImplicitConnections then
            arg1:stop()
        end
        arg1._onComplete:fire()
    end
    return any_step_result1.complete
end
function setmetatable_result1_2_upvr.getValue(arg1) -- Line 48
    return arg1._state.value
end
function setmetatable_result1_2_upvr.setGoal(arg1, arg2) -- Line 52
    arg1._state.complete = false
    arg1._goal = arg2
    arg1._onStart:fire()
    if arg1._useImplicitConnections then
        arg1:start()
    end
end
function setmetatable_result1_2_upvr.__tostring(arg1) -- Line 63
    return "Motor(Single)"
end
return setmetatable_result1_2_upvr
ModuleScript SingleMotor.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.SingleMotor.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:07
-- Luau version 6, Types version 3
-- Time taken: 0.002136 seconds

return function() -- Line 1
    local SingleMotor_upvr = require(script.Parent.SingleMotor)
    local Instant_upvr = require(script.Parent.Instant)
    it("should assign new state on step", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        local any_new_result1_3 = SingleMotor_upvr.new(0, false)
        any_new_result1_3:setGoal(Instant_upvr.new(5))
        any_new_result1_3:step((1/60))
        expect(any_new_result1_3._state.complete).to.equal(true)
        expect(any_new_result1_3._state.value).to.equal(5)
    end)
    it("should invoke onComplete listeners when the goal is completed", function() -- Line 15
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        local any_new_result1_2 = SingleMotor_upvr.new(0, false)
        local var8_upvw = false
        any_new_result1_2:onComplete(function() -- Line 19
            --[[ Upvalues[1]:
                [1]: var8_upvw (read and write)
            ]]
            var8_upvw = true
        end)
        any_new_result1_2:setGoal(Instant_upvr.new(5))
        any_new_result1_2:step((1/60))
        expect(var8_upvw).to.equal(true)
    end)
    it("should start when the goal is set", function() -- Line 29
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Instant_upvr (readonly)
        ]]
        local any_new_result1 = SingleMotor_upvr.new(0, false)
        local var12_upvw = false
        any_new_result1:onStart(function() -- Line 33
            --[[ Upvalues[1]:
                [1]: var12_upvw (read and write)
            ]]
            var12_upvw = not var12_upvw
        end)
        any_new_result1:setGoal(Instant_upvr.new(5))
        expect(var12_upvw).to.equal(true)
        any_new_result1:setGoal(Instant_upvr.new(5))
        expect(var12_upvw).to.equal(false)
    end)
end
ModuleScript Spring ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Spring
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:08
-- Luau version 6, Types version 3
-- Time taken: 0.006153 seconds

local module_3_upvr = {}
module_3_upvr.__index = module_3_upvr
function module_3_upvr.new(arg1, arg2) -- Line 9
    --[[ Upvalues[1]:
        [1]: module_3_upvr (readonly)
    ]]
    assert(arg1, "Missing argument #1: targetValue")
    local var2 = arg2
    if not var2 then
        var2 = {}
    end
    local var3 = var2
    local module = {}
    module._targetValue = arg1
    module._frequency = var3.frequency or 4
    module._dampingRatio = var3.dampingRatio or 1
    return setmetatable(module, module_3_upvr)
end
function module_3_upvr.step(arg1, arg2, arg3) -- Line 20
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local _dampingRatio = arg1._dampingRatio
    local var6 = arg1._frequency * 2 * math.pi
    local _targetValue = arg1._targetValue
    local var8 = arg2.velocity or 0
    local var9 = arg2.value - _targetValue
    local exponentiated = math.exp(-_dampingRatio * var6 * arg3)
    local var11
    if _dampingRatio == 1 then
        local _ = (var9 * (1 + var6 * arg3) + var8 * arg3) * exponentiated + _targetValue
        var11 = (var8 * (1 - var6 * arg3) - (var9) * (var6 * var6 * arg3)) * exponentiated
    elseif _dampingRatio < 1 then
        local squareroot = math.sqrt(1 - _dampingRatio * _dampingRatio)
        local var15
        if 0.0001 < squareroot then
            var15 = math.sin(var6 * squareroot * arg3) / squareroot
        else
            local var16 = arg3 * var6
            var15 = var16 + (((var16 * var16) * (squareroot * squareroot)) * (squareroot * squareroot) / 20 - squareroot * squareroot) * (var16 * var16 * var16) / 6
        end
        var16 = nil
        local var17 = var16
        if 0.0001 < var6 * squareroot then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            var17 = (math.sin(var6 * squareroot * arg3)) / (var6 * squareroot)
        else
            local var18 = var6 * squareroot
            var17 = arg3 + (((arg3 * arg3) * (var18 * var18)) * (var18 * var18) / 20 - var18 * var18) * (arg3 * arg3 * arg3) / 6
        end
        var11 = (var8 * (math.cos(var6 * squareroot * arg3) - var15 * _dampingRatio) - (var9) * (var15 * var6)) * exponentiated
    else
        local squareroot_2 = math.sqrt(_dampingRatio * _dampingRatio - 1)
        local var20 = -var6 * (_dampingRatio - squareroot_2)
        local var21 = -var6 * (_dampingRatio + squareroot_2)
        local var22 = (var8 - var9 * var20) / (2 * var6 * squareroot_2)
        local var23 = (var9 - var22) * math.exp(var20 * arg3)
        local var24 = var22 * math.exp(var21 * arg3)
        var11 = var23 * var20 + var24 * var21
    end
    squareroot_2 = false
    local var25 = squareroot_2
    if math.abs(var11) < 0.001 then
        if math.abs(var23 + var24 + _targetValue - _targetValue) >= 0.001 then
            var25 = false
        else
            var25 = true
        end
    end
    local module_2 = {
        complete = var25;
    }
    if not var25 or not _targetValue then
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    module_2.value = var23 + var24 + _targetValue
    module_2.velocity = var11
    return module_2
end
return module_3_upvr
ModuleScript Spring.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.Spring.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:09
-- Luau version 6, Types version 3
-- Time taken: 0.002456 seconds

return function() -- Line 1
    local SingleMotor_upvr = require(script.Parent.SingleMotor)
    local Spring_upvr = require(script.Parent.Spring)
    describe("completed state", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Spring_upvr (readonly)
        ]]
        local any_new_result1_upvr = SingleMotor_upvr.new(0, false)
        any_new_result1_upvr:setGoal(Spring_upvr.new(1, {
            frequency = 2;
            dampingRatio = 0.75;
        }))
        for _ = 1, 100 do
            any_new_result1_upvr:step((1/60))
        end
        it("should complete", function() -- Line 15
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            expect(any_new_result1_upvr._state.complete).to.equal(true)
        end)
        it("should be exactly the goal value when completed", function() -- Line 19
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            expect(any_new_result1_upvr._state.value).to.equal(1)
        end)
    end)
    it("should inherit velocity", function() -- Line 24
        --[[ Upvalues[2]:
            [1]: SingleMotor_upvr (readonly)
            [2]: Spring_upvr (readonly)
        ]]
        local any_new_result1 = SingleMotor_upvr.new(0, false)
        any_new_result1._state = {
            complete = false;
            value = 0;
            velocity = -5;
        }
        any_new_result1:setGoal(Spring_upvr.new(1, {
            frequency = 2;
            dampingRatio = 1;
        }))
        any_new_result1:step((1/60))
        local var15
        if any_new_result1._state.velocity >= 0 then
            var15 = false
        else
            var15 = true
        end
        expect(var15).to.equal(true)
    end)
end
ModuleScript isMotor ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.isMotor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:11
-- Luau version 6, Types version 3
-- Time taken: 0.000746 seconds

return function(arg1) -- Line 1, Named "isMotor"
    local any_match_result1 = tostring(arg1):match("^Motor%((.+)%)$")
    if any_match_result1 then
        return true, any_match_result1
    end
    return false
end
ModuleScript isMotor.spec ReplicatedStorage.PopupShop.Packages._Index.reselim_flipper@2.0.0.flipper.isMotor.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:12
-- Luau version 6, Types version 3
-- Time taken: 0.001567 seconds

return function() -- Line 1
    local isMotor_upvr = require(script.Parent.isMotor)
    local any_new_result1_upvr_2 = require(script.Parent.SingleMotor).new(0)
    local any_new_result1_upvr = require(script.Parent.GroupMotor).new({})
    it("should properly detect motors", function() -- Line 10
        --[[ Upvalues[3]:
            [1]: isMotor_upvr (readonly)
            [2]: any_new_result1_upvr_2 (readonly)
            [3]: any_new_result1_upvr (readonly)
        ]]
        expect(isMotor_upvr(any_new_result1_upvr_2)).to.equal(true)
        expect(isMotor_upvr(any_new_result1_upvr)).to.equal(true)
    end)
    it("shouldn't detect things that aren't motors", function() -- Line 15
        --[[ Upvalues[1]:
            [1]: isMotor_upvr (readonly)
        ]]
        expect(isMotor_upvr({})).to.equal(false)
    end)
    it("should return the proper motor type", function() -- Line 19
        --[[ Upvalues[3]:
            [1]: isMotor_upvr (readonly)
            [2]: any_new_result1_upvr_2 (readonly)
            [3]: any_new_result1_upvr (readonly)
        ]]
        local _, isMotor_upvr_result2 = isMotor_upvr(any_new_result1_upvr_2)
        local isMotor_upvr_result1, var2_result2 = isMotor_upvr(any_new_result1_upvr)
        expect(isMotor_upvr_result2).to.equal("Single")
        expect(var2_result2).to.equal("Group")
    end)
end
ModuleScript Flipper ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.Flipper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:14
-- Luau version 6, Types version 3
-- Time taken: 0.000310 seconds

return require(script.Parent.Parent["[email protected]"].flipper)
ModuleScript Roact ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.Roact
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:15
-- Luau version 6, Types version 3
-- Time taken: 0.000424 seconds

return require(script.Parent.Parent["[email protected]"].roact)
ModuleScript roact-flipper ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:17
-- Luau version 6, Types version 3
-- Time taken: 0.000659 seconds

return {
    getBinding = require(script.getBinding);
    useMotor = require(script.useMotor);
    useGoal = require(script.useGoal);
    useInstant = require(script.useInstant);
    useSpring = require(script.useSpring);
    useLinear = require(script.useLinear);
}
ModuleScript AssignedBinding ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.AssignedBinding
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:18
-- Luau version 6, Types version 3
-- Time taken: 0.000395 seconds

return require(script.Parent.Symbol).named("AssignedBinding")
ModuleScript Symbol ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.Symbol
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:20
-- Luau version 6, Types version 3
-- Time taken: 0.001218 seconds

return {
    named = function(arg1) -- Line 16, Named "named"
        local var2_upvr
        if type(arg1) ~= "string" then
            var2_upvr = false
        else
            var2_upvr = true
        end
        assert(var2_upvr, "Symbols must be created using a string name!")
        var2_upvr = true
        local newproxy_result1 = newproxy(var2_upvr)
        var2_upvr = "Symbol(%s)":format(arg1)
        getmetatable(newproxy_result1).__tostring = function() -- Line 23
            --[[ Upvalues[1]:
                [1]: var2_upvr (readonly)
            ]]
            return var2_upvr
        end
        return newproxy_result1
    end;
}
ModuleScript getBinding ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.getBinding
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:21
-- Luau version 6, Types version 3
-- Time taken: 0.001141 seconds

local Flipper_upvr = require(script.Parent.Parent.Flipper)
local AssignedBinding_upvr = require(script.Parent.AssignedBinding)
local Roact_upvr = require(script.Parent.Parent.Roact)
return function(arg1) -- Line 6, Named "getBinding"
    --[[ Upvalues[3]:
        [1]: Flipper_upvr (readonly)
        [2]: AssignedBinding_upvr (readonly)
        [3]: Roact_upvr (readonly)
    ]]
    assert(arg1, "Missing argument #1: motor")
    if not Flipper_upvr.isMotor(arg1) then
        error("Provided value is not a motor!", 2)
    end
    if arg1[AssignedBinding_upvr] then
        return arg1[AssignedBinding_upvr]
    end
    local any_createBinding_result1, any_createBinding_result2 = Roact_upvr.createBinding(arg1:getValue())
    arg1:onStep(any_createBinding_result2)
    arg1[AssignedBinding_upvr] = any_createBinding_result1
    return any_createBinding_result1
end
ModuleScript useGoal ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.useGoal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:23
-- Luau version 6, Types version 3
-- Time taken: 0.001817 seconds

local function getInitialValue_upvr(arg1) -- Line 4, Named "getInitialValue"
    --[[ Upvalues[1]:
        [1]: getInitialValue_upvr (readonly)
    ]]
    if arg1.step then
        return arg1._targetValue
    end
    for i, v in pairs(arg1) do
        ({})[i] = getInitialValue_upvr(v)
        local var9
    end
    return var9
end
local useMotor_upvr = require(script.Parent.useMotor)
local getBinding_upvr = require(script.Parent.getBinding)
return function(arg1, arg2) -- Line 16, Named "useGoal"
    --[[ Upvalues[3]:
        [1]: useMotor_upvr (readonly)
        [2]: getInitialValue_upvr (readonly)
        [3]: getBinding_upvr (readonly)
    ]]
    local var10_result1 = useMotor_upvr(arg1, getInitialValue_upvr(arg2))
    var10_result1:setGoal(arg2)
    return getBinding_upvr(var10_result1), var10_result1
end
ModuleScript useInstant ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.useInstant
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:25
-- Luau version 6, Types version 3
-- Time taken: 0.000867 seconds

local useGoal_upvr = require(script.Parent.useGoal)
local Flipper_upvr = require(script.Parent.Parent.Flipper)
return function(arg1, arg2) -- Line 5, Named "useInstant"
    --[[ Upvalues[2]:
        [1]: useGoal_upvr (readonly)
        [2]: Flipper_upvr (readonly)
    ]]
    return useGoal_upvr(arg1, Flipper_upvr.Instant.new(arg2))
end
ModuleScript useLinear ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.useLinear
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:26
-- Luau version 6, Types version 3
-- Time taken: 0.000721 seconds

local useGoal_upvr = require(script.Parent.useGoal)
local Flipper_upvr = require(script.Parent.Parent.Flipper)
return function(arg1, arg2, arg3) -- Line 5, Named "useLinear"
    --[[ Upvalues[2]:
        [1]: useGoal_upvr (readonly)
        [2]: Flipper_upvr (readonly)
    ]]
    return useGoal_upvr(arg1, Flipper_upvr.Linear.new(arg2, arg3))
end
ModuleScript useMotor ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.useMotor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:28
-- Luau version 6, Types version 3
-- Time taken: 0.001439 seconds

local Flipper_upvr = require(script.Parent.Parent.Flipper)
local function createMotor_upvr(arg1) -- Line 3, Named "createMotor"
    --[[ Upvalues[1]:
        [1]: Flipper_upvr (readonly)
    ]]
    local type_result1 = type(arg1)
    if type_result1 == "number" then
        return Flipper_upvr.SingleMotor.new(arg1)
    end
    if type_result1 == "table" then
        return Flipper_upvr.GroupMotor.new(arg1)
    end
    error("Invalid type for initialValue. Expected \"number\" or \"table\", got \"%s\"":format(type_result1))
end
return function(arg1, arg2) -- Line 14, Named "useMotor"
    --[[ Upvalues[1]:
        [1]: createMotor_upvr (readonly)
    ]]
    local value_upvr = arg1.useValue(createMotor_upvr(arg2)).value
    arg1.useEffect(function() -- Line 17
        --[[ Upvalues[1]:
            [1]: value_upvr (readonly)
        ]]
        return function() -- Line 18
            --[[ Upvalues[1]:
                [1]: value_upvr (copied, readonly)
            ]]
            value_upvr:destroy()
        end
    end, {})
    return value_upvr
end
ModuleScript useSpring ReplicatedStorage.PopupShop.Packages._Index.reselim_roact-flipper@2.1.0.roact-flipper.useSpring
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:29
-- Luau version 6, Types version 3
-- Time taken: 0.000616 seconds

local useGoal_upvr = require(script.Parent.useGoal)
local Flipper_upvr = require(script.Parent.Parent.Flipper)
return function(arg1, arg2, arg3) -- Line 5, Named "useSpring"
    --[[ Upvalues[2]:
        [1]: useGoal_upvr (readonly)
        [2]: Flipper_upvr (readonly)
    ]]
    return useGoal_upvr(arg1, Flipper_upvr.Spring.new(arg2, arg3))
end
ModuleScript Roact ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.Roact
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:31
-- Luau version 6, Types version 3
-- Time taken: 0.000298 seconds

return require(script.Parent.Parent["[email protected]"].roact)
ModuleScript Rodux ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.Rodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:33
-- Luau version 6, Types version 3
-- Time taken: 0.000417 seconds

return require(script.Parent.Parent["[email protected]"].rodux)
ModuleScript roact-rodux ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:35
-- Luau version 6, Types version 3
-- Time taken: 0.000613 seconds

local connect = require(script.connect)
return {
    StoreProvider = require(script.StoreProvider);
    StoreContext = require(script.StoreContext);
    connect = connect;
    UNSTABLE_connect2 = connect;
}
ModuleScript StoreContext ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.StoreContext
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:36
-- Luau version 6, Types version 3
-- Time taken: 0.000401 seconds

return require(script.Parent.Parent.Roact).createContext()
ModuleScript StoreProvider ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.StoreProvider
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:38
-- Luau version 6, Types version 3
-- Time taken: 0.001520 seconds

local Roact_upvr = require(script.Parent.Parent.Roact)
local any_extend_result1 = Roact_upvr.Component:extend("StoreProvider")
function any_extend_result1.validateProps(arg1) -- Line 7
    if arg1.store == nil then
        return false, "Error initializing StoreProvider. Expected a `store` prop to be a Rodux store."
    end
    return true
end
function any_extend_result1.init(arg1, arg2) -- Line 15
    arg1.store = arg2.store
end
local StoreContext_upvr = require(script.Parent.StoreContext)
function any_extend_result1.render(arg1) -- Line 19
    --[[ Upvalues[2]:
        [1]: Roact_upvr (readonly)
        [2]: StoreContext_upvr (readonly)
    ]]
    return Roact_upvr.createElement(StoreContext_upvr.Provider, {
        value = arg1.store;
    }, Roact_upvr.oneChild(arg1.props[Roact_upvr.Children]))
end
return any_extend_result1
ModuleScript StoreProvider.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.StoreProvider.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:39
-- Luau version 6, Types version 3
-- Time taken: 0.002930 seconds

return function() -- Line 1
    local StoreProvider_upvr = require(script.Parent.StoreProvider)
    local Roact_upvr = require(script.Parent.Parent.Roact)
    local Rodux_upvr = require(script.Parent.Parent.Rodux)
    it("should be instantiable as a component", function() -- Line 7
        --[[ Upvalues[3]:
            [1]: Rodux_upvr (readonly)
            [2]: Roact_upvr (readonly)
            [3]: StoreProvider_upvr (readonly)
        ]]
        local any_new_result1_2 = Rodux_upvr.Store.new(function() -- Line 8
            return 0
        end)
        local any_createElement_result1_2 = Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1_2;
        })
        expect(any_createElement_result1_2).to.be.ok()
        Roact_upvr.unmount(Roact_upvr.mount(any_createElement_result1_2, nil, "StoreProvider-test"))
        any_new_result1_2:destruct()
    end)
    it("should expect a 'store' prop", function() -- Line 23
        --[[ Upvalues[2]:
            [1]: Roact_upvr (readonly)
            [2]: StoreProvider_upvr (readonly)
        ]]
        local any_createElement_result1_3_upvr = Roact_upvr.createElement(StoreProvider_upvr)
        expect(function() -- Line 26
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: any_createElement_result1_3_upvr (readonly)
            ]]
            Roact_upvr.mount(any_createElement_result1_3_upvr)
        end).to.throw()
    end)
    it("should accept a single child", function() -- Line 31
        --[[ Upvalues[3]:
            [1]: Rodux_upvr (readonly)
            [2]: Roact_upvr (readonly)
            [3]: StoreProvider_upvr (readonly)
        ]]
        local any_new_result1 = Rodux_upvr.Store.new(function() -- Line 32
            return 0
        end)
        local Folder = Instance.new("Folder")
        local any_createElement_result1 = Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1;
        }, {
            test1 = Roact_upvr.createElement("Frame");
        })
        expect(any_createElement_result1).to.be.ok()
        local StoreProvider_test = Folder:FindFirstChild("StoreProvider-test", true)
        expect(StoreProvider_test).to.be.ok()
        expect(StoreProvider_test:IsA("Frame")).to.equal(true)
        Roact_upvr.unmount(Roact_upvr.mount(any_createElement_result1, Folder, "StoreProvider-test"))
        any_new_result1:destruct()
    end)
end
ModuleScript Symbol ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.Symbol
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:40
-- Luau version 6, Types version 3
-- Time taken: 0.001415 seconds

return {
    named = function(arg1) -- Line 15, Named "named"
        local var2_upvr
        if type(arg1) ~= "string" then
            var2_upvr = false
        else
            var2_upvr = true
        end
        assert(var2_upvr, "Symbols must be created using a string name!")
        var2_upvr = true
        local newproxy_result1_2 = newproxy(var2_upvr)
        var2_upvr = "Symbol(%s)":format(arg1)
        getmetatable(newproxy_result1_2).__tostring = function() -- Line 22
            --[[ Upvalues[1]:
                [1]: var2_upvr (readonly)
            ]]
            return var2_upvr
        end
        return newproxy_result1_2
    end;
    unnamed = function() -- Line 33, Named "unnamed"
        local newproxy_result1 = newproxy(true)
        getmetatable(newproxy_result1).__tostring = function() -- Line 36
            return "Unnamed Symbol"
        end
        return newproxy_result1
    end;
}
ModuleScript Symbol.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.Symbol.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:42
-- Luau version 6, Types version 3
-- Time taken: 0.002352 seconds

return function() -- Line 1
    local Symbol_upvr = require(script.Parent.Symbol)
    describe("named", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Symbol_upvr (readonly)
        ]]
        it("should give an opaque object", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.named("foo")).to.be.a("userdata")
        end)
        it("should coerce to the given name", function() -- Line 11
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(tostring(Symbol_upvr.named("foo")):find("foo")).to.be.ok()
        end)
        it("should be unique when constructed", function() -- Line 17
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.named("abc")).never.to.equal(Symbol_upvr.named("abc"))
        end)
    end)
    describe("unnamed", function() -- Line 25
        --[[ Upvalues[1]:
            [1]: Symbol_upvr (readonly)
        ]]
        it("should give an opaque object", function() -- Line 26
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.unnamed()).to.be.a("userdata")
        end)
        it("should coerce to some string", function() -- Line 32
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(tostring(Symbol_upvr.unnamed())).to.be.a("string")
        end)
        it("should be unique when constructed", function() -- Line 38
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.unnamed()).never.to.equal(Symbol_upvr.unnamed())
        end)
    end)
end
ModuleScript connect ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.connect
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:43
-- Luau version 6, Types version 3
-- Time taken: 0.012896 seconds

local join_upvr = require(script.Parent.join)
local function _(arg1, arg2) -- Line 27, Named "formatMessage"
    local var2 = arg2
    if not var2 then
        var2 = {}
    end
    return table.concat(arg1, '\n'):format(unpack(var2))
end
local function noop_upvw() -- Line 31, Named "noop"
    return nil
end
local function _(arg1) -- Line 44, Named "makeStateUpdater"
    --[[ Upvalues[1]:
        [1]: join_upvr (readonly)
    ]]
    return function(arg1_2, arg2, arg3) -- Line 45
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: join_upvr (copied, readonly)
        ]]
        if arg3 == nil then
            local any_mapStateToProps_result1 = arg2.mapStateToProps(arg1:getState(), arg1_2)
        end
        return {
            mappedStoreState = any_mapStateToProps_result1;
            propsForChild = join_upvr(arg1_2, any_mapStateToProps_result1, arg2.mappedStoreDispatch);
        }
    end
end
local Roact_upvr = require(script.Parent.Parent.Roact)
local shallowEqual_upvr = require(script.Parent.shallowEqual)
local StoreContext_upvr = require(script.Parent.StoreContext)
return function(arg1, arg2) -- Line 68, Named "connect"
    --[[ Upvalues[5]:
        [1]: noop_upvw (readonly)
        [2]: Roact_upvr (readonly)
        [3]: join_upvr (readonly)
        [4]: shallowEqual_upvr (readonly)
        [5]: StoreContext_upvr (readonly)
    ]]
    if arg1 ~= nil then
        if typeof(arg1) ~= "function" then
        else
        end
        assert(true, "mapStateToProps must be a function or nil!")
    else
    end
    local typeof_result1_upvr = typeof(arg2)
    if arg2 ~= nil then
        local var10 = true
        if typeof_result1_upvr ~= "function" then
            if typeof_result1_upvr ~= "table" then
                var10 = false
            else
                var10 = true
            end
        end
        assert(var10, "mapDispatchToProps must be a function, table, or nil!")
    else
    end
    return function(arg1_3) -- Line 95
        --[[ Upvalues[7]:
            [1]: Roact_upvr (copied, readonly)
            [2]: noop_upvw (read and write)
            [3]: typeof_result1_upvr (readonly)
            [4]: noop_upvw (read and write)
            [5]: join_upvr (copied, readonly)
            [6]: shallowEqual_upvr (copied, readonly)
            [7]: StoreContext_upvr (copied, readonly)
        ]]
        if arg1_3 == nil then
            local var14 = {debug.traceback()}
            if not var14 then
                var14 = {}
            end
            error(table.concat({"connect returns a function that must be passed a component.", "Check the connection at:", "%s"}, '\n'):format(unpack(var14)), 2)
        end
        local formatted = "RoduxConnection(%s)":format(tostring(arg1_3))
        local any_extend_result1_2_upvr = Roact_upvr.Component:extend(formatted)
        function any_extend_result1_2_upvr.getDerivedStateFromProps(arg1_4, arg2_2) -- Line 113
            if arg2_2.stateUpdater ~= nil then
                return arg2_2.stateUpdater(arg1_4.innerProps, arg2_2)
            end
            return nil
        end
        function any_extend_result1_2_upvr.init(arg1_5, arg2_3) -- Line 120
            --[[ Upvalues[5]:
                [1]: arg1_3 (readonly)
                [2]: noop_upvw (copied, read and write)
                [3]: typeof_result1_upvr (copied, readonly)
                [4]: noop_upvw (copied, read and write)
                [5]: join_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            arg1_5.store = arg2_3.store
            local var33
            if arg1_5.store == nil then
                local tbl = {}
                var33 = "Cannot initialize Roact-Rodux connection without being a descendent of StoreProvider!"
                tbl[1] = var33
                tbl[2] = "Tried to wrap component %q"
                tbl[3] = "Make sure there is a StoreProvider above this component in the tree."
                var33 = {}
                var33[1] = tostring(arg1_3)
                local var35 = var33
                if not var35 then
                    var35 = {}
                end
                var33 = table.concat(tbl, '\n'):format(unpack(var35))
                error(var33)
            end
            local any_getState_result1 = arg1_5.store:getState()
            var33 = noop_upvw(any_getState_result1, arg1_5.props.innerProps)
            if typeof(var33) == "function" then
                var33 = var33(any_getState_result1, arg1_5.props.innerProps)
            end
            if var33 ~= nil and typeof(var33) ~= "table" then
                local var39 = {tostring(var33), typeof(var33)}
                if not var39 then
                    var39 = {}
                end
                error(table.concat({"mapStateToProps must either return a table, or return another function that returns a table.", "Instead, it returned %q, which is of type %s."}, '\n'):format(unpack(var39)))
            end
            local function dispatch_upvr(...) -- Line 162, Named "dispatch"
                --[[ Upvalues[1]:
                    [1]: arg1_5 (readonly)
                ]]
                return arg1_5.store:dispatch(...)
            end
            local var40
            if typeof_result1_upvr == "table" then
                var40 = {}
                for i, v_upvr in pairs(noop_upvw) do
                    local var44
                    if typeof(v_upvr) ~= "function" then
                        var44 = false
                    else
                        var44 = true
                    end
                    assert(var44, "mapDispatchToProps must contain function values")
                    var40[i] = function(...) -- Line 173
                        --[[ Upvalues[2]:
                            [1]: dispatch_upvr (readonly)
                            [2]: v_upvr (readonly)
                        ]]
                        dispatch_upvr(v_upvr(...))
                    end
                end
            elseif typeof_result1_upvr == "function" then
                var40 = noop_upvw(dispatch_upvr)
            end
            local store_upvr = arg1_5.store
            store_upvr = {}
            local var50 = store_upvr
            function var50.stateUpdater(arg1_6, arg2_4, arg3) -- Line 45
                --[[ Upvalues[2]:
                    [1]: store_upvr (readonly)
                    [2]: join_upvr (copied, readonly)
                ]]
                if arg3 == nil then
                    local any_mapStateToProps_result1_3 = arg2_4.mapStateToProps(store_upvr:getState(), arg1_6)
                end
                return {
                    mappedStoreState = any_mapStateToProps_result1_3;
                    propsForChild = join_upvr(arg1_6, any_mapStateToProps_result1_3, arg2_4.mappedStoreDispatch);
                }
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            var50.mapStateToProps = var33
            var50.mappedStoreDispatch = var40
            var50.propsForChild = nil
            arg1_5.state = var50
            var50 = (function(arg1_6, arg2_4, arg3) -- Line 45
                --[[ Upvalues[2]:
                    [1]: store_upvr (readonly)
                    [2]: join_upvr (copied, readonly)
                ]]
                if arg3 == nil then
                    local any_mapStateToProps_result1_3 = arg2_4.mapStateToProps(store_upvr:getState(), arg1_6)
                end
                return {
                    mappedStoreState = any_mapStateToProps_result1_3;
                    propsForChild = join_upvr(arg1_6, any_mapStateToProps_result1_3, arg2_4.mappedStoreDispatch);
                }
            end)(arg1_5.props.innerProps, arg1_5.state, var33)
            for i_2, v_2 in pairs(var50) do
                arg1_5.state[i_2] = v_2
            end
        end
        function any_extend_result1_2_upvr.didMount(arg1_7) -- Line 210
            --[[ Upvalues[1]:
                [1]: shallowEqual_upvr (copied, readonly)
            ]]
            local any_getState_result1_upvr = arg1_7.store:getState()
            arg1_7:setState(function(arg1_10, arg2_6) -- Line 212
                --[[ Upvalues[2]:
                    [1]: any_getState_result1_upvr (readonly)
                    [2]: shallowEqual_upvr (copied, readonly)
                ]]
                local any_mapStateToProps_result1_2 = arg1_10.mapStateToProps(any_getState_result1_upvr, arg2_6.innerProps)
                if shallowEqual_upvr(any_mapStateToProps_result1_2, arg1_10.mappedStoreState) then
                    return nil
                end
                return arg1_10.stateUpdater(arg2_6.innerProps, arg1_10, any_mapStateToProps_result1_2)
            end)
            any_getState_result1_upvr = arg1_7.store.changed:connect(function(arg1_8) -- Line 211
                --[[ Upvalues[2]:
                    [1]: arg1_7 (readonly)
                    [2]: shallowEqual_upvr (copied, readonly)
                ]]
                arg1_7:setState(function(arg1_9, arg2_5) -- Line 212
                    --[[ Upvalues[2]:
                        [1]: arg1_8 (readonly)
                        [2]: shallowEqual_upvr (copied, readonly)
                    ]]
                    local any_mapStateToProps_result1_4 = arg1_9.mapStateToProps(arg1_8, arg2_5.innerProps)
                    if shallowEqual_upvr(any_mapStateToProps_result1_4, arg1_9.mappedStoreState) then
                        return nil
                    end
                    return arg1_9.stateUpdater(arg2_5.innerProps, arg1_9, any_mapStateToProps_result1_4)
                end)
            end)
            arg1_7.storeChangedConnection = any_getState_result1_upvr
        end
        function any_extend_result1_2_upvr.willUnmount(arg1_11) -- Line 234
            if arg1_11.storeChangedConnection then
                arg1_11.storeChangedConnection:disconnect()
                arg1_11.storeChangedConnection = nil
            end
        end
        local function render(arg1_12) -- Line 241
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: arg1_3 (readonly)
            ]]
            return Roact_upvr.createElement(arg1_3, arg1_12.state.propsForChild)
        end
        any_extend_result1_2_upvr.render = render
        local any_extend_result1 = Roact_upvr.Component:extend(formatted)
        local function render(arg1_13) -- Line 247
            --[[ Upvalues[3]:
                [1]: Roact_upvr (copied, readonly)
                [2]: StoreContext_upvr (copied, readonly)
                [3]: any_extend_result1_2_upvr (readonly)
            ]]
            return Roact_upvr.createElement(StoreContext_upvr.Consumer, {
                render = function(arg1_14) -- Line 249, Named "render"
                    --[[ Upvalues[3]:
                        [1]: Roact_upvr (copied, readonly)
                        [2]: any_extend_result1_2_upvr (copied, readonly)
                        [3]: arg1_13 (readonly)
                    ]]
                    local module = {
                        innerProps = arg1_13.props;
                    }
                    module.store = arg1_14
                    return Roact_upvr.createElement(any_extend_result1_2_upvr, module)
                end;
            })
        end
        any_extend_result1.render = render
        return any_extend_result1
    end
end
ModuleScript connect.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.connect.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:44
-- Luau version 6, Types version 3
-- Time taken: 0.012914 seconds

return function() -- Line 1
    local connect_upvr = require(script.Parent.connect)
    local StoreProvider_upvr = require(script.Parent.StoreProvider)
    local Roact_upvr = require(script.Parent.Parent.Roact)
    local Rodux_upvr = require(script.Parent.Parent.Rodux)
    local function noop_upvr() -- Line 11, Named "noop"
        return nil
    end
    local function NoopComponent_upvr() -- Line 15, Named "NoopComponent"
        return nil
    end
    local any_combineReducers_result1_upvr = Rodux_upvr.combineReducers({
        count = function(arg1, arg2) -- Line 19, Named "countReducer"
            local var6 = arg1 or 0
            if arg2.type == "increment" then
                return var6 + 1
            end
            return var6
        end;
    })
    describe("Argument validation", function() -- Line 33
        --[[ Upvalues[2]:
            [1]: connect_upvr (readonly)
            [2]: noop_upvr (readonly)
        ]]
        it("should accept no arguments", function() -- Line 34
            --[[ Upvalues[1]:
                [1]: connect_upvr (copied, readonly)
            ]]
            connect_upvr()
        end)
        it("should accept one function", function() -- Line 38
            --[[ Upvalues[2]:
                [1]: connect_upvr (copied, readonly)
                [2]: noop_upvr (copied, readonly)
            ]]
            connect_upvr(noop_upvr)
        end)
        it("should accept two functions", function() -- Line 42
            --[[ Upvalues[2]:
                [1]: connect_upvr (copied, readonly)
                [2]: noop_upvr (copied, readonly)
            ]]
            connect_upvr(noop_upvr, noop_upvr)
        end)
        it("should accept only the second function", function() -- Line 46
            --[[ Upvalues[1]:
                [1]: connect_upvr (copied, readonly)
            ]]
            connect_upvr(nil, function() -- Line 47
            end)
        end)
        it("should accept one table of action creators", function() -- Line 50
            --[[ Upvalues[1]:
                [1]: connect_upvr (copied, readonly)
            ]]
            connect_upvr(nil, {
                foo = function() -- Line 52
                end;
            })
        end)
        it("should throw if not passed a component", function() -- Line 56
            --[[ Upvalues[1]:
                [1]: connect_upvr (copied, readonly)
            ]]
            local function var19_upvr(arg1) -- Line 57
                return {}
            end
            expect(function() -- Line 61
                --[[ Upvalues[2]:
                    [1]: connect_upvr (copied, readonly)
                    [2]: var19_upvr (readonly)
                ]]
                connect_upvr(var19_upvr)(nil)
            end).to.throw()
        end)
    end)
    it("should throw if not mounted under a StoreProvider", function() -- Line 67
        --[[ Upvalues[3]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
            [3]: Roact_upvr (readonly)
        ]]
        local var23_upvr = connect_upvr()(NoopComponent_upvr)
        expect(function() -- Line 70
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: var23_upvr (readonly)
            ]]
            Roact_upvr.mount(Roact_upvr.createElement(var23_upvr))
        end).to.throw()
    end)
    it("should accept a higher-order function mapStateToProps", function() -- Line 75
        --[[ Upvalues[6]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
            [3]: Rodux_upvr (readonly)
            [4]: any_combineReducers_result1_upvr (readonly)
            [5]: Roact_upvr (readonly)
            [6]: StoreProvider_upvr (readonly)
        ]]
        local function mapStateToProps() -- Line 76
            return function(arg1) -- Line 77
                return {
                    count = arg1.count;
                }
            end
        end
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = Rodux_upvr.Store.new(any_combineReducers_result1_upvr);
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(mapStateToProps)(NoopComponent_upvr));
        })))
    end)
    it("should not accept a higher-order mapStateToProps that returns a non-table value", function() -- Line 98
        --[[ Upvalues[6]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
            [3]: Rodux_upvr (readonly)
            [4]: any_combineReducers_result1_upvr (readonly)
            [5]: Roact_upvr (readonly)
            [6]: StoreProvider_upvr (readonly)
        ]]
        local function mapStateToProps() -- Line 99
            return function(arg1) -- Line 100
                return "nope"
            end
        end
        local any_createElement_result1_upvr = Roact_upvr.createElement(StoreProvider_upvr, {
            store = Rodux_upvr.Store.new(any_combineReducers_result1_upvr);
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(mapStateToProps)(NoopComponent_upvr));
        })
        expect(function() -- Line 114
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: any_createElement_result1_upvr (readonly)
            ]]
            Roact_upvr.mount(any_createElement_result1_upvr)
        end).to.throw()
    end)
    it("should not accept a mapStateToProps that returns a non-table value", function() -- Line 119
        --[[ Upvalues[6]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
            [3]: Rodux_upvr (readonly)
            [4]: any_combineReducers_result1_upvr (readonly)
            [5]: Roact_upvr (readonly)
            [6]: StoreProvider_upvr (readonly)
        ]]
        local function mapStateToProps() -- Line 120
            return "nah"
        end
        local any_createElement_result1_upvr_2 = Roact_upvr.createElement(StoreProvider_upvr, {
            store = Rodux_upvr.Store.new(any_combineReducers_result1_upvr);
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(mapStateToProps)(NoopComponent_upvr));
        })
        expect(function() -- Line 133
            --[[ Upvalues[2]:
                [1]: Roact_upvr (copied, readonly)
                [2]: any_createElement_result1_upvr_2 (readonly)
            ]]
            Roact_upvr.mount(any_createElement_result1_upvr_2)
        end).to.throw()
    end)
    it("should abort renders when mapStateToProps returns the same data", function() -- Line 138
        --[[ Upvalues[5]:
            [1]: connect_upvr (readonly)
            [2]: Rodux_upvr (readonly)
            [3]: any_combineReducers_result1_upvr (readonly)
            [4]: Roact_upvr (readonly)
            [5]: StoreProvider_upvr (readonly)
        ]]
        local function mapStateToProps(arg1) -- Line 139
            return {
                count = arg1.count;
            }
        end
        local var42_upvw = 0
        local function SomeComponent(arg1) -- Line 146
            --[[ Upvalues[1]:
                [1]: var42_upvw (read and write)
            ]]
            var42_upvw += 1
        end
        local any_new_result1_3 = Rodux_upvr.Store.new(any_combineReducers_result1_upvr)
        expect(var42_upvw).to.equal(1)
        any_new_result1_3:dispatch({
            type = "an unknown action";
        })
        any_new_result1_3:flush()
        expect(var42_upvw).to.equal(1)
        any_new_result1_3:dispatch({
            type = "increment";
        })
        any_new_result1_3:flush()
        expect(var42_upvw).to.equal(2)
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1_3;
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(mapStateToProps)(SomeComponent));
        })))
    end)
    it("should only call mapDispatchToProps once and never re-render if no mapStateToProps was passed", function() -- Line 176
        --[[ Upvalues[5]:
            [1]: connect_upvr (readonly)
            [2]: Rodux_upvr (readonly)
            [3]: any_combineReducers_result1_upvr (readonly)
            [4]: Roact_upvr (readonly)
            [5]: StoreProvider_upvr (readonly)
        ]]
        local var49_upvw = 0
        local var53_upvw = 0
        local function SomeComponent(arg1) -- Line 189
            --[[ Upvalues[1]:
                [1]: var53_upvw (read and write)
            ]]
            var53_upvw += 1
        end
        local any_new_result1 = Rodux_upvr.Store.new(any_combineReducers_result1_upvr)
        expect(var49_upvw).to.equal(1)
        expect(var53_upvw).to.equal(1)
        any_new_result1:dispatch({
            type = "an unknown action";
        })
        any_new_result1:flush()
        expect(var49_upvw).to.equal(1)
        expect(var53_upvw).to.equal(1)
        any_new_result1:dispatch({
            type = "increment";
        })
        any_new_result1:flush()
        expect(var49_upvw).to.equal(1)
        expect(var53_upvw).to.equal(1)
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1;
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(nil, function(arg1) -- Line 178
                --[[ Upvalues[1]:
                    [1]: var49_upvw (read and write)
                ]]
                var49_upvw += 1
                return {
                    increment = function() -- Line 182, Named "increment"
                        --[[ Upvalues[1]:
                            [1]: arg1 (readonly)
                        ]]
                        return arg1({
                            type = "increment";
                        })
                    end;
                }
            end)(SomeComponent));
        })))
    end)
    it("should dispatch the action using a table of action creators", function() -- Line 222
        --[[ Upvalues[5]:
            [1]: connect_upvr (readonly)
            [2]: Rodux_upvr (readonly)
            [3]: any_combineReducers_result1_upvr (readonly)
            [4]: Roact_upvr (readonly)
            [5]: StoreProvider_upvr (readonly)
        ]]
        local function SomeComponent(arg1) -- Line 231
            arg1.increment()
        end
        local any_new_result1_2 = Rodux_upvr.Store.new(any_combineReducers_result1_upvr)
        any_new_result1_2.changed:connect(function(arg1) -- Line 246
            expect(arg1.count).to.equal(1)
        end)
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1_2;
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(nil, {
                increment = function() -- Line 224
                    return {
                        type = "increment";
                    }
                end;
            })(SomeComponent));
        })))
    end)
    it("should return result values from the dispatch passed to mapDispatchToProps", function() -- Line 253
        --[[ Upvalues[4]:
            [1]: connect_upvr (readonly)
            [2]: Rodux_upvr (readonly)
            [3]: Roact_upvr (readonly)
            [4]: StoreProvider_upvr (readonly)
        ]]
        local var68_upvw
        expect(var68_upvw).to.be.a("function")
        expect(var68_upvw(function() -- Line 258, Named "fiveThunk"
            return 5
        end)).to.equal(5)
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = Rodux_upvr.Store.new(function() -- Line 254, Named "reducer"
                return 0
            end, nil, {Rodux_upvr.thunkMiddleware});
        }, {
            someComponent = Roact_upvr.createElement(connect_upvr(nil, function(arg1) -- Line 267, Named "mapDispatchToProps"
                local module = {}
                module.dispatch = arg1
                return module
            end)(function(arg1) -- Line 263, Named "SomeComponent"
                --[[ Upvalues[1]:
                    [1]: var68_upvw (read and write)
                ]]
                var68_upvw = arg1.dispatch
            end));
        })))
    end)
    it("should allow fields to be assigned on connected components", function() -- Line 291
        --[[ Upvalues[2]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
        ]]
        local function mapStateToProps(arg1) -- Line 292
            return {
                count = arg1.count;
            }
        end
        local var75_upvr = connect_upvr(mapStateToProps)(NoopComponent_upvr)
        expect(function() -- Line 300
            --[[ Upvalues[1]:
                [1]: var75_upvr (readonly)
            ]]
            var75_upvr.SomeEnum = {
                Value = 1;
            }
        end).never.to.throw()
        expect(var75_upvr.SomeEnum).to.be.ok()
        expect(var75_upvr.SomeEnum.Value).to.equal(1)
    end)
    it("should never pass the store and innerProps to `mapStateToProps`", function() -- Line 311
        --[[ Upvalues[6]:
            [1]: connect_upvr (readonly)
            [2]: NoopComponent_upvr (readonly)
            [3]: Rodux_upvr (readonly)
            [4]: any_combineReducers_result1_upvr (readonly)
            [5]: Roact_upvr (readonly)
            [6]: StoreProvider_upvr (readonly)
        ]]
        local tbl_upvr = {}
        local var80_upvw
        local any_new_result1_4 = Rodux_upvr.Store.new(any_combineReducers_result1_upvr)
        any_new_result1_4:dispatch({
            type = "increment";
        })
        any_new_result1_4:flush()
        expect(var80_upvw.store).to.equal(nil)
        expect(var80_upvw.innerProps).to.equal(nil)
        expect(var80_upvw.somePropName).to.equal(tbl_upvr)
        Roact_upvr.unmount(Roact_upvr.mount(Roact_upvr.createElement(StoreProvider_upvr, {
            store = any_new_result1_4;
        }, {
            parent = Roact_upvr.createElement(connect_upvr(function(arg1, arg2) -- Line 314, Named "mapStateToProps"
                --[[ Upvalues[2]:
                    [1]: var80_upvw (read and write)
                    [2]: tbl_upvr (readonly)
                ]]
                var80_upvw = arg2
                expect(arg2.store).to.equal(nil)
                expect(arg2.innerProps).to.equal(nil)
                expect(arg2.somePropName).to.equal(tbl_upvr)
                return {
                    count = arg1.count;
                }
            end)(NoopComponent_upvr), {
                somePropName = tbl_upvr;
            });
        })))
    end)
end
ModuleScript join ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.join
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:46
-- Luau version 6, Types version 3
-- Time taken: 0.001031 seconds

return function(...) -- Line 1, Named "join"
    local module = {}
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if selected_arg ~= nil then
            for i_2, v in pairs(selected_arg) do
                module[i_2] = v
            end
        end
    end
    return module
end
ModuleScript shallowEqual ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.shallowEqual
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:47
-- Luau version 6, Types version 3
-- Time taken: 0.001999 seconds

return function(arg1, arg2) -- Line 1, Named "shallowEqual"
    if arg1 == nil then
        if arg2 ~= nil then
        else
        end
        do
            return true
        end
        local var9
    end
    if arg2 == nil then
        if arg1 ~= nil then
            var9 = false
        else
            var9 = true
        end
        return var9
    end
    for i, v in pairs(arg1) do
        if v ~= arg2[i] then
            return false
        end
    end
    for i_2, v_2 in pairs(arg2) do
        if v_2 ~= arg1[i_2] then
            return false
        end
    end
    return true
end
ModuleScript shallowEqual.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.shallowEqual.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:49
-- Luau version 6, Types version 3
-- Time taken: 0.001997 seconds

return function() -- Line 1
    local shallowEqual_upvr = require(script.Parent.shallowEqual)
    it("should compare dictionaries", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: shallowEqual_upvr (readonly)
        ]]
        local tbl = {
            a = 'a';
            b = {};
            c = 6;
        }
        local tbl_4 = {
            b = tbl.b;
            c = tbl.c;
            a = tbl.a;
        }
        local tbl_2 = {
            b = {};
            a = tbl.a;
            c = tbl.c;
        }
        local tbl_3 = {
            a = tbl.a;
            b = tbl.b;
            c = tbl.c;
            d = "hello";
        }
        expect(shallowEqual_upvr(tbl, tbl)).to.equal(true)
        expect(shallowEqual_upvr(tbl, tbl_4)).to.equal(true)
        expect(shallowEqual_upvr(tbl, tbl_2)).to.equal(false)
        expect(shallowEqual_upvr(tbl_4, tbl_2)).to.equal(false)
        expect(shallowEqual_upvr(tbl, tbl_3)).to.equal(false)
        expect(shallowEqual_upvr(tbl_4, tbl_3)).to.equal(false)
    end)
    it("should handle nil for either argument", function() -- Line 38
        --[[ Upvalues[1]:
            [1]: shallowEqual_upvr (readonly)
        ]]
        local tbl_5 = {}
        expect(shallowEqual_upvr(nil, nil)).to.equal(true)
        expect(shallowEqual_upvr(tbl_5, nil)).to.equal(false)
        expect(shallowEqual_upvr(nil, tbl_5)).to.equal(false)
    end)
end
ModuleScript types ReplicatedStorage.PopupShop.Packages._Index.roblox_roact-rodux@0.5.1.roact-rodux.types
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:50
-- Luau version 6, Types version 3
-- Time taken: 0.000279 seconds

return nil
ModuleScript roact ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:52
-- Luau version 6, Types version 3
-- Time taken: 0.002090 seconds

local Binding = require(script.Binding)
local var2 = require(script.createReconciler)(require(script.RobloxRenderer))
local var3 = require(script.createReconcilerCompat)(var2)
return require(script.strict)({
    Component = require(script.Component);
    createElement = require(script.createElement);
    createFragment = require(script.createFragment);
    oneChild = require(script.oneChild);
    PureComponent = require(script.PureComponent);
    None = require(script.None);
    Portal = require(script.Portal);
    createRef = require(script.createRef);
    forwardRef = require(script.forwardRef);
    createBinding = Binding.create;
    joinBindings = Binding.join;
    createContext = require(script.createContext);
    Change = require(script.PropMarkers.Change);
    Children = require(script.PropMarkers.Children);
    Event = require(script.PropMarkers.Event);
    Ref = require(script.PropMarkers.Ref);
    mount = var2.mountVirtualTree;
    unmount = var2.unmountVirtualTree;
    update = var2.updateVirtualTree;
    reify = var3.reify;
    teardown = var3.teardown;
    reconcile = var3.reconcile;
    setGlobalConfig = require(script.GlobalConfig).set;
    UNSTABLE = {};
})
ModuleScript Binding ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Binding
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:53
-- Luau version 6, Types version 3
-- Time taken: 0.010148 seconds

local Type_upvr = require(script.Parent.Type)
local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local any_named_result1_upvr = require(script.Parent.Symbol).named("BindingImpl")
local module_upvr = {}
local tbl = {}
local function getValue(arg1) -- Line 13
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return module_upvr.getValue(arg1)
end
tbl.getValue = getValue
local function map(arg1, arg2) -- Line 17
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return module_upvr.map(arg1, arg2)
end
tbl.map = map
local module_3_upvr = {
    __index = tbl;
    __tostring = function(arg1) -- Line 23, Named "__tostring"
        return string.format("RoactBinding(%s)", tostring(arg1:getValue()))
    end;
}
local function update(arg1, arg2) -- Line 28
    --[[ Upvalues[1]:
        [1]: any_named_result1_upvr (readonly)
    ]]
    return arg1[any_named_result1_upvr].update(arg2)
end
module_upvr.update = update
local function subscribe(arg1, arg2) -- Line 32
    --[[ Upvalues[1]:
        [1]: any_named_result1_upvr (readonly)
    ]]
    return arg1[any_named_result1_upvr].subscribe(arg2)
end
module_upvr.subscribe = subscribe
local function getValue(arg1) -- Line 36
    --[[ Upvalues[1]:
        [1]: any_named_result1_upvr (readonly)
    ]]
    return arg1[any_named_result1_upvr].getValue()
end
module_upvr.getValue = getValue
local createSignal_upvr = require(script.Parent.createSignal)
function module_upvr.create(arg1) -- Line 40
    --[[ Upvalues[4]:
        [1]: createSignal_upvr (readonly)
        [2]: Type_upvr (readonly)
        [3]: any_named_result1_upvr (readonly)
        [4]: module_3_upvr (readonly)
    ]]
    local module_2_upvr = {}
    module_2_upvr.value = arg1
    module_2_upvr.changeSignal = createSignal_upvr()
    local function subscribe(arg1_2) -- Line 46
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        return module_2_upvr.changeSignal:subscribe(arg1_2)
    end
    module_2_upvr.subscribe = subscribe
    local function update(arg1_3) -- Line 50
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        module_2_upvr.value = arg1_3
        module_2_upvr.changeSignal:fire(arg1_3)
    end
    module_2_upvr.update = update
    local function getValue() -- Line 55
        --[[ Upvalues[1]:
            [1]: module_2_upvr (readonly)
        ]]
        return module_2_upvr.value
    end
    module_2_upvr.getValue = getValue
    return setmetatable({
        [Type_upvr] = Type_upvr.Binding;
        [any_named_result1_upvr] = module_2_upvr;
    }, module_3_upvr), module_2_upvr.update
end
function module_upvr.map(arg1, arg2) -- Line 65
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Type_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: module_3_upvr (readonly)
    ]]
    local var10 = any_get_result1_upvr
    if var10.typeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.Binding then
            var10 = false
        else
            var10 = true
        end
        assert(var10, "Expected arg #1 to be a binding")
        if typeof(arg2) ~= "function" then
            var10 = false
        else
            var10 = true
        end
        assert(var10, "Expected arg #1 to be a function")
    end
    local tbl_2 = {}
    local function subscribe(arg1_4) -- Line 73
        --[[ Upvalues[3]:
            [1]: module_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        return module_upvr.subscribe(arg1, function(arg1_5) -- Line 74
            --[[ Upvalues[2]:
                [1]: arg1_4 (readonly)
                [2]: arg2 (copied, readonly)
            ]]
            arg1_4(arg2(arg1_5))
        end)
    end
    tbl_2.subscribe = subscribe
    local function update(arg1_6) -- Line 79
        error("Bindings created by Binding:map(fn) cannot be updated directly", 2)
    end
    tbl_2.update = update
    local function getValue() -- Line 83
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: arg1 (readonly)
        ]]
        return arg2(arg1:getValue())
    end
    tbl_2.getValue = getValue
    return setmetatable({
        [Type_upvr] = Type_upvr.Binding;
        [any_named_result1_upvr] = tbl_2;
    }, module_3_upvr)
end
function module_upvr.join(arg1) -- Line 93
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Type_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: module_3_upvr (readonly)
    ]]
    local var18 = any_get_result1_upvr
    if var18.typeChecks then
        if typeof(arg1) ~= "table" then
            var18 = false
        else
            var18 = true
        end
        assert(var18, "Expected arg #1 to be of type table")
        var18 = arg1
        for i, v in pairs(var18) do
            if Type_upvr.of(v) ~= Type_upvr.Binding then
                error("Expected arg #1 to contain only bindings, but key %q had a non-binding value":format(tostring(i)), 2)
            end
        end
    end
    local tbl_3 = {}
    local function getValue() -- Line 109
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local module = {}
        for i_2, v_2 in pairs(arg1) do
            module[i_2] = v_2:getValue()
        end
        return module
    end
    function tbl_3.subscribe(arg1_7) -- Line 119
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: module_upvr (copied, readonly)
            [3]: getValue (readonly)
        ]]
        local tbl_upvw = {}
        for i_3, v_3 in pairs(arg1) do
            tbl_upvw[i_3] = module_upvr.subscribe(v_3, function(arg1_8) -- Line 123
                --[[ Upvalues[2]:
                    [1]: arg1_7 (readonly)
                    [2]: getValue (copied, readonly)
                ]]
                arg1_7(getValue())
            end)
        end
        return function() -- Line 128
            --[[ Upvalues[1]:
                [1]: tbl_upvw (read and write)
            ]]
            if tbl_upvw == nil then
            else
                for _, v_4 in pairs(tbl_upvw) do
                    v_4()
                end
                tbl_upvw = nil
            end
        end
    end
    function tbl_3.update(arg1_9) -- Line 141
        error("Bindings created by joinBindings(...) cannot be updated directly", 2)
    end
    function tbl_3.getValue() -- Line 145
        --[[ Upvalues[1]:
            [1]: getValue (readonly)
        ]]
        return getValue()
    end
    return setmetatable({
        [Type_upvr] = Type_upvr.Binding;
        [any_named_result1_upvr] = tbl_3;
    }, module_3_upvr)
end
return module_upvr
ModuleScript Binding.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Binding.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:54
-- Luau version 6, Types version 3
-- Time taken: 0.011428 seconds

return function() -- Line 1
    local createSpy_upvr = require(script.Parent.createSpy)
    local Binding_upvr = require(script.Parent.Binding)
    local Type_upvr = require(script.Parent.Type)
    describe("Binding.create", function() -- Line 8
        --[[ Upvalues[2]:
            [1]: Binding_upvr (readonly)
            [2]: Type_upvr (readonly)
        ]]
        it("should return a Binding object and an update function", function() -- Line 9
            --[[ Upvalues[2]:
                [1]: Binding_upvr (copied, readonly)
                [2]: Type_upvr (copied, readonly)
            ]]
            local any_create_result1_10, any_create_result2_10 = Binding_upvr.create(1)
            expect(Type_upvr.of(any_create_result1_10)).to.equal(Type_upvr.Binding)
            expect(typeof(any_create_result2_10)).to.equal("function")
        end)
        it("should support tostring on bindings", function() -- Line 16
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_create_result1, any_create_result2_6 = Binding_upvr.create(1)
            expect(tostring(any_create_result1)).to.equal("RoactBinding(1)")
            any_create_result2_6("foo")
            expect(tostring(any_create_result1)).to.equal("RoactBinding(foo)")
        end)
    end)
    describe("Binding object", function() -- Line 25
        --[[ Upvalues[2]:
            [1]: Binding_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        it("should provide a getter and setter", function() -- Line 26
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_create_result1_6, any_create_result2_8 = Binding_upvr.create(1)
            expect(any_create_result1_6:getValue()).to.equal(1)
            any_create_result2_8(3)
            expect(any_create_result1_6:getValue()).to.equal(3)
        end)
        it("should let users subscribe and unsubscribe to its updates", function() -- Line 36
            --[[ Upvalues[2]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local any_create_result1_7, any_create_result2_3 = Binding_upvr.create(1)
            local var2_result1_4 = createSpy_upvr()
            expect(var2_result1_4.callCount).to.equal(0)
            any_create_result2_3(2)
            expect(var2_result1_4.callCount).to.equal(1)
            var2_result1_4:assertCalledWith(2)
            Binding_upvr.subscribe(any_create_result1_7, var2_result1_4.value)()
            any_create_result2_3(3)
            expect(var2_result1_4.callCount).to.equal(1)
        end)
    end)
    describe("Mapped bindings", function() -- Line 56
        --[[ Upvalues[2]:
            [1]: Binding_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        it("should be composable", function() -- Line 57
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_create_result1_5, any_create_result2_4 = Binding_upvr.create("hi")
            local any_map_result1_2 = any_create_result1_5:map(string.len)
            local any_map_result1 = any_map_result1_2:map(function(arg1) -- Line 61
                local var26
                if arg1 % 2 ~= 0 then
                    var26 = false
                else
                    var26 = true
                end
                return var26
            end)
            expect(any_create_result1_5:getValue()).to.equal("hi")
            expect(any_map_result1_2:getValue()).to.equal(2)
            expect(any_map_result1:getValue()).to.equal(true)
            any_create_result2_4("sup")
            expect(any_create_result1_5:getValue()).to.equal("sup")
            expect(any_map_result1_2:getValue()).to.equal(3)
            expect(any_map_result1:getValue()).to.equal(false)
        end)
        it("should cascade updates when subscribed", function() -- Line 76
            --[[ Upvalues[2]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local any_create_result1_9, any_create_result2_11 = Binding_upvr.create("hi")
            local var2_result1_3 = createSpy_upvr()
            local any_map_result1_3 = any_create_result1_9:map(string.len)
            local var2_result1_5 = createSpy_upvr()
            local var2_result1_6 = createSpy_upvr()
            expect(var2_result1_3.callCount).to.equal(0)
            expect(var2_result1_5.callCount).to.equal(0)
            expect(var2_result1_6.callCount).to.equal(0)
            any_create_result2_11("nice")
            expect(var2_result1_3.callCount).to.equal(1)
            var2_result1_3:assertCalledWith("nice")
            expect(var2_result1_5.callCount).to.equal(1)
            var2_result1_5:assertCalledWith(4)
            expect(var2_result1_6.callCount).to.equal(1)
            var2_result1_6:assertCalledWith(true)
            Binding_upvr.subscribe(any_create_result1_9, var2_result1_3.value)()
            Binding_upvr.subscribe(any_map_result1_3, var2_result1_5.value)()
            Binding_upvr.subscribe(any_map_result1_3:map(function(arg1) -- Line 90
                local var35
                if arg1 % 2 ~= 0 then
                    var35 = false
                else
                    var35 = true
                end
                return var35
            end), var2_result1_6.value)()
            any_create_result2_11("goodbye")
            expect(var2_result1_3.callCount).to.equal(1)
            expect(var2_result1_6.callCount).to.equal(1)
            expect(var2_result1_5.callCount).to.equal(1)
        end)
        it("should throw when updated directly", function() -- Line 123
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_map_result1_upvr = Binding_upvr.create(1):map(function(arg1) -- Line 125
                return arg1
            end)
            expect(function() -- Line 129
                --[[ Upvalues[2]:
                    [1]: Binding_upvr (copied, readonly)
                    [2]: any_map_result1_upvr (readonly)
                ]]
                Binding_upvr.update(any_map_result1_upvr, 5)
            end).to.throw()
        end)
    end)
    local GlobalConfig_upvr = require(script.Parent.GlobalConfig)
    describe("Binding.join", function() -- Line 135
        --[[ Upvalues[3]:
            [1]: Binding_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: GlobalConfig_upvr (readonly)
        ]]
        it("should have getValue", function() -- Line 136
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_getValue_result1_2 = Binding_upvr.join({
                foo = Binding_upvr.create(3);
                Binding_upvr.create(1), Binding_upvr.create(2)
            }):getValue()
            expect(any_getValue_result1_2).to.be.a("table")
            expect(any_getValue_result1_2[1]).to.equal(1)
            expect(any_getValue_result1_2[2]).to.equal(2)
            expect(any_getValue_result1_2.foo).to.equal(3)
        end)
        it("should update when any one of the subscribed bindings updates", function() -- Line 154
            --[[ Upvalues[2]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local any_create_result1_8, any_create_result2_5 = Binding_upvr.create(1)
            local any_create_result1_2, any_create_result2_7 = Binding_upvr.create(2)
            local any_create_result1_3, any_create_result2_9 = Binding_upvr.create(3)
            local var2_result1 = createSpy_upvr()
            Binding_upvr.subscribe(Binding_upvr.join({
                foo = any_create_result1_3;
                any_create_result1_8, any_create_result1_2
            }), var2_result1.value)
            expect(var2_result1.callCount).to.equal(0)
            any_create_result2_5(3)
            expect(var2_result1.callCount).to.equal(1)
            local any_captureValues_result1_3 = var2_result1:captureValues("value")
            expect(any_captureValues_result1_3.value).to.be.a("table")
            expect(any_captureValues_result1_3.value[1]).to.equal(3)
            expect(any_captureValues_result1_3.value[2]).to.equal(2)
            expect(any_captureValues_result1_3.value.foo).to.equal(3)
            any_create_result2_7(4)
            expect(var2_result1.callCount).to.equal(2)
            local any_captureValues_result1 = var2_result1:captureValues("value")
            expect(any_captureValues_result1.value).to.be.a("table")
            expect(any_captureValues_result1.value[1]).to.equal(3)
            expect(any_captureValues_result1.value[2]).to.equal(4)
            expect(any_captureValues_result1.value.foo).to.equal(3)
            any_create_result2_9(8)
            expect(var2_result1.callCount).to.equal(3)
            local any_captureValues_result1_2 = var2_result1:captureValues("value")
            expect(any_captureValues_result1_2.value).to.be.a("table")
            expect(any_captureValues_result1_2.value[1]).to.equal(3)
            expect(any_captureValues_result1_2.value[2]).to.equal(4)
            expect(any_captureValues_result1_2.value.foo).to.equal(8)
        end)
        it("should disconnect from all upstream bindings", function() -- Line 198
            --[[ Upvalues[2]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local any_create_result1_4, any_create_result2_2 = Binding_upvr.create(1)
            local any_create_result1_11, any_create_result2 = Binding_upvr.create(2)
            local any_join_result1 = Binding_upvr.join({any_create_result1_4, any_create_result1_11})
            local var2_result1_2 = createSpy_upvr()
            expect(var2_result1_2.callCount).to.equal(0)
            any_create_result2_2(3)
            expect(var2_result1_2.callCount).to.equal(1)
            any_create_result2(3)
            expect(var2_result1_2.callCount).to.equal(2)
            Binding_upvr.subscribe(any_join_result1, var2_result1_2.value)()
            any_create_result2_2(4)
            expect(var2_result1_2.callCount).to.equal(2)
            any_create_result2(2)
            expect(var2_result1_2.callCount).to.equal(2)
            local any_getValue_result1 = any_join_result1:getValue()
            expect(any_getValue_result1[1]).to.equal(4)
            expect(any_getValue_result1[2]).to.equal(2)
        end)
        it("should be okay with calling disconnect multiple times", function() -- Line 227
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_subscribe_result1 = Binding_upvr.subscribe(Binding_upvr.join({}), function() -- Line 230
            end)
            any_subscribe_result1()
            any_subscribe_result1()
        end)
        it("should throw if updated directly", function() -- Line 236
            --[[ Upvalues[1]:
                [1]: Binding_upvr (copied, readonly)
            ]]
            local any_join_result1_upvr = Binding_upvr.join({})
            expect(function() -- Line 239
                --[[ Upvalues[2]:
                    [1]: Binding_upvr (copied, readonly)
                    [2]: any_join_result1_upvr (readonly)
                ]]
                Binding_upvr.update(any_join_result1_upvr, 0)
            end)
        end)
        it("should throw when a non-table value is passed", function() -- Line 244
            --[[ Upvalues[2]:
                [1]: GlobalConfig_upvr (copied, readonly)
                [2]: Binding_upvr (copied, readonly)
            ]]
            GlobalConfig_upvr.scoped({
                typeChecks = true;
            }, function() -- Line 247
                --[[ Upvalues[1]:
                    [1]: Binding_upvr (copied, readonly)
                ]]
                expect(function() -- Line 248
                    --[[ Upvalues[1]:
                        [1]: Binding_upvr (copied, readonly)
                    ]]
                    Binding_upvr.join("hi")
                end).to.throw()
            end)
        end)
        it("should throw when a non-binding value is passed via table", function() -- Line 254
            --[[ Upvalues[2]:
                [1]: GlobalConfig_upvr (copied, readonly)
                [2]: Binding_upvr (copied, readonly)
            ]]
            GlobalConfig_upvr.scoped({
                typeChecks = true;
            }, function() -- Line 257
                --[[ Upvalues[1]:
                    [1]: Binding_upvr (copied, readonly)
                ]]
                expect(function() -- Line 258
                    --[[ Upvalues[1]:
                        [1]: Binding_upvr (copied, readonly)
                    ]]
                    Binding_upvr.join({Binding_upvr.create(123), "abcde"})
                end).to.throw()
            end)
        end)
    end)
end
ModuleScript Component ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:55
-- Luau version 6, Types version 3
-- Time taken: 0.026083 seconds

local assign_upvr = require(script.Parent.assign)
local ComponentLifecyclePhase_upvr = require(script.Parent.ComponentLifecyclePhase)
local Type_upvr = require(script.Parent.Type)
local internalAssert_upvr = require(script.Parent.internalAssert)
local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local any_named_result1_upvr = require(script.Parent.Symbol).named("InternalData")
local tbl_4_upvr = {
    __tostring = function(arg1) -- Line 29, Named "__tostring"
        return arg1.__componentName
    end;
}
local module_2 = {}
setmetatable(module_2, tbl_4_upvr)
module_2[Type_upvr] = Type_upvr.StatefulComponentClass
module_2.__index = module_2
module_2.__componentName = "Component"
function module_2.extend(arg1, arg2) -- Line 45
    --[[ Upvalues[3]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Type_upvr (readonly)
        [3]: tbl_4_upvr (readonly)
    ]]
    local var13 = any_get_result1_upvr
    if var13.typeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentClass then
            var13 = false
        else
            var13 = true
        end
        assert(var13, "Invalid `self` argument to `extend`.")
        if typeof(arg2) ~= "string" then
            var13 = false
        else
            var13 = true
        end
        assert(var13, "Component class name must be a string")
    end
    local module = {}
    for i, v in pairs(arg1) do
        if i ~= "extend" then
            module[i] = v
        end
    end
    module[Type_upvr] = Type_upvr.StatefulComponentClass
    module.__index = module
    module.__componentName = arg2
    setmetatable(module, tbl_4_upvr)
    return module
end
function module_2.__getDerivedState(arg1, arg2, arg3) -- Line 71
    --[[ Upvalues[4]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
    ]]
    local var21 = any_get_result1_upvr
    if var21.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var21 = false
        else
            var21 = true
        end
        internalAssert_upvr(var21, "Invalid use of `__getDerivedState`")
    end
    local componentClass = arg1[any_named_result1_upvr].componentClass
    if componentClass.getDerivedStateFromProps ~= nil then
        local any_getDerivedStateFromProps_result1 = componentClass.getDerivedStateFromProps(arg2, arg3)
        if any_getDerivedStateFromProps_result1 ~= nil then
            local var24 = any_get_result1_upvr
            if var24.typeChecks then
                if typeof(any_getDerivedStateFromProps_result1) ~= "table" then
                    var24 = false
                else
                    var24 = true
                end
                assert(var24, "getDerivedStateFromProps must return a table!")
            end
            return any_getDerivedStateFromProps_result1
        end
    end
    return nil
end
local invalidSetStateMessages_upvr = require(script.Parent.invalidSetStateMessages)
function module_2.setState(arg1, arg2) -- Line 94
    --[[ Upvalues[6]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Type_upvr (readonly)
        [3]: any_named_result1_upvr (readonly)
        [4]: ComponentLifecyclePhase_upvr (readonly)
        [5]: invalidSetStateMessages_upvr (readonly)
        [6]: assign_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 63 start (CF ANALYSIS FAILED)
    local var26 = any_get_result1_upvr
    if var26.typeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var26 = false
        else
            var26 = true
        end
        assert(var26, "Invalid `self` argument to `extend`.")
    end
    local var27 = arg1[any_named_result1_upvr]
    local lifecyclePhase = var27.lifecyclePhase
    if lifecyclePhase == ComponentLifecyclePhase_upvr.ShouldUpdate or lifecyclePhase == ComponentLifecyclePhase_upvr.WillUpdate or lifecyclePhase == ComponentLifecyclePhase_upvr.Render then
        error(invalidSetStateMessages_upvr[var27.lifecyclePhase]:format(tostring(var27.componentClass)), 2)
    elseif lifecyclePhase == ComponentLifecyclePhase_upvr.WillUnmount then
        return
    end
    if typeof(arg2) == "function" then
        local pendingState = var27.pendingState
        if not pendingState then
            pendingState = arg1.state
        end
        if arg2(pendingState, arg1.props) == nil then
            do
                return
            end
            -- KONSTANTWARNING: GOTO [103] #75
        end
        -- KONSTANTWARNING: GOTO [103] #75
    end
    -- KONSTANTERROR: [0] 1. Error Block 63 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [89] 64. Error Block 51 start (CF ANALYSIS FAILED)
    if typeof(arg2) == "table" then
        -- KONSTANTWARNING: GOTO [103] #75
    end
    -- KONSTANTERROR: [89] 64. Error Block 51 end (CF ANALYSIS FAILED)
end
function module_2.getElementTraceback(arg1) -- Line 178
    --[[ Upvalues[1]:
        [1]: any_named_result1_upvr (readonly)
    ]]
    return arg1[any_named_result1_upvr].virtualNode.currentElement.source
end
function module_2.render(arg1) -- Line 189
    --[[ Upvalues[1]:
        [1]: any_named_result1_upvr (readonly)
    ]]
    error("The component %q is missing the `render` method.\n`render` must be defined when creating a Roact component!":format(tostring(arg1[any_named_result1_upvr].componentClass)), 0)
end
function module_2.__getContext(arg1, arg2) -- Line 201
    --[[ Upvalues[4]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
    ]]
    local var30 = any_get_result1_upvr
    if var30.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var30 = false
        else
            var30 = true
        end
        internalAssert_upvr(var30, "Invalid use of `__getContext`")
        if arg2 == nil then
            var30 = false
        else
            var30 = true
        end
        internalAssert_upvr(var30, "Context key cannot be nil")
    end
    return arg1[any_named_result1_upvr].virtualNode.context[arg2]
end
function module_2.__addContext(arg1, arg2, arg3) -- Line 217
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: assign_upvr (readonly)
    ]]
    local var31 = any_get_result1_upvr
    if var31.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var31 = false
        else
            var31 = true
        end
        internalAssert_upvr(var31, "Invalid use of `__addContext`")
    end
    local virtualNode_3 = arg1[any_named_result1_upvr].virtualNode
    if virtualNode_3.originalContext == nil then
        virtualNode_3.originalContext = virtualNode_3.context
    end
    local tbl = {}
    tbl[arg2] = arg3
    virtualNode_3.context = assign_upvr({}, virtualNode_3.context, tbl)
end
function module_2.__validateProps(arg1, arg2) -- Line 244
    --[[ Upvalues[2]:
        [1]: any_get_result1_upvr (readonly)
        [2]: any_named_result1_upvr (readonly)
    ]]
    if not any_get_result1_upvr.propValidation then
    else
        local validateProps = arg1[any_named_result1_upvr].componentClass.validateProps
        if validateProps == nil then return end
        if typeof(validateProps) ~= "function" then
            error("validateProps must be a function, but it is a %s.\nCheck the definition of the component %q.":format(typeof(validateProps), arg1.__componentName))
        end
        local var34_result1, validateProps_result2 = validateProps(arg2)
        if not var34_result1 then
            error("Property validation failed in %s: %s\n\n%s":format(arg1.__componentName, tostring(validateProps_result2 or "<Validator function did not supply a message>"), arg1:getElementTraceback() or "<enable element tracebacks>"), 0)
        end
    end
end
function module_2.__mount(arg1, arg2, arg3) -- Line 283
    --[[ Upvalues[6]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: ComponentLifecyclePhase_upvr (readonly)
        [5]: any_named_result1_upvr (readonly)
        [6]: assign_upvr (readonly)
    ]]
    local var37 = any_get_result1_upvr
    if var37.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentClass then
            var37 = false
        else
            var37 = true
        end
        internalAssert_upvr(var37, "Invalid use of `__mount`")
        if Type_upvr.of(arg3) ~= Type_upvr.VirtualNode then
            var37 = false
        else
            var37 = true
        end
        internalAssert_upvr(var37, "Expected arg #2 to be of type VirtualNode")
    end
    local tbl_2 = {}
    tbl_2.reconciler = arg2
    tbl_2.virtualNode = arg3
    tbl_2.componentClass = arg1
    tbl_2.lifecyclePhase = ComponentLifecyclePhase_upvr.Init
    tbl_2.pendingState = nil
    local tbl_3 = {
        [Type_upvr] = Type_upvr.StatefulComponentInstance;
        [any_named_result1_upvr] = tbl_2;
    }
    setmetatable(tbl_3, arg1)
    arg3.instance = tbl_3
    local props_2 = arg3.currentElement.props
    if arg1.defaultProps ~= nil then
        props_2 = assign_upvr({}, arg1.defaultProps, props_2)
    end
    tbl_3:__validateProps(props_2)
    tbl_3.props = props_2
    tbl_3._context = assign_upvr({}, arg3.legacyContext)
    tbl_3.state = assign_upvr({}, tbl_3:__getDerivedState(tbl_3.props, {}))
    if tbl_3.init ~= nil then
        tbl_3:init(tbl_3.props)
        assign_upvr(tbl_3.state, tbl_3:__getDerivedState(tbl_3.props, tbl_3.state))
    end
    arg3.legacyContext = tbl_3._context
    tbl_2.lifecyclePhase = ComponentLifecyclePhase_upvr.Render
    tbl_2.lifecyclePhase = ComponentLifecyclePhase_upvr.ReconcileChildren
    arg2.updateVirtualNodeWithRenderResult(arg3, arg3.hostParent, tbl_3:render())
    if tbl_3.didMount ~= nil then
        tbl_2.lifecyclePhase = ComponentLifecyclePhase_upvr.DidMount
        tbl_3:didMount()
    end
    if tbl_2.pendingState ~= nil then
        tbl_3:__update(nil, nil)
    end
    tbl_2.lifecyclePhase = ComponentLifecyclePhase_upvr.Idle
end
function module_2.__unmount(arg1) -- Line 357
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: ComponentLifecyclePhase_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var49 = any_get_result1_upvr
    if var49.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var49 = false
        else
            var49 = true
        end
        internalAssert_upvr(var49, "Invalid use of `__unmount`")
    end
    local var50 = arg1[any_named_result1_upvr]
    if arg1.willUnmount ~= nil then
        var50.lifecyclePhase = ComponentLifecyclePhase_upvr.WillUnmount
        arg1:willUnmount()
    end
    for _, v_2 in pairs(var50.virtualNode.children) do
        var50.reconciler.unmountVirtualNode(v_2)
        local _
    end
end
function module_2.__update(arg1, arg2, arg3) -- Line 382
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: assign_upvr (readonly)
    ]]
    local var55 = any_get_result1_upvr
    if var55.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var55 = false
        else
            var55 = true
        end
        internalAssert_upvr(var55, "Invalid use of `__update`")
        var55 = true
        if Type_upvr.of(arg2) ~= Type_upvr.Element then
            if arg2 ~= nil then
                var55 = false
            else
                var55 = true
            end
        end
        internalAssert_upvr(var55, "Expected arg #1 to be of type Element or nil")
        var55 = true
        if typeof(arg3) ~= "table" then
            if arg3 ~= nil then
                var55 = false
            else
                var55 = true
            end
        end
        internalAssert_upvr(var55, "Expected arg #2 to be of type table or nil")
    end
    local var56 = arg1[any_named_result1_upvr]
    local componentClass_2 = var56.componentClass
    if arg2 ~= nil then
        local props = arg2.props
        if componentClass_2.defaultProps ~= nil then
            props = assign_upvr({}, componentClass_2.defaultProps, props)
            local var59 = props
        end
        arg1:__validateProps(var59)
    end
    repeat
        local var60
        if var56.pendingState ~= nil then
            var60 = var56.pendingState
            var56.pendingState = nil
            local var61
        end
        if arg3 ~= nil or var59 ~= arg1.props then
            if var60 == nil then
                local var62 = arg3
                if not var62 then
                    var62 = arg1.state
                end
                var61 = var62
            else
                var61 = assign_upvr(var60, arg3)
            end
            local any___getDerivedState_result1 = arg1:__getDerivedState(var59, var61)
            if any___getDerivedState_result1 ~= nil then
                var61 = assign_upvr({}, var61, any___getDerivedState_result1)
            end
        else
            var61 = var60
        end
        if not arg1:__resolveUpdate(var59, var61) then
            return false
        end
        if 100 < 0 + 1 then
            error("The component %q has reached the setState update recursion limit.\nWhen using `setState` in `didUpdate`, make sure that it won't repeat infinitely!":format(tostring(var56.componentClass)), 3)
        end
    until var56.pendingState == nil
    return true
end
function module_2.__resolveUpdate(arg1, arg2, arg3) -- Line 459
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: any_named_result1_upvr (readonly)
        [5]: ComponentLifecyclePhase_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var71 = any_get_result1_upvr
    local var72
    if var71.internalTypeChecks then
        if Type_upvr.of(arg1) ~= Type_upvr.StatefulComponentInstance then
            var71 = false
        else
            var71 = true
        end
        internalAssert_upvr(var71, "Invalid use of `__resolveUpdate`")
    end
    local var73 = arg1[any_named_result1_upvr]
    local virtualNode_2 = var73.virtualNode
    local props_4 = arg1.props
    local state = arg1.state
    if var72 == nil then
        var72 = props_4
    end
    if arg3 == nil then
        local var77 = state
    end
    if arg1.shouldUpdate ~= nil then
        var73.lifecyclePhase = ComponentLifecyclePhase_upvr.ShouldUpdate
        if not arg1:shouldUpdate(var72, var77) then
            var73.lifecyclePhase = ComponentLifecyclePhase_upvr.Idle
            return false
        end
    end
    if arg1.willUpdate ~= nil then
        var73.lifecyclePhase = ComponentLifecyclePhase_upvr.WillUpdate
        arg1:willUpdate(var72, var77)
    end
    var73.lifecyclePhase = ComponentLifecyclePhase_upvr.Render
    arg1.props = var72
    arg1.state = var77
    var73.lifecyclePhase = ComponentLifecyclePhase_upvr.ReconcileChildren
    var73.reconciler.updateVirtualNodeWithRenderResult(virtualNode_2, virtualNode_2.hostParent, virtualNode_2.instance:render())
    if arg1.didUpdate ~= nil then
        var73.lifecyclePhase = ComponentLifecyclePhase_upvr.DidUpdate
        arg1:didUpdate(props_4, state)
    end
    var73.lifecyclePhase = ComponentLifecyclePhase_upvr.Idle
    return true
end
return module_2
ModuleScript ComponentLifecyclePhase ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.ComponentLifecyclePhase
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:57
-- Luau version 6, Types version 3
-- Time taken: 0.001102 seconds

local Symbol = require(script.Parent.Symbol)
return require(script.Parent.strict)({
    Init = Symbol.named("init");
    Render = Symbol.named("render");
    ShouldUpdate = Symbol.named("shouldUpdate");
    WillUpdate = Symbol.named("willUpdate");
    DidMount = Symbol.named("didMount");
    DidUpdate = Symbol.named("didUpdate");
    WillUnmount = Symbol.named("willUnmount");
    ReconcileChildren = Symbol.named("reconcileChildren");
    Idle = Symbol.named("idle");
}, "ComponentLifecyclePhase")
ModuleScript Config ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Config
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:03:59
-- Luau version 6, Types version 3
-- Time taken: 0.003976 seconds

local tbl_upvr_2 = {
    internalTypeChecks = false;
    typeChecks = false;
    elementTracing = false;
    propValidation = false;
}
local tbl_upvr = {}
for i in pairs(tbl_upvr_2) do
    table.insert(tbl_upvr, i)
end
local module_upvr_2 = {}
function module_upvr_2.new() -- Line 35
    --[[ Upvalues[3]:
        [1]: tbl_upvr (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: tbl_upvr_2 (readonly)
    ]]
    local module_upvr = {
        _currentConfig = setmetatable({}, {
            __index = function(arg1, arg2) -- Line 39, Named "__index"
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (copied, readonly)
                ]]
                error("Invalid global configuration key %q. Valid configuration keys are: %s":format(tostring(arg2), table.concat(tbl_upvr, ", ")), 3)
            end;
        });
    }
    function module_upvr.set(...) -- Line 52
        --[[ Upvalues[2]:
            [1]: module_upvr_2 (copied, readonly)
            [2]: module_upvr (readonly)
        ]]
        return module_upvr_2.set(module_upvr, ...)
    end
    function module_upvr.get(...) -- Line 56
        --[[ Upvalues[2]:
            [1]: module_upvr_2 (copied, readonly)
            [2]: module_upvr (readonly)
        ]]
        return module_upvr_2.get(module_upvr, ...)
    end
    function module_upvr.scoped(...) -- Line 60
        --[[ Upvalues[2]:
            [1]: module_upvr_2 (copied, readonly)
            [2]: module_upvr (readonly)
        ]]
        return module_upvr_2.scoped(module_upvr, ...)
    end
    module_upvr.set(tbl_upvr_2)
    return module_upvr
end
function module_upvr_2.set(arg1, arg2) -- Line 69
    --[[ Upvalues[2]:
        [1]: tbl_upvr_2 (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_2, v in pairs(arg2) do
        if tbl_upvr_2[i_2] == nil then
            error("Invalid global configuration key %q (type %s). Valid configuration keys are: %s":format(tostring(i_2), typeof(i_2), table.concat(tbl_upvr, ", ")), 3)
        end
        if typeof(v) ~= "boolean" then
            error("Invalid value %q (type %s) for global configuration key %q. Valid values are: true, false":format(tostring(v), typeof(v), tostring(i_2)), 3)
        end
        arg1._currentConfig[i_2] = v
    end
end
function module_upvr_2.get(arg1) -- Line 96
    return arg1._currentConfig
end
function module_upvr_2.scoped(arg1, arg2, arg3) -- Line 100
    local tbl = {}
    for i_3, v_2 in pairs(arg1._currentConfig) do
        tbl[i_3] = v_2
    end
    arg1.set(arg2)
    local pcall_result1, pcall_result2 = pcall(arg3)
    arg1.set(tbl)
    assert(pcall_result1, pcall_result2)
end
return module_upvr_2
ModuleScript Config.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Config.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:01
-- Luau version 6, Types version 3
-- Time taken: 0.003096 seconds

return function() -- Line 1
    local Config_upvr = require(script.Parent.Config)
    it("should accept valid configuration", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Config_upvr (readonly)
        ]]
        local any_new_result1 = Config_upvr.new()
        local any_get_result1 = any_new_result1.get()
        expect(any_get_result1.elementTracing).to.equal(false)
        any_new_result1.set({
            elementTracing = true;
        })
        expect(any_get_result1.elementTracing).to.equal(true)
    end)
    it("should reject invalid configuration keys", function() -- Line 17
        --[[ Upvalues[1]:
            [1]: Config_upvr (readonly)
        ]]
        local any_new_result1_2_upvr = Config_upvr.new()
        local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 22
            --[[ Upvalues[1]:
                [1]: any_new_result1_2_upvr (readonly)
            ]]
            any_new_result1_2_upvr.set({
                garblegoop = true;
            })
        end)
        expect(pcall_result1_2).to.equal(false)
        expect(pcall_result2_2:find("garblegoop")).to.be.ok()
    end)
    it("should reject invalid configuration values", function() -- Line 34
        --[[ Upvalues[1]:
            [1]: Config_upvr (readonly)
        ]]
        local any_new_result1_upvr = Config_upvr.new()
        local pcall_result1, pcall_result2 = pcall(function() -- Line 40
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr.set({
                elementTracing = "Hello there!";
            })
        end)
        expect(pcall_result1).to.equal(false)
        expect(pcall_result2:find("elementTracing")).to.be.ok()
        expect(pcall_result2:find("Hello there!")).to.be.ok()
    end)
end
ModuleScript ElementKind ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.ElementKind
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:03
-- Luau version 6, Types version 3
-- Time taken: 0.002004 seconds

local Symbol = require(script.Parent.Symbol)
local newproxy_result1_upvr = newproxy(true)
local tbl = {
    Portal = Symbol.named("Portal");
    Host = Symbol.named("Host");
    Function = Symbol.named("Function");
    Stateful = Symbol.named("Stateful");
    Fragment = Symbol.named("Fragment");
    of = function(arg1) -- Line 25, Named "of"
        --[[ Upvalues[1]:
            [1]: newproxy_result1_upvr (readonly)
        ]]
        if typeof(arg1) ~= "table" then
            return nil
        end
        return arg1[newproxy_result1_upvr]
    end;
}
local module_upvr = {
    string = tbl.Host;
    ["function"] = tbl.Function;
    table = tbl.Stateful;
}
local Portal_upvr = require(script.Parent.Portal)
function tbl.fromComponent(arg1) -- Line 39
    --[[ Upvalues[3]:
        [1]: Portal_upvr (readonly)
        [2]: newproxy_result1_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    if arg1 == Portal_upvr then
        return newproxy_result1_upvr.Portal
    end
    return module_upvr[typeof(arg1)]
end
getmetatable(newproxy_result1_upvr).__index = tbl
require(script.Parent.strict)(tbl, "ElementKind")
return newproxy_result1_upvr
ModuleScript ElementKind.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.ElementKind.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:04
-- Luau version 6, Types version 3
-- Time taken: 0.003503 seconds

return function() -- Line 1
    local ElementKind_upvr = require(script.Parent.ElementKind)
    describe("of", function() -- Line 7
        --[[ Upvalues[1]:
            [1]: ElementKind_upvr (readonly)
        ]]
        it("should return nil for non-table values", function() -- Line 8
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.of(nil)).to.equal(nil)
            expect(ElementKind_upvr.of(5)).to.equal(nil)
            expect(ElementKind_upvr.of(newproxy(true))).to.equal(nil)
        end)
        it("should return nil for table values without an ElementKind key", function() -- Line 14
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.of({})).to.equal(nil)
        end)
        it("should return the ElementKind from a table", function() -- Line 18
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.of({
                [ElementKind_upvr] = ElementKind_upvr.Stateful;
            })).to.equal(ElementKind_upvr.Stateful)
        end)
    end)
    local Component_upvr = require(script.Parent.Component)
    local Portal_upvr = require(script.Parent.Portal)
    describe("fromComponent", function() -- Line 27
        --[[ Upvalues[3]:
            [1]: ElementKind_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: Portal_upvr (readonly)
        ]]
        it("should handle host components", function() -- Line 28
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.fromComponent("foo")).to.equal(ElementKind_upvr.Host)
        end)
        it("should handle function components", function() -- Line 32
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.fromComponent(function() -- Line 33, Named "foo"
            end)).to.equal(ElementKind_upvr.Function)
        end)
        it("should handle stateful components", function() -- Line 38
            --[[ Upvalues[2]:
                [1]: Component_upvr (copied, readonly)
                [2]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.fromComponent(Component_upvr:extend("Foo"))).to.equal(ElementKind_upvr.Stateful)
        end)
        it("should handle portals", function() -- Line 44
            --[[ Upvalues[2]:
                [1]: ElementKind_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.fromComponent(Portal_upvr)).to.equal(ElementKind_upvr.Portal)
        end)
        it("should return nil for invalid inputs", function() -- Line 48
            --[[ Upvalues[1]:
                [1]: ElementKind_upvr (copied, readonly)
            ]]
            expect(ElementKind_upvr.fromComponent(5)).to.equal(nil)
            expect(ElementKind_upvr.fromComponent(newproxy(true))).to.equal(nil)
        end)
    end)
end
ModuleScript ElementUtils ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.ElementUtils
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:06
-- Luau version 6, Types version 3
-- Time taken: 0.003139 seconds

local Type_upvr = require(script.Parent.Type)
local function noop_upvr() -- Line 5, Named "noop"
    return nil
end
local module_upvr = {
    UseParentKey = require(script.Parent.Symbol).named("UseParentKey");
}
function module_upvr.iterateElements(arg1) -- Line 43
    --[[ Upvalues[3]:
        [1]: Type_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: noop_upvr (readonly)
    ]]
    if Type_upvr.of(arg1) == Type_upvr.Element then
        local var4_upvw = false
        return function(arg1_2, arg2) -- Line 50
            --[[ Upvalues[3]:
                [1]: var4_upvw (read and write)
                [2]: module_upvr (copied, readonly)
                [3]: arg1 (readonly)
            ]]
            if var4_upvw then
                return nil
            end
            var4_upvw = true
            return module_upvr.UseParentKey, arg1
        end
    end
    local typeof_result1 = typeof(arg1)
    if arg1 == nil or typeof_result1 == "boolean" then
        return noop_upvr
    end
    if typeof_result1 == "table" then
        return pairs(arg1)
    end
    error("Invalid elements")
end
function module_upvr.getElementByKey(arg1, arg2) -- Line 82
    --[[ Upvalues[2]:
        [1]: Type_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    if arg1 == nil or typeof(arg1) == "boolean" then
        return nil
    end
    if Type_upvr.of(arg1) == Type_upvr.Element then
        if arg2 == module_upvr.UseParentKey then
            return arg1
        end
        return nil
    end
    if typeof(arg1) == "table" then
        return arg1[arg2]
    end
    error("Invalid elements")
end
return module_upvr
ModuleScript ElementUtils.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.ElementUtils.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:07
-- Luau version 6, Types version 3
-- Time taken: 0.005482 seconds

return function() -- Line 1
    local ElementUtils_upvr = require(script.Parent.ElementUtils)
    local createElement_upvr = require(script.Parent.createElement)
    local Type_upvr = require(script.Parent.Type)
    describe("iterateElements", function() -- Line 7
        --[[ Upvalues[3]:
            [1]: createElement_upvr (readonly)
            [2]: ElementUtils_upvr (readonly)
            [3]: Type_upvr (readonly)
        ]]
        it("should iterate once for a single child", function() -- Line 8
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: ElementUtils_upvr (copied, readonly)
            ]]
            local createElement_upvr_result1 = createElement_upvr("TextLabel")
            local any_iterateElements_result1 = ElementUtils_upvr.iterateElements(createElement_upvr_result1)
            local any_iterateElements_result1_result1, var8_result2 = any_iterateElements_result1()
            expect(any_iterateElements_result1_result1).to.equal(ElementUtils_upvr.UseParentKey)
            expect(var8_result2).to.equal(createElement_upvr_result1)
            expect(any_iterateElements_result1()).to.equal(nil)
        end)
        it("should iterate over tables", function() -- Line 20
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: ElementUtils_upvr (copied, readonly)
                [3]: Type_upvr (copied, readonly)
            ]]
            local tbl_2 = {
                a = createElement_upvr("TextLabel");
                b = createElement_upvr("TextLabel");
            }
            local tbl_3 = {}
            local var18 = 0
            for i, v in ElementUtils_upvr.iterateElements(tbl_2) do
                expect(typeof(i)).to.equal("string")
                expect(Type_upvr.of(v)).to.equal(Type_upvr.Element)
                tbl_3[v] = i
                var18 += 1
            end
            expect(var18).to.equal(2)
            expect(tbl_3[tbl_2.a]).to.equal('a')
            expect(tbl_3[tbl_2.b]).to.equal('b')
        end)
        it("should return a zero-element iterator for booleans", function() -- Line 41
            --[[ Upvalues[1]:
                [1]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(ElementUtils_upvr.iterateElements(false)()).to.equal(nil)
        end)
        it("should return a zero-element iterator for nil", function() -- Line 46
            --[[ Upvalues[1]:
                [1]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(ElementUtils_upvr.iterateElements(nil)()).to.equal(nil)
        end)
        it("should throw if given an illegal value", function() -- Line 51
            --[[ Upvalues[1]:
                [1]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(function() -- Line 52
                --[[ Upvalues[1]:
                    [1]: ElementUtils_upvr (copied, readonly)
                ]]
                ElementUtils_upvr.iterateElements(1)
            end).to.throw()
        end)
    end)
    local createFragment_upvr = require(script.Parent.createFragment)
    describe("getElementByKey", function() -- Line 58
        --[[ Upvalues[3]:
            [1]: ElementUtils_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: createFragment_upvr (readonly)
        ]]
        it("should return nil for booleans", function() -- Line 59
            --[[ Upvalues[1]:
                [1]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(ElementUtils_upvr.getElementByKey(true, "test")).to.equal(nil)
        end)
        it("should return nil for nil", function() -- Line 63
            --[[ Upvalues[1]:
                [1]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(ElementUtils_upvr.getElementByKey(nil, "test")).to.equal(nil)
        end)
        describe("single elements", function() -- Line 67
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: ElementUtils_upvr (copied, readonly)
            ]]
            local createElement_upvr_result1_2_upvr = createElement_upvr("TextLabel")
            it("should return the element if the key is UseParentKey", function() -- Line 70
                --[[ Upvalues[2]:
                    [1]: ElementUtils_upvr (copied, readonly)
                    [2]: createElement_upvr_result1_2_upvr (readonly)
                ]]
                expect(ElementUtils_upvr.getElementByKey(createElement_upvr_result1_2_upvr, ElementUtils_upvr.UseParentKey)).to.equal(createElement_upvr_result1_2_upvr)
            end)
            it("should return nil if the key is not UseParentKey", function() -- Line 74
                --[[ Upvalues[2]:
                    [1]: ElementUtils_upvr (copied, readonly)
                    [2]: createElement_upvr_result1_2_upvr (readonly)
                ]]
                expect(ElementUtils_upvr.getElementByKey(createElement_upvr_result1_2_upvr, "test")).to.equal(nil)
            end)
        end)
        it("should return the corresponding element from a table", function() -- Line 79
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: ElementUtils_upvr (copied, readonly)
            ]]
            local tbl = {
                a = createElement_upvr("TextLabel");
                b = createElement_upvr("TextLabel");
            }
            expect(ElementUtils_upvr.getElementByKey(tbl, 'a')).to.equal(tbl.a)
            expect(ElementUtils_upvr.getElementByKey(tbl, 'b')).to.equal(tbl.b)
        end)
        it("should return nil if the key does not exist", function() -- Line 89
            --[[ Upvalues[2]:
                [1]: createFragment_upvr (copied, readonly)
                [2]: ElementUtils_upvr (copied, readonly)
            ]]
            expect(ElementUtils_upvr.getElementByKey(createFragment_upvr({}), 'a')).to.equal(nil)
        end)
    end)
end
ModuleScript GlobalConfig ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.GlobalConfig
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:08
-- Luau version 6, Types version 3
-- Time taken: 0.000287 seconds

return require(script.Parent.Config).new()
ModuleScript GlobalConfig.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.GlobalConfig.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:10
-- Luau version 6, Types version 3
-- Time taken: 0.001042 seconds

return function() -- Line 1
    local GlobalConfig_upvr = require(script.Parent.GlobalConfig)
    it("should have the correct methods", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: GlobalConfig_upvr (readonly)
        ]]
        expect(GlobalConfig_upvr).to.be.ok()
        expect(GlobalConfig_upvr.set).to.be.ok()
        expect(GlobalConfig_upvr.get).to.be.ok()
    end)
end
ModuleScript Logging ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Logging
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:11
-- Luau version 6, Types version 3
-- Time taken: 0.006403 seconds

local var1_upvw = true
local tbl_upvr = {}
local function _(arg1, arg2) -- Line 24, Named "indent"
    local any_rep_result1_2 = '\t':rep(arg2)
    return any_rep_result1_2..arg1:gsub('\n', '\n'..any_rep_result1_2)
end
local function indentLines_upvr(arg1, arg2) -- Line 34, Named "indentLines"
    local module_3 = {}
    for _, v in ipairs(arg1) do
        local any_rep_result1_3 = '\t':rep(arg2)
        table.insert(module_3, any_rep_result1_3..v:gsub('\n', '\n'..any_rep_result1_3))
    end
    return table.concat(module_3, '\n')
end
local tbl_upvr_2 = {
    __tostring = function(arg1) -- Line 50, Named "__tostring"
        --[[ Upvalues[1]:
            [1]: indentLines_upvr (readonly)
        ]]
        local module = {"LogInfo {"}
        local len_3 = #arg1.errors
        local len = #arg1.warnings
        local len_2 = #arg1.infos
        if len_3 + len + len_2 == 0 then
            table.insert(module, "\t(no messages)")
        end
        if 0 < len_3 then
            table.insert(module, "\tErrors (%d) {":format(len_3))
            table.insert(module, indentLines_upvr(arg1.errors, 2))
            table.insert(module, "\t}")
        end
        if 0 < len then
            table.insert(module, "\tWarnings (%d) {":format(len))
            table.insert(module, indentLines_upvr(arg1.warnings, 2))
            table.insert(module, "\t}")
        end
        if 0 < len_2 then
            table.insert(module, "\tInfos (%d) {":format(len_2))
            table.insert(module, indentLines_upvr(arg1.infos, 2))
            table.insert(module, "\t}")
        end
        table.insert(module, '}')
        return table.concat(module, '\n')
    end;
}
local function createLogInfo_upvr() -- Line 84, Named "createLogInfo"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local module_4 = {
        errors = {};
        warnings = {};
        infos = {};
    }
    setmetatable(module_4, tbl_upvr_2)
    return module_4
end
local module_2_upvr = {
    capture = function(arg1) -- Line 105, Named "capture"
        --[[ Upvalues[3]:
            [1]: createLogInfo_upvr (readonly)
            [2]: var1_upvw (read and write)
            [3]: tbl_upvr (readonly)
        ]]
        local createLogInfo_upvr_result1 = createLogInfo_upvr()
        var1_upvw = false
        tbl_upvr[createLogInfo_upvr_result1] = true
        local pcall_result1, pcall_result2 = pcall(arg1)
        tbl_upvr[createLogInfo_upvr_result1] = nil
        var1_upvw = var1_upvw
        assert(pcall_result1, pcall_result2)
        return createLogInfo_upvr_result1
    end;
    warn = function(arg1, ...) -- Line 125, Named "warn"
        --[[ Upvalues[2]:
            [1]: tbl_upvr (readonly)
            [2]: var1_upvw (read and write)
        ]]
        local formatted = arg1:format(...)
        for i_2 in pairs(tbl_upvr) do
            table.insert(i_2.warnings, formatted)
        end
        local any_rep_result1 = '\t':rep(1)
        if var1_upvw then
            warn("%s\n%s":format(formatted, any_rep_result1..debug.traceback("", 2):sub(2):gsub('\n', '\n'..any_rep_result1)))
        end
    end;
}
local tbl_upvr_3 = {}
function module_2_upvr.warnOnce(arg1, ...) -- Line 148
    --[[ Upvalues[2]:
        [1]: tbl_upvr_3 (readonly)
        [2]: module_2_upvr (readonly)
    ]]
    local call_stack = debug.traceback()
    if tbl_upvr_3[call_stack] then
    else
        tbl_upvr_3[call_stack] = true
        module_2_upvr.warn(arg1, ...)
    end
end
return module_2_upvr
ModuleScript None ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.None
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:12
-- Luau version 6, Types version 3
-- Time taken: 0.000416 seconds

return require(script.Parent.Symbol).named("None")
ModuleScript NoopRenderer ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.NoopRenderer
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:14
-- Luau version 6, Types version 3
-- Time taken: 0.001103 seconds

return {
    isHostObject = function(arg1) -- Line 8, Named "isHostObject"
        if arg1 ~= nil then
        else
        end
        return true
    end;
    mountHostNode = function(arg1, arg2) -- Line 14, Named "mountHostNode"
    end;
    unmountHostNode = function(arg1, arg2) -- Line 16, Named "unmountHostNode"
    end;
    updateHostNode = function(arg1, arg2, arg3) -- Line 18, Named "updateHostNode"
        return arg2
    end;
}
ModuleScript Portal ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Portal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:15
-- Luau version 6, Types version 3
-- Time taken: 0.000414 seconds

return require(script.Parent.Symbol).named("Portal")
ModuleScript PureComponent ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PureComponent
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:17
-- Luau version 6, Types version 3
-- Time taken: 0.001658 seconds

local Component = require(script.Parent.Component)
local any_extend_result1 = Component:extend("PureComponent")
any_extend_result1.extend = Component.extend
function any_extend_result1.shouldUpdate(arg1, arg2, arg3) -- Line 15
    if arg3 ~= arg1.state then
        return true
    end
    if arg2 == arg1.props then
        return false
    end
    for i, v in pairs(arg2) do
        if arg1.props[i] ~= v then
            return true
        end
    end
    for i_2, v_2 in pairs(arg1.props) do
        if arg2[i_2] ~= v_2 then
            return true
        end
    end
    return false
end
return any_extend_result1
ModuleScript PureComponent.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PureComponent.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:19
-- Luau version 6, Types version 3
-- Time taken: 0.003240 seconds

return function() -- Line 1
    local PureComponent_upvr = require(script.Parent.PureComponent)
    it("should be extendable", function() -- Line 10
        --[[ Upvalues[1]:
            [1]: PureComponent_upvr (readonly)
        ]]
        expect(PureComponent_upvr:extend("MyComponent")).to.be.ok()
    end)
    local createElement_upvr = require(script.Parent.createElement)
    local var6_upvr = require(script.Parent.createReconciler)(require(script.Parent.NoopRenderer))
    it("should skip updates for shallow-equal props", function() -- Line 16
        --[[ Upvalues[3]:
            [1]: PureComponent_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
        ]]
        local var7_upvw = 0
        local var12_upvw
        local any_extend_result1_2_upvr = PureComponent_upvr:extend("PureChild")
        function any_extend_result1_2_upvr.willUpdate(arg1) -- Line 22
            --[[ Upvalues[1]:
                [1]: var7_upvw (read and write)
            ]]
            var7_upvw += 1
        end
        local function render(arg1) -- Line 26
            return nil
        end
        any_extend_result1_2_upvr.render = render
        local any_extend_result1 = PureComponent_upvr:extend("PureContainer")
        function any_extend_result1.init(arg1) -- Line 32
            arg1.state = {
                value = 0;
            }
        end
        function any_extend_result1.didMount(arg1) -- Line 38
            --[[ Upvalues[1]:
                [1]: var12_upvw (read and write)
            ]]
            function var12_upvw(arg1_2) -- Line 39
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                local tbl = {}
                tbl.value = arg1_2
                arg1:setState(tbl)
            end
        end
        function any_extend_result1.render(arg1) -- Line 46
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_2_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_2_upvr, {
                value = arg1.state.value;
            })
        end
        expect(var7_upvw).to.equal(0)
        var12_upvw(1)
        expect(var7_upvw).to.equal(1)
        var12_upvw(1)
        expect(var7_upvw).to.equal(1)
        var12_upvw(2)
        expect(var7_upvw).to.equal(2)
        var12_upvw(1)
        expect(var7_upvw).to.equal(3)
        var6_upvr.unmountVirtualTree(var6_upvr.mountVirtualTree(createElement_upvr(any_extend_result1), nil, "PureComponent Tree"))
    end)
end
ModuleScript RobloxRenderer ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.RobloxRenderer
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:20
-- Luau version 6, Types version 3
-- Time taken: 0.014910 seconds

local Binding_upvr = require(script.Parent.Binding)
local Children_upvr = require(script.Parent.PropMarkers.Children)
local getDefaultInstanceProperty_upvr = require(script.Parent.getDefaultInstanceProperty)
local Ref_upvr = require(script.Parent.PropMarkers.Ref)
local Type_upvr = require(script.Parent.Type)
local function identity_upvr(...) -- Line 32, Named "identity"
    return ...
end
local function applyRef_upvr(arg1, arg2) -- Line 36, Named "applyRef"
    --[[ Upvalues[2]:
        [1]: Type_upvr (readonly)
        [2]: Binding_upvr (readonly)
    ]]
    if arg1 == nil then
    else
        if typeof(arg1) == "function" then
            arg1(arg2)
            return
        end
        if Type_upvr.of(arg1) == Type_upvr.Binding then
            Binding_upvr.update(arg1, arg2)
            return
        end
        error("Invalid ref: Expected type Binding but got %s":format(typeof(arg1)))
    end
end
local function _(arg1, arg2, arg3) -- Line 51, Named "setRobloxInstanceProperty"
    --[[ Upvalues[1]:
        [1]: getDefaultInstanceProperty_upvr (readonly)
    ]]
    if arg3 == nil then
        local _, getDefaultInstanceProperty_upvr_result2_3 = getDefaultInstanceProperty_upvr(arg1.ClassName, arg2)
    end
    arg1[arg2] = getDefaultInstanceProperty_upvr_result2_3
end
local function _(arg1, arg2) -- Line 64, Named "removeBinding"
    arg1.bindings[arg2]()
    arg1.bindings[arg2] = nil
end
local function attachBinding_upvr(arg1, arg2, arg3) -- Line 70, Named "attachBinding"
    --[[ Upvalues[3]:
        [1]: getDefaultInstanceProperty_upvr (readonly)
        [2]: identity_upvr (readonly)
        [3]: Binding_upvr (readonly)
    ]]
    local function updateBoundProperty(arg1_2) -- Line 71
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
            [3]: getDefaultInstanceProperty_upvr (copied, readonly)
            [4]: identity_upvr (copied, readonly)
        ]]
        local xpcall_result1_3, xpcall_result2_2 = xpcall(function() -- Line 72
            --[[ Upvalues[4]:
                [1]: arg1 (copied, readonly)
                [2]: arg2 (copied, readonly)
                [3]: arg1_2 (readonly)
                [4]: getDefaultInstanceProperty_upvr (copied, readonly)
            ]]
            local hostObject = arg1.hostObject
            local var10 = arg2
            local var11 = arg1_2
            if var11 == nil then
                local _, getDefaultInstanceProperty_upvr_result2 = getDefaultInstanceProperty_upvr(hostObject.ClassName, var10)
                var11 = getDefaultInstanceProperty_upvr_result2
            end
            hostObject[var10] = var11
        end, identity_upvr)
        if not xpcall_result1_3 then
            local source_2 = arg1.currentElement.source
            if source_2 == nil then
                source_2 = "<enable element tracebacks>"
            end
            error("Error updating props:\n\t%s\nIn element:\n%s\n":format(xpcall_result2_2, source_2), 0)
        end
    end
    if arg1.bindings == nil then
        arg1.bindings = {}
    end
    arg1.bindings[arg2] = Binding_upvr.subscribe(arg3, updateBoundProperty)
    updateBoundProperty(arg3:getValue())
end
local function _(arg1) -- Line 97, Named "detachAllBindings"
    if arg1.bindings ~= nil then
        for _, v in pairs(arg1.bindings) do
            v()
        end
        arg1.bindings = nil
    end
end
local SingleEventManager_upvr = require(script.Parent.SingleEventManager)
local function applyProp_upvr(arg1, arg2, arg3, arg4) -- Line 106, Named "applyProp"
    --[[ Upvalues[6]:
        [1]: Ref_upvr (readonly)
        [2]: Children_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: SingleEventManager_upvr (readonly)
        [5]: attachBinding_upvr (readonly)
        [6]: getDefaultInstanceProperty_upvr (readonly)
    ]]
    if arg3 == arg4 then
    else
        if arg2 == Ref_upvr or arg2 == Children_upvr then return end
        local any_of_result1 = Type_upvr.of(arg2)
        if any_of_result1 == Type_upvr.HostEvent or any_of_result1 == Type_upvr.HostChangeEvent then
            if arg1.eventManager == nil then
                arg1.eventManager = SingleEventManager_upvr.new(arg1.hostObject)
            end
            local name = arg2.name
            if any_of_result1 == Type_upvr.HostChangeEvent then
                arg1.eventManager:connectPropertyChange(name, arg3)
            else
                arg1.eventManager:connectEvent(name, arg3)
            end
        end
        if Type_upvr.of(arg3) ~= Type_upvr.Binding then
        else
        end
        if Type_upvr.of(arg4) ~= Type_upvr.Binding then
        else
        end
        if true then
            arg1.bindings[arg2]()
            arg1.bindings[arg2] = nil
        end
        if true then
            attachBinding_upvr(arg1, arg2, arg3)
            return
        end
        local hostObject_2 = arg1.hostObject
        local var26 = arg3
        if var26 == nil then
            local _, getDefaultInstanceProperty_upvr_result2_2 = getDefaultInstanceProperty_upvr(hostObject_2.ClassName, arg2)
            var26 = getDefaultInstanceProperty_upvr_result2_2
        end
        hostObject_2[arg2] = var26
    end
end
local function applyProps_upvr(arg1, arg2) -- Line 148, Named "applyProps"
    --[[ Upvalues[1]:
        [1]: applyProp_upvr (readonly)
    ]]
    for i_2, v_2 in pairs(arg2) do
        applyProp_upvr(arg1, i_2, v_2, nil)
    end
end
local function updateProps_upvr(arg1, arg2, arg3) -- Line 154, Named "updateProps"
    --[[ Upvalues[1]:
        [1]: applyProp_upvr (readonly)
    ]]
    for i_3, v_3 in pairs(arg3) do
        applyProp_upvr(arg1, i_3, v_3, arg2[i_3])
    end
    for i_4, v_4 in pairs(arg2) do
        if arg3[i_4] == nil then
            applyProp_upvr(arg1, i_4, nil, v_4)
        end
    end
end
local module = {
    isHostObject = function(arg1) -- Line 174, Named "isHostObject"
        local var45
        if typeof(arg1) ~= "Instance" then
            var45 = false
        else
            var45 = true
        end
        return var45
    end;
}
local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local internalAssert_upvr = require(script.Parent.internalAssert)
local ElementKind_upvr = require(script.Parent.ElementKind)
function module.mountHostNode(arg1, arg2) -- Line 178
    --[[ Upvalues[8]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: ElementKind_upvr (readonly)
        [4]: applyProps_upvr (readonly)
        [5]: identity_upvr (readonly)
        [6]: Children_upvr (readonly)
        [7]: applyRef_upvr (readonly)
        [8]: Ref_upvr (readonly)
    ]]
    local currentElement_upvr = arg2.currentElement
    local var50 = any_get_result1_upvr
    if var50.internalTypeChecks then
        if ElementKind_upvr.of(currentElement_upvr) ~= ElementKind_upvr.Host then
            var50 = false
        else
            var50 = true
        end
        internalAssert_upvr(var50, "Element at given node is not a host Element")
    end
    var50 = any_get_result1_upvr
    if var50.typeChecks then
        if currentElement_upvr.props.Name ~= nil then
            var50 = false
        else
            var50 = true
        end
        assert(var50, "Name can not be specified as a prop to a host component in Roact.")
        if currentElement_upvr.props.Parent ~= nil then
            var50 = false
        else
            var50 = true
        end
        assert(var50, "Parent can not be specified as a prop to a host component in Roact.")
    end
    local any = Instance.new(currentElement_upvr.component)
    arg2.hostObject = any
    local xpcall_result1, xpcall_result2_3 = xpcall(function() -- Line 194
        --[[ Upvalues[3]:
            [1]: applyProps_upvr (copied, readonly)
            [2]: arg2 (readonly)
            [3]: currentElement_upvr (readonly)
        ]]
        applyProps_upvr(arg2, currentElement_upvr.props)
    end, identity_upvr)
    if not xpcall_result1 then
        local source_3 = currentElement_upvr.source
        if source_3 == nil then
            source_3 = "<enable element tracebacks>"
        end
        error("Error applying props:\n\t%s\nIn element:\n%s\n":format(xpcall_result2_3, source_3), 0)
    end
    any.Name = tostring(arg2.hostKey)
    local var56 = currentElement_upvr.props[Children_upvr]
    if var56 ~= nil then
        arg1.updateVirtualNodeWithChildren(arg2, arg2.hostObject, var56)
    end
    any.Parent = arg2.hostParent
    arg2.hostObject = any
    applyRef_upvr(currentElement_upvr.props[Ref_upvr], any)
    if arg2.eventManager ~= nil then
        arg2.eventManager:resume()
    end
end
function module.unmountHostNode(arg1, arg2) -- Line 227
    --[[ Upvalues[2]:
        [1]: applyRef_upvr (readonly)
        [2]: Ref_upvr (readonly)
    ]]
    applyRef_upvr(arg2.currentElement.props[Ref_upvr], nil)
    for _, v_5 in pairs(arg2.children) do
        arg1.unmountVirtualNode(v_5)
    end
    if arg2.bindings ~= nil then
        for _, v_6 in pairs(arg2.bindings) do
            v_6()
        end
        arg2.bindings = nil
    end
    arg2.hostObject:Destroy()
end
function module.updateHostNode(arg1, arg2, arg3) -- Line 241
    --[[ Upvalues[5]:
        [1]: Ref_upvr (readonly)
        [2]: applyRef_upvr (readonly)
        [3]: updateProps_upvr (readonly)
        [4]: identity_upvr (readonly)
        [5]: Children_upvr (readonly)
    ]]
    local props_upvr = arg2.currentElement.props
    local props_upvr_2 = arg3.props
    if arg2.eventManager ~= nil then
        arg2.eventManager:suspend()
    end
    if props_upvr[Ref_upvr] ~= props_upvr_2[Ref_upvr] then
        applyRef_upvr(props_upvr[Ref_upvr], nil)
        applyRef_upvr(props_upvr_2[Ref_upvr], arg2.hostObject)
    end
    local xpcall_result1_2, xpcall_result2 = xpcall(function() -- Line 255
        --[[ Upvalues[4]:
            [1]: updateProps_upvr (copied, readonly)
            [2]: arg2 (readonly)
            [3]: props_upvr (readonly)
            [4]: props_upvr_2 (readonly)
        ]]
        updateProps_upvr(arg2, props_upvr, props_upvr_2)
    end, identity_upvr)
    if not xpcall_result1_2 then
        local source = arg3.source
        if source == nil then
            source = "<enable element tracebacks>"
        end
        error("Error updating props:\n\t%s\nIn element:\n%s\n":format(xpcall_result2, source), 0)
    end
    local var73 = arg3.props[Children_upvr]
    if var73 ~= nil or props_upvr[Children_upvr] ~= nil then
        arg1.updateVirtualNodeWithChildren(arg2, arg2.hostObject, var73)
    end
    if arg2.eventManager ~= nil then
        arg2.eventManager:resume()
    end
    return arg2
end
return module
ModuleScript RobloxRenderer.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.RobloxRenderer.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:23
-- Luau version 6, Types version 3
-- Time taken: 0.067120 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.assertDeepEqual)
    local Binding_upvr = require(script.Parent.Binding)
    local Children_upvr = require(script.Parent.PropMarkers.Children)
    local Component_upvr = require(script.Parent.Component)
    local createElement_upvr = require(script.Parent.createElement)
    local createRef_upvr = require(script.Parent.createRef)
    local createSpy_upvr = require(script.Parent.createSpy)
    local GlobalConfig_upvr = require(script.Parent.GlobalConfig)
    local Portal_upvr = require(script.Parent.Portal)
    local Ref_upvr = require(script.Parent.PropMarkers.Ref)
    local RobloxRenderer_upvr = require(script.Parent.RobloxRenderer)
    local var13_upvr = require(script.Parent.createReconciler)(RobloxRenderer_upvr)
    describe("mountHostNode", function() -- Line 22
        --[[ Upvalues[8]:
            [1]: createElement_upvr (readonly)
            [2]: var13_upvr (readonly)
            [3]: RobloxRenderer_upvr (readonly)
            [4]: Binding_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: Ref_upvr (readonly)
            [7]: createSpy_upvr (readonly)
            [8]: GlobalConfig_upvr (readonly)
        ]]
        it("should create instances with correct props", function() -- Line 23
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: var13_upvr (copied, readonly)
                [3]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_16 = Instance.new("Folder")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, var13_upvr.createVirtualNode(createElement_upvr("StringValue", {
                Value = "Hello!";
            }), Folder_16, "Some Key"))
            expect(#Folder_16:GetChildren()).to.equal(1)
            local _1 = Folder_16:GetChildren()[1]
            expect(_1.ClassName).to.equal("StringValue")
            expect(_1.Value).to.equal("Hello!")
            expect(_1.Name).to.equal("Some Key")
        end)
        it("should create children with correct names and props", function() -- Line 45
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: var13_upvr (copied, readonly)
                [3]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_10 = Instance.new("Folder")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, var13_upvr.createVirtualNode(createElement_upvr("StringValue", {
                Value = "Hey there!";
            }, {
                ChildA = createElement_upvr("IntValue", {
                    Value = 173;
                });
                ChildB = createElement_upvr("Folder");
            }), Folder_10, "Some Key"))
            expect(#Folder_10:GetChildren()).to.equal(1)
            local _1_7 = Folder_10:GetChildren()[1]
            expect(_1_7.ClassName).to.equal("StringValue")
            expect(_1_7.Value).to.equal("Hey there!")
            expect(_1_7.Name).to.equal("Some Key")
            expect(#_1_7:GetChildren()).to.equal(2)
            local ChildA = _1_7.ChildA
            local ChildB = _1_7.ChildB
            expect(ChildA).to.be.ok()
            expect(ChildB).to.be.ok()
            expect(ChildA.ClassName).to.equal("IntValue")
            expect(ChildA.Value).to.equal(173)
            expect(ChildB.ClassName).to.equal("Folder")
        end)
        it("should attach Bindings to Roblox properties", function() -- Line 87
            --[[ Upvalues[4]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_14 = Instance.new("Folder")
            local any_create_result1_4, any_create_result2_4 = Binding_upvr.create(10)
            local any_createVirtualNode_result1_5 = var13_upvr.createVirtualNode(createElement_upvr("IntValue", {
                Value = any_create_result1_4;
            }), Folder_14, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_5)
            expect(#Folder_14:GetChildren()).to.equal(1)
            local _1_2 = Folder_14:GetChildren()[1]
            expect(_1_2.ClassName).to.equal("IntValue")
            expect(_1_2.Value).to.equal(10)
            any_create_result2_4(20)
            expect(_1_2.Value).to.equal(20)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_5)
        end)
        it("should connect Binding refs", function() -- Line 114
            --[[ Upvalues[5]:
                [1]: createRef_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_2 = Instance.new("Folder")
            local var7_result1_2 = createRef_upvr()
            local any_createVirtualNode_result1_11 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = var7_result1_2;
            }), Folder_2, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_11)
            expect(#Folder_2:GetChildren()).to.equal(1)
            expect(var7_result1_2.current).to.be.ok()
            expect(var7_result1_2.current).to.equal(Folder_2:GetChildren()[1])
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_11)
        end)
        it("should call function refs", function() -- Line 137
            --[[ Upvalues[5]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_18 = Instance.new("Folder")
            local createSpy_upvr_result1_2 = createSpy_upvr()
            local any_createVirtualNode_result1_4 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = createSpy_upvr_result1_2.value;
            }), Folder_18, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_4)
            expect(#Folder_18:GetChildren()).to.equal(1)
            expect(createSpy_upvr_result1_2.callCount).to.equal(1)
            createSpy_upvr_result1_2:assertCalledWith(Folder_18:GetChildren()[1])
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_4)
        end)
        it("should throw if setting invalid instance properties", function() -- Line 160
            --[[ Upvalues[4]:
                [1]: GlobalConfig_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: RobloxRenderer_upvr (copied, readonly)
            ]]
            GlobalConfig_upvr.scoped({
                elementTracing = true;
            }, function() -- Line 165
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: var13_upvr (copied, readonly)
                    [3]: RobloxRenderer_upvr (copied, readonly)
                ]]
                local pcall_result1_2, pcall_result2 = pcall(RobloxRenderer_upvr.mountHostNode, var13_upvr, var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                    Frob = 6;
                }), Instance.new("Folder"), "Some Key"))
                assert(not pcall_result1_2, "Expected call to fail")
                expect(pcall_result2:find("Frob")).to.be.ok()
                expect(pcall_result2:find("Frame")).to.be.ok()
                expect(pcall_result2:find("RobloxRenderer%.spec")).to.be.ok()
            end)
        end)
    end)
    describe("updateHostNode", function() -- Line 185
        --[[ Upvalues[8]:
            [1]: createElement_upvr (readonly)
            [2]: var13_upvr (readonly)
            [3]: RobloxRenderer_upvr (readonly)
            [4]: Binding_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: Ref_upvr (readonly)
            [7]: createSpy_upvr (readonly)
            [8]: GlobalConfig_upvr (readonly)
        ]]
        it("should update node props and children", function() -- Line 186
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: var13_upvr (copied, readonly)
                [3]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_5 = Instance.new("Folder")
            local any_createVirtualNode_result1 = var13_upvr.createVirtualNode(createElement_upvr("StringValue", {
                Value = "foo";
            }, {
                ChildA = createElement_upvr("IntValue", {
                    Value = 1;
                });
                ChildB = createElement_upvr("BoolValue", {
                    Value = true;
                });
                ChildC = createElement_upvr("StringValue", {
                    Value = "test";
                });
                ChildD = createElement_upvr("StringValue", {
                    Value = "test";
                });
            }), Folder_5, "updateHostNodeTest")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1)
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1, createElement_upvr("StringValue", {
                Value = "bar";
            }, {
                ChildA = createElement_upvr("StringValue", {
                    Value = "test";
                });
                ChildB = createElement_upvr("BoolValue", {
                    Value = false;
                });
                ChildC = createElement_upvr("StringValue", {});
                ChildE = createElement_upvr("Folder", {});
            }))
            local updateHostNodeTest = Folder_5.updateHostNodeTest
            expect(updateHostNodeTest.ClassName).to.equal("StringValue")
            expect(updateHostNodeTest.Value).to.equal("bar")
            expect(#updateHostNodeTest:GetChildren()).to.equal(4)
            local ChildA_2 = updateHostNodeTest.ChildA
            expect(ChildA_2.ClassName).to.equal("StringValue")
            expect(ChildA_2.Value).to.equal("test")
            local ChildB_2 = updateHostNodeTest.ChildB
            expect(ChildB_2.ClassName).to.equal("BoolValue")
            expect(ChildB_2.Value).to.equal(false)
            local ChildC = updateHostNodeTest.ChildC
            expect(ChildC.ClassName).to.equal("StringValue")
            expect(ChildC.Value).to.equal(Instance.new("StringValue").Value)
            expect(updateHostNodeTest.ChildE.ClassName).to.equal("Folder")
        end)
        it("should update Bindings", function() -- Line 260
            --[[ Upvalues[4]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_19 = Instance.new("Folder")
            local any_create_result1_2, any_create_result2_2 = Binding_upvr.create(10)
            local any_createVirtualNode_result1_2 = var13_upvr.createVirtualNode(createElement_upvr("IntValue", {
                Value = any_create_result1_2;
            }), Folder_19, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_2)
            local _1_5 = Folder_19:GetChildren()[1]
            expect(_1_5.Value).to.equal(10)
            local any_create_result1, any_create_result2_3 = Binding_upvr.create(99)
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1_2, createElement_upvr("IntValue", {
                Value = any_create_result1;
            }))
            expect(_1_5.Value).to.equal(99)
            any_create_result2_2(123)
            expect(_1_5.Value).to.equal(99)
            any_create_result2_3(123)
            expect(_1_5.Value).to.equal(123)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_2)
        end)
        it("should update Binding refs", function() -- Line 297
            --[[ Upvalues[5]:
                [1]: createRef_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_4 = Instance.new("Folder")
            local createRef_upvr_result1 = createRef_upvr()
            local var7_result1_3 = createRef_upvr()
            local any_createVirtualNode_result1_12 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = createRef_upvr_result1;
            }), Folder_4, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_12)
            expect(#Folder_4:GetChildren()).to.equal(1)
            local _1_3 = Folder_4:GetChildren()[1]
            expect(createRef_upvr_result1.current).to.equal(_1_3)
            expect(var7_result1_3.current).never.to.be.ok()
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1_12, createElement_upvr("Frame", {
                [Ref_upvr] = var7_result1_3;
            }))
            expect(createRef_upvr_result1.current).never.to.be.ok()
            expect(var7_result1_3.current).to.equal(_1_3)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_12)
        end)
        it("should call old function refs with nil and new function refs with a valid rbx", function() -- Line 331
            --[[ Upvalues[5]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_11 = Instance.new("Folder")
            local var8_result1 = createSpy_upvr()
            local createSpy_upvr_result1_4 = createSpy_upvr()
            local any_createVirtualNode_result1_9 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = var8_result1.value;
            }), Folder_11, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_9)
            expect(#Folder_11:GetChildren()).to.equal(1)
            local _1_4 = Folder_11:GetChildren()[1]
            expect(var8_result1.callCount).to.equal(1)
            var8_result1:assertCalledWith(_1_4)
            expect(createSpy_upvr_result1_4.callCount).to.equal(0)
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1_9, createElement_upvr("Frame", {
                [Ref_upvr] = createSpy_upvr_result1_4.value;
            }))
            expect(var8_result1.callCount).to.equal(2)
            var8_result1:assertCalledWith(nil)
            expect(createSpy_upvr_result1_4.callCount).to.equal(1)
            createSpy_upvr_result1_4:assertCalledWith(_1_4)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_9)
        end)
        it("should not call function refs again if they didn't change", function() -- Line 368
            --[[ Upvalues[5]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_7 = Instance.new("Folder")
            local createSpy_upvr_result1_3 = createSpy_upvr()
            local any_createVirtualNode_result1_6 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                Size = UDim2.new(1, 0, 1, 0);
                [Ref_upvr] = createSpy_upvr_result1_3.value;
            }), Folder_7, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_6)
            expect(#Folder_7:GetChildren()).to.equal(1)
            expect(createSpy_upvr_result1_3.callCount).to.equal(1)
            createSpy_upvr_result1_3:assertCalledWith(Folder_7:GetChildren()[1])
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1_6, createElement_upvr("Frame", {
                Size = UDim2.new(0.5, 0, 0.5, 0);
                [Ref_upvr] = createSpy_upvr_result1_3.value;
            }))
            expect(createSpy_upvr_result1_3.callCount).to.equal(1)
        end)
        it("should throw if setting invalid instance properties", function() -- Line 401
            --[[ Upvalues[4]:
                [1]: GlobalConfig_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: RobloxRenderer_upvr (copied, readonly)
            ]]
            GlobalConfig_upvr.scoped({
                elementTracing = true;
            }, function() -- Line 406
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: var13_upvr (copied, readonly)
                    [3]: RobloxRenderer_upvr (copied, readonly)
                ]]
                local any_createVirtualNode_result1_13 = var13_upvr.createVirtualNode(createElement_upvr("Frame"), Instance.new("Folder"), "Some Key")
                RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_13)
                local pcall_result1, pcall_result2_2 = pcall(RobloxRenderer_upvr.updateHostNode, var13_upvr, any_createVirtualNode_result1_13, createElement_upvr("Frame", {
                    Frob = 6;
                }))
                assert(not pcall_result1, "Expected call to fail")
                expect(pcall_result2_2:find("Frob")).to.be.ok()
                expect(pcall_result2_2:find("Frame")).to.be.ok()
                expect(pcall_result2_2:find("RobloxRenderer%.spec")).to.be.ok()
            end)
        end)
        it("should delete instances when reconciling to nil children", function() -- Line 427
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: var13_upvr (copied, readonly)
                [3]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder = Instance.new("Folder")
            local any_createVirtualNode_result1_8 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                Size = UDim2.new(1, 0, 1, 0);
            }, {
                child = createElement_upvr("Frame");
            }), Folder, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_8)
            expect(#Folder:GetChildren()).to.equal(1)
            local _1_6 = Folder:GetChildren()[1]
            expect(#_1_6:GetChildren()).to.equal(1)
            RobloxRenderer_upvr.updateHostNode(var13_upvr, any_createVirtualNode_result1_8, createElement_upvr("Frame", {
                Size = UDim2.new(0.5, 0, 0.5, 0);
            }))
            expect(#_1_6:GetChildren()).to.equal(0)
        end)
    end)
    describe("unmountHostNode", function() -- Line 455
        --[[ Upvalues[7]:
            [1]: createElement_upvr (readonly)
            [2]: var13_upvr (readonly)
            [3]: RobloxRenderer_upvr (readonly)
            [4]: Binding_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: Ref_upvr (readonly)
            [7]: createSpy_upvr (readonly)
        ]]
        it("should delete instances from the inside-out", function() -- Line 456
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: var13_upvr (copied, readonly)
                [3]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_6 = Instance.new("Folder")
            expect(#Folder_6:GetChildren()).to.equal(1)
            local _1_10 = Folder_6:GetChildren()[1]
            expect(#_1_10:GetChildren()).to.equal(1)
            local _1_8 = _1_10:GetChildren()[1]
            expect(#_1_8:GetChildren()).to.equal(1)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, var13_upvr.mountVirtualNode(createElement_upvr("Folder", nil, {
                Child = createElement_upvr("Folder", nil, {
                    Grandchild = createElement_upvr("Folder");
                });
            }), Folder_6, "Root"))
            expect(_1_8:GetChildren()[1].Parent).to.equal(nil)
            expect(_1_8.Parent).to.equal(nil)
            expect(_1_10.Parent).to.equal(nil)
        end)
        it("should unsubscribe from any Bindings", function() -- Line 484
            --[[ Upvalues[4]:
                [1]: Binding_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local Folder_12 = Instance.new("Folder")
            local any_create_result1_3, any_create_result2 = Binding_upvr.create(10)
            local any_createVirtualNode_result1_3 = var13_upvr.createVirtualNode(createElement_upvr("IntValue", {
                Value = any_create_result1_3;
            }), Folder_12, "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_3)
            local _1_9 = Folder_12:GetChildren()[1]
            expect(_1_9.Value).to.equal(10)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_3)
            any_create_result2(56)
            expect(_1_9.Value).to.equal(10)
        end)
        it("should clear Binding refs", function() -- Line 507
            --[[ Upvalues[5]:
                [1]: createRef_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local var7_result1 = createRef_upvr()
            local any_createVirtualNode_result1_10 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = var7_result1;
            }), Instance.new("Folder"), "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_10)
            expect(var7_result1.current).to.be.ok()
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_10)
            expect(var7_result1.current).never.to.be.ok()
        end)
        it("should call function refs with nil", function() -- Line 527
            --[[ Upvalues[5]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
                [4]: var13_upvr (copied, readonly)
                [5]: RobloxRenderer_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1 = createSpy_upvr()
            local any_createVirtualNode_result1_7 = var13_upvr.createVirtualNode(createElement_upvr("Frame", {
                [Ref_upvr] = createSpy_upvr_result1.value;
            }), Instance.new("Folder"), "Some Key")
            RobloxRenderer_upvr.mountHostNode(var13_upvr, any_createVirtualNode_result1_7)
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            RobloxRenderer_upvr.unmountHostNode(var13_upvr, any_createVirtualNode_result1_7)
            expect(createSpy_upvr_result1.callCount).to.equal(2)
            createSpy_upvr_result1:assertCalledWith(nil)
        end)
    end)
    describe("Portals", function() -- Line 549
        --[[ Upvalues[3]:
            [1]: createElement_upvr (readonly)
            [2]: Portal_upvr (readonly)
            [3]: var13_upvr (readonly)
        ]]
        it("should create and destroy instances as children of `target`", function() -- Line 550
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_8 = Instance.new("Folder")
            expect(#Folder_8:GetChildren()).to.equal(3)
            expect(Folder_8:FindFirstChild("folderOne")).to.be.ok()
            expect(Folder_8:FindFirstChild("folderTwo")).to.be.ok()
            expect(Folder_8:FindFirstChild("intValueOne")).to.be.ok()
            expect(Folder_8:FindFirstChild("intValueOne").Value).to.equal(42)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(Portal_upvr, {
                target = Folder_8;
            }, {
                folderOne = createElement_upvr("Folder");
                folderTwo = createElement_upvr("Folder");
                intValueOne = createElement_upvr(function(arg1) -- Line 553, Named "FunctionComponent"
                    --[[ Upvalues[1]:
                        [1]: createElement_upvr (copied, readonly)
                    ]]
                    return createElement_upvr("IntValue", {
                        Value = arg1.value;
                    })
                end, {
                    value = 42;
                });
            }), nil, "Some Key"))
            expect(#Folder_8:GetChildren()).to.equal(0)
        end)
        it("should pass prop updates through to children", function() -- Line 584
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_13 = Instance.new("Folder")
            expect(#Folder_13:GetChildren()).to.equal(1)
            local ChildValue_2 = Folder_13.ChildValue
            expect(ChildValue_2.Value).to.equal(1)
            expect(#Folder_13:GetChildren()).to.equal(1)
            local ChildValue = Folder_13.ChildValue
            expect(ChildValue_2).to.equal(ChildValue)
            expect(ChildValue.Value).to.equal(2)
            var13_upvr.unmountVirtualNode(var13_upvr.updateVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(Portal_upvr, {
                target = Folder_13;
            }, {
                ChildValue = createElement_upvr("IntValue", {
                    Value = 1;
                });
            }), nil, "A Host Key"), createElement_upvr(Portal_upvr, {
                target = Folder_13;
            }, {
                ChildValue = createElement_upvr("IntValue", {
                    Value = 2;
                });
            })))
            expect(#Folder_13:GetChildren()).to.equal(0)
        end)
        it("should throw if `target` is nil", function() -- Line 625
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local var6_result1_upvr = createElement_upvr(Portal_upvr)
            expect(function() -- Line 631
                --[[ Upvalues[2]:
                    [1]: var13_upvr (copied, readonly)
                    [2]: var6_result1_upvr (readonly)
                ]]
                var13_upvr.mountVirtualNode(var6_result1_upvr, nil, "Keys for Everyone")
            end).to.throw()
        end)
        it("should throw if `target` is not a Roblox instance", function() -- Line 636
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local var6_result1_upvr_2 = createElement_upvr(Portal_upvr, {
                target = {};
            })
            expect(function() -- Line 643
                --[[ Upvalues[2]:
                    [1]: var13_upvr (copied, readonly)
                    [2]: var6_result1_upvr_2 (readonly)
                ]]
                var13_upvr.mountVirtualNode(var6_result1_upvr_2, nil, "Unleash the keys!")
            end).to.throw()
        end)
        it("should recreate instances if `target` changes in an update", function() -- Line 648
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Portal_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_17 = Instance.new("Folder")
            local Folder_21 = Instance.new("Folder")
            expect(#Folder_17:GetChildren()).to.equal(1)
            expect(#Folder_21:GetChildren()).to.equal(0)
            expect(Folder_17.ChildValue.Value).to.equal(1)
            expect(#Folder_17:GetChildren()).to.equal(0)
            expect(#Folder_21:GetChildren()).to.equal(1)
            expect(Folder_21.ChildValue.Value).to.equal(2)
            var13_upvr.unmountVirtualNode(var13_upvr.updateVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(Portal_upvr, {
                target = Folder_17;
            }, {
                ChildValue = createElement_upvr("IntValue", {
                    Value = 1;
                });
            }), nil, "Some Key"), createElement_upvr(Portal_upvr, {
                target = Folder_21;
            }, {
                ChildValue = createElement_upvr("IntValue", {
                    Value = 2;
                });
            })))
            expect(#Folder_17:GetChildren()).to.equal(0)
            expect(#Folder_21:GetChildren()).to.equal(0)
        end)
    end)
    local createFragment_upvr = require(script.Parent.createFragment)
    describe("Fragments", function() -- Line 693
        --[[ Upvalues[3]:
            [1]: createFragment_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var13_upvr (readonly)
        ]]
        it("should parent the fragment's elements into the fragment's parent", function() -- Line 694
            --[[ Upvalues[3]:
                [1]: createFragment_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_3 = Instance.new("Folder")
            expect(Folder_3:FindFirstChild("key")).to.be.ok()
            expect(Folder_3.key.ClassName).to.equal("IntValue")
            expect(Folder_3.key.Value).to.equal(1)
            expect(Folder_3:FindFirstChild("key2")).to.be.ok()
            expect(Folder_3.key2.ClassName).to.equal("IntValue")
            expect(Folder_3.key2.Value).to.equal(2)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createFragment_upvr({
                key = createElement_upvr("IntValue", {
                    Value = 1;
                });
                key2 = createElement_upvr("IntValue", {
                    Value = 2;
                });
            }), Folder_3, "test"))
            expect(#Folder_3:GetChildren()).to.equal(0)
        end)
        it("should allow sibling fragment to have common keys", function() -- Line 721
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: createFragment_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_20 = Instance.new("Folder")
            local children = Folder_20.Test:GetChildren()
            expect(#children).to.equal(4)
            local tbl_3 = {}
            for _, v in pairs(children) do
                expect(v.ClassName).to.equal("StringValue")
                tbl_3[v.Value] = 1 + (tbl_3[v.Value] or 0)
            end
            expect(tbl_3.A).to.equal(1)
            expect(tbl_3.B).to.equal(1)
            expect(tbl_3.C).to.equal(1)
            expect(tbl_3.D).to.equal(1)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(function(arg1) -- Line 725, Named "parent"
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: createFragment_upvr (copied, readonly)
                ]]
                return createElement_upvr("IntValue", {}, {
                    fragmentA = createFragment_upvr({
                        key = createElement_upvr("StringValue", {
                            Value = 'A';
                        });
                        key2 = createElement_upvr("StringValue", {
                            Value = 'B';
                        });
                    });
                    fragmentB = createFragment_upvr({
                        key = createElement_upvr("StringValue", {
                            Value = 'C';
                        });
                        key2 = createElement_upvr("StringValue", {
                            Value = 'D';
                        });
                    });
                })
            end), Folder_20, "Test"))
            expect(#Folder_20:GetChildren()).to.equal(0)
        end)
        it("should render nested fragments", function() -- Line 769
            --[[ Upvalues[3]:
                [1]: createFragment_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
            ]]
            local Folder_9 = Instance.new("Folder")
            expect(Folder_9:FindFirstChild("TheValue")).to.be.ok()
            expect(Folder_9.TheValue.ClassName).to.equal("IntValue")
            expect(Folder_9.TheValue.Value).to.equal(1)
            expect(Folder_9:FindFirstChild("TheOtherValue")).to.be.ok()
            expect(Folder_9.TheOtherValue.ClassName).to.equal("IntValue")
            expect(Folder_9.TheOtherValue.Value).to.equal(2)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createFragment_upvr({
                key = createFragment_upvr({
                    TheValue = createElement_upvr("IntValue", {
                        Value = 1;
                    });
                    TheOtherValue = createElement_upvr("IntValue", {
                        Value = 2;
                    });
                });
            }), Folder_9, "Test"))
            expect(#Folder_9:GetChildren()).to.equal(0)
        end)
        it("should not add any instances if the fragment is empty", function() -- Line 798
            --[[ Upvalues[2]:
                [1]: var13_upvr (copied, readonly)
                [2]: createFragment_upvr (copied, readonly)
            ]]
            local Folder_15 = Instance.new("Folder")
            expect(#Folder_15:GetChildren()).to.equal(0)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createFragment_upvr({}), Folder_15, "test"))
            expect(#Folder_15:GetChildren()).to.equal(0)
        end)
    end)
    describe("Context", function() -- Line 811
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var13_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
            [5]: Children_upvr (readonly)
            [6]: Portal_upvr (readonly)
        ]]
        it("should pass context values through Roblox host nodes", function() -- Line 812
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: assertDeepEqual_upvr (copied, readonly)
            ]]
            local any_extend_result1 = Component_upvr:extend("Consumer")
            local var205_upvw
            local function init(arg1) -- Line 816
                --[[ Upvalues[1]:
                    [1]: var205_upvw (read and write)
                ]]
                var205_upvw = {
                    hello = arg1:__getContext("hello");
                }
            end
            any_extend_result1.init = init
            local function render(arg1) -- Line 822
            end
            any_extend_result1.render = render
            local tbl_2 = {
                hello = "world";
            }
            expect(var205_upvw).never.to.equal(tbl_2)
            assertDeepEqual_upvr(var205_upvw, tbl_2)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr("Folder", nil, {
                Consumer = createElement_upvr(any_extend_result1);
            }), nil, "Context Test", tbl_2))
        end)
        it("should pass context values through portal nodes", function() -- Line 840
            --[[ Upvalues[6]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Children_upvr (copied, readonly)
                [4]: Portal_upvr (copied, readonly)
                [5]: var13_upvr (copied, readonly)
                [6]: assertDeepEqual_upvr (copied, readonly)
            ]]
            local any_extend_result1_16 = Component_upvr:extend("Provider")
            local function init(arg1) -- Line 845
                arg1:__addContext("foo", "bar")
            end
            any_extend_result1_16.init = init
            local function render(arg1) -- Line 849
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: Children_upvr (copied, readonly)
                ]]
                return createElement_upvr("Folder", nil, arg1.props[Children_upvr])
            end
            any_extend_result1_16.render = render
            local any_extend_result1_2 = Component_upvr:extend("Consumer")
            local var212_upvw
            local function init(arg1) -- Line 856
                --[[ Upvalues[1]:
                    [1]: var212_upvw (read and write)
                ]]
                var212_upvw = {
                    foo = arg1:__getContext("foo");
                }
            end
            any_extend_result1_2.init = init
            local function render(arg1) -- Line 862
                return nil
            end
            any_extend_result1_2.render = render
            var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_16, nil, {
                Portal = createElement_upvr(Portal_upvr, {
                    target = Instance.new("Folder");
                }, {
                    Consumer = createElement_upvr(any_extend_result1_2);
                });
            }), nil, "Some Key")
            assertDeepEqual_upvr(var212_upvw, {
                foo = "bar";
            })
        end)
    end)
    describe("Legacy context", function() -- Line 883
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var13_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
            [5]: Children_upvr (readonly)
            [6]: Portal_upvr (readonly)
        ]]
        it("should pass context values through Roblox host nodes", function() -- Line 884
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var13_upvr (copied, readonly)
                [4]: assertDeepEqual_upvr (copied, readonly)
            ]]
            local any_extend_result1_4 = Component_upvr:extend("Consumer")
            local var221_upvw
            local function init(arg1) -- Line 888
                --[[ Upvalues[1]:
                    [1]: var221_upvw (read and write)
                ]]
                var221_upvw = arg1._context
            end
            any_extend_result1_4.init = init
            local function render(arg1) -- Line 892
            end
            any_extend_result1_4.render = render
            local tbl = {
                hello = "world";
            }
            expect(var221_upvw).never.to.equal(tbl)
            assertDeepEqual_upvr(var221_upvw, tbl)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr("Folder", nil, {
                Consumer = createElement_upvr(any_extend_result1_4);
            }), nil, "Context Test", nil, tbl))
        end)
        it("should pass context values through portal nodes", function() -- Line 910
            --[[ Upvalues[6]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Children_upvr (copied, readonly)
                [4]: Portal_upvr (copied, readonly)
                [5]: var13_upvr (copied, readonly)
                [6]: assertDeepEqual_upvr (copied, readonly)
            ]]
            local any_extend_result1_18 = Component_upvr:extend("Provider")
            local function init(arg1) -- Line 915
                arg1._context.foo = "bar"
            end
            any_extend_result1_18.init = init
            local function render(arg1) -- Line 919
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: Children_upvr (copied, readonly)
                ]]
                return createElement_upvr("Folder", nil, arg1.props[Children_upvr])
            end
            any_extend_result1_18.render = render
            local any_extend_result1_11 = Component_upvr:extend("Consumer")
            local var227_upvw
            local function init(arg1) -- Line 926
                --[[ Upvalues[1]:
                    [1]: var227_upvw (read and write)
                ]]
                var227_upvw = arg1._context
            end
            any_extend_result1_11.init = init
            local function render(arg1) -- Line 930
                return nil
            end
            any_extend_result1_11.render = render
            var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_18, nil, {
                Portal = createElement_upvr(Portal_upvr, {
                    target = Instance.new("Folder");
                }, {
                    Consumer = createElement_upvr(any_extend_result1_11);
                });
            }), nil, "Some Key")
            assertDeepEqual_upvr(var227_upvw, {
                foo = "bar";
            })
        end)
    end)
    local ReplicatedStorage_upvr = game:GetService("ReplicatedStorage")
    local Event_upvr = require(script.Parent.PropMarkers.Event)
    describe("Integration Tests", function() -- Line 951
        --[[ Upvalues[5]:
            [1]: ReplicatedStorage_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: Event_upvr (readonly)
            [5]: var13_upvr (readonly)
        ]]
        local var235_upvw
        beforeEach(function() -- Line 953
            --[[ Upvalues[2]:
                [1]: var235_upvw (read and write)
                [2]: ReplicatedStorage_upvr (copied, readonly)
            ]]
            var235_upvw = Instance.new("Folder")
            var235_upvw.Parent = ReplicatedStorage_upvr
        end)
        afterEach(function() -- Line 958
            --[[ Upvalues[1]:
                [1]: var235_upvw (read and write)
            ]]
            var235_upvw:Destroy()
            var235_upvw = nil
        end)
        it("should not allow re-entrancy in updateChildren", function() -- Line 963
            --[[ Upvalues[5]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: Event_upvr (copied, readonly)
                [4]: var235_upvw (read and write)
                [5]: var13_upvr (copied, readonly)
            ]]
            local any_extend_result1_15_upvr = Component_upvr:extend("ChildComponent")
            local function init(arg1) -- Line 966
                arg1:setState({
                    firstTime = true;
                })
            end
            any_extend_result1_15_upvr.init = init
            local var241_upvw
            local function render(arg1) -- Line 974
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                if arg1.state.firstTime then
                    return createElement_upvr("Frame")
                end
                return createElement_upvr("TextLabel")
            end
            any_extend_result1_15_upvr.render = render
            local function didMount(arg1) -- Line 982
                --[[ Upvalues[1]:
                    [1]: var241_upvw (read and write)
                ]]
                var241_upvw = coroutine.create(function() -- Line 983
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        firstTime = false;
                    })
                end)
            end
            any_extend_result1_15_upvr.didMount = didMount
            local any_extend_result1_12 = Component_upvr:extend("ParentComponent")
            local function init(arg1) -- Line 992
                arg1:setState({
                    count = 1;
                })
                function arg1.childAdded() -- Line 997
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        count = arg1.state.count + 1;
                    })
                end
            end
            any_extend_result1_12.init = init
            local function render(arg1) -- Line 1004
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: Event_upvr (copied, readonly)
                    [3]: any_extend_result1_15_upvr (readonly)
                ]]
                return createElement_upvr("Frame", {
                    [Event_upvr.ChildAdded] = arg1.childAdded;
                }, {
                    ChildComponent = createElement_upvr(any_extend_result1_15_upvr, {
                        count = arg1.state.count;
                    });
                })
            end
            any_extend_result1_12.render = render
            local ScreenGui_4 = Instance.new("ScreenGui")
            ScreenGui_4.Parent = var235_upvw
            coroutine.resume(var241_upvw)
            expect(#ScreenGui_4:GetChildren()).to.equal(1)
            expect(#ScreenGui_4:GetChildren()[1]:GetChildren()).to.equal(1)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_12), ScreenGui_4, "Some Key"))
        end)
        it("should not allow re-entrancy in updateChildren even with callbacks", function() -- Line 1033
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var235_upvw (read and write)
                [4]: var13_upvr (copied, readonly)
            ]]
            local any_extend_result1_6_upvr = Component_upvr:extend("LowestComponent")
            local function render(arg1) -- Line 1036
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                return createElement_upvr("Frame")
            end
            any_extend_result1_6_upvr.render = render
            local function didMount(arg1) -- Line 1040
                arg1.props.onDidMountCallback()
            end
            any_extend_result1_6_upvr.didMount = didMount
            local any_extend_result1_14_upvr = Component_upvr:extend("ChildComponent")
            local function init(arg1) -- Line 1046
                arg1:setState({
                    firstTime = true;
                })
            end
            any_extend_result1_14_upvr.init = init
            local var256_upvw
            local function render(arg1) -- Line 1054
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_6_upvr (readonly)
                ]]
                if arg1.state.firstTime then
                    return createElement_upvr("Frame")
                end
                return createElement_upvr(any_extend_result1_6_upvr, {
                    onDidMountCallback = arg1.props.onDidMountCallback;
                })
            end
            any_extend_result1_14_upvr.render = render
            local function didMount(arg1) -- Line 1064
                --[[ Upvalues[1]:
                    [1]: var256_upvw (read and write)
                ]]
                var256_upvw = coroutine.create(function() -- Line 1065
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        firstTime = false;
                    })
                end)
            end
            any_extend_result1_14_upvr.didMount = didMount
            local any_extend_result1_13 = Component_upvr:extend("ParentComponent")
            local var261_upvw = 0
            local function init(arg1) -- Line 1076
                --[[ Upvalues[1]:
                    [1]: var261_upvw (read and write)
                ]]
                arg1:setState({
                    count = 1;
                })
                function arg1.onDidMountCallback() -- Line 1081
                    --[[ Upvalues[2]:
                        [1]: var261_upvw (copied, read and write)
                        [2]: arg1 (readonly)
                    ]]
                    var261_upvw += 1
                    if arg1.state.count < 5 then
                        arg1:setState({
                            count = arg1.state.count + 1;
                        })
                    end
                end
            end
            any_extend_result1_13.init = init
            local function render(arg1) -- Line 1091
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_14_upvr (readonly)
                ]]
                return createElement_upvr("Frame", {}, {
                    ChildComponent = createElement_upvr(any_extend_result1_14_upvr, {
                        count = arg1.state.count;
                        onDidMountCallback = arg1.onDidMountCallback;
                    });
                })
            end
            any_extend_result1_13.render = render
            local ScreenGui_3 = Instance.new("ScreenGui")
            ScreenGui_3.Parent = var235_upvw
            coroutine.resume(var256_upvw)
            expect(#ScreenGui_3:GetChildren()).to.equal(1)
            local len = #ScreenGui_3:GetChildren()[1]:GetChildren()
            expect(len).to.equal(1)
            if var261_upvw > 2 then
                len = false
            else
                len = true
            end
            expect(len).to.equal(true)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_13), ScreenGui_3, "Some Key"))
        end)
        it("should never call unmount twice in the case of update children re-rentrancy", function() -- Line 1123
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var235_upvw (read and write)
                [4]: var13_upvr (copied, readonly)
            ]]
            local tbl_upvr = {}
            local function _(arg1) -- Line 1126, Named "addUnmount"
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                tbl_upvr[arg1] += 1
            end
            local function _(arg1) -- Line 1130, Named "addInit"
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                tbl_upvr[arg1] = 0
            end
            local any_extend_result1_17_upvr = Component_upvr:extend("LowestComponent")
            local function init(arg1) -- Line 1135
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                tbl_upvr[tostring(arg1)] = 0
            end
            any_extend_result1_17_upvr.init = init
            local function render(arg1) -- Line 1139
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                return createElement_upvr("Frame")
            end
            any_extend_result1_17_upvr.render = render
            local function didMount(arg1) -- Line 1143
                arg1.props.onDidMountCallback()
            end
            any_extend_result1_17_upvr.didMount = didMount
            local function willUnmount(arg1) -- Line 1147
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                local tostring_result1_3 = tostring(arg1)
                tbl_upvr[tostring_result1_3] += 1
            end
            any_extend_result1_17_upvr.willUnmount = willUnmount
            local any_extend_result1_10_upvr = Component_upvr:extend("FirstComponent")
            local function init(arg1) -- Line 1152
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                tbl_upvr[tostring(arg1)] = 0
            end
            any_extend_result1_10_upvr.init = init
            local function render(arg1) -- Line 1156
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                return createElement_upvr("TextLabel")
            end
            any_extend_result1_10_upvr.render = render
            local function willUnmount(arg1) -- Line 1160
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                local tostring_result1 = tostring(arg1)
                tbl_upvr[tostring_result1] += 1
            end
            any_extend_result1_10_upvr.willUnmount = willUnmount
            local any_extend_result1_3_upvr = Component_upvr:extend("ChildComponent")
            local function init(arg1) -- Line 1166
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                tbl_upvr[tostring(arg1)] = 0
                arg1:setState({
                    firstTime = true;
                })
            end
            any_extend_result1_3_upvr.init = init
            local var281_upvw
            local function render(arg1) -- Line 1176
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_10_upvr (readonly)
                    [3]: any_extend_result1_17_upvr (readonly)
                ]]
                if arg1.state.firstTime then
                    return createElement_upvr(any_extend_result1_10_upvr)
                end
                return createElement_upvr(any_extend_result1_17_upvr, {
                    onDidMountCallback = arg1.props.onDidMountCallback;
                })
            end
            any_extend_result1_3_upvr.render = render
            local function didMount(arg1) -- Line 1186
                --[[ Upvalues[1]:
                    [1]: var281_upvw (read and write)
                ]]
                var281_upvw = coroutine.create(function() -- Line 1187
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        firstTime = false;
                    })
                end)
            end
            any_extend_result1_3_upvr.didMount = didMount
            function any_extend_result1_3_upvr.willUnmount(arg1) -- Line 1194
                --[[ Upvalues[1]:
                    [1]: tbl_upvr (readonly)
                ]]
                local tostring_result1_2 = tostring(arg1)
                tbl_upvr[tostring_result1_2] += 1
            end
            local any_extend_result1_9 = Component_upvr:extend("ParentComponent")
            local var287_upvw = 0
            local function init(arg1) -- Line 1202
                --[[ Upvalues[1]:
                    [1]: var287_upvw (read and write)
                ]]
                arg1:setState({
                    count = 1;
                })
                function arg1.onDidMountCallback() -- Line 1207
                    --[[ Upvalues[2]:
                        [1]: var287_upvw (copied, read and write)
                        [2]: arg1 (readonly)
                    ]]
                    var287_upvw += 1
                    if arg1.state.count < 5 then
                        arg1:setState({
                            count = arg1.state.count + 1;
                        })
                    end
                end
            end
            any_extend_result1_9.init = init
            local function render(arg1) -- Line 1217
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_3_upvr (readonly)
                ]]
                return createElement_upvr("Frame", {}, {
                    ChildComponent = createElement_upvr(any_extend_result1_3_upvr, {
                        count = arg1.state.count;
                        onDidMountCallback = arg1.onDidMountCallback;
                    });
                })
            end
            any_extend_result1_9.render = render
            local ScreenGui_2 = Instance.new("ScreenGui")
            ScreenGui_2.Parent = var235_upvw
            coroutine.resume(var281_upvw)
            expect(#ScreenGui_2:GetChildren()).to.equal(1)
            local len_2 = #ScreenGui_2:GetChildren()[1]:GetChildren()
            expect(len_2).to.equal(1)
            if var287_upvw > 2 then
                len_2 = false
            else
                len_2 = true
            end
            expect(len_2).to.equal(true)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_9), ScreenGui_2, "Some Key"))
            for _, v_2 in pairs(tbl_upvr) do
                expect(v_2).to.equal(1)
            end
        end)
        it("should never unmount a node unnecesarily in the case of re-rentry", function() -- Line 1253
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var235_upvw (read and write)
                [4]: var13_upvr (copied, readonly)
            ]]
            local any_extend_result1_8_upvr = Component_upvr:extend("LowestComponent")
            local function render(arg1) -- Line 1255
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                return createElement_upvr("Frame")
            end
            any_extend_result1_8_upvr.render = render
            function any_extend_result1_8_upvr.didUpdate(arg1, arg2, arg3) -- Line 1259
                if arg2.firstTime and not arg1.props.firstTime then
                    arg1.props.onChangedCallback()
                end
            end
            local any_extend_result1_7_upvr = Component_upvr:extend("ChildComponent")
            local function init(arg1) -- Line 1267
                arg1:setState({
                    firstTime = true;
                })
            end
            any_extend_result1_7_upvr.init = init
            local var302_upvw
            local function render(arg1) -- Line 1275
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_8_upvr (readonly)
                ]]
                return createElement_upvr(any_extend_result1_8_upvr, {
                    firstTime = arg1.state.firstTime;
                    onChangedCallback = arg1.props.onChangedCallback;
                })
            end
            any_extend_result1_7_upvr.render = render
            function any_extend_result1_7_upvr.didMount(arg1) -- Line 1282
                --[[ Upvalues[1]:
                    [1]: var302_upvw (read and write)
                ]]
                var302_upvw = coroutine.create(function() -- Line 1283
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        firstTime = false;
                    })
                end)
            end
            local any_extend_result1_5 = Component_upvr:extend("ParentComponent")
            local var307_upvw = 0
            function any_extend_result1_5.init(arg1) -- Line 1294
                --[[ Upvalues[1]:
                    [1]: var307_upvw (read and write)
                ]]
                arg1:setState({
                    count = 1;
                })
                function arg1.onChangedCallback() -- Line 1299
                    --[[ Upvalues[2]:
                        [1]: var307_upvw (copied, read and write)
                        [2]: arg1 (readonly)
                    ]]
                    var307_upvw += 1
                    if arg1.state.count < 5 then
                        arg1:setState({
                            count = arg1.state.count + 1;
                        })
                    end
                end
            end
            function any_extend_result1_5.render(arg1) -- Line 1309
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_7_upvr (readonly)
                ]]
                return createElement_upvr("Frame", {}, {
                    ChildComponent = createElement_upvr(any_extend_result1_7_upvr, {
                        count = arg1.state.count;
                        onChangedCallback = arg1.onChangedCallback;
                    });
                })
            end
            local ScreenGui = Instance.new("ScreenGui")
            ScreenGui.Parent = var235_upvw
            coroutine.resume(var302_upvw)
            expect(#ScreenGui:GetChildren()).to.equal(1)
            expect(#ScreenGui:GetChildren()[1]:GetChildren()).to.equal(1)
            expect(var307_upvw).to.equal(1)
            var13_upvr.unmountVirtualNode(var13_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_5), ScreenGui, "Some Key"))
        end)
    end)
end
ModuleScript SingleEventManager ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.SingleEventManager
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:26
-- Luau version 6, Types version 3
-- Time taken: 0.004721 seconds

local tbl_upvr = {
    Disabled = "Disabled";
    Suspended = "Suspended";
    Enabled = "Enabled";
}
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1) -- Line 23
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local module = {
        _suspendedEventQueue = {};
        _connections = {};
        _listeners = {};
        _status = tbl_upvr.Disabled;
        _isResuming = false;
    }
    module._instance = arg1
    return setmetatable(module, module_upvr)
end
function module_upvr.connectEvent(arg1, arg2, arg3) -- Line 51
    arg1:_connect(arg2, arg1._instance[arg2], arg3)
end
function module_upvr.connectPropertyChange(arg1, arg2, arg3) -- Line 55
    local pcall_result1, pcall_result2 = pcall(function() -- Line 56
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        return arg1._instance:GetPropertyChangedSignal(arg2)
    end)
    if not pcall_result1 then
        error("Cannot get changed signal on property %q: %s":format(tostring(arg2), pcall_result2), 0)
    end
    arg1:_connect("Change."..arg2, pcall_result2, arg3)
end
function module_upvr._connect(arg1, arg2, arg3, arg4) -- Line 67
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    if arg4 == nil then
        if arg1._connections[arg2] ~= nil then
            arg1._connections[arg2]:Disconnect()
            arg1._connections[arg2] = nil
        end
        arg1._listeners[arg2] = nil
    else
        if arg1._connections[arg2] == nil then
            arg1._connections[arg2] = arg3:Connect(function(...) -- Line 78
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: tbl_upvr (copied, readonly)
                    [3]: arg2 (readonly)
                ]]
                if arg1._status == tbl_upvr.Enabled then
                    arg1._listeners[arg2](arg1._instance, ...)
                elseif arg1._status == tbl_upvr.Suspended then
                    local tbl = {}
                    tbl[1] = arg2
                    tbl[2] = select('#', ...)
                    tbl[3] = ...
                    table.insert(arg1._suspendedEventQueue, tbl)
                end
            end)
        end
        arg1._listeners[arg2] = arg4
    end
end
function module_upvr.suspend(arg1) -- Line 95
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    arg1._status = tbl_upvr.Suspended
end
local Logging_upvr = require(script.Parent.Logging)
function module_upvr.resume(arg1) -- Line 99
    --[[ Upvalues[2]:
        [1]: Logging_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    if arg1._isResuming then
    else
        arg1._isResuming = true
        local const_number = 1
        while const_number <= #arg1._suspendedEventQueue do
            local var16 = arg1._suspendedEventQueue[const_number]
            local var17 = arg1._listeners[var16[1]]
            if var17 ~= nil then
                local coroutine_resume_result1_2, coroutine_resume_result2 = coroutine.resume(coroutine.create(var17), arg1._instance, unpack(var16, 3, 2 + var16[2]))
                if not coroutine_resume_result1_2 then
                    Logging_upvr.warn("%s", coroutine_resume_result2)
                end
            end
        end
        arg1._isResuming = false
        arg1._status = tbl_upvr.Enabled
        arg1._suspendedEventQueue = {}
    end
end
return module_upvr
ModuleScript SingleEventManager.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.SingleEventManager.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:28
-- Luau version 6, Types version 3
-- Time taken: 0.009415 seconds

return function() -- Line 1
    local createSpy_upvr = require(script.Parent.createSpy)
    local SingleEventManager_upvr = require(script.Parent.SingleEventManager)
    describe("new", function() -- Line 8
        --[[ Upvalues[1]:
            [1]: SingleEventManager_upvr (readonly)
        ]]
        it("should create a SingleEventManager", function() -- Line 9
            --[[ Upvalues[1]:
                [1]: SingleEventManager_upvr (copied, readonly)
            ]]
            expect(SingleEventManager_upvr.new()).to.be.ok()
        end)
    end)
    local assertDeepEqual_upvr = require(script.Parent.assertDeepEqual)
    local Logging_upvr = require(script.Parent.Logging)
    describe("connectEvent", function() -- Line 16
        --[[ Upvalues[4]:
            [1]: SingleEventManager_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: assertDeepEqual_upvr (readonly)
            [4]: Logging_upvr (readonly)
        ]]
        it("should connect to events", function() -- Line 17
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local BindableEvent_3 = Instance.new("BindableEvent")
            local any_new_result1 = SingleEventManager_upvr.new(BindableEvent_3)
            local var2_result1_4 = createSpy_upvr()
            any_new_result1:connectEvent("Event", var2_result1_4.value)
            any_new_result1:resume()
            BindableEvent_3:Fire("foo")
            expect(var2_result1_4.callCount).to.equal(1)
            var2_result1_4:assertCalledWith(BindableEvent_3, "foo")
            BindableEvent_3:Fire("bar")
            expect(var2_result1_4.callCount).to.equal(2)
            var2_result1_4:assertCalledWith(BindableEvent_3, "bar")
            any_new_result1:connectEvent("Event", nil)
            BindableEvent_3:Fire("baz")
            expect(var2_result1_4.callCount).to.equal(2)
        end)
        it("should drop events until resumed initially", function() -- Line 39
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local BindableEvent_5 = Instance.new("BindableEvent")
            local any_new_result1_6 = SingleEventManager_upvr.new(BindableEvent_5)
            local var2_result1_2 = createSpy_upvr()
            any_new_result1_6:connectEvent("Event", var2_result1_2.value)
            BindableEvent_5:Fire("foo")
            expect(var2_result1_2.callCount).to.equal(0)
            any_new_result1_6:resume()
            BindableEvent_5:Fire("bar")
            expect(var2_result1_2.callCount).to.equal(1)
            var2_result1_2:assertCalledWith(BindableEvent_5, "bar")
        end)
        it("should invoke suspended events when resumed", function() -- Line 56
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local BindableEvent_4 = Instance.new("BindableEvent")
            local any_new_result1_8 = SingleEventManager_upvr.new(BindableEvent_4)
            local createSpy_upvr_result1 = createSpy_upvr()
            any_new_result1_8:connectEvent("Event", createSpy_upvr_result1.value)
            any_new_result1_8:resume()
            BindableEvent_4:Fire("foo")
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            createSpy_upvr_result1:assertCalledWith(BindableEvent_4, "foo")
            any_new_result1_8:suspend()
            BindableEvent_4:Fire("bar")
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            any_new_result1_8:resume()
            expect(createSpy_upvr_result1.callCount).to.equal(2)
            createSpy_upvr_result1:assertCalledWith(BindableEvent_4, "bar")
        end)
        it("should invoke events triggered during resumption in the correct order", function() -- Line 78
            --[[ Upvalues[3]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: assertDeepEqual_upvr (copied, readonly)
            ]]
            local BindableEvent_6_upvr = Instance.new("BindableEvent")
            local any_new_result1_7 = SingleEventManager_upvr.new(BindableEvent_6_upvr)
            local tbl_upvr = {}
            local createSpy_upvr_result1_2 = createSpy_upvr(function(arg1, arg2) -- Line 83
                --[[ Upvalues[2]:
                    [1]: tbl_upvr (readonly)
                    [2]: BindableEvent_6_upvr (readonly)
                ]]
                table.insert(tbl_upvr, arg2)
                if arg2 == 2 then
                    BindableEvent_6_upvr:Fire(3)
                elseif arg2 == 3 then
                    BindableEvent_6_upvr:Fire(4)
                end
            end)
            any_new_result1_7:connectEvent("Event", createSpy_upvr_result1_2.value)
            any_new_result1_7:suspend()
            BindableEvent_6_upvr:Fire(1)
            BindableEvent_6_upvr:Fire(2)
            any_new_result1_7:resume()
            expect(createSpy_upvr_result1_2.callCount).to.equal(4)
            assertDeepEqual_upvr(tbl_upvr, {1, 2, 3, 4})
        end)
        it("should not invoke events fired during suspension but disconnected before resumption", function() -- Line 104
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local BindableEvent = Instance.new("BindableEvent")
            local any_new_result1_9 = SingleEventManager_upvr.new(BindableEvent)
            local var2_result1_5 = createSpy_upvr()
            any_new_result1_9:connectEvent("Event", var2_result1_5.value)
            any_new_result1_9:suspend()
            BindableEvent:Fire(1)
            any_new_result1_9:connectEvent("Event", nil)
            any_new_result1_9:resume()
            expect(var2_result1_5.callCount).to.equal(0)
        end)
        it("should not yield events through the SingleEventManager when resuming", function() -- Line 120
            --[[ Upvalues[1]:
                [1]: SingleEventManager_upvr (copied, readonly)
            ]]
            local BindableEvent_2_upvr = Instance.new("BindableEvent")
            local any_new_result1_4_upvr = SingleEventManager_upvr.new(BindableEvent_2_upvr)
            any_new_result1_4_upvr:connectEvent("Event", function() -- Line 124
                coroutine.yield()
            end)
            any_new_result1_4_upvr:resume()
            local coroutine_create_result1 = coroutine.create(function() -- Line 130
                --[[ Upvalues[1]:
                    [1]: BindableEvent_2_upvr (readonly)
                ]]
                BindableEvent_2_upvr:Fire(5)
            end)
            assert(coroutine.resume(coroutine_create_result1))
            expect(coroutine.status(coroutine_create_result1)).to.equal("dead")
            any_new_result1_4_upvr:suspend()
            BindableEvent_2_upvr:Fire(5)
            local coroutine_create_result1_2 = coroutine.create(function() -- Line 140
                --[[ Upvalues[1]:
                    [1]: any_new_result1_4_upvr (readonly)
                ]]
                any_new_result1_4_upvr:resume()
            end)
            assert(coroutine.resume(coroutine_create_result1_2))
            expect(coroutine.status(coroutine_create_result1_2)).to.equal("dead")
        end)
        it("should not throw errors through SingleEventManager when resuming", function() -- Line 148
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: Logging_upvr (copied, readonly)
            ]]
            local BindableEvent_7 = Instance.new("BindableEvent")
            local any_new_result1_2_upvr = SingleEventManager_upvr.new(BindableEvent_7)
            any_new_result1_2_upvr:connectEvent("Event", function() -- Line 154
                error("Error from SingleEventManager test")
            end)
            any_new_result1_2_upvr:resume()
            any_new_result1_2_upvr:suspend()
            BindableEvent_7:Fire(5)
            local any_capture_result1 = Logging_upvr.capture(function() -- Line 167
                --[[ Upvalues[1]:
                    [1]: any_new_result1_2_upvr (readonly)
                ]]
                any_new_result1_2_upvr:resume()
            end)
            expect(#any_capture_result1.errors).to.equal(0)
            expect(#any_capture_result1.warnings).to.equal(1)
            expect(#any_capture_result1.infos).to.equal(0)
            expect(any_capture_result1.warnings[1]:find("Error from SingleEventManager test")).to.be.ok()
        end)
        it("should not overflow with events if manager:resume() is invoked when resuming a suspended event", function() -- Line 178
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local BindableEvent_upvr = Instance.new("BindableEvent")
            local any_new_result1_10_upvr = SingleEventManager_upvr.new(BindableEvent_upvr)
            local var2_result1 = createSpy_upvr(function(arg1, arg2) -- Line 186
                --[[ Upvalues[2]:
                    [1]: any_new_result1_10_upvr (readonly)
                    [2]: BindableEvent_upvr (readonly)
                ]]
                if arg2 == 1 then
                    any_new_result1_10_upvr:suspend()
                    BindableEvent_upvr:Fire(2)
                    any_new_result1_10_upvr:resume()
                end
            end)
            any_new_result1_10_upvr:connectEvent("Event", var2_result1.value)
            any_new_result1_10_upvr:suspend()
            BindableEvent_upvr:Fire(1)
            any_new_result1_10_upvr:resume()
            expect(var2_result1.callCount).to.equal(2)
        end)
    end)
    describe("connectPropertyChange", function() -- Line 204
        --[[ Upvalues[2]:
            [1]: SingleEventManager_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        it("should connect to property changes", function() -- Line 208
            --[[ Upvalues[2]:
                [1]: SingleEventManager_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
            ]]
            local Folder = Instance.new("Folder")
            local any_new_result1_5 = SingleEventManager_upvr.new(Folder)
            local var2_result1_3 = createSpy_upvr()
            any_new_result1_5:connectPropertyChange("Name", var2_result1_3.value)
            any_new_result1_5:resume()
            Folder.Name = "foo"
            expect(var2_result1_3.callCount).to.equal(1)
            var2_result1_3:assertCalledWith(Folder)
            Folder.Name = "bar"
            expect(var2_result1_3.callCount).to.equal(2)
            var2_result1_3:assertCalledWith(Folder)
            any_new_result1_5:connectPropertyChange("Name")
            Folder.Name = "baz"
            expect(var2_result1_3.callCount).to.equal(2)
        end)
        it("should throw an error if the property is invalid", function() -- Line 230
            --[[ Upvalues[1]:
                [1]: SingleEventManager_upvr (copied, readonly)
            ]]
            local any_new_result1_3_upvr = SingleEventManager_upvr.new(Instance.new("Folder"))
            expect(function() -- Line 234
                --[[ Upvalues[1]:
                    [1]: any_new_result1_3_upvr (readonly)
                ]]
                any_new_result1_3_upvr:connectPropertyChange("foo", function() -- Line 235
                end)
            end).to.throw()
        end)
    end)
end
ModuleScript Symbol ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Symbol
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:30
-- Luau version 6, Types version 3
-- Time taken: 0.001462 seconds

return {
    named = function(arg1) -- Line 17, Named "named"
        local var2_upvr
        if type(arg1) ~= "string" then
            var2_upvr = false
        else
            var2_upvr = true
        end
        assert(var2_upvr, "Symbols must be created using a string name!")
        var2_upvr = true
        local newproxy_result1 = newproxy(var2_upvr)
        var2_upvr = "Symbol(%s)":format(arg1)
        getmetatable(newproxy_result1).__tostring = function() -- Line 24
            --[[ Upvalues[1]:
                [1]: var2_upvr (readonly)
            ]]
            return var2_upvr
        end
        return newproxy_result1
    end;
}
ModuleScript Symbol.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Symbol.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:32
-- Luau version 6, Types version 3
-- Time taken: 0.002207 seconds

return function() -- Line 1
    local Symbol_upvr = require(script.Parent.Symbol)
    describe("named", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Symbol_upvr (readonly)
        ]]
        it("should give an opaque object", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.named("foo")).to.be.a("userdata")
        end)
        it("should coerce to the given name", function() -- Line 11
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(tostring(Symbol_upvr.named("foo")):find("foo")).to.be.ok()
        end)
        it("should be unique when constructed", function() -- Line 18
            --[[ Upvalues[1]:
                [1]: Symbol_upvr (copied, readonly)
            ]]
            expect(Symbol_upvr.named("abc")).never.to.equal(Symbol_upvr.named("abc"))
        end)
    end)
end
ModuleScript Type ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Type
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:33
-- Luau version 6, Types version 3
-- Time taken: 0.001690 seconds

local Symbol_upvr = require(script.Parent.Symbol)
local newproxy_result1_upvr = newproxy(true)
local tbl_upvr = {}
local function _(arg1) -- Line 19, Named "addType"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: Symbol_upvr (readonly)
    ]]
    tbl_upvr[arg1] = Symbol_upvr.named("Roact"..arg1)
end
tbl_upvr.Binding = Symbol_upvr.named("RoactBinding")
tbl_upvr.Element = Symbol_upvr.named("RoactElement")
tbl_upvr.HostChangeEvent = Symbol_upvr.named("RoactHostChangeEvent")
tbl_upvr.HostEvent = Symbol_upvr.named("RoactHostEvent")
tbl_upvr.StatefulComponentClass = Symbol_upvr.named("RoactStatefulComponentClass")
tbl_upvr.StatefulComponentInstance = Symbol_upvr.named("RoactStatefulComponentInstance")
tbl_upvr.VirtualNode = Symbol_upvr.named("RoactVirtualNode")
tbl_upvr.VirtualTree = Symbol_upvr.named("RoactVirtualTree")
function tbl_upvr.of(arg1) -- Line 32
    --[[ Upvalues[1]:
        [1]: newproxy_result1_upvr (readonly)
    ]]
    if typeof(arg1) ~= "table" then
        return nil
    end
    return arg1[newproxy_result1_upvr]
end
getmetatable(newproxy_result1_upvr).__index = tbl_upvr
getmetatable(newproxy_result1_upvr).__tostring = function() -- Line 42
    return "RoactType"
end
require(script.Parent.strict)(tbl_upvr, "Type")
return newproxy_result1_upvr
ModuleScript Type.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Type.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:35
-- Luau version 6, Types version 3
-- Time taken: 0.002231 seconds

return function() -- Line 1
    local Type_upvr = require(script.Parent.Type)
    describe("of", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Type_upvr (readonly)
        ]]
        it("should return nil if the value is not a table", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Type_upvr (copied, readonly)
            ]]
            expect(Type_upvr.of(1)).to.equal(nil)
            expect(Type_upvr.of(true)).to.equal(nil)
            expect(Type_upvr.of("test")).to.equal(nil)
            expect(Type_upvr.of(print)).to.equal(nil)
        end)
        it("should return nil if the table has no type", function() -- Line 12
            --[[ Upvalues[1]:
                [1]: Type_upvr (copied, readonly)
            ]]
            expect(Type_upvr.of({})).to.equal(nil)
        end)
        it("should return the assigned type", function() -- Line 16
            --[[ Upvalues[1]:
                [1]: Type_upvr (copied, readonly)
            ]]
            expect(Type_upvr.of({
                [Type_upvr] = Type_upvr.Element;
            })).to.equal(Type_upvr.Element)
        end)
    end)
end
ModuleScript assertDeepEqual ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.assertDeepEqual
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:37
-- Luau version 6, Types version 3
-- Time taken: 0.003781 seconds

local function deepEqual_upvr(arg1, arg2) -- Line 10, Named "deepEqual"
    --[[ Upvalues[1]:
        [1]: deepEqual_upvr (readonly)
    ]]
    if typeof(arg1) ~= typeof(arg2) then
        return false, "{1} is of type %s, but {2} is of type %s":format(typeof(arg1), typeof(arg2))
    end
    if typeof(arg1) == "table" then
        local tbl_2 = {}
        for i, v in pairs(arg1) do
            tbl_2[i] = true
            local deepEqual_upvr_result1, deepEqual_upvr_result2_2 = deepEqual_upvr(v, arg2[i])
            if not deepEqual_upvr_result1 and deepEqual_upvr_result2_2 then
                return false, deepEqual_upvr_result2_2:gsub("{1}", "{1}[%s]":format(tostring(i))):gsub("{2}", "{2}[%s]":format(tostring(i)))
            end
        end
        for i_2, v_2 in pairs(arg2) do
            if not tbl_2[i_2] then
                local deepEqual_result1, deepEqual_upvr_result2_3 = deepEqual_upvr(v_2, arg1[i_2])
                if not deepEqual_result1 and deepEqual_upvr_result2_3 then
                    return false, deepEqual_upvr_result2_3:gsub("{1}", "{1}[%s]":format(tostring(i_2))):gsub("{2}", "{2}[%s]":format(tostring(i_2)))
                end
            end
        end
        return true, nil
    end
    if arg1 == arg2 then
        return true, nil
    end
    return false, "{1} ~= {2}"
end
return function(arg1, arg2) -- Line 57, Named "assertDeepEqual"
    --[[ Upvalues[1]:
        [1]: deepEqual_upvr (readonly)
    ]]
    local deepEqual_upvr_result1_2, deepEqual_upvr_result2_4 = deepEqual_upvr(arg1, arg2)
    if not deepEqual_upvr_result1_2 and deepEqual_upvr_result2_4 then
        error("Values were not deep-equal.\n%s":format(deepEqual_upvr_result2_4:gsub("{1}", "first"):gsub("{2}", "second")), 2)
    end
end
ModuleScript assertDeepEqual.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.assertDeepEqual.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:40
-- Luau version 6, Types version 3
-- Time taken: 0.003839 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.assertDeepEqual)
    it("should fail with a message when args are not equal", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: assertDeepEqual_upvr (readonly)
        ]]
        local pcall_result1_2, pcall_result2 = pcall(assertDeepEqual_upvr, 1, 2)
        expect(pcall_result1_2).to.equal(false)
        expect(pcall_result2:find("first ~= second")).to.be.ok()
        local pcall_result1_4, pcall_result2_4 = pcall(assertDeepEqual_upvr, {
            foo = 1;
        }, {
            foo = 2;
        })
        expect(pcall_result1_4).to.equal(false)
        expect(pcall_result2_4:find("first%[foo%] ~= second%[foo%]")).to.be.ok()
    end)
    it("should compare non-table values using standard '==' equality", function() -- Line 20
        --[[ Upvalues[1]:
            [1]: assertDeepEqual_upvr (readonly)
        ]]
        assertDeepEqual_upvr(1, 1)
        assertDeepEqual_upvr("hello", "hello")
        assertDeepEqual_upvr(nil, nil)
        local function var11() -- Line 25
        end
        assertDeepEqual_upvr(var11, var11)
        assertDeepEqual_upvr({
            foo = var11;
        }, {
            foo = var11;
        })
    end)
    it("should fail when types differ", function() -- Line 40
        --[[ Upvalues[1]:
            [1]: assertDeepEqual_upvr (readonly)
        ]]
        local pcall_result1, pcall_result2_3 = pcall(assertDeepEqual_upvr, 1, '1')
        expect(pcall_result1).to.equal(false)
        expect(pcall_result2_3:find("first is of type number, but second is of type string")).to.be.ok()
    end)
    it("should compare (and report about) nested tables", function() -- Line 47
        --[[ Upvalues[1]:
            [1]: assertDeepEqual_upvr (readonly)
        ]]
        local tbl_3 = {
            foo = "bar";
            nested = {
                foo = 1;
                bar = 2;
            };
        }
        assertDeepEqual_upvr(tbl_3, {
            foo = "bar";
            nested = {
                foo = 1;
                bar = 2;
            };
        })
        local pcall_result1_3, pcall_result2_2 = pcall(assertDeepEqual_upvr, tbl_3, {
            foo = "bar";
            nested = {
                foo = 1;
                bar = 3;
            };
        })
        expect(pcall_result1_3).to.equal(false)
        expect(pcall_result2_2:find("first%[nested%]%[bar%] ~= second%[nested%]%[bar%]")).to.be.ok()
    end)
    it("should be commutative", function() -- Line 79
        --[[ Upvalues[1]:
            [1]: assertDeepEqual_upvr (readonly)
        ]]
        local tbl_2_upvr = {
            foo = "bar";
            hello = "world";
        }
        local tbl = {
            foo = "bar";
            hello = "world";
        }
        assertDeepEqual_upvr(tbl_2_upvr, tbl)
        assertDeepEqual_upvr(tbl, tbl_2_upvr)
        local tbl_upvr = {
            foo = "bar";
        }
        expect(function() -- Line 96
            --[[ Upvalues[3]:
                [1]: assertDeepEqual_upvr (copied, readonly)
                [2]: tbl_2_upvr (readonly)
                [3]: tbl_upvr (readonly)
            ]]
            assertDeepEqual_upvr(tbl_2_upvr, tbl_upvr)
        end).to.throw()
        expect(function() -- Line 99
            --[[ Upvalues[3]:
                [1]: assertDeepEqual_upvr (copied, readonly)
                [2]: tbl_upvr (readonly)
                [3]: tbl_2_upvr (readonly)
            ]]
            assertDeepEqual_upvr(tbl_upvr, tbl_2_upvr)
        end).to.throw()
    end)
end
ModuleScript assign ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.assign
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:43
-- Luau version 6, Types version 3
-- Time taken: 0.001046 seconds

local None_upvr = require(script.Parent.None)
return function(arg1, ...) -- Line 9, Named "assign"
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    for i = 1, select('#', ...) do
        local selected_arg = select(i, ...)
        if selected_arg ~= nil then
            for i_2, v in pairs(selected_arg) do
                if v == None_upvr then
                    arg1[i_2] = nil
                else
                    arg1[i_2] = v
                end
            end
        end
    end
    return arg1
end
ModuleScript assign.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.assign.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:44
-- Luau version 6, Types version 3
-- Time taken: 0.003141 seconds

return function() -- Line 1
    local None_upvr = require(script.Parent.None)
    local assign_upvr = require(script.Parent.assign)
    it("should accept zero additional tables", function() -- Line 6
        --[[ Upvalues[1]:
            [1]: assign_upvr (readonly)
        ]]
        local tbl_5 = {}
        expect(tbl_5).to.equal(assign_upvr(tbl_5))
    end)
    it("should merge multiple tables onto the given target table", function() -- Line 13
        --[[ Upvalues[1]:
            [1]: assign_upvr (readonly)
        ]]
        local tbl_4 = {
            a = 5;
            b = 6;
        }
        local tbl_2 = {
            b = 7;
            c = 8;
        }
        local tbl_7 = {
            b = 8;
        }
        assign_upvr(tbl_4, tbl_2, tbl_7)
        expect(tbl_4.a).to.equal(5)
        expect(tbl_4.b).to.equal(tbl_7.b)
        expect(tbl_4.c).to.equal(tbl_2.c)
    end)
    it("should remove keys if specified as None", function() -- Line 35
        --[[ Upvalues[2]:
            [1]: None_upvr (readonly)
            [2]: assign_upvr (readonly)
        ]]
        local tbl = {
            foo = 2;
            bar = 3;
        }
        assign_upvr(tbl, {
            foo = None_upvr;
        })
        expect(tbl.foo).to.equal(nil)
        expect(tbl.bar).to.equal(3)
    end)
    it("should re-add keys if specified after None", function() -- Line 51
        --[[ Upvalues[2]:
            [1]: None_upvr (readonly)
            [2]: assign_upvr (readonly)
        ]]
        local tbl_6 = {
            foo = 2;
        }
        local tbl_3 = {
            foo = 3;
        }
        assign_upvr(tbl_6, {
            foo = None_upvr;
        }, tbl_3)
        expect(tbl_6.foo).to.equal(tbl_3.foo)
    end)
end
ModuleScript createContext ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createContext
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:46
-- Luau version 6, Types version 3
-- Time taken: 0.004842 seconds

local createSignal_upvr = require(script.Parent.createSignal)
local Component_upvr = require(script.Parent.Component)
local function _(arg1) -- Line 10, Named "createContextEntry"
    --[[ Upvalues[1]:
        [1]: createSignal_upvr (readonly)
    ]]
    local module_2 = {}
    module_2.value = arg1
    module_2.onUpdate = createSignal_upvr()
    return module_2
end
local createFragment_upvr = require(script.Parent.createFragment)
local Children_upvr = require(script.Parent.PropMarkers.Children)
local function createProvider_upvr(arg1) -- Line 17, Named "createProvider"
    --[[ Upvalues[4]:
        [1]: Component_upvr (readonly)
        [2]: createSignal_upvr (readonly)
        [3]: createFragment_upvr (readonly)
        [4]: Children_upvr (readonly)
    ]]
    local any_extend_result1_2 = Component_upvr:extend("Provider")
    local function init(arg1_2, arg2) -- Line 20
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        arg1_2.contextEntry = {
            value = arg2.value;
            onUpdate = createSignal_upvr();
        }
        arg1_2:__addContext(arg1.key, arg1_2.contextEntry)
    end
    any_extend_result1_2.init = init
    function any_extend_result1_2.willUpdate(arg1_3, arg2) -- Line 25
        if arg2.value ~= arg1_3.props.value then
            arg1_3.contextEntry.value = arg2.value
        end
    end
    local function didUpdate(arg1_4, arg2) -- Line 36
        if arg2.value ~= arg1_4.props.value then
            arg1_4.contextEntry.onUpdate:fire(arg1_4.props.value)
        end
    end
    any_extend_result1_2.didUpdate = didUpdate
    local function render(arg1_5) -- Line 51
        --[[ Upvalues[2]:
            [1]: createFragment_upvr (copied, readonly)
            [2]: Children_upvr (copied, readonly)
        ]]
        return createFragment_upvr(arg1_5.props[Children_upvr])
    end
    any_extend_result1_2.render = render
    return any_extend_result1_2
end
local function createConsumer_upvr(arg1) -- Line 58, Named "createConsumer"
    --[[ Upvalues[1]:
        [1]: Component_upvr (readonly)
    ]]
    local any_extend_result1 = Component_upvr:extend("Consumer")
    function any_extend_result1.validateProps(arg1_6) -- Line 61
        if type(arg1_6.render) ~= "function" then
            return false, "Consumer expects a `render` function"
        end
        return true
    end
    function any_extend_result1.init(arg1_7, arg2) -- Line 69
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1_7.contextEntry = arg1_7:__getContext(arg1.key)
    end
    function any_extend_result1.render(arg1_8) -- Line 75
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var9
        if arg1_8.contextEntry ~= nil then
            var9 = arg1_8.contextEntry.value
        else
            var9 = arg1.defaultValue
        end
        return arg1_8.props.render(var9)
    end
    function any_extend_result1.didUpdate(arg1_9) -- Line 90
        if arg1_9.contextEntry ~= nil then
            arg1_9.lastValue = arg1_9.contextEntry.value
        end
    end
    function any_extend_result1.didMount(arg1_10) -- Line 99
        if arg1_10.contextEntry ~= nil then
            arg1_10.disconnect = arg1_10.contextEntry.onUpdate:subscribe(function(arg1_11) -- Line 110
                --[[ Upvalues[1]:
                    [1]: arg1_10 (readonly)
                ]]
                if arg1_11 ~= arg1_10.lastValue then
                    arg1_10:setState({})
                end
            end)
        end
    end
    function any_extend_result1.willUnmount(arg1_12) -- Line 119
        if arg1_12.disconnect ~= nil then
            arg1_12.disconnect()
            arg1_12.disconnect = nil
        end
    end
    return any_extend_result1
end
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local Symbol_upvr = require(script.Parent.Symbol)
function tbl_upvr.new(arg1) -- Line 132
    --[[ Upvalues[2]:
        [1]: Symbol_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    local module = {}
    module.defaultValue = arg1
    module.key = Symbol_upvr.named("ContextKey")
    return setmetatable(module, tbl_upvr)
end
function tbl_upvr.__tostring(arg1) -- Line 139
    return "RoactContext"
end
return function(arg1) -- Line 143, Named "createContext"
    --[[ Upvalues[3]:
        [1]: tbl_upvr (readonly)
        [2]: createProvider_upvr (readonly)
        [3]: createConsumer_upvr (readonly)
    ]]
    local any_new_result1 = tbl_upvr.new(arg1)
    return {
        Provider = createProvider_upvr(any_new_result1);
        Consumer = createConsumer_upvr(any_new_result1);
    }
end
ModuleScript createContext.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createContext.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:50
-- Luau version 6, Types version 3
-- Time taken: 0.016565 seconds

return function() -- Line 1
    local Component_upvr = require(script.Parent.Component)
    local createContext_upvr = require(script.Parent.createContext)
    local createElement_upvr = require(script.Parent.createElement)
    local createReconciler = require(script.Parent.createReconciler)
    local createSpy_upvr = require(script.Parent.createSpy)
    local createReconciler_result1_upvr_2 = createReconciler(require(script.Parent.NoopRenderer))
    it("should return a table", function() -- Line 18
        --[[ Upvalues[1]:
            [1]: createContext_upvr (readonly)
        ]]
        local createContext_upvr_result1_3 = createContext_upvr("Test")
        expect(createContext_upvr_result1_3).to.be.ok()
        expect(type(createContext_upvr_result1_3)).to.equal("table")
    end)
    it("should contain a Provider and a Consumer", function() -- Line 24
        --[[ Upvalues[1]:
            [1]: createContext_upvr (readonly)
        ]]
        local createContext_upvr_result1 = createContext_upvr("Test")
        expect(createContext_upvr_result1.Provider).to.be.ok()
        expect(createContext_upvr_result1.Consumer).to.be.ok()
    end)
    describe("Provider", function() -- Line 30
        --[[ Upvalues[4]:
            [1]: createContext_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: createReconciler_result1_upvr_2 (readonly)
        ]]
        it("should render its children", function() -- Line 31
            --[[ Upvalues[4]:
                [1]: createContext_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1_2 = createSpy_upvr(function() -- Line 34
                return nil
            end)
            createReconciler_result1_upvr_2.unmountVirtualTree(createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(createContext_upvr("Test").Provider, {
                value = "Test";
            }, {
                Listener = createElement_upvr(var6_result1_2.value);
            }), nil, "Provide Tree"))
            expect(var6_result1_2.callCount).to.equal(1)
        end)
    end)
    local createFragment_upvr = require(script.Parent.createFragment)
    local Children_upvr = require(script.Parent.PropMarkers.Children)
    describe("Consumer", function() -- Line 51
        --[[ Upvalues[7]:
            [1]: createContext_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: createReconciler_result1_upvr_2 (readonly)
            [4]: createSpy_upvr (readonly)
            [5]: Component_upvr (readonly)
            [6]: createFragment_upvr (readonly)
            [7]: Children_upvr (readonly)
        ]]
        it("should expect a render function", function() -- Line 52
            --[[ Upvalues[3]:
                [1]: createContext_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local createElement_upvr_result1_upvr = createElement_upvr(createContext_upvr("Test").Consumer)
            expect(function() -- Line 56
                --[[ Upvalues[2]:
                    [1]: createReconciler_result1_upvr_2 (copied, readonly)
                    [2]: createElement_upvr_result1_upvr (readonly)
                ]]
                createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr_result1_upvr, nil, "Provide Tree")
            end).to.throw()
        end)
        it("should return the default value if there is no Provider", function() -- Line 61
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createContext_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1 = createSpy_upvr()
            createReconciler_result1_upvr_2.unmountVirtualTree(createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(createContext_upvr("Test").Consumer, {
                render = var6_result1.value;
            }), nil, "Provide Tree"))
            var6_result1:assertCalledWith("Test")
        end)
        it("should pass the value to the render function", function() -- Line 75
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createContext_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1_upvr_2 = createSpy_upvr()
            local createContext_upvr_result1_4_upvr = createContext_upvr("Test")
            local function Listener() -- Line 79
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: createContext_upvr_result1_4_upvr (readonly)
                    [3]: var6_result1_upvr_2 (readonly)
                ]]
                return createElement_upvr(createContext_upvr_result1_4_upvr.Consumer, {
                    render = var6_result1_upvr_2.value;
                })
            end
            createReconciler_result1_upvr_2.unmountVirtualTree(createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(createContext_upvr_result1_4_upvr.Provider, {
                value = "NewTest";
            }, {
                Listener = createElement_upvr(Listener);
            }), nil, "Provide Tree"))
            var6_result1_upvr_2:assertCalledWith("NewTest")
        end)
        it("should update when the value updates", function() -- Line 97
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createContext_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1_upvr = createSpy_upvr()
            local var3_result1_upvr_2 = createContext_upvr("Test")
            local function Listener() -- Line 101
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: var3_result1_upvr_2 (readonly)
                    [3]: var6_result1_upvr (readonly)
                ]]
                return createElement_upvr(var3_result1_upvr_2.Consumer, {
                    render = var6_result1_upvr.value;
                })
            end
            local any_mountVirtualTree_result1_2 = createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(var3_result1_upvr_2.Provider, {
                value = "NewTest";
            }, {
                Listener = createElement_upvr(Listener);
            }), nil, "Provide Tree")
            expect(var6_result1_upvr.callCount).to.equal(1)
            var6_result1_upvr:assertCalledWith("NewTest")
            createReconciler_result1_upvr_2.updateVirtualTree(any_mountVirtualTree_result1_2, createElement_upvr(var3_result1_upvr_2.Provider, {
                value = "ThirdTest";
            }, {
                Listener = createElement_upvr(Listener);
            }))
            expect(var6_result1_upvr.callCount).to.equal(2)
            var6_result1_upvr:assertCalledWith("ThirdTest")
            createReconciler_result1_upvr_2.unmountVirtualTree(any_mountVirtualTree_result1_2)
        end)
        it("should update when the value updates through an update blocking component", function() -- Line 138
            --[[ Upvalues[7]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createContext_upvr (copied, readonly)
                [3]: Component_upvr (copied, readonly)
                [4]: createFragment_upvr (copied, readonly)
                [5]: Children_upvr (copied, readonly)
                [6]: createElement_upvr (copied, readonly)
                [7]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1_3_upvr = createSpy_upvr()
            local createContext_upvr_result1_2_upvr = createContext_upvr("Test")
            local any_extend_result1_3 = Component_upvr:extend("UpdateBlocker")
            local function render(arg1) -- Line 144
                --[[ Upvalues[2]:
                    [1]: createFragment_upvr (copied, readonly)
                    [2]: Children_upvr (copied, readonly)
                ]]
                return createFragment_upvr(arg1.props[Children_upvr])
            end
            any_extend_result1_3.render = render
            function any_extend_result1_3.shouldUpdate(arg1) -- Line 148
                return false
            end
            local function Listener() -- Line 152
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: createContext_upvr_result1_2_upvr (readonly)
                    [3]: var6_result1_3_upvr (readonly)
                ]]
                return createElement_upvr(createContext_upvr_result1_2_upvr.Consumer, {
                    render = var6_result1_3_upvr.value;
                })
            end
            local any_mountVirtualTree_result1 = createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(createContext_upvr_result1_2_upvr.Provider, {
                value = "NewTest";
            }, {
                Blocker = createElement_upvr(any_extend_result1_3, nil, {
                    Listener = createElement_upvr(Listener);
                });
            }), nil, "Provide Tree")
            expect(var6_result1_3_upvr.callCount).to.equal(1)
            var6_result1_3_upvr:assertCalledWith("NewTest")
            createReconciler_result1_upvr_2.updateVirtualTree(any_mountVirtualTree_result1, createElement_upvr(createContext_upvr_result1_2_upvr.Provider, {
                value = "ThirdTest";
            }, {
                Blocker = createElement_upvr(any_extend_result1_3, nil, {
                    Listener = createElement_upvr(Listener);
                });
            }))
            expect(var6_result1_3_upvr.callCount).to.equal(2)
            var6_result1_3_upvr:assertCalledWith("ThirdTest")
            createReconciler_result1_upvr_2.unmountVirtualTree(any_mountVirtualTree_result1)
        end)
        it("should behave correctly when the default value is nil", function() -- Line 188
            --[[ Upvalues[4]:
                [1]: createContext_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var6_result1_upvr_3 = createSpy_upvr()
            local createContext_upvr_result1_5_upvr = createContext_upvr(nil)
            local function Listener() -- Line 192
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: createContext_upvr_result1_5_upvr (readonly)
                    [3]: var6_result1_upvr_3 (readonly)
                ]]
                return createElement_upvr(createContext_upvr_result1_5_upvr.Consumer, {
                    render = var6_result1_upvr_3.value;
                })
            end
            expect(var6_result1_upvr_3.callCount).to.equal(1)
            var6_result1_upvr_3:assertCalledWith(nil)
            createReconciler_result1_upvr_2.unmountVirtualTree(createReconciler_result1_upvr_2.updateVirtualTree(createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(Listener), nil, "Provide Tree"), createElement_upvr(Listener)))
            expect(var6_result1_upvr_3.callCount).to.equal(2)
            var6_result1_upvr_3:assertCalledWith(nil)
        end)
    end)
    describe("Update order", function() -- Line 210
        --[[ Upvalues[3]:
            [1]: createContext_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: createReconciler_result1_upvr_2 (readonly)
        ]]
        it("should update context at the same time as props", function() -- Line 264
            --[[ Upvalues[3]:
                [1]: createContext_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: createReconciler_result1_upvr_2 (copied, readonly)
            ]]
            local var60_upvw = false
            local var61_upvw = false
            local var62_upvw = 0
            local var3_result1_upvr = createContext_upvr("default")
            local function Listener(arg1) -- Line 273
                --[[ Upvalues[5]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: var3_result1_upvr (readonly)
                    [3]: var62_upvw (read and write)
                    [4]: var60_upvw (read and write)
                    [5]: var61_upvw (read and write)
                ]]
                local module_2 = {}
                local function render(arg1_2) -- Line 275
                    --[[ Upvalues[4]:
                        [1]: var62_upvw (copied, read and write)
                        [2]: arg1 (readonly)
                        [3]: var60_upvw (copied, read and write)
                        [4]: var61_upvw (copied, read and write)
                    ]]
                    var62_upvw += 1
                    if arg1_2 == "context_1" then
                        expect(arg1.someProp).to.equal("prop_1")
                        var60_upvw = true
                    else
                        if arg1_2 == "context_2" then
                            expect(arg1.someProp).to.equal("prop_2")
                            var61_upvw = true
                            return
                        end
                        error("Unexpected context value")
                    end
                end
                module_2.render = render
                return createElement_upvr(var3_result1_upvr.Consumer, module_2)
            end
            createReconciler_result1_upvr_2.updateVirtualTree(createReconciler_result1_upvr_2.mountVirtualTree(createElement_upvr(var3_result1_upvr.Provider, {
                value = "context_1";
            }, {
                Child = createElement_upvr(Listener, {
                    someProp = "prop_1";
                });
            }), nil, "UpdateObservationIsFun"), createElement_upvr(var3_result1_upvr.Provider, {
                value = "context_2";
            }, {
                Child = createElement_upvr(Listener, {
                    someProp = "prop_2";
                });
            }))
            expect(var62_upvw).to.equal(2)
            expect(var60_upvw).to.equal(true)
            expect(var61_upvw).to.equal(true)
        end)
    end)
    local ReplicatedStorage_upvr = game:GetService("ReplicatedStorage")
    local createReconciler_result1_upvr = createReconciler(require(script.Parent.RobloxRenderer))
    it("does not throw if willUnmount is called twice on a context consumer", function() -- Line 317
        --[[ Upvalues[5]:
            [1]: createContext_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: ReplicatedStorage_upvr (readonly)
            [5]: createReconciler_result1_upvr (readonly)
        ]]
        local createContext_upvr_result1_upvr = createContext_upvr({})
        local any_extend_result1_4_upvr = Component_upvr:extend("LowestComponent")
        local function init(arg1) -- Line 321
        end
        any_extend_result1_4_upvr.init = init
        local function render(arg1) -- Line 323
            --[[ Upvalues[1]:
                [1]: createElement_upvr (copied, readonly)
            ]]
            return createElement_upvr("Frame")
        end
        any_extend_result1_4_upvr.render = render
        local function didMount(arg1) -- Line 327
            arg1.props.onDidMountCallback()
        end
        any_extend_result1_4_upvr.didMount = didMount
        local any_extend_result1_upvr = Component_upvr:extend("FirstComponent")
        local function init(arg1) -- Line 332
        end
        any_extend_result1_upvr.init = init
        local function render(arg1) -- Line 334
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: createContext_upvr_result1_upvr (readonly)
            ]]
            local module = {}
            local function render() -- Line 336
                --[[ Upvalues[1]:
                    [1]: createElement_upvr (copied, readonly)
                ]]
                return createElement_upvr("TextLabel")
            end
            module.render = render
            return createElement_upvr(createContext_upvr_result1_upvr.Consumer, module)
        end
        any_extend_result1_upvr.render = render
        local any_extend_result1_2_upvr = Component_upvr:extend("ChildComponent")
        local function init(arg1) -- Line 344
            arg1:setState({
                firstTime = true;
            })
        end
        any_extend_result1_2_upvr.init = init
        local var82_upvw
        local function render(arg1) -- Line 350
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_upvr (readonly)
                [3]: any_extend_result1_4_upvr (readonly)
            ]]
            if arg1.state.firstTime then
                return createElement_upvr(any_extend_result1_upvr)
            end
            return createElement_upvr(any_extend_result1_4_upvr, {
                onDidMountCallback = arg1.props.onDidMountCallback;
            })
        end
        any_extend_result1_2_upvr.render = render
        function any_extend_result1_2_upvr.didMount(arg1) -- Line 360
            --[[ Upvalues[1]:
                [1]: var82_upvw (read and write)
            ]]
            function var82_upvw() -- Line 361
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:setState({
                    firstTime = false;
                })
            end
        end
        local any_extend_result1 = Component_upvr:extend("ParentComponent")
        local var85_upvw = 0
        function any_extend_result1.init(arg1) -- Line 370
            --[[ Upvalues[1]:
                [1]: var85_upvw (read and write)
            ]]
            arg1:setState({
                count = 1;
            })
            function arg1.onDidMountCallback() -- Line 373
                --[[ Upvalues[2]:
                    [1]: var85_upvw (copied, read and write)
                    [2]: arg1 (readonly)
                ]]
                var85_upvw += 1
                if arg1.state.count < 5 then
                    arg1:setState({
                        count = arg1.state.count + 1;
                    })
                end
            end
        end
        function any_extend_result1.render(arg1) -- Line 381
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: createContext_upvr_result1_upvr (readonly)
                [3]: any_extend_result1_2_upvr (readonly)
            ]]
            return createElement_upvr("Frame", {}, {
                Provider = createElement_upvr(createContext_upvr_result1_upvr.Provider, {
                    value = {};
                }, {
                    ChildComponent = createElement_upvr(any_extend_result1_2_upvr, {
                        count = arg1.state.count;
                        onDidMountCallback = arg1.onDidMountCallback;
                    });
                });
            })
        end
        local ScreenGui = Instance.new("ScreenGui")
        ScreenGui.Parent = ReplicatedStorage_upvr
        createReconciler_result1_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), ScreenGui, "Some Key")
        expect(function() -- Line 400
            --[[ Upvalues[1]:
                [1]: var82_upvw (read and write)
            ]]
            var82_upvw()
        end).never.to.throw()
    end)
end
ModuleScript createElement ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createElement
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:52
-- Luau version 6, Types version 3
-- Time taken: 0.004306 seconds

local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local Children_upvr = require(script.Parent.PropMarkers.Children)
local Logging_upvr = require(script.Parent.Logging)
local ElementKind_upvr = require(script.Parent.ElementKind)
local Type_upvr = require(script.Parent.Type)
return function(arg1, arg2, arg3) -- Line 37, Named "createElement"
    --[[ Upvalues[5]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Children_upvr (readonly)
        [3]: Logging_upvr (readonly)
        [4]: ElementKind_upvr (readonly)
        [5]: Type_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var6 = any_get_result1_upvr
    if var6.typeChecks then
        if arg1 == nil then
            var6 = false
        else
            var6 = true
        end
        assert(var6, "`component` is required")
        var6 = true
        if typeof(arg2) ~= "table" then
            if arg2 ~= nil then
                var6 = false
            else
                var6 = true
            end
        end
        assert(var6, "`props` must be a table or nil")
        var6 = true
        if typeof(arg3) ~= "table" then
            if arg3 ~= nil then
                var6 = false
            else
                var6 = true
            end
        end
        assert(var6, "`children` must be a table or nil")
    end
    if arg2 == nil then
        local tbl = {}
    end
    if arg3 ~= nil then
        var6 = Children_upvr
        if tbl[var6] ~= nil then
            var6 = Logging_upvr
            var6 = "The prop `Roact.Children` was defined but was overridden by the third parameter to createElement!\nThis can happen when a component passes props through to a child element but also uses the `children` argument:\n\n\tRoact.createElement(\"Frame\", passedProps, {\n\t\tchild = ...\n\t})\n\nInstead, consider using a utility function to merge tables of children together:\n\n\tlocal children = mergeTables(passedProps[Roact.Children], {\n\t\tchild = ...\n\t})\n\n\tlocal fullProps = mergeTables(passedProps, {\n\t\t[Roact.Children] = children\n\t})\n\n\tRoact.createElement(\"Frame\", fullProps)"
            var6.warnOnce(var6)
        end
        tbl[Children_upvr] = arg3
    end
    local module = {
        [Type_upvr] = Type_upvr.Element;
        [ElementKind_upvr] = ElementKind_upvr.fromComponent(arg1);
    }
    module.component = arg1
    module.props = tbl
    if any_get_result1_upvr.elementTracing then
        module.source = debug.traceback("", 2):sub(2)
    end
    return module
end
ModuleScript createElement.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createElement.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:53
-- Luau version 6, Types version 3
-- Time taken: 0.006684 seconds

return function() -- Line 1
    local ElementKind_upvr = require(script.Parent.ElementKind)
    local Type_upvr = require(script.Parent.Type)
    local Children_upvr = require(script.Parent.PropMarkers.Children)
    local createElement_upvr = require(script.Parent.createElement)
    it("should create new primitive elements", function() -- Line 12
        --[[ Upvalues[3]:
            [1]: createElement_upvr (readonly)
            [2]: Type_upvr (readonly)
            [3]: ElementKind_upvr (readonly)
        ]]
        local createElement_upvr_result1_4 = createElement_upvr("Frame")
        expect(createElement_upvr_result1_4).to.be.ok()
        expect(Type_upvr.of(createElement_upvr_result1_4)).to.equal(Type_upvr.Element)
        expect(ElementKind_upvr.of(createElement_upvr_result1_4)).to.equal(ElementKind_upvr.Host)
    end)
    it("should create new functional elements", function() -- Line 20
        --[[ Upvalues[3]:
            [1]: createElement_upvr (readonly)
            [2]: Type_upvr (readonly)
            [3]: ElementKind_upvr (readonly)
        ]]
        local var5_result1_2 = createElement_upvr(function() -- Line 21
        end)
        expect(var5_result1_2).to.be.ok()
        expect(Type_upvr.of(var5_result1_2)).to.equal(Type_upvr.Element)
        expect(ElementKind_upvr.of(var5_result1_2)).to.equal(ElementKind_upvr.Function)
    end)
    local Component_upvr = require(script.Parent.Component)
    it("should create new stateful components", function() -- Line 28
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: Type_upvr (readonly)
            [4]: ElementKind_upvr (readonly)
        ]]
        local var5_result1_4 = createElement_upvr(Component_upvr:extend("Foo"))
        expect(var5_result1_4).to.be.ok()
        expect(Type_upvr.of(var5_result1_4)).to.equal(Type_upvr.Element)
        expect(ElementKind_upvr.of(var5_result1_4)).to.equal(ElementKind_upvr.Stateful)
    end)
    local Portal_upvr = require(script.Parent.Portal)
    it("should create new portal elements", function() -- Line 38
        --[[ Upvalues[4]:
            [1]: createElement_upvr (readonly)
            [2]: Portal_upvr (readonly)
            [3]: Type_upvr (readonly)
            [4]: ElementKind_upvr (readonly)
        ]]
        local var5_result1_3 = createElement_upvr(Portal_upvr)
        expect(var5_result1_3).to.be.ok()
        expect(Type_upvr.of(var5_result1_3)).to.equal(Type_upvr.Element)
        expect(ElementKind_upvr.of(var5_result1_3)).to.equal(ElementKind_upvr.Portal)
    end)
    it("should accept props", function() -- Line 46
        --[[ Upvalues[1]:
            [1]: createElement_upvr (readonly)
        ]]
        local createElement_upvr_result1 = createElement_upvr("StringValue", {
            Value = "Foo";
        })
        expect(createElement_upvr_result1).to.be.ok()
        expect(createElement_upvr_result1.props.Value).to.equal("Foo")
    end)
    it("should accept props and children", function() -- Line 55
        --[[ Upvalues[2]:
            [1]: createElement_upvr (readonly)
            [2]: Children_upvr (readonly)
        ]]
        local createElement_upvr_result1_2 = createElement_upvr("IntValue")
        local createElement_upvr_result1_3 = createElement_upvr("StringValue", {
            Value = "Foo";
        }, {
            Child = createElement_upvr_result1_2;
        })
        expect(createElement_upvr_result1_3).to.be.ok()
        expect(createElement_upvr_result1_3.props.Value).to.equal("Foo")
        expect(createElement_upvr_result1_3.props[Children_upvr]).to.be.ok()
        expect(createElement_upvr_result1_3.props[Children_upvr].Child).to.equal(createElement_upvr_result1_2)
    end)
    it("should accept children with without props", function() -- Line 70
        --[[ Upvalues[2]:
            [1]: createElement_upvr (readonly)
            [2]: Children_upvr (readonly)
        ]]
        local var5_result1 = createElement_upvr("IntValue")
        local createElement_upvr_result1_5 = createElement_upvr("StringValue", nil, {
            Child = var5_result1;
        })
        expect(createElement_upvr_result1_5).to.be.ok()
        expect(createElement_upvr_result1_5.props[Children_upvr]).to.be.ok()
        expect(createElement_upvr_result1_5.props[Children_upvr].Child).to.equal(var5_result1)
    end)
    local Logging_upvr = require(script.Parent.Logging)
    it("should warn once if children is specified in two different ways", function() -- Line 82
        --[[ Upvalues[3]:
            [1]: Logging_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: Children_upvr (readonly)
        ]]
        local any_capture_result1 = Logging_upvr.capture(function() -- Line 83
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Children_upvr (copied, readonly)
            ]]
            for _ = 1, 2 do
                createElement_upvr("Frame", {
                    [Children_upvr] = {};
                }, {})
            end
        end)
        expect(#any_capture_result1.warnings).to.equal(1)
        expect(any_capture_result1.warnings[1]:find("createElement")).to.be.ok()
        expect(any_capture_result1.warnings[1]:find("Children")).to.be.ok()
    end)
    local GlobalConfig_upvr = require(script.Parent.GlobalConfig)
    it("should have a `source` member if elementTracing is set", function() -- Line 98
        --[[ Upvalues[2]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: createElement_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            elementTracing = true;
        }, function() -- Line 103
            --[[ Upvalues[1]:
                [1]: createElement_upvr (copied, readonly)
            ]]
            expect(createElement_upvr("StringValue").source).to.be.a("string")
        end)
    end)
end
ModuleScript createFragment ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createFragment
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:55
-- Luau version 6, Types version 3
-- Time taken: 0.000691 seconds

local Type_upvr = require(script.Parent.Type)
local ElementKind_upvr = require(script.Parent.ElementKind)
return function(arg1) -- Line 4, Named "createFragment"
    --[[ Upvalues[2]:
        [1]: Type_upvr (readonly)
        [2]: ElementKind_upvr (readonly)
    ]]
    local module = {
        [Type_upvr] = Type_upvr.Element;
        [ElementKind_upvr] = ElementKind_upvr.Fragment;
    }
    module.elements = arg1
    return module
end
ModuleScript createFragment.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createFragment.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:57
-- Luau version 6, Types version 3
-- Time taken: 0.001403 seconds

return function() -- Line 1
    local createFragment_upvr = require(script.Parent.createFragment)
    local Type_upvr = require(script.Parent.Type)
    local ElementKind_upvr = require(script.Parent.ElementKind)
    it("should create new primitive elements", function() -- Line 7
        --[[ Upvalues[3]:
            [1]: createFragment_upvr (readonly)
            [2]: Type_upvr (readonly)
            [3]: ElementKind_upvr (readonly)
        ]]
        local var2_result1_2 = createFragment_upvr({})
        expect(var2_result1_2).to.be.ok()
        expect(Type_upvr.of(var2_result1_2)).to.equal(Type_upvr.Element)
        expect(ElementKind_upvr.of(var2_result1_2)).to.equal(ElementKind_upvr.Fragment)
    end)
    it("should accept children", function() -- Line 15
        --[[ Upvalues[1]:
            [1]: createFragment_upvr (readonly)
        ]]
        local var2_result1 = createFragment_upvr({})
        expect(createFragment_upvr({
            key = var2_result1;
        }).elements.key).to.equal(var2_result1)
    end)
end
ModuleScript createReconciler ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createReconciler
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:04:59
-- Luau version 6, Types version 3
-- Time taken: 0.032105 seconds

local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local internalAssert_upvr = require(script.Parent.internalAssert)
local Type_upvr = require(script.Parent.Type)
local ElementUtils_upvr = require(script.Parent.ElementUtils)
local ElementKind_upvr = require(script.Parent.ElementKind)
local Children_upvr = require(script.Parent.PropMarkers.Children)
local any_named_result1_upvr = require(script.Parent.Symbol).named("InternalData")
return function(arg1) -- Line 25, Named "createReconciler"
    --[[ Upvalues[7]:
        [1]: any_get_result1_upvr (readonly)
        [2]: internalAssert_upvr (readonly)
        [3]: Type_upvr (readonly)
        [4]: ElementUtils_upvr (readonly)
        [5]: ElementKind_upvr (readonly)
        [6]: Children_upvr (readonly)
        [7]: any_named_result1_upvr (readonly)
    ]]
    local var8_upvw
    local mountVirtualNode_upvw
    local unmountVirtualNode_upvw
    local function _(arg1_2, arg2) -- Line 37, Named "replaceVirtualNode"
        --[[ Upvalues[2]:
            [1]: unmountVirtualNode_upvw (read and write)
            [2]: mountVirtualNode_upvw (read and write)
        ]]
        local originalContext_5 = arg1_2.originalContext
        if not originalContext_5 then
            originalContext_5 = arg1_2.context
        end
        if not arg1_2.wasUnmounted then
            unmountVirtualNode_upvw(arg1_2)
        end
        local mountVirtualNode_upvw_result1 = mountVirtualNode_upvw(arg2, arg1_2.hostParent, arg1_2.hostKey, originalContext_5, arg1_2.parentLegacyContext)
        if mountVirtualNode_upvw_result1 ~= nil then
            mountVirtualNode_upvw_result1.depth = arg1_2.depth
            mountVirtualNode_upvw_result1.parent = arg1_2.parent
        end
        return mountVirtualNode_upvw_result1
    end
    local updateVirtualNode_upvw
    local function updateChildren_upvr(arg1_3, arg2, arg3) -- Line 70, Named "updateChildren"
        --[[ Upvalues[7]:
            [1]: any_get_result1_upvr (copied, readonly)
            [2]: internalAssert_upvr (copied, readonly)
            [3]: Type_upvr (copied, readonly)
            [4]: ElementUtils_upvr (copied, readonly)
            [5]: updateVirtualNode_upvw (read and write)
            [6]: unmountVirtualNode_upvw (read and write)
            [7]: mountVirtualNode_upvw (read and write)
        ]]
        local var24 = any_get_result1_upvr
        if var24.internalTypeChecks then
            if Type_upvr.of(arg1_3) ~= Type_upvr.VirtualNode then
                var24 = false
            else
                var24 = true
            end
            internalAssert_upvr(var24, "Expected arg #1 to be of type VirtualNode")
        end
        arg1_3.updateChildrenCount += 1
        for i, v in pairs(arg1_3.children) do
            local updateVirtualNode_result1 = updateVirtualNode_upvw(v, ElementUtils_upvr.getElementByKey(arg3, i))
            if arg1_3.updateChildrenCount ~= arg1_3.updateChildrenCount then
                if updateVirtualNode_result1 and updateVirtualNode_result1 ~= arg1_3.children[i] then
                    unmountVirtualNode_upvw(updateVirtualNode_result1)
                end
                return
            end
            if updateVirtualNode_result1 ~= nil then
                arg1_3.children[i] = updateVirtualNode_result1
            else
                ({})[i] = true
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        for i_2 in pairs({}) do
            arg1_3.children[i_2] = nil
        end
        for i_3, v_2 in ElementUtils_upvr.iterateElements(arg3) do
            local var35
            if i_3 == ElementUtils_upvr.UseParentKey then
                var35 = arg1_3.hostKey
            end
            if arg1_3.children[i_3] == nil then
                local mountVirtualNode_result1_3 = mountVirtualNode_upvw(v_2, arg2, var35, arg1_3.context, arg1_3.legacyContext)
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if arg1_3.updateChildrenCount ~= arg1_3.updateChildrenCount then
                    if mountVirtualNode_result1_3 then
                        unmountVirtualNode_upvw(mountVirtualNode_result1_3)
                    end
                    return
                end
                if mountVirtualNode_result1_3 ~= nil then
                    mountVirtualNode_result1_3.depth = arg1_3.depth + 1
                    mountVirtualNode_result1_3.parent = arg1_3
                    arg1_3.children[i_3] = mountVirtualNode_result1_3
                end
            end
        end
    end
    local function updateVirtualNodeWithRenderResult_upvr(arg1_5, arg2, arg3) -- Line 147, Named "updateVirtualNodeWithRenderResult"
        --[[ Upvalues[2]:
            [1]: Type_upvr (copied, readonly)
            [2]: updateChildren_upvr (readonly)
        ]]
        if Type_upvr.of(arg3) == Type_upvr.Element or arg3 == nil or typeof(arg3) == "boolean" then
            updateChildren_upvr(arg1_5, arg2, arg3)
        else
            error("%s\n%s":format("Component returned invalid children:", arg1_5.currentElement.source or "<enable element tracebacks>"), 0)
        end
    end
    function unmountVirtualNode_upvw(arg1_6) -- Line 164, Named "unmountVirtualNode"
        --[[ Upvalues[7]:
            [1]: any_get_result1_upvr (copied, readonly)
            [2]: internalAssert_upvr (copied, readonly)
            [3]: Type_upvr (copied, readonly)
            [4]: ElementKind_upvr (copied, readonly)
            [5]: arg1 (readonly)
            [6]: var8_upvw (read and write)
            [7]: var37_upvw (read and write)
        ]]
        local var50 = any_get_result1_upvr
        if var50.internalTypeChecks then
            if Type_upvr.of(arg1_6) ~= Type_upvr.VirtualNode then
                var50 = false
            else
                var50 = true
            end
            internalAssert_upvr(var50, "Expected arg #1 to be of type VirtualNode")
        end
        arg1_6.wasUnmounted = true
        local any_of_result1 = ElementKind_upvr.of(arg1_6.currentElement)
        if any_of_result1 == ElementKind_upvr.Host then
            arg1.unmountHostNode(var8_upvw, arg1_6)
        else
            if any_of_result1 == ElementKind_upvr.Function then
                for _, v_3 in pairs(arg1_6.children) do
                    var37_upvw(v_3)
                end
                return
            end
            if any_of_result1 == ElementKind_upvr.Stateful then
                arg1_6.instance:__unmount()
                return
            end
            if any_of_result1 == ElementKind_upvr.Portal then
                for _, v_4 in pairs(arg1_6.children) do
                    var37_upvw(v_4)
                end
                return
            end
            if any_of_result1 == ElementKind_upvr.Fragment then
                for _, v_5 in pairs(arg1_6.children) do
                    var37_upvw(v_5)
                end
                return
            end
            error("Unknown ElementKind %q":format(tostring(any_of_result1)), 2)
        end
    end
    local var37_upvw = unmountVirtualNode_upvw
    local function _(arg1_7, arg2) -- Line 195, Named "updateFunctionVirtualNode"
        --[[ Upvalues[1]:
            [1]: updateVirtualNodeWithRenderResult_upvr (readonly)
        ]]
        updateVirtualNodeWithRenderResult_upvr(arg1_7, arg1_7.hostParent, arg2.component(arg2.props))
        return arg1_7
    end
    local function _(arg1_8, arg2) -- Line 203, Named "updatePortalVirtualNode"
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: var37_upvw (read and write)
            [3]: mountVirtualNode_upvw (read and write)
            [4]: Children_upvr (copied, readonly)
            [5]: updateChildren_upvr (readonly)
        ]]
        local target = arg2.props.target
        assert(arg1.isHostObject(target), "Expected target to be host object")
        if target ~= arg1_8.currentElement.props.target then
            local originalContext = arg1_8.originalContext
            if not originalContext then
                originalContext = arg1_8.context
            end
            if not arg1_8.wasUnmounted then
                var37_upvw(arg1_8)
            end
            local mountVirtualNode_result1_5 = mountVirtualNode_upvw(arg2, arg1_8.hostParent, arg1_8.hostKey, originalContext, arg1_8.parentLegacyContext)
            if mountVirtualNode_result1_5 ~= nil then
                mountVirtualNode_result1_5.depth = arg1_8.depth
                mountVirtualNode_result1_5.parent = arg1_8.parent
            end
            return mountVirtualNode_result1_5
        end
        updateChildren_upvr(arg1_8, target, arg2.props[Children_upvr])
        return arg1_8
    end
    local function _(arg1_9, arg2) -- Line 222, Named "updateFragmentVirtualNode"
        --[[ Upvalues[1]:
            [1]: updateChildren_upvr (readonly)
        ]]
        updateChildren_upvr(arg1_9, arg1_9.hostParent, arg2.elements)
        return arg1_9
    end
    function updateVirtualNode_upvw(arg1_10, arg2, arg3) -- Line 240, Named "updateVirtualNode"
        --[[ Upvalues[11]:
            [1]: any_get_result1_upvr (copied, readonly)
            [2]: internalAssert_upvr (copied, readonly)
            [3]: Type_upvr (copied, readonly)
            [4]: var37_upvw (read and write)
            [5]: mountVirtualNode_upvw (read and write)
            [6]: ElementKind_upvr (copied, readonly)
            [7]: arg1 (readonly)
            [8]: var8_upvw (read and write)
            [9]: updateVirtualNodeWithRenderResult_upvr (readonly)
            [10]: Children_upvr (copied, readonly)
            [11]: updateChildren_upvr (readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local var79 = any_get_result1_upvr
        if var79.internalTypeChecks then
            if Type_upvr.of(arg1_10) ~= Type_upvr.VirtualNode then
                var79 = false
            else
                var79 = true
            end
            internalAssert_upvr(var79, "Expected arg #1 to be of type VirtualNode")
        end
        if any_get_result1_upvr.typeChecks then
            local var80 = true
            if Type_upvr.of(arg2) ~= Type_upvr.Element then
                var80 = true
                if typeof(arg2) ~= "boolean" then
                    if arg2 ~= nil then
                        var80 = false
                    else
                        var80 = true
                    end
                end
            end
            assert(var80, "Expected arg #2 to be of type Element, boolean, or nil")
        end
        local var81
        if arg1_10.currentElement == arg2 and arg3 == nil then
            return var81
        end
        if typeof(arg2) == "boolean" or arg2 == nil then
            var37_upvw(var81)
            return nil
        end
        if var81.currentElement.component ~= arg2.component then
            local var82 = var81
            local originalContext_6 = var82.originalContext
            if not originalContext_6 then
                originalContext_6 = var82.context
            end
            if not var82.wasUnmounted then
                var37_upvw(var82)
            end
            local mountVirtualNode_result1_2 = mountVirtualNode_upvw(arg2, var82.hostParent, var82.hostKey, originalContext_6, var82.parentLegacyContext)
            if mountVirtualNode_result1_2 ~= nil then
                mountVirtualNode_result1_2.depth = var82.depth
                mountVirtualNode_result1_2.parent = var82.parent
            end
            return mountVirtualNode_result1_2
        end
        local any_of_result1_3 = ElementKind_upvr.of(arg2)
        if any_of_result1_3 == ElementKind_upvr.Host then
            var81 = arg1.updateHostNode(var8_upvw, var81, arg2)
            -- KONSTANTWARNING: GOTO [277] #201
        end
        if any_of_result1_3 == ElementKind_upvr.Function then
            local var86 = var81
            updateVirtualNodeWithRenderResult_upvr(var86, var86.hostParent, arg2.component(arg2.props))
        elseif any_of_result1_3 == ElementKind_upvr.Stateful then
        elseif any_of_result1_3 == ElementKind_upvr.Portal then
            local var87 = var86
            local target_4 = arg2.props.target
            assert(arg1.isHostObject(target_4), "Expected target to be host object")
            if target_4 ~= var87.currentElement.props.target then
                local originalContext_4 = var87.originalContext
                if not originalContext_4 then
                    originalContext_4 = var87.context
                end
                if not var87.wasUnmounted then
                    var37_upvw(var87)
                end
                local mountVirtualNode_result1_4 = mountVirtualNode_upvw(arg2, var87.hostParent, var87.hostKey, originalContext_4, var87.parentLegacyContext)
                if mountVirtualNode_result1_4 ~= nil then
                    mountVirtualNode_result1_4.depth = var87.depth
                    mountVirtualNode_result1_4.parent = var87.parent
                end
            else
                updateChildren_upvr(var87, target_4, arg2.props[Children_upvr])
            end
        elseif any_of_result1_3 == ElementKind_upvr.Fragment then
            local var91 = var87
            updateChildren_upvr(var91, var91.hostParent, arg2.elements)
        else
            error("Unknown ElementKind %q":format(tostring(any_of_result1_3)), 2)
        end
        if not var86.instance:__update(arg2, arg3) then
            return var91
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var91.currentElement = arg2
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return var91
    end
    local var64_upvw = updateVirtualNode_upvw
    local function createVirtualNode_upvr(arg1_11, arg2, arg3, arg4, arg5) -- Line 297, Named "createVirtualNode"
        --[[ Upvalues[4]:
            [1]: any_get_result1_upvr (copied, readonly)
            [2]: internalAssert_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: Type_upvr (copied, readonly)
        ]]
        local var92
        if any_get_result1_upvr.internalTypeChecks then
            var92 = arg1.isHostObject(arg2)
            if not var92 then
                if arg2 ~= nil then
                    var92 = false
                else
                    var92 = true
                end
            end
            internalAssert_upvr(var92, "Expected arg #2 to be a host object")
            if typeof(arg4) ~= "table" then
                if arg4 ~= nil then
                else
                end
            end
            internalAssert_upvr(true, "Expected arg #4 to be of type table or nil")
            if typeof(arg5) ~= "table" then
                if arg5 ~= nil then
                else
                end
            end
            internalAssert_upvr(true, "Expected arg #5 to be of type table or nil")
        end
        if any_get_result1_upvr.typeChecks then
            if arg3 == nil then
            else
            end
            assert(true, "Expected arg #3 to be non-nil")
            if Type_upvr.of(arg1_11) ~= Type_upvr.Element then
                if typeof(arg1_11) ~= "boolean" then
                else
                end
            end
            assert(true, "Expected arg #1 to be of type Element or boolean")
        end
        local module = {
            [Type_upvr] = Type_upvr.VirtualNode;
        }
        module.currentElement = arg1_11
        module.depth = 1
        module.parent = nil
        module.children = {}
        module.hostParent = arg2
        module.hostKey = arg3
        module.updateChildrenCount = 0
        module.wasUnmounted = false
        module.legacyContext = arg5
        module.parentLegacyContext = arg5
        local var94 = arg4
        if not var94 then
            var94 = {}
        end
        module.context = var94
        module.originalContext = nil
        return module
    end
    local function _(arg1_12) -- Line 345, Named "mountFunctionVirtualNode"
        --[[ Upvalues[1]:
            [1]: updateVirtualNodeWithRenderResult_upvr (readonly)
        ]]
        local currentElement_2 = arg1_12.currentElement
        updateVirtualNodeWithRenderResult_upvr(arg1_12, arg1_12.hostParent, currentElement_2.component(currentElement_2.props))
    end
    local function _(arg1_13) -- Line 353, Named "mountPortalVirtualNode"
        --[[ Upvalues[3]:
            [1]: Children_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: updateChildren_upvr (readonly)
        ]]
        local currentElement_3 = arg1_13.currentElement
        local target_2 = currentElement_3.props.target
        assert(arg1.isHostObject(target_2), "Expected target to be host object")
        updateChildren_upvr(arg1_13, target_2, currentElement_3.props[Children_upvr])
    end
    local function _(arg1_14) -- Line 364, Named "mountFragmentVirtualNode"
        --[[ Upvalues[1]:
            [1]: updateChildren_upvr (readonly)
        ]]
        updateChildren_upvr(arg1_14, arg1_14.hostParent, arg1_14.currentElement.elements)
    end
    function mountVirtualNode_upvw(arg1_15, arg2, arg3, arg4, arg5) -- Line 375, Named "mountVirtualNode"
        --[[ Upvalues[10]:
            [1]: any_get_result1_upvr (copied, readonly)
            [2]: internalAssert_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: Type_upvr (copied, readonly)
            [5]: ElementKind_upvr (copied, readonly)
            [6]: createVirtualNode_upvr (readonly)
            [7]: var8_upvw (read and write)
            [8]: updateVirtualNodeWithRenderResult_upvr (readonly)
            [9]: Children_upvr (copied, readonly)
            [10]: updateChildren_upvr (readonly)
        ]]
        local var99
        if any_get_result1_upvr.internalTypeChecks then
            var99 = arg1.isHostObject(arg2)
            if not var99 then
                if arg2 ~= nil then
                    var99 = false
                else
                    var99 = true
                end
            end
            internalAssert_upvr(var99, "Expected arg #2 to be a host object")
            if typeof(arg5) ~= "table" then
                if arg5 ~= nil then
                else
                end
            end
            internalAssert_upvr(true, "Expected arg #5 to be of type table or nil")
        end
        if any_get_result1_upvr.typeChecks then
            if arg3 == nil then
            else
            end
            assert(true, "Expected arg #3 to be non-nil")
            if Type_upvr.of(arg1_15) ~= Type_upvr.Element then
                if typeof(arg1_15) ~= "boolean" then
                else
                end
            end
            assert(true, "Expected arg #1 to be of type Element or boolean")
        end
        if typeof(arg1_15) == "boolean" then
            return nil
        end
        local any_of_result1_2 = ElementKind_upvr.of(arg1_15)
        local createVirtualNode_upvr_result1 = createVirtualNode_upvr(arg1_15, arg2, arg3, arg4, arg5)
        if any_of_result1_2 == ElementKind_upvr.Host then
            arg1.mountHostNode(var8_upvw, createVirtualNode_upvr_result1)
            return createVirtualNode_upvr_result1
        end
        if any_of_result1_2 == ElementKind_upvr.Function then
            local currentElement_4 = createVirtualNode_upvr_result1.currentElement
            updateVirtualNodeWithRenderResult_upvr(createVirtualNode_upvr_result1, createVirtualNode_upvr_result1.hostParent, currentElement_4.component(currentElement_4.props))
            return createVirtualNode_upvr_result1
        end
        if any_of_result1_2 == ElementKind_upvr.Stateful then
            arg1_15.component:__mount(var8_upvw, createVirtualNode_upvr_result1)
            return createVirtualNode_upvr_result1
        end
        if any_of_result1_2 == ElementKind_upvr.Portal then
            local currentElement = createVirtualNode_upvr_result1.currentElement
            local target_3 = currentElement.props.target
            assert(arg1.isHostObject(target_3), "Expected target to be host object")
            updateChildren_upvr(createVirtualNode_upvr_result1, target_3, currentElement.props[Children_upvr])
            return createVirtualNode_upvr_result1
        end
        if any_of_result1_2 == ElementKind_upvr.Fragment then
            updateChildren_upvr(createVirtualNode_upvr_result1, createVirtualNode_upvr_result1.hostParent, createVirtualNode_upvr_result1.currentElement.elements)
            return createVirtualNode_upvr_result1
        end
        error("Unknown ElementKind %q":format(tostring(any_of_result1_2)), 2)
        return createVirtualNode_upvr_result1
    end
    local var98_upvw = mountVirtualNode_upvw
    var8_upvw = {
        mountVirtualTree = function(arg1_16, arg2, arg3) -- Line 424, Named "mountVirtualTree"
            --[[ Upvalues[5]:
                [1]: any_get_result1_upvr (copied, readonly)
                [2]: Type_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: any_named_result1_upvr (copied, readonly)
                [5]: var98_upvw (read and write)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local var105 = any_get_result1_upvr
            if var105.typeChecks then
                if Type_upvr.of(arg1_16) ~= Type_upvr.Element then
                    var105 = false
                else
                    var105 = true
                end
                assert(var105, "Expected arg #1 to be of type Element")
                var105 = arg1.isHostObject(arg2)
                if not var105 then
                    if arg2 ~= nil then
                        var105 = false
                    else
                        var105 = true
                    end
                end
                assert(var105, "Expected arg #2 to be a host object")
            end
            if arg3 == nil then
            end
            local module_2 = {
                [Type_upvr] = Type_upvr.VirtualTree;
                [any_named_result1_upvr] = {
                    rootNode = nil;
                    mounted = true;
                };
            }
            module_2[any_named_result1_upvr].rootNode = var98_upvw(arg1_16, arg2, "RoactTree")
            return module_2
        end;
        unmountVirtualTree = function(arg1_17) -- Line 455, Named "unmountVirtualTree"
            --[[ Upvalues[4]:
                [1]: any_named_result1_upvr (copied, readonly)
                [2]: any_get_result1_upvr (copied, readonly)
                [3]: Type_upvr (copied, readonly)
                [4]: var37_upvw (read and write)
            ]]
            local var108 = arg1_17[any_named_result1_upvr]
            local var109 = any_get_result1_upvr
            if var109.typeChecks then
                if Type_upvr.of(arg1_17) ~= Type_upvr.VirtualTree then
                    var109 = false
                else
                    var109 = true
                end
                assert(var109, "Expected arg #1 to be a Roact handle")
                var109 = var108.mounted
                assert(var109, "Cannot unmounted a Roact tree that has already been unmounted")
            end
            var108.mounted = false
            if var108.rootNode ~= nil then
                var109 = var108.rootNode
                var37_upvw(var109)
            end
        end;
        updateVirtualTree = function(arg1_18, arg2) -- Line 473, Named "updateVirtualTree"
            --[[ Upvalues[4]:
                [1]: any_named_result1_upvr (copied, readonly)
                [2]: any_get_result1_upvr (copied, readonly)
                [3]: Type_upvr (copied, readonly)
                [4]: var64_upvw (read and write)
            ]]
            local var110 = arg1_18[any_named_result1_upvr]
            local var111 = any_get_result1_upvr
            if var111.typeChecks then
                if Type_upvr.of(arg1_18) ~= Type_upvr.VirtualTree then
                    var111 = false
                else
                    var111 = true
                end
                assert(var111, "Expected arg #1 to be a Roact handle")
                if Type_upvr.of(arg2) ~= Type_upvr.Element then
                    var111 = false
                else
                    var111 = true
                end
                assert(var111, "Expected arg #2 to be a Roact Element")
            end
            var110.rootNode = var64_upvw(var110.rootNode, arg2)
            return arg1_18
        end;
        createVirtualNode = createVirtualNode_upvr;
        mountVirtualNode = var98_upvw;
        unmountVirtualNode = var37_upvw;
        updateVirtualNode = var64_upvw;
        updateVirtualNodeWithChildren = function(arg1_4, arg2, arg3) -- Line 143, Named "updateVirtualNodeWithChildren"
            --[[ Upvalues[1]:
                [1]: updateChildren_upvr (readonly)
            ]]
            updateChildren_upvr(arg1_4, arg2, arg3)
        end;
        updateVirtualNodeWithRenderResult = updateVirtualNodeWithRenderResult_upvr;
    }
    return var8_upvw
end
ModuleScript createReconciler.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createReconciler.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:01
-- Luau version 6, Types version 3
-- Time taken: 0.019387 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.createElement)
    local createFragment_upvr = require(script.Parent.createFragment)
    local createSpy_upvr = require(script.Parent.createSpy)
    local NoopRenderer_upvr = require(script.Parent.NoopRenderer)
    local Type_upvr = require(script.Parent.Type)
    local createReconciler_upvr = require(script.Parent.createReconciler)
    local var7_result1_4_upvr = createReconciler_upvr(NoopRenderer_upvr)
    describe("tree operations", function() -- Line 14
        --[[ Upvalues[2]:
            [1]: var7_result1_4_upvr (readonly)
            [2]: createElement_upvr (readonly)
        ]]
        it("should mount and unmount", function() -- Line 15
            --[[ Upvalues[2]:
                [1]: var7_result1_4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
            ]]
            local any_mountVirtualTree_result1_2 = var7_result1_4_upvr.mountVirtualTree(createElement_upvr("StringValue"))
            expect(any_mountVirtualTree_result1_2).to.be.ok()
            var7_result1_4_upvr.unmountVirtualTree(any_mountVirtualTree_result1_2)
        end)
        it("should mount, update, and unmount", function() -- Line 23
            --[[ Upvalues[2]:
                [1]: var7_result1_4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
            ]]
            local any_mountVirtualTree_result1 = var7_result1_4_upvr.mountVirtualTree(createElement_upvr("StringValue"))
            expect(any_mountVirtualTree_result1).to.be.ok()
            var7_result1_4_upvr.updateVirtualTree(any_mountVirtualTree_result1, createElement_upvr("StringValue"))
            var7_result1_4_upvr.unmountVirtualTree(any_mountVirtualTree_result1)
        end)
    end)
    describe("booleans", function() -- Line 34
        --[[ Upvalues[2]:
            [1]: var7_result1_4_upvr (readonly)
            [2]: createElement_upvr (readonly)
        ]]
        it("should mount booleans as nil", function() -- Line 35
            --[[ Upvalues[1]:
                [1]: var7_result1_4_upvr (copied, readonly)
            ]]
            expect(var7_result1_4_upvr.mountVirtualNode(false, nil, "test")).to.equal(nil)
        end)
        it("should unmount nodes if they are updated to a boolean value", function() -- Line 40
            --[[ Upvalues[2]:
                [1]: var7_result1_4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
            ]]
            local any_mountVirtualNode_result1_4 = var7_result1_4_upvr.mountVirtualNode(createElement_upvr("StringValue"), nil, "test")
            expect(any_mountVirtualNode_result1_4).to.be.ok()
            expect(var7_result1_4_upvr.updateVirtualNode(any_mountVirtualNode_result1_4, true)).to.equal(nil)
        end)
    end)
    describe("invalid elements", function() -- Line 51
        --[[ Upvalues[2]:
            [1]: var7_result1_4_upvr (readonly)
            [2]: createElement_upvr (readonly)
        ]]
        it("should throw errors when attempting to mount invalid elements", function() -- Line 52
            --[[ Upvalues[2]:
                [1]: var7_result1_4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
            ]]
            local function var20_upvr() -- Line 54
                return "Hello"
            end
            local function var21_upvr() -- Line 57
                return 1
            end
            local function var22_upvr() -- Line 60
                return function() -- Line 61
                end
            end
            local function var24_upvr() -- Line 63
                return {}
            end
            expect(function() -- Line 70
                --[[ Upvalues[3]:
                    [1]: var7_result1_4_upvr (copied, readonly)
                    [2]: createElement_upvr (copied, readonly)
                    [3]: var20_upvr (readonly)
                ]]
                var7_result1_4_upvr.mountVirtualNode(createElement_upvr(var20_upvr), nil, "Some Key")
            end).to.throw()
            expect(function() -- Line 74
                --[[ Upvalues[3]:
                    [1]: var7_result1_4_upvr (copied, readonly)
                    [2]: createElement_upvr (copied, readonly)
                    [3]: var21_upvr (readonly)
                ]]
                var7_result1_4_upvr.mountVirtualNode(createElement_upvr(var21_upvr), nil, "Some Key")
            end).to.throw()
            expect(function() -- Line 78
                --[[ Upvalues[3]:
                    [1]: var7_result1_4_upvr (copied, readonly)
                    [2]: createElement_upvr (copied, readonly)
                    [3]: var22_upvr (readonly)
                ]]
                var7_result1_4_upvr.mountVirtualNode(createElement_upvr(var22_upvr), nil, "Some Key")
            end).to.throw()
            expect(function() -- Line 82
                --[[ Upvalues[3]:
                    [1]: var7_result1_4_upvr (copied, readonly)
                    [2]: createElement_upvr (copied, readonly)
                    [3]: var24_upvr (readonly)
                ]]
                var7_result1_4_upvr.mountVirtualNode(createElement_upvr(var24_upvr), nil, "Some Key")
            end).to.throw()
        end)
    end)
    local assign_upvr = require(script.Parent.assign)
    describe("Host components", function() -- Line 88
        --[[ Upvalues[6]:
            [1]: createSpy_upvr (readonly)
            [2]: NoopRenderer_upvr (readonly)
            [3]: assign_upvr (readonly)
            [4]: createReconciler_upvr (readonly)
            [5]: createElement_upvr (readonly)
            [6]: Type_upvr (readonly)
        ]]
        it("should invoke the renderer to mount host nodes", function() -- Line 89
            --[[ Upvalues[6]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: NoopRenderer_upvr (copied, readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: createReconciler_upvr (copied, readonly)
                [5]: createElement_upvr (copied, readonly)
                [6]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_8 = createSpy_upvr(NoopRenderer_upvr.mountHostNode)
            local var7_result1_2 = createReconciler_upvr(assign_upvr({}, NoopRenderer_upvr, {
                mountHostNode = createSpy_upvr_result1_8.value;
            }))
            local any_mountVirtualNode_result1 = var7_result1_2.mountVirtualNode(createElement_upvr("StringValue"), nil, "Some Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1)).to.equal(Type_upvr.VirtualNode)
            expect(createSpy_upvr_result1_8.callCount).to.equal(1)
            local any_captureValues_result1_7 = createSpy_upvr_result1_8:captureValues("reconciler", "node")
            expect(any_captureValues_result1_7.reconciler).to.equal(var7_result1_2)
            expect(any_captureValues_result1_7.node).to.equal(any_mountVirtualNode_result1)
        end)
        it("should invoke the renderer to update host nodes", function() -- Line 113
            --[[ Upvalues[6]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: NoopRenderer_upvr (copied, readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: createReconciler_upvr (copied, readonly)
                [5]: createElement_upvr (copied, readonly)
                [6]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_4 = createSpy_upvr(NoopRenderer_upvr.updateHostNode)
            local var7_result1_3 = createReconciler_upvr(assign_upvr({}, NoopRenderer_upvr, {
                mountHostNode = NoopRenderer_upvr.mountHostNode;
                updateHostNode = createSpy_upvr_result1_4.value;
            }))
            local any_mountVirtualNode_result1_6 = var7_result1_3.mountVirtualNode(createElement_upvr("StringValue"), nil, "Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1_6)).to.equal(Type_upvr.VirtualNode)
            local var2_result1 = createElement_upvr("StringValue")
            expect(var7_result1_3.updateVirtualNode(any_mountVirtualNode_result1_6, var2_result1)).to.equal(any_mountVirtualNode_result1_6)
            expect(createSpy_upvr_result1_4.callCount).to.equal(1)
            local any_captureValues_result1_8 = createSpy_upvr_result1_4:captureValues("reconciler", "node", "newElement")
            expect(any_captureValues_result1_8.reconciler).to.equal(var7_result1_3)
            expect(any_captureValues_result1_8.node).to.equal(any_mountVirtualNode_result1_6)
            expect(any_captureValues_result1_8.newElement).to.equal(var2_result1)
        end)
        it("should invoke the renderer to unmount host nodes", function() -- Line 144
            --[[ Upvalues[6]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: NoopRenderer_upvr (copied, readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: createReconciler_upvr (copied, readonly)
                [5]: createElement_upvr (copied, readonly)
                [6]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_3 = createSpy_upvr(NoopRenderer_upvr.unmountHostNode)
            local var7_result1 = createReconciler_upvr(assign_upvr({}, NoopRenderer_upvr, {
                mountHostNode = NoopRenderer_upvr.mountHostNode;
                unmountHostNode = createSpy_upvr_result1_3.value;
            }))
            local any_mountVirtualNode_result1_2 = var7_result1.mountVirtualNode(createElement_upvr("StringValue"), nil, "Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1_2)).to.equal(Type_upvr.VirtualNode)
            var7_result1.unmountVirtualNode(any_mountVirtualNode_result1_2)
            expect(createSpy_upvr_result1_3.callCount).to.equal(1)
            local any_captureValues_result1 = createSpy_upvr_result1_3:captureValues("reconciler", "node")
            expect(any_captureValues_result1.reconciler).to.equal(var7_result1)
            expect(any_captureValues_result1.node).to.equal(any_mountVirtualNode_result1_2)
        end)
    end)
    describe("Function components", function() -- Line 172
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var7_result1_4_upvr (readonly)
            [4]: Type_upvr (readonly)
            [5]: createFragment_upvr (readonly)
        ]]
        it("should mount and unmount function components", function() -- Line 173
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var7_result1_4_upvr (copied, readonly)
                [4]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_2 = createSpy_upvr(function(arg1) -- Line 174
                return nil
            end)
            local any_mountVirtualNode_result1_9 = var7_result1_4_upvr.mountVirtualNode(createElement_upvr(createSpy_upvr_result1_2.value, {
                someValue = 5;
            }), nil, "A Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1_9)).to.equal(Type_upvr.VirtualNode)
            expect(createSpy_upvr_result1_2.callCount).to.equal(1)
            local any_captureValues_result1_9 = createSpy_upvr_result1_2:captureValues("props")
            expect(any_captureValues_result1_9.props).to.be.a("table")
            expect(any_captureValues_result1_9.props.someValue).to.equal(5)
            var7_result1_4_upvr.unmountVirtualNode(any_mountVirtualNode_result1_9)
            expect(createSpy_upvr_result1_2.callCount).to.equal(1)
        end)
        it("should mount single children of function components", function() -- Line 199
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var7_result1_4_upvr (copied, readonly)
                [4]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_upvr = createSpy_upvr(function(arg1) -- Line 200
                return nil
            end)
            local var4_result1 = createSpy_upvr(function(arg1) -- Line 204
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: createSpy_upvr_result1_upvr (readonly)
                ]]
                return createElement_upvr(createSpy_upvr_result1_upvr.value, {
                    value = arg1.value + 1;
                })
            end)
            local any_mountVirtualNode_result1_7 = var7_result1_4_upvr.mountVirtualNode(createElement_upvr(var4_result1.value, {
                value = 13;
            }), nil, "A Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1_7)).to.equal(Type_upvr.VirtualNode)
            expect(var4_result1.callCount).to.equal(1)
            expect(createSpy_upvr_result1_upvr.callCount).to.equal(1)
            local any_captureValues_result1_2 = var4_result1:captureValues("props")
            local any_captureValues_result1_4 = createSpy_upvr_result1_upvr:captureValues("props")
            expect(any_captureValues_result1_2.props).to.be.a("table")
            expect(any_captureValues_result1_2.props.value).to.equal(13)
            expect(any_captureValues_result1_4.props).to.be.a("table")
            expect(any_captureValues_result1_4.props.value).to.equal(14)
            var7_result1_4_upvr.unmountVirtualNode(any_mountVirtualNode_result1_7)
            expect(var4_result1.callCount).to.equal(1)
            expect(createSpy_upvr_result1_upvr.callCount).to.equal(1)
        end)
        it("should mount fragments returned by function components", function() -- Line 237
            --[[ Upvalues[5]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createFragment_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var7_result1_4_upvr (copied, readonly)
                [5]: Type_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_6_upvr = createSpy_upvr(function(arg1) -- Line 238
                return nil
            end)
            local createSpy_upvr_result1_7_upvr = createSpy_upvr(function(arg1) -- Line 242
                return nil
            end)
            local createSpy_upvr_result1 = createSpy_upvr(function(arg1) -- Line 246
                --[[ Upvalues[4]:
                    [1]: createFragment_upvr (copied, readonly)
                    [2]: createElement_upvr (copied, readonly)
                    [3]: createSpy_upvr_result1_6_upvr (readonly)
                    [4]: createSpy_upvr_result1_7_upvr (readonly)
                ]]
                return createFragment_upvr({
                    A = createElement_upvr(createSpy_upvr_result1_6_upvr.value, {
                        value = arg1.value + 1;
                    });
                    B = createElement_upvr(createSpy_upvr_result1_7_upvr.value, {
                        value = arg1.value + 5;
                    });
                })
            end)
            local any_mountVirtualNode_result1_8 = var7_result1_4_upvr.mountVirtualNode(createElement_upvr(createSpy_upvr_result1.value, {
                value = 17;
            }), nil, "A Key")
            expect(Type_upvr.of(any_mountVirtualNode_result1_8)).to.equal(Type_upvr.VirtualNode)
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            expect(createSpy_upvr_result1_6_upvr.callCount).to.equal(1)
            expect(createSpy_upvr_result1_7_upvr.callCount).to.equal(1)
            local any_captureValues_result1_3 = createSpy_upvr_result1:captureValues("props")
            local any_captureValues_result1_6 = createSpy_upvr_result1_6_upvr:captureValues("props")
            local any_captureValues_result1_5 = createSpy_upvr_result1_7_upvr:captureValues("props")
            expect(any_captureValues_result1_3.props).to.be.a("table")
            expect(any_captureValues_result1_3.props.value).to.equal(17)
            expect(any_captureValues_result1_6.props).to.be.a("table")
            expect(any_captureValues_result1_6.props.value).to.equal(18)
            expect(any_captureValues_result1_5.props).to.be.a("table")
            expect(any_captureValues_result1_5.props.value).to.equal(22)
            var7_result1_4_upvr.unmountVirtualNode(any_mountVirtualNode_result1_8)
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            expect(createSpy_upvr_result1_6_upvr.callCount).to.equal(1)
            expect(createSpy_upvr_result1_7_upvr.callCount).to.equal(1)
        end)
    end)
    local ElementKind_upvr = require(script.Parent.ElementKind)
    describe("Fragments", function() -- Line 291
        --[[ Upvalues[5]:
            [1]: createFragment_upvr (readonly)
            [2]: var7_result1_4_upvr (readonly)
            [3]: ElementKind_upvr (readonly)
            [4]: createSpy_upvr (readonly)
            [5]: createElement_upvr (readonly)
        ]]
        it("should mount fragments", function() -- Line 292
            --[[ Upvalues[3]:
                [1]: createFragment_upvr (copied, readonly)
                [2]: var7_result1_4_upvr (copied, readonly)
                [3]: ElementKind_upvr (copied, readonly)
            ]]
            local any_mountVirtualNode_result1_3 = var7_result1_4_upvr.mountVirtualNode(createFragment_upvr({}), nil, "test")
            expect(any_mountVirtualNode_result1_3).to.be.ok()
            expect(ElementKind_upvr.of(any_mountVirtualNode_result1_3.currentElement)).to.equal(ElementKind_upvr.Fragment)
        end)
        it("should mount an empty fragment", function() -- Line 300
            --[[ Upvalues[2]:
                [1]: createFragment_upvr (copied, readonly)
                [2]: var7_result1_4_upvr (copied, readonly)
            ]]
            local any_mountVirtualNode_result1_5 = var7_result1_4_upvr.mountVirtualNode(createFragment_upvr({}), nil, "test")
            expect(any_mountVirtualNode_result1_5).to.be.ok()
            expect(next(any_mountVirtualNode_result1_5.children)).to.never.be.ok()
        end)
        it("should mount all fragment's children", function() -- Line 310
            --[[ Upvalues[4]:
                [1]: createSpy_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: createFragment_upvr (copied, readonly)
                [4]: var7_result1_4_upvr (copied, readonly)
            ]]
            local function var91(arg1) -- Line 311
                return nil
            end
            local createSpy_upvr_result1_5 = createSpy_upvr(var91)
            var91 = {}
            local var93 = var91
            for i = 1, 5 do
                var93["key"..tostring(i)] = createElement_upvr(createSpy_upvr_result1_5.value, {})
            end
            expect(var7_result1_4_upvr.mountVirtualNode(createFragment_upvr(var93), nil, "test")).to.be.ok()
            expect(createSpy_upvr_result1_5.callCount).to.equal(5)
        end)
    end)
end
ModuleScript createReconcilerCompat ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createReconcilerCompat
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:04
-- Luau version 6, Types version 3
-- Time taken: 0.001381 seconds

local Logging_upvr = require(script.Parent.Logging)
return function(arg1) -- Line 23, Named "createReconcilerCompat"
    --[[ Upvalues[1]:
        [1]: Logging_upvr (readonly)
    ]]
    return {
        reify = function(...) -- Line 26, Named "reify"
            --[[ Upvalues[2]:
                [1]: Logging_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            Logging_upvr.warnOnce("Roact.reify has been renamed to Roact.mount and will be removed in a future release.\nCheck the call to Roact.reify at:\n")
            return arg1.mountVirtualTree(...)
        end;
        teardown = function(...) -- Line 32, Named "teardown"
            --[[ Upvalues[2]:
                [1]: Logging_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            Logging_upvr.warnOnce("Roact.teardown has been renamed to Roact.unmount and will be removed in a future release.\nCheck the call to Roact.teardown at:\n")
            return arg1.unmountVirtualTree(...)
        end;
        reconcile = function(...) -- Line 38, Named "reconcile"
            --[[ Upvalues[2]:
                [1]: Logging_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            Logging_upvr.warnOnce("Roact.reconcile has been renamed to Roact.update and will be removed in a future release.\nCheck the call to Roact.reconcile at:\n")
            return arg1.updateVirtualTree(...)
        end;
    }
end
ModuleScript createReconcilerCompat.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createReconcilerCompat.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:05
-- Luau version 6, Types version 3
-- Time taken: 0.005003 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.createElement)
    local Logging_upvr = require(script.Parent.Logging)
    local var4_upvr = require(script.Parent.createReconciler)(require(script.Parent.NoopRenderer))
    local var5_upvr = require(script.Parent.createReconcilerCompat)(var4_upvr)
    it("reify should only warn once per call site", function() -- Line 12
        --[[ Upvalues[4]:
            [1]: Logging_upvr (readonly)
            [2]: var5_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var4_upvr (readonly)
        ]]
        local any_capture_result1_4 = Logging_upvr.capture(function() -- Line 13
            --[[ Upvalues[3]:
                [1]: var5_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            var4_upvr.unmountVirtualTree(var5_upvr.reify(createElement_upvr("StringValue")))
            var4_upvr.unmountVirtualTree(var5_upvr.reify(createElement_upvr("StringValue")))
        end)
        expect(#any_capture_result1_4.warnings).to.equal(1)
        expect(any_capture_result1_4.warnings[1]:find("reify")).to.be.ok()
        local any_capture_result1_2 = Logging_upvr.capture(function() -- Line 25
            --[[ Upvalues[3]:
                [1]: var5_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            var4_upvr.unmountVirtualTree(var5_upvr.reify(createElement_upvr("StringValue")))
        end)
        expect(#any_capture_result1_2.warnings).to.equal(1)
        expect(any_capture_result1_2.warnings[1]:find("reify")).to.be.ok()
    end)
    it("teardown should only warn once per call site", function() -- Line 35
        --[[ Upvalues[4]:
            [1]: Logging_upvr (readonly)
            [2]: var4_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var5_upvr (readonly)
        ]]
        local any_capture_result1_3 = Logging_upvr.capture(function() -- Line 36
            --[[ Upvalues[3]:
                [1]: var4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            var5_upvr.teardown(var4_upvr.mountVirtualTree(createElement_upvr("StringValue")))
            var5_upvr.teardown(var4_upvr.mountVirtualTree(createElement_upvr("StringValue")))
        end)
        expect(#any_capture_result1_3.warnings).to.equal(1)
        expect(any_capture_result1_3.warnings[1]:find("teardown")).to.be.ok()
        local any_capture_result1 = Logging_upvr.capture(function() -- Line 48
            --[[ Upvalues[3]:
                [1]: var4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            var5_upvr.teardown(var4_upvr.mountVirtualTree(createElement_upvr("StringValue")))
        end)
        expect(#any_capture_result1.warnings).to.equal(1)
        expect(any_capture_result1.warnings[1]:find("teardown")).to.be.ok()
    end)
    it("update should only warn once per call site", function() -- Line 58
        --[[ Upvalues[4]:
            [1]: Logging_upvr (readonly)
            [2]: var4_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var5_upvr (readonly)
        ]]
        local any_capture_result1_5 = Logging_upvr.capture(function() -- Line 59
            --[[ Upvalues[3]:
                [1]: var4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            for _ = 1, 2 do
                local any_mountVirtualTree_result1_2 = var4_upvr.mountVirtualTree(createElement_upvr("StringValue"))
                var5_upvr.reconcile(any_mountVirtualTree_result1_2, createElement_upvr("StringValue"))
                var4_upvr.unmountVirtualTree(any_mountVirtualTree_result1_2)
            end
        end)
        expect(#any_capture_result1_5.warnings).to.equal(1)
        expect(any_capture_result1_5.warnings[1]:find("reconcile")).to.be.ok()
        local any_capture_result1_6 = Logging_upvr.capture(function() -- Line 72
            --[[ Upvalues[3]:
                [1]: var4_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            local any_mountVirtualTree_result1 = var4_upvr.mountVirtualTree(createElement_upvr("StringValue"))
            var5_upvr.reconcile(any_mountVirtualTree_result1, createElement_upvr("StringValue"))
            var4_upvr.unmountVirtualTree(any_mountVirtualTree_result1)
        end)
        expect(#any_capture_result1_6.warnings).to.equal(1)
        expect(any_capture_result1_6.warnings[1]:find("reconcile")).to.be.ok()
    end)
end
ModuleScript createRef ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createRef
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:07
-- Luau version 6, Types version 3
-- Time taken: 0.001563 seconds

local Binding_upvr = require(script.Parent.Binding)
return function() -- Line 7, Named "createRef"
    --[[ Upvalues[1]:
        [1]: Binding_upvr (readonly)
    ]]
    local any_create_result1_upvr, any_create_result2 = Binding_upvr.create(nil)
    local module = {}
    setmetatable(module, {
        __index = function(arg1, arg2) -- Line 16, Named "__index"
            --[[ Upvalues[1]:
                [1]: any_create_result1_upvr (readonly)
            ]]
            if arg2 == "current" then
                return any_create_result1_upvr:getValue()
            end
            return any_create_result1_upvr[arg2]
        end;
        __newindex = function(arg1, arg2, arg3) -- Line 23, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: any_create_result1_upvr (readonly)
            ]]
            if arg2 == "current" then
                error("Cannot assign to the 'current' property of refs", 2)
            end
            any_create_result1_upvr[arg2] = arg3
        end;
        __tostring = function(arg1) -- Line 30, Named "__tostring"
            --[[ Upvalues[1]:
                [1]: any_create_result1_upvr (readonly)
            ]]
            return "RoactRef(%s)":format(tostring(any_create_result1_upvr:getValue()))
        end;
    })
    return module
end
ModuleScript createRef.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createRef.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:08
-- Luau version 6, Types version 3
-- Time taken: 0.003901 seconds

return function() -- Line 1
    local Binding_upvr = require(script.Parent.Binding)
    local createRef_upvr = require(script.Parent.createRef)
    local Type_upvr = require(script.Parent.Type)
    it("should create refs, which are specialized bindings", function() -- Line 7
        --[[ Upvalues[2]:
            [1]: createRef_upvr (readonly)
            [2]: Type_upvr (readonly)
        ]]
        local createRef_upvr_result1 = createRef_upvr()
        expect(Type_upvr.of(createRef_upvr_result1)).to.equal(Type_upvr.Binding)
        expect(createRef_upvr_result1.current).to.equal(nil)
    end)
    it("should have a 'current' field that is the same as the internal binding's value", function() -- Line 14
        --[[ Upvalues[2]:
            [1]: createRef_upvr (readonly)
            [2]: Binding_upvr (readonly)
        ]]
        local var3_result1 = createRef_upvr()
        expect(var3_result1.current).to.equal(nil)
        Binding_upvr.update(var3_result1, 10)
        expect(var3_result1.current).to.equal(10)
    end)
    it("should support tostring on refs", function() -- Line 23
        --[[ Upvalues[2]:
            [1]: createRef_upvr (readonly)
            [2]: Binding_upvr (readonly)
        ]]
        local createRef_upvr_result1_4 = createRef_upvr()
        expect(createRef_upvr_result1_4.current).to.equal(nil)
        expect(tostring(createRef_upvr_result1_4)).to.equal("RoactRef(nil)")
        Binding_upvr.update(createRef_upvr_result1_4, 10)
        expect(tostring(createRef_upvr_result1_4)).to.equal("RoactRef(10)")
    end)
    it("should not allow assignments to the 'current' field", function() -- Line 33
        --[[ Upvalues[2]:
            [1]: createRef_upvr (readonly)
            [2]: Binding_upvr (readonly)
        ]]
        local createRef_upvr_result1_3_upvr = createRef_upvr()
        expect(createRef_upvr_result1_3_upvr.current).to.equal(nil)
        Binding_upvr.update(createRef_upvr_result1_3_upvr, 99)
        expect(createRef_upvr_result1_3_upvr.current).to.equal(99)
        expect(function() -- Line 41
            --[[ Upvalues[1]:
                [1]: createRef_upvr_result1_3_upvr (readonly)
            ]]
            createRef_upvr_result1_3_upvr.current = 77
        end).to.throw()
        expect(createRef_upvr_result1_3_upvr.current).to.equal(99)
    end)
    it("should return the same thing from getValue as its current field", function() -- Line 48
        --[[ Upvalues[2]:
            [1]: createRef_upvr (readonly)
            [2]: Binding_upvr (readonly)
        ]]
        local createRef_upvr_result1_2 = createRef_upvr()
        Binding_upvr.update(createRef_upvr_result1_2, 10)
        expect(createRef_upvr_result1_2:getValue()).to.equal(10)
        expect(createRef_upvr_result1_2:getValue()).to.equal(createRef_upvr_result1_2.current)
    end)
end
ModuleScript createSignal ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createSignal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:10
-- Luau version 6, Types version 3
-- Time taken: 0.003782 seconds

return function() -- Line 15, Named "createSignal"
    local tbl_upvr_2 = {}
    local tbl_upvr = {}
    local var3_upvw = false
    return {
        subscribe = function(arg1, arg2) -- Line 20, Named "subscribe"
            --[[ Upvalues[3]:
                [1]: var3_upvw (read and write)
                [2]: tbl_upvr_2 (readonly)
                [3]: tbl_upvr (readonly)
            ]]
            local disconnect
            if typeof(arg2) ~= "function" then
                disconnect = false
            else
                disconnect = true
            end
            assert(disconnect, "Can only subscribe to signals with a function.")
            local tbl_upvr_4 = {}
            tbl_upvr_4.callback = arg2
            disconnect = false
            tbl_upvr_4.disconnected = disconnect
            disconnect = var3_upvw
            if disconnect then
                disconnect = tbl_upvr_2[arg2]
                if not disconnect then
                    disconnect = tbl_upvr
                    disconnect[arg2] = tbl_upvr_4
                end
            end
            disconnect = tbl_upvr_2
            disconnect[arg2] = tbl_upvr_4
            function disconnect() -- Line 36
                --[[ Upvalues[4]:
                    [1]: tbl_upvr_4 (readonly)
                    [2]: tbl_upvr_2 (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: tbl_upvr (copied, readonly)
                ]]
                assert(not tbl_upvr_4.disconnected, "Listeners can only be disconnected once.")
                tbl_upvr_4.disconnected = true
                tbl_upvr_2[arg2] = nil
                tbl_upvr[arg2] = nil
            end
            return disconnect
        end;
        fire = function(arg1, ...) -- Line 47, Named "fire"
            --[[ Upvalues[3]:
                [1]: var3_upvw (read and write)
                [2]: tbl_upvr_2 (readonly)
                [3]: tbl_upvr (readonly)
            ]]
            var3_upvw = true
            for i, v in pairs(tbl_upvr_2) do
                if not v.disconnected and not tbl_upvr[i] then
                    i(...)
                end
            end
            var3_upvw = false
            for i_2, _ in pairs(tbl_upvr) do
                tbl_upvr[i_2] = nil
            end
        end;
    }
end
ModuleScript createSignal.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createSignal.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:12
-- Luau version 6, Types version 3
-- Time taken: 0.006499 seconds

return function() -- Line 1
    local createSignal_upvr = require(script.Parent.createSignal)
    local createSpy_upvr = require(script.Parent.createSpy)
    it("should fire subscribers and disconnect them", function() -- Line 6
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        local createSignal_upvr_result1 = createSignal_upvr()
        local createSpy_upvr_result1 = createSpy_upvr()
        expect(createSpy_upvr_result1.callCount).to.equal(0)
        local tbl_3 = {}
        createSignal_upvr_result1:fire(1, tbl_3, "hello")
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        createSpy_upvr_result1:assertCalledWith(1, tbl_3, "hello")
        createSignal_upvr_result1:subscribe(createSpy_upvr_result1.value)()
        createSignal_upvr_result1:fire()
        expect(createSpy_upvr_result1.callCount).to.equal(1)
    end)
    it("should handle multiple subscribers", function() -- Line 29
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        local createSignal_upvr_result1_2 = createSignal_upvr()
        local var3_result1_2 = createSpy_upvr()
        local createSpy_upvr_result1_3 = createSpy_upvr()
        expect(var3_result1_2.callCount).to.equal(0)
        expect(createSpy_upvr_result1_3.callCount).to.equal(0)
        local tbl_4 = {}
        createSignal_upvr_result1_2:fire(tbl_4, 67)
        expect(var3_result1_2.callCount).to.equal(1)
        var3_result1_2:assertCalledWith(tbl_4, 67)
        expect(createSpy_upvr_result1_3.callCount).to.equal(1)
        createSpy_upvr_result1_3:assertCalledWith(tbl_4, 67)
        createSignal_upvr_result1_2:subscribe(var3_result1_2.value)()
        createSignal_upvr_result1_2:fire(67, tbl_4)
        expect(var3_result1_2.callCount).to.equal(1)
        expect(createSpy_upvr_result1_3.callCount).to.equal(2)
        createSpy_upvr_result1_3:assertCalledWith(67, tbl_4)
        createSignal_upvr_result1_2:subscribe(createSpy_upvr_result1_3.value)()
    end)
    it("should stop firing a connection if disconnected mid-fire", function() -- Line 63
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        local createSignal_upvr_result1_3 = createSignal_upvr()
        local var16_upvw
        local createSpy_upvr_result1_2 = createSpy_upvr(function() -- Line 73
            --[[ Upvalues[1]:
                [1]: var16_upvw (read and write)
            ]]
            var16_upvw()
        end)
        local var19_upvw
        local var3_result1_4 = createSpy_upvr(function() -- Line 77
            --[[ Upvalues[1]:
                [1]: var19_upvw (read and write)
            ]]
            var19_upvw()
        end)
        var19_upvw = createSignal_upvr_result1_3:subscribe(createSpy_upvr_result1_2.value)
        var16_upvw = createSignal_upvr_result1_3:subscribe(var3_result1_4.value)
        createSignal_upvr_result1_3:fire()
        expect(createSpy_upvr_result1_2.callCount + var3_result1_4.callCount).to.equal(1)
    end)
    it("should allow adding listener in the middle of firing", function() -- Line 90
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        local var2_result1_upvr = createSignal_upvr()
        local var23_upvw
        local var3_result1_3_upvr = createSpy_upvr()
        expect(var3_result1_3_upvr.callCount).to.equal(0)
        local tbl_2 = {}
        var2_result1_upvr:fire(tbl_2, 67)
        expect(var3_result1_3_upvr.callCount).to.equal(0)
        var2_result1_upvr:fire(67, tbl_2)
        expect(var3_result1_3_upvr.callCount).to.equal(1)
        var3_result1_3_upvr:assertCalledWith(67, tbl_2)
        var23_upvw()
        var2_result1_upvr:subscribe(function(arg1, arg2) -- Line 95
            --[[ Upvalues[3]:
                [1]: var23_upvw (read and write)
                [2]: var2_result1_upvr (readonly)
                [3]: var3_result1_3_upvr (readonly)
            ]]
            var23_upvw = var2_result1_upvr:subscribe(var3_result1_3_upvr.value)
        end)()
        var2_result1_upvr:fire(tbl_2)
        expect(var3_result1_3_upvr.callCount).to.equal(1)
    end)
    it("should have one connection instance when add the same listener multiple times", function() -- Line 122
        --[[ Upvalues[2]:
            [1]: createSignal_upvr (readonly)
            [2]: createSpy_upvr (readonly)
        ]]
        local var2_result1 = createSignal_upvr()
        local var3_result1 = createSpy_upvr()
        expect(var3_result1.callCount).to.equal(0)
        local tbl = {}
        var2_result1:fire(tbl, 67)
        expect(var3_result1.callCount).to.equal(1)
        var3_result1:assertCalledWith(tbl, 67)
        var2_result1:fire(67, tbl)
        expect(var3_result1.callCount).to.equal(2)
        var3_result1:assertCalledWith(67, tbl)
        var2_result1:subscribe(var3_result1.value)()
        var2_result1:fire(tbl)
        expect(var3_result1.callCount).to.equal(2)
        var2_result1:subscribe(var3_result1.value)()
        var2_result1:fire(tbl)
        expect(var3_result1.callCount).to.equal(2)
    end)
end
ModuleScript createSpy ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createSpy
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:13
-- Luau version 6, Types version 3
-- Time taken: 0.003703 seconds

local assertDeepEqual_upvr = require(script.Parent.assertDeepEqual)
return function(arg1) -- Line 11, Named "createSpy"
    --[[ Upvalues[1]:
        [1]: assertDeepEqual_upvr (readonly)
    ]]
    local module_upvr = {
        callCount = 0;
        values = {};
        valuesLength = 0;
    }
    function module_upvr.value(...) -- Line 16
        --[[ Upvalues[2]:
            [1]: module_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        module_upvr.callCount += 1
        module_upvr.values = {...}
        module_upvr.valuesLength = select('#', ...)
        if arg1 ~= nil then
            return arg1(...)
        end
        return nil
    end
    function module_upvr.assertCalledWith(arg1_2, ...) -- Line 27
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        local arg_count = select('#', ...)
        if module_upvr.valuesLength ~= arg_count then
            error("Expected %d arguments, but was called with %d arguments":format(module_upvr.valuesLength, arg_count), 2)
        end
        for i = 1, arg_count do
            local var9 = ...
            if module_upvr.values[i] ~= select(i, var9) then
                var9 = false
            else
                var9 = true
            end
            assert(var9, "value differs")
        end
    end
    function module_upvr.assertCalledWithDeepEqual(arg1_3, ...) -- Line 41
        --[[ Upvalues[2]:
            [1]: module_upvr (readonly)
            [2]: assertDeepEqual_upvr (copied, readonly)
        ]]
        local arg_count_3 = select('#', ...)
        if module_upvr.valuesLength ~= arg_count_3 then
            error("Expected %d arguments, but was called with %d arguments":format(module_upvr.valuesLength, arg_count_3), 2)
        end
        for i_2 = 1, arg_count_3 do
            assertDeepEqual_upvr(module_upvr.values[i_2], select(i_2, ...))
        end
    end
    function module_upvr.captureValues(arg1_4, ...) -- Line 55
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        local arg_count_2 = select('#', ...)
        local module = {}
        local var18
        if module_upvr.valuesLength ~= arg_count_2 then
            var18 = false
        else
            var18 = true
        end
        assert(var18, "length of expected values differs from stored values")
        var18 = 1
        for i_3 = 1, arg_count_2, var18 do
            module[select(i_3, ...)] = module_upvr.values[i_3]
        end
        return module
    end
    setmetatable(module_upvr, {
        __index = function(arg1_5, arg2) -- Line 70, Named "__index"
            error("%q is not a valid member of spy":format(arg2))
        end;
    })
    return module_upvr
end
ModuleScript createSpy.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.createSpy.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:15
-- Luau version 6, Types version 3
-- Time taken: 0.007536 seconds

return function() -- Line 1
    local createSpy_upvr = require(script.Parent.createSpy)
    describe("createSpy", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: createSpy_upvr (readonly)
        ]]
        it("should create spies", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            expect(createSpy_upvr(function() -- Line 6
            end)).to.be.ok()
        end)
        it("should throw if spies are indexed by an invalid key", function() -- Line 11
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_2_upvr = createSpy_upvr(function() -- Line 12
            end)
            expect(function() -- Line 14
                --[[ Upvalues[1]:
                    [1]: createSpy_upvr_result1_2_upvr (readonly)
                ]]
                return createSpy_upvr_result1_2_upvr.test
            end).to.throw()
        end)
    end)
    describe("value", function() -- Line 20
        --[[ Upvalues[1]:
            [1]: createSpy_upvr (readonly)
        ]]
        it("should increment callCount when called", function() -- Line 21
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1 = createSpy_upvr(function() -- Line 22
            end)
            createSpy_upvr_result1.value()
            expect(createSpy_upvr_result1.callCount).to.equal(1)
        end)
        it("should store all values passed", function() -- Line 28
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local var2_result1 = createSpy_upvr(function() -- Line 29
            end)
            var2_result1.value(1, true, '3')
            expect(var2_result1.valuesLength).to.equal(3)
            expect(var2_result1.values[1]).to.equal(1)
            expect(var2_result1.values[2]).to.equal(true)
            expect(var2_result1.values[3]).to.equal('3')
        end)
        it("should return the value of the inner function", function() -- Line 38
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            expect(createSpy_upvr(function() -- Line 39
                return true
            end).value()).to.equal(true)
        end)
    end)
    describe("assertCalledWith", function() -- Line 47
        --[[ Upvalues[1]:
            [1]: createSpy_upvr (readonly)
        ]]
        it("should throw if the number of values differs", function() -- Line 48
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local var2_result1_2_upvr = createSpy_upvr(function() -- Line 49
            end)
            var2_result1_2_upvr.value(1, 2)
            expect(function() -- Line 52
                --[[ Upvalues[1]:
                    [1]: var2_result1_2_upvr (readonly)
                ]]
                var2_result1_2_upvr:assertCalledWith(1)
            end).to.throw()
        end)
        it("should throw if any value differs", function() -- Line 57
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local var2_result1_upvr = createSpy_upvr(function() -- Line 58
            end)
            var2_result1_upvr.value(1, 2)
            expect(function() -- Line 61
                --[[ Upvalues[1]:
                    [1]: var2_result1_upvr (readonly)
                ]]
                var2_result1_upvr:assertCalledWith(1, 3)
            end).to.throw()
            expect(function() -- Line 65
                --[[ Upvalues[1]:
                    [1]: var2_result1_upvr (readonly)
                ]]
                var2_result1_upvr:assertCalledWith(2, 3)
            end).to.throw()
        end)
    end)
    describe("captureValues", function() -- Line 71
        --[[ Upvalues[1]:
            [1]: createSpy_upvr (readonly)
        ]]
        it("should throw if the number of values differs", function() -- Line 72
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local createSpy_upvr_result1_3_upvr = createSpy_upvr(function() -- Line 73
            end)
            createSpy_upvr_result1_3_upvr.value(1, 2)
            expect(function() -- Line 76
                --[[ Upvalues[1]:
                    [1]: createSpy_upvr_result1_3_upvr (readonly)
                ]]
                createSpy_upvr_result1_3_upvr:captureValues('a')
            end).to.throw()
        end)
        it("should capture all values in a table", function() -- Line 81
            --[[ Upvalues[1]:
                [1]: createSpy_upvr (copied, readonly)
            ]]
            local var2_result1_3 = createSpy_upvr(function() -- Line 82
            end)
            var2_result1_3.value(1, 2)
            local any_captureValues_result1 = var2_result1_3:captureValues('a', 'b')
            expect(any_captureValues_result1.a).to.equal(1)
            expect(any_captureValues_result1.b).to.equal(2)
        end)
    end)
end
ModuleScript forwardRef ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.forwardRef
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:16
-- Luau version 6, Types version 3
-- Time taken: 0.001393 seconds

local Ref_upvr = require(script.Parent.PropMarkers.Ref)
local module_upvr = {
    [Ref_upvr] = require(script.Parent.None);
}
local any_get_result1_upvr = require(script.Parent.GlobalConfig).get()
local assign_upvr = require(script.Parent.assign)
return function(arg1) -- Line 15, Named "forwardRef"
    --[[ Upvalues[4]:
        [1]: any_get_result1_upvr (readonly)
        [2]: Ref_upvr (readonly)
        [3]: assign_upvr (readonly)
        [4]: module_upvr (readonly)
    ]]
    local var5 = any_get_result1_upvr
    if var5.typeChecks then
        if typeof(arg1) ~= "function" then
            var5 = false
        else
            var5 = true
        end
        assert(var5, "Expected arg #1 to be a function")
    end
    return function(arg1_2) -- Line 20
        --[[ Upvalues[4]:
            [1]: Ref_upvr (copied, readonly)
            [2]: assign_upvr (copied, readonly)
            [3]: module_upvr (copied, readonly)
            [4]: arg1 (readonly)
        ]]
        return arg1(assign_upvr({}, arg1_2, module_upvr), arg1_2[Ref_upvr])
    end
end
ModuleScript forwardRef.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.forwardRef.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:18
-- Luau version 6, Types version 3
-- Time taken: 0.021714 seconds

return function() -- Line 4
    local assign_upvr = require(script.Parent.assign)
    local createElement_upvr = require(script.Parent.createElement)
    local createRef_upvr = require(script.Parent.createRef)
    local forwardRef_upvr = require(script.Parent.forwardRef)
    local Ref_upvr = require(script.Parent.PropMarkers.Ref)
    local var7_upvr = require(script.Parent.createReconciler)(require(script.Parent.RobloxRenderer))
    it("should update refs when switching between children", function() -- Line 18
        --[[ Upvalues[6]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: forwardRef_upvr (readonly)
            [4]: assign_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local function FunctionComponent(arg1) -- Line 19
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Ref_upvr (copied, readonly)
            ]]
            local var9
            local var10
            if arg1.setRefOnDiv then
                var9 = arg1.forwardedRef
            else
                var10 = arg1.forwardedRef
            end
            return createElement_upvr("Frame", nil, {
                First = createElement_upvr("Frame", {
                    [Ref_upvr] = var9;
                }, {
                    Child = createElement_upvr("TextLabel", {
                        Text = "First";
                    });
                });
                Second = createElement_upvr("ScrollingFrame", {
                    [Ref_upvr] = var10;
                }, {
                    Child = createElement_upvr("TextLabel", {
                        Text = "Second";
                    });
                });
            })
        end
        local forwardRef_upvr_result1_3 = forwardRef_upvr(function(arg1, arg2) -- Line 48
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: FunctionComponent (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module_5 = {}
            module_5.forwardedRef = arg2
            return createElement_upvr(FunctionComponent, assign_upvr({}, arg1, module_5))
        end)
        local createRef_upvr_result1_2 = createRef_upvr()
        expect(createRef_upvr_result1_2.current.ClassName).to.equal("Frame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr_result1_3, {
            [Ref_upvr] = createRef_upvr_result1_2;
            setRefOnDiv = true;
        }), nil, "switch refs"))
        expect(createRef_upvr_result1_2.current.ClassName).to.equal("ScrollingFrame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr_result1_3, {
            [Ref_upvr] = createRef_upvr_result1_2;
            setRefOnDiv = false;
        }), nil, "switch refs"))
    end)
    it("should support rendering nil", function() -- Line 71
        --[[ Upvalues[5]:
            [1]: forwardRef_upvr (readonly)
            [2]: createRef_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: Ref_upvr (readonly)
            [5]: var7_upvr (readonly)
        ]]
        local createRef_upvr_result1_3 = createRef_upvr()
        expect(createRef_upvr_result1_3.current).to.equal(nil)
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 72
            return nil
        end), {
            [Ref_upvr] = createRef_upvr_result1_3;
        }), nil, "nil ref"))
    end)
    it("should support rendering nil for multiple children", function() -- Line 84
        --[[ Upvalues[5]:
            [1]: forwardRef_upvr (readonly)
            [2]: createRef_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: Ref_upvr (readonly)
            [5]: var7_upvr (readonly)
        ]]
        local createRef_upvr_result1_6 = createRef_upvr()
        expect(createRef_upvr_result1_6.current).to.equal(nil)
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr("Frame", nil, {
            NoRef1 = createElement_upvr("Frame");
            WithRef = createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 85
                return nil
            end), {
                [Ref_upvr] = createRef_upvr_result1_6;
            });
            NoRef2 = createElement_upvr("Frame");
        }), nil, "multiple children nil ref"))
    end)
    itSKIP("should support defaultProps", function() -- Line 103
        --[[ Upvalues[6]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: forwardRef_upvr (readonly)
            [4]: assign_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local function FunctionComponent_upvr(arg1) -- Line 104, Named "FunctionComponent"
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1.forwardedRef;
            }, {
                OptionalChild = arg1.optional;
                RequiredChild = arg1.required;
            })
        end
        local forwardRef_upvr_result1 = forwardRef_upvr(function(arg1, arg2) -- Line 116
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: FunctionComponent_upvr (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module_6 = {}
            module_6.forwardedRef = arg2
            return createElement_upvr(FunctionComponent_upvr, assign_upvr({}, arg1, module_6))
        end)
        forwardRef_upvr_result1.defaultProps = {
            optional = createElement_upvr("TextLabel");
        }
        local createRef_upvr_result1_5 = createRef_upvr()
        expect(createRef_upvr_result1_5.current:FindFirstChild("OptionalChild").ClassName).to.equal("Frame")
        expect(createRef_upvr_result1_5.current:FindFirstChild("RequiredChild").ClassName).to.equal("ScrollingFrame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr_result1, {
            [Ref_upvr] = createRef_upvr_result1_5;
            optional = createElement_upvr("Frame");
            required = createElement_upvr("ScrollingFrame");
        }), nil, "with optional"))
        expect(createRef_upvr_result1_5.current:FindFirstChild("OptionalChild").ClassName).to.equal("TextLabel")
        expect(createRef_upvr_result1_5.current:FindFirstChild("RequiredChild").ClassName).to.equal("ScrollingFrame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr_result1, {
            [Ref_upvr] = createRef_upvr_result1_5;
            required = createElement_upvr("ScrollingFrame");
        }), nil, "with default"))
    end)
    local GlobalConfig_upvr = require(script.Parent.GlobalConfig)
    it("should error if not provided a callback when type checking is enabled", function() -- Line 153
        --[[ Upvalues[2]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: forwardRef_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            typeChecks = true;
        }, function() -- Line 156
            --[[ Upvalues[1]:
                [1]: forwardRef_upvr (copied, readonly)
            ]]
            expect(function() -- Line 157
                --[[ Upvalues[1]:
                    [1]: forwardRef_upvr (copied, readonly)
                ]]
                forwardRef_upvr(nil)
            end).to.throw()
        end)
        GlobalConfig_upvr.scoped({
            typeChecks = true;
        }, function() -- Line 164
            --[[ Upvalues[1]:
                [1]: forwardRef_upvr (copied, readonly)
            ]]
            expect(function() -- Line 165
                --[[ Upvalues[1]:
                    [1]: forwardRef_upvr (copied, readonly)
                ]]
                forwardRef_upvr("foo")
            end).to.throw()
        end)
    end)
    it("should work without a ref to be forwarded", function() -- Line 171
        --[[ Upvalues[5]:
            [1]: createElement_upvr (readonly)
            [2]: assign_upvr (readonly)
            [3]: Ref_upvr (readonly)
            [4]: forwardRef_upvr (readonly)
            [5]: var7_upvr (readonly)
        ]]
        local function Child() -- Line 172
            return nil
        end
        local function Wrapper(arg1) -- Line 176
            --[[ Upvalues[4]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Child (readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr(Child, assign_upvr({}, arg1, {
                [Ref_upvr] = arg1.forwardedRef;
            }))
        end
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 180
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Wrapper (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module = {}
            module.forwardedRef = arg2
            return createElement_upvr(Wrapper, assign_upvr({}, arg1, module))
        end), {
            value = 123;
        }), nil, "nil ref"))
    end)
    it("should forward a ref for a single child", function() -- Line 189
        --[[ Upvalues[6]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: assign_upvr (readonly)
            [4]: forwardRef_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local var57_upvw
        local function Child(arg1) -- Line 191
            --[[ Upvalues[3]:
                [1]: var57_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
            ]]
            var57_upvw = arg1.value
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1[Ref_upvr];
            })
        end
        local function Wrapper(arg1) -- Line 198
            --[[ Upvalues[4]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Child (readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr(Child, assign_upvr({}, arg1, {
                [Ref_upvr] = arg1.forwardedRef;
            }))
        end
        local var4_result1 = createRef_upvr()
        expect(var57_upvw).to.equal(123)
        expect(var4_result1.current.ClassName).to.equal("Frame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 202
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Wrapper (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module_8 = {}
            module_8.forwardedRef = arg2
            return createElement_upvr(Wrapper, assign_upvr({}, arg1, module_8))
        end), {
            [Ref_upvr] = var4_result1;
            value = 123;
        }), nil, "single child ref"))
    end)
    it("should forward a ref for multiple children", function() -- Line 215
        --[[ Upvalues[6]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: assign_upvr (readonly)
            [4]: forwardRef_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local function Child(arg1) -- Line 216
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1[Ref_upvr];
            })
        end
        local function Wrapper(arg1) -- Line 222
            --[[ Upvalues[4]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Child (readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr(Child, assign_upvr({}, arg1, {
                [Ref_upvr] = arg1.forwardedRef;
            }))
        end
        local createRef_upvr_result1_4 = createRef_upvr()
        expect(createRef_upvr_result1_4.current.ClassName).to.equal("Frame")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr("Frame", nil, {
            NoRef1 = createElement_upvr("Frame");
            WithRef = createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 226
                --[[ Upvalues[3]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: Wrapper (readonly)
                    [3]: assign_upvr (copied, readonly)
                ]]
                local module_7 = {}
                module_7.forwardedRef = arg2
                return createElement_upvr(Wrapper, assign_upvr({}, arg1, module_7))
            end), {
                [Ref_upvr] = createRef_upvr_result1_4;
            });
            NoRef2 = createElement_upvr("Frame");
        }), nil, "multi child ref"))
    end)
    it("should maintain child instance and ref through updates", function() -- Line 242
        --[[ Upvalues[5]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: assign_upvr (readonly)
            [4]: forwardRef_upvr (readonly)
            [5]: var7_upvr (readonly)
        ]]
        local var73_upvw
        local function Child_upvr(arg1) -- Line 244, Named "Child"
            --[[ Upvalues[3]:
                [1]: var73_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
            ]]
            var73_upvw = arg1.value
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1[Ref_upvr];
            })
        end
        local function Wrapper_upvr(arg1) -- Line 251, Named "Wrapper"
            --[[ Upvalues[4]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Child_upvr (readonly)
                [3]: assign_upvr (copied, readonly)
                [4]: Ref_upvr (copied, readonly)
            ]]
            return createElement_upvr(Child_upvr, assign_upvr({}, arg1, {
                [Ref_upvr] = arg1.forwardedRef;
            }))
        end
        local forwardRef_upvr_result1_4 = forwardRef_upvr(function(arg1, arg2) -- Line 255
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: Wrapper_upvr (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module_3 = {}
            module_3.forwardedRef = arg2
            return createElement_upvr(Wrapper_upvr, assign_upvr({}, arg1, module_3))
        end)
        local var79_upvw = 0
        local var80_upvw
        local function var81(arg1) -- Line 262
            --[[ Upvalues[2]:
                [1]: var79_upvw (read and write)
                [2]: var80_upvw (read and write)
            ]]
            var79_upvw += 1
            var80_upvw = arg1
        end
        expect(var73_upvw).to.equal(123)
        expect(var80_upvw.ClassName).to.equal("Frame")
        expect(var79_upvw).to.equal(1)
        expect(var73_upvw).to.equal(456)
        expect(var79_upvw).to.equal(1)
        var7_upvr.unmountVirtualTree(var7_upvr.updateVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr_result1_4, {
            [Ref_upvr] = var81;
            value = 123;
        }), nil, "maintains instance"), createElement_upvr(forwardRef_upvr_result1_4, {
            [Ref_upvr] = var81;
            value = 456;
        })))
    end)
    local Component_upvr = require(script.Parent.Component)
    it("should not re-run the render callback on a deep setState", function() -- Line 282
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: Ref_upvr (readonly)
            [4]: forwardRef_upvr (readonly)
            [5]: assign_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local var86_upvw
        local tbl_upvw = {}
        local any_extend_result1_upvr = Component_upvr:extend("Inner")
        function any_extend_result1_upvr.render(arg1) -- Line 287
            --[[ Upvalues[4]:
                [1]: tbl_upvw (read and write)
                [2]: var86_upvw (read and write)
                [3]: createElement_upvr (copied, readonly)
                [4]: Ref_upvr (copied, readonly)
            ]]
            table.insert(tbl_upvw, "Inner")
            var86_upvw = arg1
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1.props.forwardedRef;
            })
        end
        local function Middle_upvr(arg1) -- Line 293, Named "Middle"
            --[[ Upvalues[3]:
                [1]: tbl_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: any_extend_result1_upvr (readonly)
            ]]
            table.insert(tbl_upvw, "Middle")
            return createElement_upvr(any_extend_result1_upvr, arg1)
        end
        local forwardRef_upvr_result1_2_upvr = forwardRef_upvr(function(arg1, arg2) -- Line 298
            --[[ Upvalues[4]:
                [1]: tbl_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: Middle_upvr (readonly)
                [4]: assign_upvr (copied, readonly)
            ]]
            table.insert(tbl_upvw, "Forward")
            local module_4 = {}
            module_4.forwardedRef = arg2
            return createElement_upvr(Middle_upvr, assign_upvr({}, arg1, module_4))
        end)
        expect(#tbl_upvw).to.equal(4)
        expect(tbl_upvw[1]).to.equal("App")
        expect(tbl_upvw[2]).to.equal("Forward")
        expect(tbl_upvw[3]).to.equal("Middle")
        expect(tbl_upvw[4]).to.equal("Inner")
        tbl_upvw = {}
        local var93 = tbl_upvw
        var86_upvw:setState({})
        expect(#var93).to.equal(1)
        expect(var93[1]).to.equal("Inner")
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(function() -- Line 303, Named "App"
            --[[ Upvalues[3]:
                [1]: tbl_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: forwardRef_upvr_result1_2_upvr (readonly)
            ]]
            table.insert(tbl_upvw, "App")
            return createElement_upvr(forwardRef_upvr_result1_2_upvr)
        end), nil, "deep setState"))
    end)
    it("should not include the ref in the forwarded props", function() -- Line 322
        --[[ Upvalues[6]:
            [1]: createElement_upvr (readonly)
            [2]: Ref_upvr (readonly)
            [3]: forwardRef_upvr (readonly)
            [4]: assign_upvr (readonly)
            [5]: createRef_upvr (readonly)
            [6]: var7_upvr (readonly)
        ]]
        local var95_upvw
        local function CaptureProps_upvr(arg1) -- Line 324, Named "CaptureProps"
            --[[ Upvalues[3]:
                [1]: var95_upvw (read and write)
                [2]: createElement_upvr (copied, readonly)
                [3]: Ref_upvr (copied, readonly)
            ]]
            var95_upvw = arg1
            return createElement_upvr("Frame", {
                [Ref_upvr] = arg1.forwardedRef;
            })
        end
        local createRef_upvr_result1 = createRef_upvr()
        expect(var95_upvw).to.be.ok()
        expect(var95_upvw.forwardedRef).to.equal(createRef_upvr_result1)
        expect(var95_upvw[Ref_upvr]).to.equal(nil)
        var7_upvr.unmountVirtualTree(var7_upvr.mountVirtualTree(createElement_upvr(forwardRef_upvr(function(arg1, arg2) -- Line 329
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: CaptureProps_upvr (readonly)
                [3]: assign_upvr (copied, readonly)
            ]]
            local module_2 = {}
            module_2.forwardedRef = arg2
            return createElement_upvr(CaptureProps_upvr, assign_upvr({}, arg1, module_2))
        end), {
            [Ref_upvr] = createRef_upvr_result1;
        }), nil, "no ref in props"))
    end)
end
ModuleScript getDefaultInstanceProperty ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.getDefaultInstanceProperty
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:20
-- Luau version 6, Types version 3
-- Time taken: 0.001787 seconds

local tbl_upvr = {}
local any_named_result1_upvr = require(script.Parent.Symbol).named("Nil")
return function(arg1, arg2) -- Line 16, Named "getDefaultInstanceProperty"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_named_result1_upvr (readonly)
    ]]
    local var3
    if var3 then
        local var4 = var3[arg2]
        if var4 == any_named_result1_upvr then
            return true, nil
        end
        if var4 ~= nil then
            do
                return true, var4
            end
            -- KONSTANTWARNING: GOTO [20] #18
        end
    else
        var3 = {}
        tbl_upvr[arg1] = var3
    end
    local any_upvr = Instance.new(arg1)
    local pcall_result1, pcall_result2 = pcall(function() -- Line 37
        --[[ Upvalues[2]:
            [1]: any_upvr (readonly)
            [2]: arg2 (readonly)
        ]]
        return any_upvr[arg2]
    end)
    any_upvr:Destroy()
    if pcall_result1 then
        if pcall_result2 == nil then
            var3[arg2] = any_named_result1_upvr
            return pcall_result1, pcall_result2
        end
        var3[arg2] = pcall_result2
    end
    return pcall_result1, pcall_result2
end
ModuleScript getDefaultInstanceProperty.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.getDefaultInstanceProperty.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:22
-- Luau version 6, Types version 3
-- Time taken: 0.002458 seconds

return function() -- Line 1
    local getDefaultInstanceProperty_upvr = require(script.Parent.getDefaultInstanceProperty)
    it("should get default name string values", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: getDefaultInstanceProperty_upvr (readonly)
        ]]
        local _, getDefaultInstanceProperty_upvr_result2 = getDefaultInstanceProperty_upvr("StringValue", "Name")
        expect(getDefaultInstanceProperty_upvr_result2).to.equal("Value")
    end)
    it("should get default empty string values", function() -- Line 10
        --[[ Upvalues[1]:
            [1]: getDefaultInstanceProperty_upvr (readonly)
        ]]
        local getDefaultInstanceProperty_upvr_result1, getDefaultInstanceProperty_upvr_result2_2 = getDefaultInstanceProperty_upvr("StringValue", "Value")
        expect(getDefaultInstanceProperty_upvr_result2_2).to.equal("")
    end)
    it("should get default number values", function() -- Line 16
        --[[ Upvalues[1]:
            [1]: getDefaultInstanceProperty_upvr (readonly)
        ]]
        local _, getDefaultInstanceProperty_upvr_result2_4 = getDefaultInstanceProperty_upvr("IntValue", "Value")
        expect(getDefaultInstanceProperty_upvr_result2_4).to.equal(0)
    end)
    it("should get nil default values", function() -- Line 22
        --[[ Upvalues[1]:
            [1]: getDefaultInstanceProperty_upvr (readonly)
        ]]
        local _, getDefaultInstanceProperty_upvr_result2_3 = getDefaultInstanceProperty_upvr("ObjectValue", "Value")
        expect(getDefaultInstanceProperty_upvr_result2_3).to.equal(nil)
    end)
    it("should get bool default values", function() -- Line 28
        --[[ Upvalues[1]:
            [1]: getDefaultInstanceProperty_upvr (readonly)
        ]]
        local _, getDefaultInstanceProperty_upvr_result2_5 = getDefaultInstanceProperty_upvr("BoolValue", "Value")
        expect(getDefaultInstanceProperty_upvr_result2_5).to.equal(false)
    end)
end
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:23
-- Luau version 6, Types version 3
-- Time taken: 0.003269 seconds

return function() -- Line 1
    local Parent_upvr = require(script.Parent)
    it("should load with all public APIs", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        local tbl = {
            createElement = "function";
            createFragment = "function";
            createRef = "function";
            forwardRef = "function";
            createBinding = "function";
            joinBindings = "function";
            mount = "function";
            unmount = "function";
            update = "function";
            oneChild = "function";
            setGlobalConfig = "function";
            createContext = "function";
            reify = "function";
            teardown = "function";
            reconcile = "function";
            Component = true;
            PureComponent = true;
            Portal = true;
            Children = true;
            Event = true;
            Change = true;
            Ref = true;
            None = true;
            UNSTABLE = true;
        }
        expect(Parent_upvr).to.be.ok()
        for i, v in pairs(tbl) do
            local var14
            if typeof(v) == "string" then
                if typeof(Parent_upvr[i]) ~= v then
                    var14 = false
                else
                    var14 = true
                end
            elseif Parent_upvr[i] == nil then
                var14 = false
            else
                var14 = true
                local var15
            end
            if not var14 then
                if typeof(v) == "boolean" then
                    var15 = "present"
                else
                    var15 = "of type "..tostring(v)
                end
                error("Expected public API member %q to be %s, but instead it was of type %s":format(tostring(i), var15, typeof(Parent_upvr[i])))
            end
        end
        for i_2 in pairs(Parent_upvr) do
            if tbl[i_2] == nil then
                var15 = error
                var15("Found unknown public API key %q!":format(tostring(i_2)))
            end
        end
    end)
end
ModuleScript internalAssert ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.internalAssert
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:25
-- Luau version 6, Types version 3
-- Time taken: 0.000488 seconds

return function(arg1, arg2) -- Line 1, Named "internalAssert"
    if not arg1 then
        error(arg2.." (This is probably a bug in Roact!)", 3)
    end
end
ModuleScript invalidSetStateMessages ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.invalidSetStateMessages
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:26
-- Luau version 6, Types version 3
-- Time taken: 0.001107 seconds

local ComponentLifecyclePhase = require(script.Parent.ComponentLifecyclePhase)
return {
    [ComponentLifecyclePhase.WillUpdate] = "setState cannot be used in the willUpdate lifecycle method.\nConsider using the didUpdate method instead, or using getDerivedStateFromProps.\n\nCheck the definition of willUpdate in the component %q.";
    [ComponentLifecyclePhase.ShouldUpdate] = "setState cannot be used in the shouldUpdate lifecycle method.\nshouldUpdate must be a pure function that only depends on props and state.\n\nCheck the definition of shouldUpdate in the component %q.";
    [ComponentLifecyclePhase.Render] = "setState cannot be used in the render method.\nrender must be a pure function that only depends on props and state.\n\nCheck the definition of render in the component %q.";
    default = "setState can not be used in the current situation, because Roact doesn't know\nwhich part of the lifecycle this component is in.\n\nThis is a bug in Roact.\nIt was triggered by the component %q.\n";
}
ModuleScript oneChild ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.oneChild
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:28
-- Luau version 6, Types version 3
-- Time taken: 0.000727 seconds

return function(arg1) -- Line 8, Named "oneChild"
    if not arg1 then
        return nil
    end
    local next_result1, next_result2 = next(arg1)
    if not next_result2 then
        return nil
    end
    if next(arg1, next_result1) then
        error("Expected at most child, had more than one child.", 2)
    end
    return next_result2
end
ModuleScript oneChild.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.oneChild.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:29
-- Luau version 6, Types version 3
-- Time taken: 0.001944 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.createElement)
    local oneChild_upvr = require(script.Parent.oneChild)
    it("should get zero children from a table", function() -- Line 6
        --[[ Upvalues[1]:
            [1]: oneChild_upvr (readonly)
        ]]
        expect(oneChild_upvr({})).to.equal(nil)
    end)
    it("should get exactly one child", function() -- Line 12
        --[[ Upvalues[2]:
            [1]: createElement_upvr (readonly)
            [2]: oneChild_upvr (readonly)
        ]]
        local var2_result1 = createElement_upvr("Frame")
        expect(oneChild_upvr({
            foo = var2_result1;
        })).to.equal(var2_result1)
    end)
    it("should error with more than one child", function() -- Line 21
        --[[ Upvalues[2]:
            [1]: createElement_upvr (readonly)
            [2]: oneChild_upvr (readonly)
        ]]
        local tbl_upvr = {
            a = createElement_upvr("Frame");
            b = createElement_upvr("Frame");
        }
        expect(function() -- Line 27
            --[[ Upvalues[2]:
                [1]: oneChild_upvr (copied, readonly)
                [2]: tbl_upvr (readonly)
            ]]
            oneChild_upvr(tbl_upvr)
        end).to.throw()
    end)
    it("should handle being passed nil", function() -- Line 32
        --[[ Upvalues[1]:
            [1]: oneChild_upvr (readonly)
        ]]
        expect(oneChild_upvr(nil)).to.equal(nil)
    end)
end
ModuleScript strict ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.strict
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:31
-- Luau version 6, Types version 3
-- Time taken: 0.001609 seconds

return function(arg1, arg2) -- Line 2, Named "strict"
    local var1_upvr = arg2
    if not var1_upvr then
        var1_upvr = tostring(arg1)
    end
    return setmetatable(arg1, {
        __index = function(arg1_2, arg2_2) -- Line 8, Named "__index"
            --[[ Upvalues[1]:
                [1]: var1_upvr (readonly)
            ]]
            error("%q (%s) is not a valid member of %s":format(tostring(arg2_2), typeof(arg2_2), var1_upvr), 2)
        end;
        __newindex = function(arg1_3, arg2_3, arg3) -- Line 14, Named "__newindex"
            --[[ Upvalues[1]:
                [1]: var1_upvr (readonly)
            ]]
            error("%q (%s) is not a valid member of %s":format(tostring(arg2_3), typeof(arg2_3), var1_upvr), 2)
        end;
    })
end
ModuleScript strict.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.strict.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:32
-- Luau version 6, Types version 3
-- Time taken: 0.001448 seconds

return function() -- Line 1
    local strict_upvr = require(script.Parent.strict)
    it("should error when getting a nonexistent key", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: strict_upvr (readonly)
        ]]
        local var2_result1_upvr = strict_upvr({
            a = 1;
            b = 2;
        })
        expect(function() -- Line 10
            --[[ Upvalues[1]:
                [1]: var2_result1_upvr (readonly)
            ]]
            return var2_result1_upvr.c
        end).to.throw()
    end)
    it("should error when setting a nonexistent key", function() -- Line 15
        --[[ Upvalues[1]:
            [1]: strict_upvr (readonly)
        ]]
        local strict_upvr_result1_upvr = strict_upvr({
            a = 1;
            b = 2;
        })
        expect(function() -- Line 21
            --[[ Upvalues[1]:
                [1]: strict_upvr_result1_upvr (readonly)
            ]]
            strict_upvr_result1_upvr.c = 3
        end).to.throw()
    end)
end
ModuleScript context.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.context.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:33
-- Luau version 6, Types version 3
-- Time taken: 0.011958 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local oneChild_upvr = require(script.Parent.Parent.oneChild)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be provided as an internal api on Component", function() -- Line 12
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_9 = Component_upvr:extend("Provider")
        local function init(arg1) -- Line 15
            arg1:__addContext("foo", "bar")
        end
        any_extend_result1_9.init = init
        local function render(arg1) -- Line 19
        end
        any_extend_result1_9.render = render
        assertDeepEqual_upvr(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_9), nil, "Provider").context, {
            foo = "bar";
        })
    end)
    it("should be inherited from parent stateful nodes", function() -- Line 33
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_4_upvr = Component_upvr:extend("Consumer")
        local var12_upvw
        local function init(arg1) -- Line 37
            --[[ Upvalues[1]:
                [1]: var12_upvw (read and write)
            ]]
            var12_upvw = {
                hello = arg1:__getContext("hello");
                value = arg1:__getContext("value");
            }
        end
        any_extend_result1_4_upvr.init = init
        local function render(arg1) -- Line 44
        end
        any_extend_result1_4_upvr.render = render
        local any_extend_result1_7 = Component_upvr:extend("Parent")
        local function render(arg1) -- Line 48
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_4_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_4_upvr)
        end
        any_extend_result1_7.render = render
        local tbl_3 = {
            hello = "world";
            value = 6;
        }
        local any_mountVirtualNode_result1_5 = var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_7), nil, "Parent", tbl_3)
        expect(var12_upvw).never.to.equal(tbl_3)
        expect(var12_upvw).never.to.equal(any_mountVirtualNode_result1_5.context)
        assertDeepEqual_upvr(any_mountVirtualNode_result1_5.context, tbl_3)
        assertDeepEqual_upvr(var12_upvw, tbl_3)
    end)
    it("should be inherited from parent function nodes", function() -- Line 67
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_3_upvr = Component_upvr:extend("Consumer")
        local var19_upvw
        local function init(arg1) -- Line 71
            --[[ Upvalues[1]:
                [1]: var19_upvw (read and write)
            ]]
            var19_upvw = {
                hello = arg1:__getContext("hello");
                value = arg1:__getContext("value");
            }
        end
        any_extend_result1_3_upvr.init = init
        local function render(arg1) -- Line 78
        end
        any_extend_result1_3_upvr.render = render
        local tbl = {
            hello = "world";
            value = 6;
        }
        local any_mountVirtualNode_result1_2 = var6_upvr.mountVirtualNode(createElement_upvr(function() -- Line 80, Named "Parent"
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_3_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_3_upvr)
        end), nil, "Parent", tbl)
        expect(var19_upvw).never.to.equal(tbl)
        expect(var19_upvw).never.to.equal(any_mountVirtualNode_result1_2.context)
        assertDeepEqual_upvr(any_mountVirtualNode_result1_2.context, tbl)
        assertDeepEqual_upvr(var19_upvw, tbl)
    end)
    it("should not copy the context table if it doesn't need to", function() -- Line 99
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
            [5]: oneChild_upvr (readonly)
        ]]
        local any_extend_result1_8 = Component_upvr:extend("Parent")
        local function init(arg1) -- Line 102
            arg1:__addContext("parent", "I'm here!")
        end
        any_extend_result1_8.init = init
        local function render(arg1) -- Line 106
            --[[ Upvalues[1]:
                [1]: createElement_upvr (copied, readonly)
            ]]
            return createElement_upvr(function() -- Line 108
            end)
        end
        any_extend_result1_8.render = render
        local any_mountVirtualNode_result1_3 = var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_8), nil, "Parent")
        assertDeepEqual_upvr(any_mountVirtualNode_result1_3.context, {
            parent = "I'm here!";
        })
        expect(any_mountVirtualNode_result1_3.context).to.equal(oneChild_upvr(any_mountVirtualNode_result1_3.children).context)
    end)
    it("should not allow context to move up the tree", function() -- Line 128
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: oneChild_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_11_upvr = Component_upvr:extend("ChildProvider")
        local function init(arg1) -- Line 131
            arg1:__addContext("child", "I'm here too!")
        end
        any_extend_result1_11_upvr.init = init
        local function render(arg1) -- Line 135
        end
        any_extend_result1_11_upvr.render = render
        local any_extend_result1_10 = Component_upvr:extend("ParentProvider")
        local function init(arg1) -- Line 139
            arg1:__addContext("parent", "I'm here!")
        end
        any_extend_result1_10.init = init
        local function render(arg1) -- Line 143
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_11_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_11_upvr)
        end
        any_extend_result1_10.render = render
        local any_mountVirtualNode_result1 = var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_10), nil, "Parent")
        assertDeepEqual_upvr(any_mountVirtualNode_result1.context, {
            parent = "I'm here!";
        })
        assertDeepEqual_upvr(oneChild_upvr(any_mountVirtualNode_result1.children).context, {
            parent = "I'm here!";
            child = "I'm here too!";
        })
    end)
    it("should contain values put into the tree by parent nodes", function() -- Line 168
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2_upvr = Component_upvr:extend("Consumer")
        local var36_upvw
        local function init(arg1) -- Line 172
            --[[ Upvalues[1]:
                [1]: var36_upvw (read and write)
            ]]
            var36_upvw = {
                dont = arg1:__getContext("dont");
                frob = arg1:__getContext("frob");
            }
        end
        any_extend_result1_2_upvr.init = init
        local function render(arg1) -- Line 179
        end
        any_extend_result1_2_upvr.render = render
        local any_extend_result1_6 = Component_upvr:extend("Provider")
        local function init(arg1) -- Line 183
            arg1:__addContext("frob", "ulator")
        end
        any_extend_result1_6.init = init
        local function render(arg1) -- Line 187
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_2_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_2_upvr)
        end
        any_extend_result1_6.render = render
        local tbl_4 = {
            dont = "try it";
        }
        local any_mountVirtualNode_result1_4 = var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_6), nil, "Consumer", tbl_4)
        local tbl_2 = {
            dont = "try it";
            frob = "ulator";
        }
        expect(any_mountVirtualNode_result1_4.context).never.to.equal(tbl_4)
        expect(var36_upvw).never.to.equal(tbl_4)
        expect(var36_upvw).never.to.equal(any_mountVirtualNode_result1_4.context)
        assertDeepEqual_upvr(tbl_4, {
            dont = "try it";
        })
        assertDeepEqual_upvr(any_mountVirtualNode_result1_4.context, tbl_2)
        assertDeepEqual_upvr(var36_upvw, tbl_2)
    end)
    it("should transfer context to children that are replaced", function() -- Line 218
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_5_upvr = Component_upvr:extend("ConsumerA")
        local function captureAllContext_upvr(arg1) -- Line 221, Named "captureAllContext"
            return {
                A = arg1:__getContext('A');
                B = arg1:__getContext('B');
                frob = arg1:__getContext("frob");
            }
        end
        local var46_upvw
        local function init(arg1) -- Line 230
            --[[ Upvalues[2]:
                [1]: var46_upvw (read and write)
                [2]: captureAllContext_upvr (readonly)
            ]]
            arg1:__addContext('A', "hello")
            var46_upvw = captureAllContext_upvr(arg1)
        end
        any_extend_result1_5_upvr.init = init
        local function render(arg1) -- Line 236
        end
        any_extend_result1_5_upvr.render = render
        local any_extend_result1_upvr = Component_upvr:extend("ConsumerB")
        local var48_upvw
        local function init(arg1) -- Line 241
            --[[ Upvalues[2]:
                [1]: var48_upvw (read and write)
                [2]: captureAllContext_upvr (readonly)
            ]]
            arg1:__addContext('B', "hello")
            var48_upvw = captureAllContext_upvr(arg1)
        end
        any_extend_result1_upvr.init = init
        local function render(arg1) -- Line 247
        end
        any_extend_result1_upvr.render = render
        local any_extend_result1 = Component_upvr:extend("Provider")
        function any_extend_result1.init(arg1) -- Line 251
            arg1:__addContext("frob", "ulator")
        end
        function any_extend_result1.render(arg1) -- Line 255
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_upvr (readonly)
                [3]: any_extend_result1_5_upvr (readonly)
            ]]
            if arg1.props.useConsumerB then
                return createElement_upvr(any_extend_result1_upvr)
            end
            return createElement_upvr(any_extend_result1_5_upvr)
        end
        assertDeepEqual_upvr(var46_upvw, {
            frob = "ulator";
            A = "hello";
        })
        var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Consumer"), createElement_upvr(any_extend_result1, {
            useConsumerB = true;
        }))
        assertDeepEqual_upvr(var48_upvw, {
            frob = "ulator";
            B = "hello";
        })
    end)
end
ModuleScript defaultProps.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.defaultProps.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:35
-- Luau version 6, Types version 3
-- Time taken: 0.004066 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var5_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should fill in when mounting before init", function() -- Line 12
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local tbl_4 = {
            a = 3;
            b = 2;
        }
        local any_extend_result1_2 = Component_upvr:extend("Foo")
        any_extend_result1_2.defaultProps = tbl_4
        local var9_upvw
        function any_extend_result1_2.init(arg1) -- Line 23
            --[[ Upvalues[1]:
                [1]: var9_upvw (read and write)
            ]]
            var9_upvw = arg1.props
        end
        local function render(arg1) -- Line 27
        end
        any_extend_result1_2.render = render
        local tbl_6 = {
            b = 4;
            c = 6;
        }
        var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2, tbl_6), nil, "Some Foo")
        assertDeepEqual_upvr(var9_upvw, {
            a = tbl_4.a;
            b = tbl_6.b;
            c = tbl_6.c;
        })
    end)
    it("should fill in when updating via props", function() -- Line 49
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local tbl = {
            a = 3;
            b = 2;
        }
        local any_extend_result1_3 = Component_upvr:extend("Foo")
        any_extend_result1_3.defaultProps = tbl
        local var15_upvw
        local function render(arg1) -- Line 60
            --[[ Upvalues[1]:
                [1]: var15_upvw (read and write)
            ]]
            var15_upvw = arg1.props
        end
        any_extend_result1_3.render = render
        local tbl_5 = {
            c = 5;
        }
        var5_upvr.updateVirtualNode(var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_3, {
            b = 4;
            c = 6;
        }), nil, "Some Foo"), createElement_upvr(any_extend_result1_3, tbl_5))
        assertDeepEqual_upvr(var15_upvw, {
            a = tbl.a;
            b = tbl.b;
            c = tbl_5.c;
        })
    end)
    local None_upvr = require(script.Parent.Parent.None)
    it("should respect None to override a default prop with nil", function() -- Line 91
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: None_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var5_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local tbl_2 = {
            a = 3;
            b = 2;
        }
        local any_extend_result1 = Component_upvr:extend("Foo")
        any_extend_result1.defaultProps = tbl_2
        local var23_upvw
        function any_extend_result1.render(arg1) -- Line 102
            --[[ Upvalues[1]:
                [1]: var23_upvw (read and write)
            ]]
            var23_upvw = arg1.props
        end
        local tbl_3 = {
            b = None_upvr;
            c = 4;
        }
        var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1, tbl_3), nil, "Some Foo")
        assertDeepEqual_upvr(var23_upvw, {
            a = tbl_2.a;
            b = nil;
            c = tbl_3.c;
        })
    end)
end
ModuleScript didMount.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.didMount.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:37
-- Luau version 6, Types version 3
-- Time taken: 0.001651 seconds

return function() -- Line 1
    local Component_upvr = require(script.Parent.Parent.Component)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    local Type_upvr = require(script.Parent.Parent.Type)
    it("should be invoked when mounted", function() -- Line 12
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: Type_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.didMount = createSpy_upvr_result1.value
        function any_extend_result1.render(arg1) -- Line 19
            return nil
        end
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Test")
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        expect(Type_upvr.of(createSpy_upvr_result1:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
    end)
end
ModuleScript didUpdate.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.didUpdate.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:38
-- Luau version 6, Types version 3
-- Time taken: 0.004544 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local Type_upvr = require(script.Parent.Parent.Type)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var7_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be invoked when updated via updateVirtualNode", function() -- Line 13
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.didUpdate = createSpy_upvr_result1.value
        local function render(arg1) -- Line 19
            return nil
        end
        any_extend_result1.render = render
        local tbl = {
            a = 5;
        }
        expect(createSpy_upvr_result1.callCount).to.equal(0)
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1, tbl), nil, "Test"), createElement_upvr(any_extend_result1, {
            a = 6;
            b = 2;
        }))
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        local any_captureValues_result1 = createSpy_upvr_result1:captureValues("self", "oldProps", "oldState")
        expect(Type_upvr.of(any_captureValues_result1.self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(any_captureValues_result1.oldProps, tbl)
        assertDeepEqual_upvr(any_captureValues_result1.oldState, {})
    end)
    it("should be invoked when updated via setState", function() -- Line 50
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1_2 = createSpy_upvr()
        any_extend_result1_2.didUpdate = createSpy_upvr_result1_2.value
        local tbl_2_upvr = {
            a = 4;
        }
        local var19_upvw
        function any_extend_result1_2.init(arg1) -- Line 61
            --[[ Upvalues[2]:
                [1]: var19_upvw (read and write)
                [2]: tbl_2_upvr (readonly)
            ]]
            function var19_upvw(...) -- Line 62
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                return arg1:setState(...)
            end
            arg1:setState(tbl_2_upvr)
        end
        function any_extend_result1_2.render(arg1) -- Line 69
        end
        var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2), nil, "Test")
        expect(createSpy_upvr_result1_2.callCount).to.equal(0)
        var19_upvw({
            a = 5;
        })
        expect(createSpy_upvr_result1_2.callCount).to.equal(1)
        local any_captureValues_result1_2 = createSpy_upvr_result1_2:captureValues("self", "oldProps", "oldState")
        expect(Type_upvr.of(any_captureValues_result1_2.self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(any_captureValues_result1_2.oldProps, {})
        assertDeepEqual_upvr(any_captureValues_result1_2.oldState, tbl_2_upvr)
    end)
end
ModuleScript extend.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.extend.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:40
-- Luau version 6, Types version 3
-- Time taken: 0.002136 seconds

return function() -- Line 1
    local Component_upvr = require(script.Parent.Parent.Component)
    local Type_upvr = require(script.Parent.Parent.Type)
    it("should be extendable", function() -- Line 6
        --[[ Upvalues[2]:
            [1]: Component_upvr (readonly)
            [2]: Type_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("The Senate")
        expect(any_extend_result1).to.be.ok()
        expect(Type_upvr.of(any_extend_result1)).to.equal(Type_upvr.StatefulComponentClass)
    end)
    it("should prevent extending a user component", function() -- Line 13
        --[[ Upvalues[1]:
            [1]: Component_upvr (readonly)
        ]]
        local any_extend_result1_upvr = Component_upvr:extend("Sheev")
        expect(function() -- Line 16
            --[[ Upvalues[1]:
                [1]: any_extend_result1_upvr (readonly)
            ]]
            any_extend_result1_upvr:extend("Frank")
        end).to.throw()
    end)
    it("should use a given name", function() -- Line 21
        --[[ Upvalues[1]:
            [1]: Component_upvr (readonly)
        ]]
        local tostring_result1 = tostring(Component_upvr:extend("FooBar"))
        expect(tostring_result1).to.be.a("string")
        expect(tostring_result1:find("FooBar")).to.be.ok()
    end)
end
ModuleScript getDerivedStateFromProps.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.getDerivedStateFromProps.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:42
-- Luau version 6, Types version 3
-- Time taken: 0.011235 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be invoked on initial mount", function() -- Line 13
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local createSpy_upvr_result1_7 = createSpy_upvr()
        local any_extend_result1_6 = Component_upvr:extend("WithDerivedState")
        any_extend_result1_6.getDerivedStateFromProps = createSpy_upvr_result1_7.value
        local function render(arg1) -- Line 19
            return nil
        end
        any_extend_result1_6.render = render
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_6, {
            someProp = 1;
        }), nil, "WithDerivedState")
        expect(createSpy_upvr_result1_7.callCount).to.equal(1)
        local any_captureValues_result1_2 = createSpy_upvr_result1_7:captureValues("props", "state")
        assertDeepEqual_upvr(any_captureValues_result1_2.props, {
            someProp = 1;
        })
        assertDeepEqual_upvr(any_captureValues_result1_2.state, {})
    end)
    it("should be invoked when updated via props", function() -- Line 39
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: var6_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local createSpy_upvr_result1_4 = createSpy_upvr()
        local any_extend_result1_7 = Component_upvr:extend("WithDerivedState")
        any_extend_result1_7.getDerivedStateFromProps = createSpy_upvr_result1_4.value
        local function render(arg1) -- Line 45
            return nil
        end
        any_extend_result1_7.render = render
        var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_7, {
            someProp = 1;
        }), nil, "WithDerivedState"), createElement_upvr(any_extend_result1_7, {
            someProp = 2;
        }))
        expect(createSpy_upvr_result1_4.callCount).to.equal(2)
        local any_captureValues_result1 = createSpy_upvr_result1_4:captureValues("props", "state")
        assertDeepEqual_upvr(any_captureValues_result1.props, {
            someProp = 2;
        })
        assertDeepEqual_upvr(any_captureValues_result1.state, {})
    end)
    it("should be invoked when updated via state", function() -- Line 75
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local createSpy_upvr_result1_2 = createSpy_upvr()
        local any_extend_result1_2 = Component_upvr:extend("WithDerivedState")
        any_extend_result1_2.getDerivedStateFromProps = createSpy_upvr_result1_2.value
        local function init(arg1) -- Line 81
            arg1:setState({
                someState = 1;
            })
        end
        any_extend_result1_2.init = init
        local function render(arg1) -- Line 87
            return nil
        end
        any_extend_result1_2.render = render
        local createElement_upvr_result1 = createElement_upvr(any_extend_result1_2)
        var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr_result1, nil, "WithDerivedState"), createElement_upvr_result1, {
            someState = 2;
        })
        expect(createSpy_upvr_result1_2.callCount).to.equal(4)
        local any_captureValues_result1_3 = createSpy_upvr_result1_2:captureValues("props", "state")
        assertDeepEqual_upvr(any_captureValues_result1_3.props, {})
        assertDeepEqual_upvr(any_captureValues_result1_3.state, {
            someState = 2;
        })
    end)
    it("should be invoked when updating via state in init (which skips reconciliation)", function() -- Line 114
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local createSpy_upvr_result1_6 = createSpy_upvr()
        local any_extend_result1_8 = Component_upvr:extend("WithDerivedState")
        any_extend_result1_8.getDerivedStateFromProps = createSpy_upvr_result1_6.value
        local function init(arg1) -- Line 120
            arg1:setState({
                stateFromInit = 1;
            })
        end
        any_extend_result1_8.init = init
        local function render(arg1) -- Line 126
            return nil
        end
        any_extend_result1_8.render = render
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_8, {
            someProp = 1;
        }), nil, "WithDerivedState")
        expect(createSpy_upvr_result1_6.callCount).to.equal(3)
        local any_captureValues_result1_4 = createSpy_upvr_result1_6:captureValues("props", "state")
        assertDeepEqual_upvr(any_captureValues_result1_4.props, {
            someProp = 1;
        })
        assertDeepEqual_upvr(any_captureValues_result1_4.state, {
            stateFromInit = 1;
        })
    end)
    it("should receive defaultProps", function() -- Line 154
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local createSpy_upvr_result1_5 = createSpy_upvr()
        local any_extend_result1_5 = Component_upvr:extend("WithDerivedState")
        any_extend_result1_5.defaultProps = {
            someDefaultProp = "foo";
        }
        any_extend_result1_5.getDerivedStateFromProps = createSpy_upvr_result1_5.value
        local function render(arg1) -- Line 164
            return nil
        end
        any_extend_result1_5.render = render
        expect(createSpy_upvr_result1_5.callCount).to.equal(1)
        assertDeepEqual_upvr(createSpy_upvr_result1_5:captureValues("props", "state").props, {
            someDefaultProp = "foo";
            someProp = 1;
        })
        var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_5, {
            someProp = 1;
        }), nil, "WithDerivedState"), createElement_upvr(any_extend_result1_5, {
            someProp = 2;
        }))
        expect(createSpy_upvr_result1_5.callCount).to.equal(2)
        assertDeepEqual_upvr(createSpy_upvr_result1_5:captureValues("props", "state").props, {
            someDefaultProp = "foo";
            someProp = 2;
        })
    end)
    local createFragment_upvr = require(script.Parent.Parent.createFragment)
    it("should derive state for all setState updates, even when deferred", function() -- Line 202
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createFragment_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        local any_extend_result1_3_upvr = Component_upvr:extend("Child")
        local createSpy_upvr_result1_3_upvr = createSpy_upvr(function() -- Line 204
            return {}
        end)
        local var3_result1 = createSpy_upvr()
        local function render(arg1) -- Line 209
            return nil
        end
        any_extend_result1_3_upvr.render = render
        function any_extend_result1_3_upvr.didMount(arg1) -- Line 213
            arg1.props.callback()
        end
        local any_extend_result1_4 = Component_upvr:extend("Parent")
        any_extend_result1_4.getDerivedStateFromProps = var3_result1.value
        local function render(arg1) -- Line 221
            --[[ Upvalues[4]:
                [1]: createSpy_upvr_result1_3_upvr (readonly)
                [2]: createFragment_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: any_extend_result1_3_upvr (readonly)
            ]]
            local function var51() -- Line 222
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: createSpy_upvr_result1_3_upvr (copied, readonly)
                ]]
                arg1:setState(createSpy_upvr_result1_3_upvr.value)
            end
            return createFragment_upvr({
                ChildA = createElement_upvr(any_extend_result1_3_upvr, {
                    callback = var51;
                });
                ChildB = createElement_upvr(any_extend_result1_3_upvr, {
                    callback = var51;
                });
            })
        end
        any_extend_result1_4.render = render
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_4), nil, "Test")
        expect(createSpy_upvr_result1_3_upvr.callCount).to.equal(2)
        expect(var3_result1.callCount).to.equal(3)
    end)
    it("should have derived state after assigning to state in init", function() -- Line 248
        --[[ Upvalues[5]:
            [1]: createSpy_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: assertDeepEqual_upvr (readonly)
        ]]
        local var62_upvw
        local createSpy_upvr_result1 = createSpy_upvr(function() -- Line 250
            return {
                derived = true;
            }
        end)
        local any_extend_result1 = Component_upvr:extend("WithDerivedState")
        any_extend_result1.getDerivedStateFromProps = createSpy_upvr_result1.value
        function any_extend_result1.init(arg1) -- Line 259
            --[[ Upvalues[1]:
                [1]: var62_upvw (read and write)
            ]]
            arg1.state = {
                init = true;
            }
            function var62_upvw() -- Line 264
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                return arg1.state
            end
        end
        function any_extend_result1.render(arg1) -- Line 269
            return nil
        end
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "WithDerivedState")
        expect(createSpy_upvr_result1.callCount).to.equal(2)
        assertDeepEqual_upvr(var62_upvw(), {
            init = true;
            derived = true;
        })
    end)
end
ModuleScript getElementTraceback.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.getElementTraceback.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:43
-- Luau version 6, Types version 3
-- Time taken: 0.002832 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local GlobalConfig_upvr = require(script.Parent.Parent.GlobalConfig)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var5_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should return stack traces in initial renders", function() -- Line 11
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: GlobalConfig_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var5_upvr (readonly)
        ]]
        local any_extend_result1_upvr = Component_upvr:extend("TestComponent")
        local var8_upvw
        local function init(arg1) -- Line 15
            --[[ Upvalues[1]:
                [1]: var8_upvw (read and write)
            ]]
            var8_upvw = arg1:getElementTraceback()
        end
        any_extend_result1_upvr.init = init
        local function render(arg1) -- Line 19
            return nil
        end
        any_extend_result1_upvr.render = render
        GlobalConfig_upvr.scoped({
            elementTracing = true;
        }, function() -- Line 27
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_upvr (readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_upvr), nil, "Some key")
        end)
        expect(var8_upvw).to.be.a("string")
    end)
    itSKIP("it should return an updated stack trace after an update", function() -- Line 38
    end)
    it("should return nil when elementTracing is off", function() -- Line 40
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: GlobalConfig_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var5_upvr (readonly)
        ]]
        local var13_upvw
        local any_extend_result1_upvr_2 = Component_upvr:extend("TestComponent")
        function any_extend_result1_upvr_2.init(arg1) -- Line 49
            --[[ Upvalues[1]:
                [1]: var13_upvw (read and write)
            ]]
            var13_upvw = arg1:getElementTraceback()
        end
        function any_extend_result1_upvr_2.render(arg1) -- Line 53
            return nil
        end
        GlobalConfig_upvr.scoped({
            elementTracing = false;
        }, function() -- Line 57
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_upvr_2 (readonly)
                [3]: var5_upvr (copied, readonly)
            ]]
            var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_upvr_2), nil, "Some key")
        end)
        expect(var13_upvw).to.equal(nil)
    end)
end
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:45
-- Luau version 6, Types version 3
-- Time taken: 0.002345 seconds

return function() -- Line 1
    local Component_upvr = require(script.Parent.Parent.Component)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    local Type_upvr = require(script.Parent.Parent.Type)
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    it("should be invoked with props when mounted", function() -- Line 13
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.init = createSpy_upvr_result1.value
        function any_extend_result1.render(arg1) -- Line 20
            return nil
        end
        local tbl = {
            a = 5;
        }
        var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1, tbl), nil, "Some Component Key")
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        local any_captureValues_result1 = createSpy_upvr_result1:captureValues("self", "props")
        expect(Type_upvr.of(any_captureValues_result1.self)).to.equal(Type_upvr.StatefulComponentInstance)
        expect(typeof(any_captureValues_result1.props)).to.equal("table")
        assertDeepEqual_upvr(any_captureValues_result1.props, tbl)
    end)
end
ModuleScript legacyContext.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.legacyContext.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:47
-- Luau version 6, Types version 3
-- Time taken: 0.009208 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var5_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be provided as a mutable self._context in Component:init", function() -- Line 11
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_8 = Component_upvr:extend("Provider")
        local function init(arg1) -- Line 14
            arg1._context.foo = "bar"
        end
        any_extend_result1_8.init = init
        local function render(arg1) -- Line 18
        end
        any_extend_result1_8.render = render
        assertDeepEqual_upvr(var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_8), nil, "Provider").legacyContext, {
            foo = "bar";
        })
    end)
    it("should be inherited from parent stateful nodes", function() -- Line 32
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2_upvr = Component_upvr:extend("Consumer")
        local var11_upvw
        local function init(arg1) -- Line 36
            --[[ Upvalues[1]:
                [1]: var11_upvw (read and write)
            ]]
            var11_upvw = arg1._context
        end
        any_extend_result1_2_upvr.init = init
        local function render(arg1) -- Line 40
        end
        any_extend_result1_2_upvr.render = render
        local any_extend_result1_4 = Component_upvr:extend("Parent")
        local function render(arg1) -- Line 44
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_2_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_2_upvr)
        end
        any_extend_result1_4.render = render
        local tbl_3 = {
            hello = "world";
            value = 6;
        }
        local any_mountVirtualNode_result1 = var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_4), nil, "Parent", nil, tbl_3)
        expect(var11_upvw).never.to.equal(tbl_3)
        expect(var11_upvw).never.to.equal(any_mountVirtualNode_result1.legacyContext)
        assertDeepEqual_upvr(any_mountVirtualNode_result1.legacyContext, tbl_3)
        assertDeepEqual_upvr(var11_upvw, tbl_3)
    end)
    it("should be inherited from parent function nodes", function() -- Line 63
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_3_upvr = Component_upvr:extend("Consumer")
        local var17_upvw
        local function init(arg1) -- Line 67
            --[[ Upvalues[1]:
                [1]: var17_upvw (read and write)
            ]]
            var17_upvw = arg1._context
        end
        any_extend_result1_3_upvr.init = init
        local function render(arg1) -- Line 71
        end
        any_extend_result1_3_upvr.render = render
        local tbl_2 = {
            hello = "world";
            value = 6;
        }
        local any_mountVirtualNode_result1_2 = var5_upvr.mountVirtualNode(createElement_upvr(function() -- Line 73, Named "Parent"
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_3_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_3_upvr)
        end), nil, "Parent", nil, tbl_2)
        expect(var17_upvw).never.to.equal(tbl_2)
        expect(var17_upvw).never.to.equal(any_mountVirtualNode_result1_2.legacyContext)
        assertDeepEqual_upvr(any_mountVirtualNode_result1_2.legacyContext, tbl_2)
        assertDeepEqual_upvr(var17_upvw, tbl_2)
    end)
    it("should contain values put into the tree by parent nodes", function() -- Line 92
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_7_upvr = Component_upvr:extend("Consumer")
        local var22_upvw
        local function init(arg1) -- Line 96
            --[[ Upvalues[1]:
                [1]: var22_upvw (read and write)
            ]]
            var22_upvw = arg1._context
        end
        any_extend_result1_7_upvr.init = init
        local function render(arg1) -- Line 100
        end
        any_extend_result1_7_upvr.render = render
        local any_extend_result1_6 = Component_upvr:extend("Provider")
        local function init(arg1) -- Line 104
            arg1._context.frob = "ulator"
        end
        any_extend_result1_6.init = init
        local function render(arg1) -- Line 108
            --[[ Upvalues[2]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_7_upvr (readonly)
            ]]
            return createElement_upvr(any_extend_result1_7_upvr)
        end
        any_extend_result1_6.render = render
        local tbl_4 = {
            dont = "try it";
        }
        local any_mountVirtualNode_result1_3 = var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_6), nil, "Consumer", nil, tbl_4)
        local tbl = {
            dont = "try it";
            frob = "ulator";
        }
        expect(any_mountVirtualNode_result1_3.legacyContext).never.to.equal(tbl_4)
        expect(var22_upvw).never.to.equal(tbl_4)
        expect(var22_upvw).never.to.equal(any_mountVirtualNode_result1_3.legacyContext)
        assertDeepEqual_upvr(tbl_4, {
            dont = "try it";
        })
        assertDeepEqual_upvr(any_mountVirtualNode_result1_3.legacyContext, tbl)
        assertDeepEqual_upvr(var22_upvw, tbl)
    end)
    it("should transfer context to children that are replaced", function() -- Line 139
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var5_upvr (readonly)
            [4]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_upvr = Component_upvr:extend("ConsumerA")
        local var30_upvw
        local function init(arg1) -- Line 143
            --[[ Upvalues[1]:
                [1]: var30_upvw (read and write)
            ]]
            arg1._context.A = "hello"
            var30_upvw = arg1._context
        end
        any_extend_result1_upvr.init = init
        local function render(arg1) -- Line 149
        end
        any_extend_result1_upvr.render = render
        local any_extend_result1_5_upvr = Component_upvr:extend("ConsumerB")
        local var32_upvw
        local function init(arg1) -- Line 154
            --[[ Upvalues[1]:
                [1]: var32_upvw (read and write)
            ]]
            arg1._context.B = "hello"
            var32_upvw = arg1._context
        end
        any_extend_result1_5_upvr.init = init
        local function render(arg1) -- Line 160
        end
        any_extend_result1_5_upvr.render = render
        local any_extend_result1 = Component_upvr:extend("Provider")
        function any_extend_result1.init(arg1) -- Line 164
            arg1._context.frob = "ulator"
        end
        function any_extend_result1.render(arg1) -- Line 168
            --[[ Upvalues[3]:
                [1]: createElement_upvr (copied, readonly)
                [2]: any_extend_result1_5_upvr (readonly)
                [3]: any_extend_result1_upvr (readonly)
            ]]
            if arg1.props.useConsumerB then
                return createElement_upvr(any_extend_result1_5_upvr)
            end
            return createElement_upvr(any_extend_result1_upvr)
        end
        assertDeepEqual_upvr(var30_upvw, {
            frob = "ulator";
            A = "hello";
        })
        var5_upvr.updateVirtualNode(var5_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Consumer"), createElement_upvr(any_extend_result1, {
            useConsumerB = true;
        }))
        assertDeepEqual_upvr(var32_upvw, {
            frob = "ulator";
            B = "hello";
        })
    end)
end
ModuleScript render.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.render.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:48
-- Luau version 6, Types version 3
-- Time taken: 0.007898 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local Type_upvr = require(script.Parent.Parent.Type)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var7_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should throw on mount if not overridden", function() -- Line 13
        --[[ Upvalues[3]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var7_upvr (readonly)
        ]]
        local var3_result1_upvr = createElement_upvr(Component_upvr:extend("MyComponent"))
        local pcall_result1, pcall_result2 = pcall(function() -- Line 20
            --[[ Upvalues[2]:
                [1]: var7_upvr (copied, readonly)
                [2]: var3_result1_upvr (readonly)
            ]]
            var7_upvr.mountVirtualNode(var3_result1_upvr, nil, "Test")
        end)
        expect(pcall_result1).to.equal(false)
        expect(pcall_result2:match("MyComponent")).to.be.ok()
        expect(pcall_result2:match("render")).to.be.ok()
    end)
    it("should be invoked when a component is mounted", function() -- Line 29
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("Foo")
        local var15_upvw
        local var16_upvw
        local createSpy_upvr_result1 = createSpy_upvr(function(arg1) -- Line 34
            --[[ Upvalues[2]:
                [1]: var15_upvw (read and write)
                [2]: var16_upvw (read and write)
            ]]
            var15_upvw = arg1.props
            var16_upvw = arg1.state
        end)
        any_extend_result1.render = createSpy_upvr_result1.value
        var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Foo Test")
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        expect(Type_upvr.of(createSpy_upvr_result1:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(var15_upvw, {})
        assertDeepEqual_upvr(var16_upvw, {})
    end)
    it("should be invoked when a component is updated via props", function() -- Line 55
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2 = Component_upvr:extend("Foo")
        local var21_upvw
        local var22_upvw
        local createSpy_upvr_result1_3 = createSpy_upvr(function(arg1) -- Line 60
            --[[ Upvalues[2]:
                [1]: var21_upvw (read and write)
                [2]: var22_upvw (read and write)
            ]]
            var21_upvw = arg1.props
            var22_upvw = arg1.state
        end)
        any_extend_result1_2.render = createSpy_upvr_result1_3.value
        local tbl = {
            a = 2;
        }
        expect(createSpy_upvr_result1_3.callCount).to.equal(1)
        local var26 = var21_upvw
        local var27 = var22_upvw
        expect(Type_upvr.of(createSpy_upvr_result1_3:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(var26, tbl)
        assertDeepEqual_upvr(var27, {})
        local tbl_2 = {
            a = 3;
        }
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2, tbl), nil, "Foo Test"), createElement_upvr(any_extend_result1_2, tbl_2))
        expect(createSpy_upvr_result1_3.callCount).to.equal(2)
        local var29 = var21_upvw
        expect(Type_upvr.of(createSpy_upvr_result1_3:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
        expect(var29).never.to.equal(var26)
        assertDeepEqual_upvr(var29, tbl_2)
        expect(var22_upvw).to.equal(var27)
    end)
    it("should be invoked when a component is updated via state", function() -- Line 104
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
        ]]
        local any_extend_result1_3 = Component_upvr:extend("Foo")
        local var33_upvw
        function any_extend_result1_3.init(arg1) -- Line 108
            --[[ Upvalues[1]:
                [1]: var33_upvw (read and write)
            ]]
            function var33_upvw(...) -- Line 109
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                return arg1:setState(...)
            end
        end
        local var34_upvw
        local var35_upvw
        local createSpy_upvr_result1_2 = createSpy_upvr(function(arg1) -- Line 116
            --[[ Upvalues[2]:
                [1]: var34_upvw (read and write)
                [2]: var35_upvw (read and write)
            ]]
            var34_upvw = arg1.props
            var35_upvw = arg1.state
        end)
        any_extend_result1_3.render = createSpy_upvr_result1_2.value
        var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_3), nil, "Foo Test")
        expect(createSpy_upvr_result1_2.callCount).to.equal(1)
        expect(Type_upvr.of(createSpy_upvr_result1_2:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
        var33_upvw({})
        expect(createSpy_upvr_result1_2.callCount).to.equal(2)
        expect(Type_upvr.of(createSpy_upvr_result1_2:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
        expect(var34_upvw).to.equal(var34_upvw)
        expect(var35_upvw).never.to.equal(var35_upvw)
    end)
    itSKIP("Test defaultProps on initial render", function() -- Line 147
    end)
    itSKIP("Test defaultProps on prop update", function() -- Line 148
    end)
    itSKIP("Test defaultProps on state update", function() -- Line 149
    end)
end
ModuleScript setState.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.setState.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:50
-- Luau version 6, Types version 3
-- Time taken: 0.023446 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var4_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    local None_upvr = require(script.Parent.Parent.None)
    describe("setState", function() -- Line 12
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var4_upvr (readonly)
            [4]: None_upvr (readonly)
        ]]
        it("should not trigger an extra update when called in init", function() -- Line 13
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local var8_upvw = 0
            local var9_upvw = 0
            local var10_upvw
            local any_extend_result1_13 = Component_upvr:extend("InitComponent")
            local function init(arg1) -- Line 20
                arg1:setState({
                    a = 1;
                })
            end
            any_extend_result1_13.init = init
            local function willUpdate(arg1) -- Line 26
                --[[ Upvalues[1]:
                    [1]: var9_upvw (read and write)
                ]]
                var9_upvw += 1
            end
            any_extend_result1_13.willUpdate = willUpdate
            local function render(arg1) -- Line 30
                --[[ Upvalues[2]:
                    [1]: var8_upvw (read and write)
                    [2]: var10_upvw (read and write)
                ]]
                var8_upvw += 1
                var10_upvw = arg1.state
                return nil
            end
            any_extend_result1_13.render = render
            var4_upvr.mountVirtualTree(createElement_upvr(any_extend_result1_13))
            expect(var8_upvw).to.equal(1)
            expect(var9_upvw).to.equal(0)
            expect(var10_upvw.a).to.equal(1)
        end)
        it("should throw when called in render", function() -- Line 45
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_16 = Component_upvr:extend("TestComponent")
            local function render(arg1) -- Line 48
                arg1:setState({
                    a = 1;
                })
            end
            any_extend_result1_16.render = render
            local pcall_result1_2, pcall_result2_3 = pcall(var4_upvr.mountVirtualTree, createElement_upvr(any_extend_result1_16))
            expect(pcall_result1_2).to.equal(false)
            expect(pcall_result2_3:match("render")).to.be.ok()
            expect(pcall_result2_3:match("TestComponent")).to.be.ok()
        end)
        it("should throw when called in shouldUpdate", function() -- Line 63
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_3 = Component_upvr:extend("TestComponent")
            local function render(arg1) -- Line 66
                return nil
            end
            any_extend_result1_3.render = render
            function any_extend_result1_3.shouldUpdate(arg1) -- Line 70
                arg1:setState({
                    a = 1;
                })
            end
            local pcall_result1_4, pcall_result2 = pcall(var4_upvr.updateVirtualTree, var4_upvr.mountVirtualTree(createElement_upvr(any_extend_result1_3)), createElement_upvr(any_extend_result1_3))
            expect(pcall_result1_4).to.equal(false)
            expect(pcall_result2:match("shouldUpdate")).to.be.ok()
            expect(pcall_result2:match("TestComponent")).to.be.ok()
        end)
        it("should throw when called in willUpdate", function() -- Line 88
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_20 = Component_upvr:extend("TestComponent")
            local function render(arg1) -- Line 91
                return nil
            end
            any_extend_result1_20.render = render
            function any_extend_result1_20.willUpdate(arg1) -- Line 95
                arg1:setState({
                    a = 1;
                })
            end
            local pcall_result1, pcall_result2_5 = pcall(var4_upvr.updateVirtualTree, var4_upvr.mountVirtualTree(createElement_upvr(any_extend_result1_20)), createElement_upvr(any_extend_result1_20))
            expect(pcall_result1).to.equal(false)
            expect(pcall_result2_5:match("willUpdate")).to.be.ok()
            expect(pcall_result2_5:match("TestComponent")).to.be.ok()
        end)
        it("should not throw when called in willUnmount", function() -- Line 112
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_5 = Component_upvr:extend("TestComponent")
            local function render(arg1) -- Line 115
                return nil
            end
            any_extend_result1_5.render = render
            function any_extend_result1_5.willUnmount(arg1) -- Line 119
                arg1:setState({
                    a = 1;
                })
            end
            local pcall_result1_3, pcall_result2_4 = pcall(var4_upvr.unmountVirtualTree, var4_upvr.mountVirtualTree(createElement_upvr(any_extend_result1_5)))
            expect(pcall_result1_3).to.equal(true)
        end)
        it("should remove values from state when the value is None", function() -- Line 133
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
                [4]: None_upvr (copied, readonly)
            ]]
            local any_extend_result1_10 = Component_upvr:extend("TestComponent")
            local var37_upvw
            local var38_upvw
            local function init(arg1) -- Line 137
                --[[ Upvalues[2]:
                    [1]: var37_upvw (read and write)
                    [2]: var38_upvw (read and write)
                ]]
                function var37_upvw(arg1_2) -- Line 138
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(arg1_2)
                end
                function var38_upvw() -- Line 142
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
                arg1:setState({
                    value = 0;
                })
            end
            any_extend_result1_10.init = init
            local function render(arg1) -- Line 151
                return nil
            end
            any_extend_result1_10.render = render
            expect(var38_upvw().value).to.equal(0)
            var37_upvw({
                value = None_upvr;
            })
            expect(var38_upvw().value).to.equal(nil)
            var4_upvr.unmountVirtualNode(var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_10), nil, "Test"))
        end)
        it("should invoke functions to compute a partial state", function() -- Line 169
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_18 = Component_upvr:extend("TestComponent")
            local var46_upvw
            local var47_upvw
            local var48_upvw
            local function init(arg1) -- Line 173
                --[[ Upvalues[3]:
                    [1]: var46_upvw (read and write)
                    [2]: var47_upvw (read and write)
                    [3]: var48_upvw (read and write)
                ]]
                function var46_upvw(arg1_3) -- Line 174
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(arg1_3)
                end
                function var47_upvw() -- Line 178
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
                function var48_upvw() -- Line 182
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.props
                end
                arg1:setState({
                    value = 0;
                })
            end
            any_extend_result1_18.init = init
            local function render(arg1) -- Line 191
                return nil
            end
            any_extend_result1_18.render = render
            expect(var47_upvw().value).to.equal(0)
            var46_upvw(function(arg1, arg2) -- Line 200
                --[[ Upvalues[2]:
                    [1]: var47_upvw (read and write)
                    [2]: var48_upvw (read and write)
                ]]
                expect(arg1).to.equal(var47_upvw())
                expect(arg2).to.equal(var48_upvw())
                return {
                    value = arg1.value + 1;
                }
            end)
            expect(var47_upvw().value).to.equal(1)
            var4_upvr.unmountVirtualNode(var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_18), nil, "Test"))
        end)
        it("should cancel rendering if the function returns nil", function() -- Line 214
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_4 = Component_upvr:extend("TestComponent")
            local var56_upvw
            local var55_upvw = 0
            local function init(arg1) -- Line 219
                --[[ Upvalues[1]:
                    [1]: var56_upvw (read and write)
                ]]
                function var56_upvw(arg1_4) -- Line 220
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(arg1_4)
                end
                arg1:setState({
                    value = 0;
                })
            end
            any_extend_result1_4.init = init
            local function render(arg1) -- Line 229
                --[[ Upvalues[1]:
                    [1]: var55_upvw (read and write)
                ]]
                var55_upvw += 1
                return nil
            end
            any_extend_result1_4.render = render
            expect(var55_upvw).to.equal(1)
            var56_upvw(function(arg1, arg2) -- Line 238
                return nil
            end)
            expect(var55_upvw).to.equal(1)
            var4_upvr.unmountVirtualNode(var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_4), nil, "Test"))
        end)
    end)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    describe("setState suspension", function() -- Line 248
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createElement_upvr (readonly)
            [3]: var4_upvr (readonly)
            [4]: createSpy_upvr (readonly)
        ]]
        it("should defer setState triggered while reconciling", function() -- Line 249
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_upvr = Component_upvr:extend("Child")
            local var65_upvw
            local function render(arg1) -- Line 253
                return nil
            end
            any_extend_result1_upvr.render = render
            local function didMount(arg1) -- Line 257
                arg1.props.callback()
            end
            any_extend_result1_upvr.didMount = didMount
            local any_extend_result1 = Component_upvr:extend("Parent")
            local function init(arg1) -- Line 263
                --[[ Upvalues[1]:
                    [1]: var65_upvw (read and write)
                ]]
                function var65_upvw() -- Line 264
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
            end
            any_extend_result1.init = init
            local function render(arg1) -- Line 269
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_upvr (readonly)
                ]]
                local module_4 = {}
                local function callback() -- Line 271
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState({
                        foo = "bar";
                    })
                end
                module_4.callback = callback
                return createElement_upvr(any_extend_result1_upvr, module_4)
            end
            any_extend_result1.render = render
            expect(var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Test")).to.be.ok()
            expect(var65_upvw().foo).to.equal("bar")
        end)
        it("should defer setState triggered while reconciling during an update", function() -- Line 289
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_6_upvr = Component_upvr:extend("Child")
            local var72_upvw
            local function render(arg1) -- Line 293
                return nil
            end
            any_extend_result1_6_upvr.render = render
            local function didUpdate(arg1) -- Line 297
                arg1.props.callback()
            end
            any_extend_result1_6_upvr.didUpdate = didUpdate
            local any_extend_result1_17 = Component_upvr:extend("Parent")
            local function init(arg1) -- Line 303
                --[[ Upvalues[1]:
                    [1]: var72_upvw (read and write)
                ]]
                function var72_upvw() -- Line 304
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
            end
            any_extend_result1_17.init = init
            local function render(arg1) -- Line 309
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_6_upvr (readonly)
                ]]
                local module = {}
                local function callback() -- Line 311
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    if not arg1.state.foo then
                        arg1:setState({
                            foo = "bar";
                        })
                    end
                end
                module.callback = callback
                return createElement_upvr(any_extend_result1_6_upvr, module)
            end
            any_extend_result1_17.render = render
            local any_mountVirtualNode_result1_4 = var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_17), nil, "Test")
            expect(any_mountVirtualNode_result1_4).to.be.ok()
            expect(var72_upvw().foo).to.equal(nil)
            local any_updateVirtualNode_result1 = var4_upvr.updateVirtualNode(any_mountVirtualNode_result1_4, createElement_upvr(any_extend_result1_17))
            expect(any_updateVirtualNode_result1).to.be.ok()
            expect(var72_upvw().foo).to.equal("bar")
            var4_upvr.unmountVirtualNode(any_updateVirtualNode_result1)
        end)
        it("should combine pending state changes properly", function() -- Line 339
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_19_upvr = Component_upvr:extend("Child")
            local var81_upvw
            local function render(arg1) -- Line 343
                return nil
            end
            any_extend_result1_19_upvr.render = render
            local function didMount(arg1) -- Line 347
                arg1.props.callback("foo", 1)
                arg1.props.callback("bar", 3)
            end
            any_extend_result1_19_upvr.didMount = didMount
            local any_extend_result1_14 = Component_upvr:extend("Parent")
            local function init(arg1) -- Line 354
                --[[ Upvalues[1]:
                    [1]: var81_upvw (read and write)
                ]]
                function var81_upvw() -- Line 355
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
            end
            any_extend_result1_14.init = init
            local function render(arg1) -- Line 360
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_19_upvr (readonly)
                ]]
                local module_2 = {}
                local function callback(arg1_5, arg2) -- Line 362
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    local tbl = {}
                    tbl[arg1_5] = arg2
                    arg1:setState(tbl)
                end
                module_2.callback = callback
                return createElement_upvr(any_extend_result1_19_upvr, module_2)
            end
            any_extend_result1_14.render = render
            local any_mountVirtualNode_result1 = var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_14), nil, "Test")
            expect(any_mountVirtualNode_result1).to.be.ok()
            expect(var81_upvw().foo).to.equal(1)
            expect(var81_upvw().bar).to.equal(3)
            var4_upvr.unmountVirtualNode(any_mountVirtualNode_result1)
        end)
        it("should abort properly when functional setState returns nil while deferred", function() -- Line 383
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_9_upvr = Component_upvr:extend("Child")
            local function render(arg1) -- Line 386
                return nil
            end
            any_extend_result1_9_upvr.render = render
            local function didMount(arg1) -- Line 390
                arg1.props.callback()
            end
            any_extend_result1_9_upvr.didMount = didMount
            local any_extend_result1_7 = Component_upvr:extend("Parent")
            local createSpy_upvr_result1 = createSpy_upvr(function(arg1) -- Line 396
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_9_upvr (readonly)
                ]]
                local module_3 = {}
                local function callback() -- Line 398
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(function() -- Line 399
                        return nil
                    end)
                end
                module_3.callback = callback
                return createElement_upvr(any_extend_result1_9_upvr, module_3)
            end)
            any_extend_result1_7.render = createSpy_upvr_result1.value
            local any_mountVirtualNode_result1_2 = var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_7), nil, "Test")
            expect(any_mountVirtualNode_result1_2).to.be.ok()
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            var4_upvr.unmountVirtualNode(any_mountVirtualNode_result1_2)
        end)
        it("should still apply pending state if a subsequent state update was aborted", function() -- Line 421
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_2_upvr = Component_upvr:extend("Child")
            local var100_upvw
            local function render(arg1) -- Line 425
                return nil
            end
            any_extend_result1_2_upvr.render = render
            local function didMount(arg1) -- Line 429
                arg1.props.callback(function() -- Line 430
                    return {
                        foo = 1;
                    }
                end)
                arg1.props.callback(function() -- Line 435
                    return nil
                end)
            end
            any_extend_result1_2_upvr.didMount = didMount
            local any_extend_result1_15 = Component_upvr:extend("Parent")
            local function init(arg1) -- Line 442
                --[[ Upvalues[1]:
                    [1]: var100_upvw (read and write)
                ]]
                function var100_upvw() -- Line 443
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
            end
            any_extend_result1_15.init = init
            local function render(arg1) -- Line 448
                --[[ Upvalues[2]:
                    [1]: createElement_upvr (copied, readonly)
                    [2]: any_extend_result1_2_upvr (readonly)
                ]]
                return createElement_upvr(any_extend_result1_2_upvr, {
                    callback = function(arg1_6) -- Line 450, Named "callback"
                        --[[ Upvalues[1]:
                            [1]: arg1 (readonly)
                        ]]
                        arg1:setState(arg1_6)
                    end;
                })
            end
            any_extend_result1_15.render = render
            local any_mountVirtualNode_result1_3 = var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_15), nil, "Test")
            expect(any_mountVirtualNode_result1_3).to.be.ok()
            expect(var100_upvw().foo).to.equal(1)
            var4_upvr.unmountVirtualNode(any_mountVirtualNode_result1_3)
        end)
        it("should not re-process new state when pending state is present after update", function() -- Line 468
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local var108_upvw
            local var109_upvw
            local any_extend_result1_12 = Component_upvr:extend("MyComponent")
            local function init(arg1) -- Line 474
                --[[ Upvalues[2]:
                    [1]: var108_upvw (read and write)
                    [2]: var109_upvw (read and write)
                ]]
                arg1:setState({
                    hasUpdatedOnce = false;
                    counter = 0;
                })
                function var108_upvw(arg1_7) -- Line 480
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(arg1_7)
                end
                function var109_upvw() -- Line 484
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    return arg1.state
                end
            end
            any_extend_result1_12.init = init
            local function render(arg1) -- Line 489
                return nil
            end
            any_extend_result1_12.render = render
            local function didUpdate(arg1) -- Line 493
                if arg1.state.hasUpdatedOnce == false then
                    arg1:setState({
                        hasUpdatedOnce = true;
                    })
                end
            end
            any_extend_result1_12.didUpdate = didUpdate
            var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_12), nil, "Test")
            expect(var109_upvw().hasUpdatedOnce).to.equal(false)
            expect(var109_upvw().counter).to.equal(0)
            var108_upvw(function(arg1) -- Line 510
                return {
                    counter = arg1.counter + 1;
                }
            end)
            expect(var109_upvw().hasUpdatedOnce).to.equal(true)
            expect(var109_upvw().counter).to.equal(1)
        end)
        it("should throw when an infinite update is triggered", function() -- Line 520
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_8 = Component_upvr:extend("InfiniteUpdater")
            local function render(arg1) -- Line 523
                return nil
            end
            any_extend_result1_8.render = render
            local function didMount(arg1) -- Line 527
                arg1:setState({})
            end
            any_extend_result1_8.didMount = didMount
            local function didUpdate(arg1) -- Line 531
                arg1:setState({})
            end
            any_extend_result1_8.didUpdate = didUpdate
            local pcall_result1_5, pcall_result2_2 = pcall(var4_upvr.mountVirtualNode, createElement_upvr(any_extend_result1_8), nil, "Test")
            expect(pcall_result1_5).to.equal(false)
            expect(pcall_result2_2:find("InfiniteUpdater")).to.be.ok()
            expect(pcall_result2_2:find("reached the setState update recursion limit")).to.be.ok()
        end)
        itSKIP("should process single updates with both new and pending state", function() -- Line 546
        end)
        it("should call trigger update after didMount when setting state in didMount", function() -- Line 553
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var4_upvr (copied, readonly)
            ]]
            local any_extend_result1_11 = Component_upvr:extend("MyComponent")
            function any_extend_result1_11.init(arg1) -- Line 564
                arg1:setState({
                    status = "initial mount";
                })
                arg1.isMounted = false
            end
            function any_extend_result1_11.render(arg1) -- Line 572
                return nil
            end
            function any_extend_result1_11.didMount(arg1) -- Line 576
                arg1:setState({
                    status = "mounted";
                })
                arg1.isMounted = true
            end
            function any_extend_result1_11.didUpdate(arg1, arg2, arg3) -- Line 584
                expect(arg3.status).to.equal("initial mount")
                expect(arg1.state.status).to.equal("mounted")
                expect(arg1.isMounted).to.equal(true)
            end
            expect(var4_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_11), nil, "Test")).to.be.ok()
        end)
    end)
end
ModuleScript shouldUpdate.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.shouldUpdate.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:52
-- Luau version 6, Types version 3
-- Time taken: 0.005356 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local Type_upvr = require(script.Parent.Parent.Type)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var7_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be invoked when props update", function() -- Line 13
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2 = Component_upvr:extend("MyComponent")
        local var10_upvw
        local var11_upvw
        local createSpy_upvr_result1_2 = createSpy_upvr(function(arg1) -- Line 18
            --[[ Upvalues[2]:
                [1]: var10_upvw (read and write)
                [2]: var11_upvw (read and write)
            ]]
            var10_upvw = arg1.props
            var11_upvw = arg1.state
            return true
        end)
        any_extend_result1_2.shouldUpdate = createSpy_upvr_result1_2.value
        local function render(arg1) -- Line 27
            return nil
        end
        any_extend_result1_2.render = render
        local tbl_2 = {
            a = 5;
        }
        expect(createSpy_upvr_result1_2.callCount).to.equal(0)
        local tbl_3 = {
            a = 6;
            b = 2;
        }
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2, tbl_2), nil, "Test"), createElement_upvr(any_extend_result1_2, tbl_3))
        expect(createSpy_upvr_result1_2.callCount).to.equal(1)
        local any_captureValues_result1 = createSpy_upvr_result1_2:captureValues("self", "newProps", "newState")
        expect(Type_upvr.of(any_captureValues_result1.self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(any_captureValues_result1.newProps, tbl_3)
        assertDeepEqual_upvr(var10_upvw, tbl_2)
        expect(any_captureValues_result1.newState).to.equal(var11_upvw)
        assertDeepEqual_upvr(var11_upvw, {})
    end)
    it("should be invoked when state is updated", function() -- Line 63
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_4 = Component_upvr:extend("MyComponent")
        local tbl_4_upvr = {
            a = 1;
        }
        local var22_upvw
        local var21_upvw
        function any_extend_result1_4.init(arg1) -- Line 72
            --[[ Upvalues[3]:
                [1]: var22_upvw (read and write)
                [2]: tbl_4_upvr (readonly)
                [3]: var21_upvw (read and write)
            ]]
            function var22_upvw(...) -- Line 73
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                return arg1:setState(...)
            end
            arg1:setState(tbl_4_upvr)
            var21_upvw = arg1.state
        end
        local var23_upvw
        local var24_upvw
        local createSpy_upvr_result1_4 = createSpy_upvr(function(arg1) -- Line 84
            --[[ Upvalues[2]:
                [1]: var23_upvw (read and write)
                [2]: var24_upvw (read and write)
            ]]
            var23_upvw = arg1.props
            var24_upvw = arg1.state
            return true
        end)
        any_extend_result1_4.shouldUpdate = createSpy_upvr_result1_4.value
        function any_extend_result1_4.render(arg1) -- Line 93
            return nil
        end
        var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_4), nil, "Test")
        expect(createSpy_upvr_result1_4.callCount).to.equal(0)
        local tbl = {
            a = 2;
            b = 3;
        }
        var22_upvw(tbl)
        expect(createSpy_upvr_result1_4.callCount).to.equal(1)
        local any_captureValues_result1_2 = createSpy_upvr_result1_4:captureValues("self", "newProps", "newState")
        expect(Type_upvr.of(any_captureValues_result1_2.self)).to.equal(Type_upvr.StatefulComponentInstance)
        expect(any_captureValues_result1_2.newProps).to.equal(var23_upvw)
        assertDeepEqual_upvr(var23_upvw, {})
        assertDeepEqual_upvr(var24_upvw, tbl_4_upvr)
        expect(var24_upvw).to.equal(var21_upvw)
        assertDeepEqual_upvr(any_captureValues_result1_2.newState, tbl)
    end)
    it("should not abort an update when returning true", function() -- Line 126
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
        ]]
        local any_extend_result1_3 = Component_upvr:extend("MyComponent")
        local function shouldUpdate(arg1) -- Line 129
            return true
        end
        any_extend_result1_3.shouldUpdate = shouldUpdate
        local createSpy_upvr_result1_3 = createSpy_upvr()
        any_extend_result1_3.render = createSpy_upvr_result1_3.value
        expect(createSpy_upvr_result1_3.callCount).to.equal(1)
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_3), nil, "Test"), createElement_upvr(any_extend_result1_3))
        expect(createSpy_upvr_result1_3.callCount).to.equal(2)
    end)
    it("should abort an update when retuning false", function() -- Line 151
        --[[ Upvalues[4]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        function any_extend_result1.shouldUpdate(arg1) -- Line 154
            return false
        end
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.render = createSpy_upvr_result1.value
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Test"), createElement_upvr(any_extend_result1))
        expect(createSpy_upvr_result1.callCount).to.equal(1)
    end)
end
ModuleScript validateProps.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.validateProps.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:53
-- Luau version 6, Types version 3
-- Time taken: 0.012063 seconds

return function() -- Line 1
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local GlobalConfig_upvr = require(script.Parent.Parent.GlobalConfig)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be invoked when mounted", function() -- Line 12
        --[[ Upvalues[5]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createSpy_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 17
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1 = Component_upvr:extend("MyComponent")
            local createSpy_upvr_result1_4 = createSpy_upvr(function() -- Line 20
                return true
            end)
            any_extend_result1.validateProps = createSpy_upvr_result1_4.value
            local function render(arg1) -- Line 26
                return nil
            end
            any_extend_result1.render = render
            var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Test")
            expect(createSpy_upvr_result1_4.callCount).to.equal(1)
        end)
    end)
    it("should be invoked when props change", function() -- Line 39
        --[[ Upvalues[5]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createSpy_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 44
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_6 = Component_upvr:extend("MyComponent")
            local createSpy_upvr_result1 = createSpy_upvr(function() -- Line 47
                return true
            end)
            any_extend_result1_6.validateProps = createSpy_upvr_result1.value
            local function render(arg1) -- Line 53
                return nil
            end
            any_extend_result1_6.render = render
            expect(createSpy_upvr_result1.callCount).to.equal(1)
            createSpy_upvr_result1:assertCalledWithDeepEqual({
                a = 1;
            })
            var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_6, {
                a = 1;
            }), nil, "Test"), createElement_upvr(any_extend_result1_6, {
                a = 2;
            }))
            expect(createSpy_upvr_result1.callCount).to.equal(2)
            createSpy_upvr_result1:assertCalledWithDeepEqual({
                a = 2;
            })
        end)
    end)
    it("should not be invoked when state changes", function() -- Line 76
        --[[ Upvalues[5]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createSpy_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 81
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_4 = Component_upvr:extend("MyComponent")
            local var30_upvw
            local createSpy_upvr_result1_3 = createSpy_upvr(function() -- Line 85
                return true
            end)
            any_extend_result1_4.validateProps = createSpy_upvr_result1_3.value
            function any_extend_result1_4.init(arg1) -- Line 91
                --[[ Upvalues[1]:
                    [1]: var30_upvw (read and write)
                ]]
                function var30_upvw(arg1_2) -- Line 92
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:setState(arg1_2)
                end
            end
            local function render(arg1) -- Line 97
                return nil
            end
            any_extend_result1_4.render = render
            var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_4, {
                a = 1;
            }), nil, "Test")
            expect(createSpy_upvr_result1_3.callCount).to.equal(1)
            createSpy_upvr_result1_3:assertCalledWithDeepEqual({
                a = 1;
            })
            var30_upvw({
                b = 1;
            })
            expect(createSpy_upvr_result1_3.callCount).to.equal(1)
        end)
    end)
    it("should throw if validateProps is not a function", function() -- Line 119
        --[[ Upvalues[4]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 124
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_7 = Component_upvr:extend("MyComponent")
            any_extend_result1_7.validateProps = 1
            local function render(arg1) -- Line 128
                return nil
            end
            any_extend_result1_7.render = render
            local createElement_upvr_result1_upvr = createElement_upvr(any_extend_result1_7)
            expect(function() -- Line 136
                --[[ Upvalues[2]:
                    [1]: var6_upvr (copied, readonly)
                    [2]: createElement_upvr_result1_upvr (readonly)
                ]]
                var6_upvr.mountVirtualNode(createElement_upvr_result1_upvr, nil, "Test")
            end).to.throw()
        end)
    end)
    it("should throw if validateProps returns false", function() -- Line 142
        --[[ Upvalues[4]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 147
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_8 = Component_upvr:extend("MyComponent")
            function any_extend_result1_8.validateProps() -- Line 149
                return false
            end
            local function render(arg1) -- Line 153
                return nil
            end
            any_extend_result1_8.render = render
            local var2_result1_upvr = createElement_upvr(any_extend_result1_8)
            expect(function() -- Line 161
                --[[ Upvalues[2]:
                    [1]: var6_upvr (copied, readonly)
                    [2]: var2_result1_upvr (readonly)
                ]]
                var6_upvr.mountVirtualNode(var2_result1_upvr, nil, "Test")
            end).to.throw()
        end)
    end)
    it("should include the component name in the error message", function() -- Line 167
        --[[ Upvalues[4]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 172
            --[[ Upvalues[3]:
                [1]: Component_upvr (copied, readonly)
                [2]: createElement_upvr (copied, readonly)
                [3]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_5 = Component_upvr:extend("MyComponent")
            function any_extend_result1_5.validateProps() -- Line 174
                return false
            end
            local function render(arg1) -- Line 178
                return nil
            end
            any_extend_result1_5.render = render
            local var2_result1_upvr_2 = createElement_upvr(any_extend_result1_5)
            local pcall_result1, pcall_result2 = pcall(function() -- Line 186
                --[[ Upvalues[2]:
                    [1]: var6_upvr (copied, readonly)
                    [2]: var2_result1_upvr_2 (readonly)
                ]]
                var6_upvr.mountVirtualNode(var2_result1_upvr_2, nil, "Test")
            end)
            expect(pcall_result1).to.equal(false)
            expect(pcall_result2:find("MyComponent")).to.be.ok()
        end)
    end)
    it("should be invoked after defaultProps are applied", function() -- Line 196
        --[[ Upvalues[5]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createSpy_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = true;
        }, function() -- Line 201
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_2 = Component_upvr:extend("MyComponent")
            local createSpy_upvr_result1_5 = createSpy_upvr(function() -- Line 204
                return true
            end)
            any_extend_result1_2.validateProps = createSpy_upvr_result1_5.value
            local function render(arg1) -- Line 210
                return nil
            end
            any_extend_result1_2.render = render
            any_extend_result1_2.defaultProps = {
                b = 2;
            }
            expect(createSpy_upvr_result1_5.callCount).to.equal(1)
            createSpy_upvr_result1_5:assertCalledWithDeepEqual({
                a = 1;
                b = 2;
            })
            var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2, {
                a = 1;
            }), nil, "Test"), createElement_upvr(any_extend_result1_2, {
                a = 2;
            }))
            expect(createSpy_upvr_result1_5.callCount).to.equal(2)
            createSpy_upvr_result1_5:assertCalledWithDeepEqual({
                a = 2;
                b = 2;
            })
        end)
    end)
    it("should not be invoked if the flag is off", function() -- Line 239
        --[[ Upvalues[5]:
            [1]: GlobalConfig_upvr (readonly)
            [2]: Component_upvr (readonly)
            [3]: createSpy_upvr (readonly)
            [4]: createElement_upvr (readonly)
            [5]: var6_upvr (readonly)
        ]]
        GlobalConfig_upvr.scoped({
            propValidation = false;
        }, function() -- Line 244
            --[[ Upvalues[4]:
                [1]: Component_upvr (copied, readonly)
                [2]: createSpy_upvr (copied, readonly)
                [3]: createElement_upvr (copied, readonly)
                [4]: var6_upvr (copied, readonly)
            ]]
            local any_extend_result1_3 = Component_upvr:extend("MyComponent")
            local createSpy_upvr_result1_2 = createSpy_upvr(function() -- Line 247
                return true
            end)
            any_extend_result1_3.validateProps = createSpy_upvr_result1_2.value
            function any_extend_result1_3.render(arg1) -- Line 253
                return nil
            end
            expect(createSpy_upvr_result1_2.callCount).to.equal(0)
            var6_upvr.updateVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_3, {
                a = 1;
            }), nil, "Test"), createElement_upvr(any_extend_result1_3, {
                a = 2;
            }))
            expect(createSpy_upvr_result1_2.callCount).to.equal(0)
        end)
    end)
end
ModuleScript willUnmount.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.willUnmount.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:55
-- Luau version 6, Types version 3
-- Time taken: 0.002056 seconds

return function() -- Line 1
    local Component_upvr = require(script.Parent.Parent.Component)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local var6_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    local Type_upvr = require(script.Parent.Parent.Type)
    it("should be invoked when unmounted", function() -- Line 12
        --[[ Upvalues[5]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var6_upvr (readonly)
            [5]: Type_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.willUnmount = createSpy_upvr_result1.value
        function any_extend_result1.render(arg1) -- Line 19
            return nil
        end
        var6_upvr.unmountVirtualNode(var6_upvr.mountVirtualNode(createElement_upvr(any_extend_result1), nil, "Test"))
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        expect(Type_upvr.of(createSpy_upvr_result1:captureValues("self").self)).to.equal(Type_upvr.StatefulComponentInstance)
    end)
end
ModuleScript willUpdate.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.Component.spec.willUpdate.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:56
-- Luau version 6, Types version 3
-- Time taken: 0.004401 seconds

return function() -- Line 1
    local assertDeepEqual_upvr = require(script.Parent.Parent.assertDeepEqual)
    local createElement_upvr = require(script.Parent.Parent.createElement)
    local createSpy_upvr = require(script.Parent.Parent.createSpy)
    local Type_upvr = require(script.Parent.Parent.Type)
    local Component_upvr = require(script.Parent.Parent.Component)
    local var7_upvr = require(script.Parent.Parent.createReconciler)(require(script.Parent.Parent.NoopRenderer))
    it("should be invoked when updated via updateVirtualNode", function() -- Line 13
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1 = Component_upvr:extend("MyComponent")
        local createSpy_upvr_result1 = createSpy_upvr()
        any_extend_result1.willUpdate = createSpy_upvr_result1.value
        local function render(arg1) -- Line 20
            return nil
        end
        any_extend_result1.render = render
        local tbl = {
            a = 6;
            b = 2;
        }
        var7_upvr.updateVirtualNode(var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1, {
            a = 5;
        }), nil, "Test"), createElement_upvr(any_extend_result1, tbl))
        expect(createSpy_upvr_result1.callCount).to.equal(1)
        local any_captureValues_result1 = createSpy_upvr_result1:captureValues("self", "newProps", "newState")
        expect(Type_upvr.of(any_captureValues_result1.self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(any_captureValues_result1.newProps, tbl)
        assertDeepEqual_upvr(any_captureValues_result1.newState, {})
    end)
    it("it should be invoked when updated via setState", function() -- Line 49
        --[[ Upvalues[6]:
            [1]: Component_upvr (readonly)
            [2]: createSpy_upvr (readonly)
            [3]: createElement_upvr (readonly)
            [4]: var7_upvr (readonly)
            [5]: Type_upvr (readonly)
            [6]: assertDeepEqual_upvr (readonly)
        ]]
        local any_extend_result1_2 = Component_upvr:extend("MyComponent")
        local var18_upvw
        local createSpy_upvr_result1_2 = createSpy_upvr()
        any_extend_result1_2.willUpdate = createSpy_upvr_result1_2.value
        function any_extend_result1_2.init(arg1) -- Line 57
            --[[ Upvalues[1]:
                [1]: var18_upvw (read and write)
            ]]
            function var18_upvw(arg1_2) -- Line 58
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:setState(arg1_2)
            end
            arg1:setState({
                foo = 1;
            })
        end
        function any_extend_result1_2.render(arg1) -- Line 67
            return nil
        end
        var7_upvr.mountVirtualNode(createElement_upvr(any_extend_result1_2), nil, "Test")
        expect(createSpy_upvr_result1_2.callCount).to.equal(0)
        var18_upvw({
            foo = 2;
        })
        expect(createSpy_upvr_result1_2.callCount).to.equal(1)
        local any_captureValues_result1_2 = createSpy_upvr_result1_2:captureValues("self", "newProps", "newState")
        expect(Type_upvr.of(any_captureValues_result1_2.self)).to.equal(Type_upvr.StatefulComponentInstance)
        assertDeepEqual_upvr(any_captureValues_result1_2.newProps, {})
        assertDeepEqual_upvr(any_captureValues_result1_2.newState, {
            foo = 2;
        })
    end)
end
ModuleScript Change ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Change
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:58
-- Luau version 6, Types version 3
-- Time taken: 0.001020 seconds

local module_upvr = {}
local tbl_2_upvr = {
    __tostring = function(arg1) -- Line 19, Named "__tostring"
        return "RoactHostChangeEvent(%s)":format(arg1.name)
    end;
}
local tbl = {}
local Type_upvr = require(script.Parent.Parent.Type)
function tbl.__index(arg1, arg2) -- Line 25
    --[[ Upvalues[3]:
        [1]: Type_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    local module = {
        [Type_upvr] = Type_upvr.HostChangeEvent;
    }
    module.name = arg2
    setmetatable(module, tbl_2_upvr)
    module_upvr[arg2] = module
    return module
end
setmetatable(module_upvr, tbl)
return module_upvr
ModuleScript Change.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Change.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:05:59
-- Luau version 6, Types version 3
-- Time taken: 0.001659 seconds

return function() -- Line 1
    local Change_upvr = require(script.Parent.Change)
    local Type_upvr = require(script.Parent.Parent.Type)
    it("should yield change listener objects when indexed", function() -- Line 6
        --[[ Upvalues[2]:
            [1]: Type_upvr (readonly)
            [2]: Change_upvr (readonly)
        ]]
        expect(Type_upvr.of(Change_upvr.Text)).to.equal(Type_upvr.HostChangeEvent)
        expect(Type_upvr.of(Change_upvr.Selected)).to.equal(Type_upvr.HostChangeEvent)
    end)
    it("should yield the same object when indexed again", function() -- Line 11
        --[[ Upvalues[1]:
            [1]: Change_upvr (readonly)
        ]]
        local Text = Change_upvr.Text
        expect(Text).to.equal(Change_upvr.Text)
        expect(Text).never.to.equal(Change_upvr.Selected)
    end)
end
ModuleScript Children ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Children
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:01
-- Luau version 6, Types version 3
-- Time taken: 0.000389 seconds

return require(script.Parent.Parent.Symbol).named("Children")
ModuleScript Event ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Event
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:02
-- Luau version 6, Types version 3
-- Time taken: 0.000998 seconds

local module_upvr = {}
local tbl_2_upvr = {
    __tostring = function(arg1) -- Line 21, Named "__tostring"
        return "RoactHostEvent(%s)":format(arg1.name)
    end;
}
local tbl = {}
local Type_upvr = require(script.Parent.Parent.Type)
function tbl.__index(arg1, arg2) -- Line 27
    --[[ Upvalues[3]:
        [1]: Type_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    local module = {
        [Type_upvr] = Type_upvr.HostEvent;
    }
    module.name = arg2
    setmetatable(module, tbl_2_upvr)
    module_upvr[arg2] = module
    return module
end
setmetatable(module_upvr, tbl)
return module_upvr
ModuleScript Event.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Event.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:04
-- Luau version 6, Types version 3
-- Time taken: 0.001694 seconds

return function() -- Line 1
    local Event_upvr = require(script.Parent.Event)
    local Type_upvr = require(script.Parent.Parent.Type)
    it("should yield event objects when indexed", function() -- Line 6
        --[[ Upvalues[2]:
            [1]: Type_upvr (readonly)
            [2]: Event_upvr (readonly)
        ]]
        expect(Type_upvr.of(Event_upvr.MouseButton1Click)).to.equal(Type_upvr.HostEvent)
        expect(Type_upvr.of(Event_upvr.Touched)).to.equal(Type_upvr.HostEvent)
    end)
    it("should yield the same object when indexed again", function() -- Line 11
        --[[ Upvalues[1]:
            [1]: Event_upvr (readonly)
        ]]
        local MouseButton1Click = Event_upvr.MouseButton1Click
        expect(MouseButton1Click).to.equal(Event_upvr.MouseButton1Click)
        expect(MouseButton1Click).never.to.equal(Event_upvr.Touched)
    end)
end
ModuleScript Ref ReplicatedStorage.PopupShop.Packages._Index.roblox_roact@1.4.4.roact.PropMarkers.Ref
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:06
-- Luau version 6, Types version 3
-- Time taken: 0.000320 seconds

return require(script.Parent.Parent.Symbol).named("Ref")
ModuleScript rodux ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:08
-- Luau version 6, Types version 3
-- Time taken: 0.000756 seconds

return {
    Store = require(script.Store);
    createReducer = require(script.createReducer);
    combineReducers = require(script.combineReducers);
    makeActionCreator = require(script.makeActionCreator);
    loggerMiddleware = require(script.loggerMiddleware).middleware;
    thunkMiddleware = require(script.thunkMiddleware);
}
ModuleScript NoYield ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.NoYield
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:10
-- Luau version 6, Types version 3
-- Time taken: 0.000958 seconds

local function resultHandler_upvr(arg1, arg2, ...) -- Line 12, Named "resultHandler"
    if not arg2 then
        error(debug.traceback(arg1, ...), 2)
    end
    if coroutine.status(arg1) ~= "dead" then
        error(debug.traceback(arg1, "Attempted to yield inside changed event!"), 2)
    end
    return ...
end
return function(arg1, ...) -- Line 25, Named "NoYield"
    --[[ Upvalues[1]:
        [1]: resultHandler_upvr (readonly)
    ]]
    local coroutine_create_result1 = coroutine.create(arg1)
    return resultHandler_upvr(coroutine_create_result1, coroutine.resume(coroutine_create_result1, ...))
end
ModuleScript NoYield.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.NoYield.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:11
-- Luau version 6, Types version 3
-- Time taken: 0.003168 seconds

return function() -- Line 1
    local NoYield_upvr = require(script.Parent.NoYield)
    it("should call functions normally", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var4_upvw = 0
        local function test(arg1, arg2) -- Line 7
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            expect(arg1).to.equal(5)
            expect(arg2).to.equal(6)
            var4_upvw += 1
            return 11, "hello"
        end
        local NoYield_upvr_result1, NoYield_upvr_result2 = NoYield_upvr(test, 5, 6)
        expect(NoYield_upvr_result1).to.equal(11)
        expect(NoYield_upvr_result2).to.equal("hello")
    end)
    it("should throw on yield", function() -- Line 22
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var8_upvw = 0
        local var9_upvw = 0
        local pcall_result1, pcall_result2 = pcall(NoYield_upvr, function() -- Line 26, Named "testMethod"
            --[[ Upvalues[2]:
                [1]: var8_upvw (read and write)
                [2]: var9_upvw (read and write)
            ]]
            var8_upvw += 1
            wait()
            var9_upvw += 1
        end)
        expect(var8_upvw).to.equal(1)
        expect(var9_upvw).to.equal(0)
        expect(pcall_result1).to.equal(false)
        expect(pcall_result2:find("Attempted to yield inside changed event!")).to.be.ok()
        expect(pcall_result2:find("NoYield.spec")).to.be.ok()
    end)
    it("should propagate error messages", function() -- Line 42
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var13_upvw = 0
        local pcall_result1_2, pcall_result2_2 = pcall(NoYield_upvr, function() -- Line 45, Named "test"
            --[[ Upvalues[1]:
                [1]: var13_upvw (read and write)
            ]]
            var13_upvw += 1
            error("foo")
        end)
        expect(pcall_result1_2).to.equal(false)
        expect(pcall_result2_2:find("foo")).to.be.ok()
        expect(pcall_result2_2:find("NoYield.spec")).to.be.ok()
    end)
end
ModuleScript Signal ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:13
-- Luau version 6, Types version 3
-- Time taken: 0.003367 seconds

local function immutableAppend_upvr(arg1, ...) -- Line 7, Named "immutableAppend"
    local module = {}
    local len = #arg1
    for i = 1, len do
        module[i] = arg1[i]
    end
    for i_2 = 1, select('#', ...) do
        module[len + i_2] = select(i_2, ...)
    end
    return module
end
local function immutableRemoveValue_upvr(arg1, arg2) -- Line 22, Named "immutableRemoveValue"
    for i_3 = 1, #arg1 do
        if arg1[i_3] ~= arg2 then
            table.insert({}, arg1[i_3])
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 38
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module_3 = {
        _listeners = {};
    }
    module_3._store = arg1
    setmetatable(module_3, module_2_upvr)
    return module_3
end
function module_2_upvr.connect(arg1, arg2) -- Line 49
    --[[ Upvalues[2]:
        [1]: immutableAppend_upvr (readonly)
        [2]: immutableRemoveValue_upvr (readonly)
    ]]
    if typeof(arg2) ~= "function" then
        error("Expected the listener to be a function.")
    end
    if arg1._store and arg1._store._isDispatching then
        error("You may not call store.changed:connect() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store:getState() in the callback to access the latest state. ")
    end
    local tbl_upvr = {}
    tbl_upvr.callback = arg2
    tbl_upvr.disconnected = false
    tbl_upvr.connectTraceback = debug.traceback()
    tbl_upvr.disconnectTraceback = nil
    arg1._listeners = immutableAppend_upvr(arg1._listeners, tbl_upvr)
    return {
        disconnect = function() -- Line 71, Named "disconnect"
            --[[ Upvalues[3]:
                [1]: tbl_upvr (readonly)
                [2]: arg1 (readonly)
                [3]: immutableRemoveValue_upvr (copied, readonly)
            ]]
            if tbl_upvr.disconnected then
                error("Listener connected at: \n%s\nwas already disconnected at: \n%s\n":format(tostring(tbl_upvr.connectTraceback), tostring(tbl_upvr.disconnectTraceback)))
            end
            if arg1._store and arg1._store._isDispatching then
                error("You may not unsubscribe from a store listener while the reducer is executing.")
            end
            tbl_upvr.disconnected = true
            tbl_upvr.disconnectTraceback = debug.traceback()
            arg1._listeners = immutableRemoveValue_upvr(arg1._listeners, tbl_upvr)
        end;
    }
end
function module_2_upvr.fire(arg1, ...) -- Line 96
    for _, v in ipairs(arg1._listeners) do
        if not v.disconnected then
            v.callback(...)
        end
    end
end
return module_2_upvr
ModuleScript Signal.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.Signal.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:14
-- Luau version 6, Types version 3
-- Time taken: 0.006564 seconds

return function() -- Line 1
    local Signal_upvr = require(script.Parent.Signal)
    it("should construct from nothing", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        expect(Signal_upvr.new()).to.be.ok()
    end)
    it("should fire connected callbacks", function() -- Line 10
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local var5_upvw = 0
        local any_new_result1_5 = Signal_upvr.new()
        any_new_result1_5:fire("Hello World", 7)
        expect(var5_upvw).to.equal(1)
        any_new_result1_5:connect(function(arg1, arg2) -- Line 15
            --[[ Upvalues[1]:
                [1]: var5_upvw (read and write)
            ]]
            expect(arg1).to.equal("Hello World")
            expect(arg2).to.equal(7)
            var5_upvw += 1
        end):disconnect()
        any_new_result1_5:fire("Hello World", 7)
        expect(var5_upvw).to.equal(1)
    end)
    it("should disconnect handlers", function() -- Line 34
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1 = Signal_upvr.new()
        any_new_result1:connect(function() -- Line 35
            error("Callback was called after disconnect!")
        end):disconnect()
        any_new_result1:fire()
    end)
    it("should fire handlers in order", function() -- Line 47
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_3 = Signal_upvr.new()
        local var13_upvw = 0
        local var14_upvw = 0
        any_new_result1_3:connect(function() -- Line 52
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: var14_upvw (read and write)
            ]]
            expect(var13_upvw).to.equal(0)
            expect(var14_upvw).to.equal(0)
            var13_upvw += 1
        end)
        any_new_result1_3:connect(function() -- Line 58
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: var14_upvw (read and write)
            ]]
            expect(var13_upvw).to.equal(1)
            expect(var14_upvw).to.equal(0)
            var14_upvw += 1
        end)
        any_new_result1_3:fire()
        expect(var13_upvw).to.equal(1)
        expect(var14_upvw).to.equal(1)
    end)
    it("should continue firing despite mid-event disconnection", function() -- Line 72
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_2 = Signal_upvr.new()
        local var19_upvw = 0
        local var20_upvw = 0
        local var22_upvw
        var22_upvw = any_new_result1_2:connect(function() -- Line 78
            --[[ Upvalues[2]:
                [1]: var22_upvw (read and write)
                [2]: var19_upvw (read and write)
            ]]
            var22_upvw:disconnect()
            var19_upvw += 1
        end)
        any_new_result1_2:connect(function() -- Line 83
            --[[ Upvalues[1]:
                [1]: var20_upvw (read and write)
            ]]
            var20_upvw += 1
        end)
        any_new_result1_2:fire()
        expect(var19_upvw).to.equal(1)
        expect(var20_upvw).to.equal(1)
    end)
    it("should skip listeners that were disconnected during event evaluation", function() -- Line 93
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_7 = Signal_upvr.new()
        local var26_upvw = 0
        local var27_upvw = 0
        local var29_upvw
        any_new_result1_7:connect(function() -- Line 100
            --[[ Upvalues[2]:
                [1]: var26_upvw (read and write)
                [2]: var29_upvw (read and write)
            ]]
            var26_upvw += 1
            var29_upvw:disconnect()
        end)
        var29_upvw = any_new_result1_7:connect(function() -- Line 105
            --[[ Upvalues[1]:
                [1]: var27_upvw (read and write)
            ]]
            var27_upvw += 1
        end)
        any_new_result1_7:fire()
        expect(var26_upvw).to.equal(1)
        expect(var27_upvw).to.equal(0)
    end)
    it("should throw an error if the argument to `connect` is not a function", function() -- Line 115
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_upvr = Signal_upvr.new()
        expect(function() -- Line 117
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:connect("not a function")
        end).to.throw()
    end)
    it("should throw an error when disconnecting more than once", function() -- Line 122
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_connect_result1 = Signal_upvr.new():connect(function() -- Line 125
        end)
        expect(any_connect_result1.disconnect).never.to.throw()
        expect(any_connect_result1.disconnect).to.throw()
    end)
    it("should throw an error when subscribing during dispatch", function() -- Line 133
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local tbl_2 = {
            _isDispatching = false;
        }
        local any_new_result1_6_upvr = Signal_upvr.new(tbl_2)
        any_new_result1_6_upvr:connect(function() -- Line 139
            --[[ Upvalues[1]:
                [1]: any_new_result1_6_upvr (readonly)
            ]]
            any_new_result1_6_upvr:connect(function() -- Line 141
            end)
        end)
        tbl_2._isDispatching = true
        expect(function() -- Line 145
            --[[ Upvalues[1]:
                [1]: any_new_result1_6_upvr (readonly)
            ]]
            any_new_result1_6_upvr:fire()
        end).to.throw()
    end)
    it("should throw an error when unsubscribing during dispatch", function() -- Line 150
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local tbl = {
            _isDispatching = false;
        }
        local any_new_result1_4_upvr = Signal_upvr.new(tbl)
        local var47_upvw
        var47_upvw = any_new_result1_4_upvr:connect(function() -- Line 157
            --[[ Upvalues[1]:
                [1]: var47_upvw (read and write)
            ]]
            var47_upvw.disconnect()
        end)
        tbl._isDispatching = true
        expect(function() -- Line 162
            --[[ Upvalues[1]:
                [1]: any_new_result1_4_upvr (readonly)
            ]]
            any_new_result1_4_upvr:fire()
        end).to.throw()
    end)
end
ModuleScript Store ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.Store
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:15
-- Luau version 6, Types version 3
-- Time taken: 0.011146 seconds

local tbl_upvr = {
    reportReducerError = function(arg1, arg2, arg3) -- Line 9, Named "reportReducerError"
        error(string.format("Received error: %s\n\n%s", arg3.message, arg3.thrownValue))
    end;
    reportUpdateError = function(arg1, arg2, arg3, arg4) -- Line 12, Named "reportUpdateError"
        error(string.format("Received error: %s\n\n%s", arg4.message, arg4.thrownValue))
    end;
}
local function tracebackReporter_upvr(arg1) -- Line 17, Named "tracebackReporter"
    return debug.traceback(tostring(arg1))
end
local module_upvr_2 = {
    _flushEvent = game:GetService("RunService").Heartbeat;
}
module_upvr_2.__index = module_upvr_2
local Signal_upvr = require(script.Parent.Signal)
function module_upvr_2.new(arg1, arg2, arg3, arg4) -- Line 41
    --[[ Upvalues[4]:
        [1]: tbl_upvr (readonly)
        [2]: tracebackReporter_upvr (readonly)
        [3]: Signal_upvr (readonly)
        [4]: module_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var12_upvr
    if typeof(arg1) ~= "function" then
        var12_upvr = false
    else
        var12_upvr = true
    end
    assert(var12_upvr, "Bad argument #1 to Store.new, expected function.")
    var12_upvr = true
    if arg3 ~= nil then
        if typeof(arg3) ~= "table" then
            var12_upvr = false
        else
            var12_upvr = true
        end
    end
    assert(var12_upvr, "Bad argument #3 to Store.new, expected nil or table.")
    if arg3 ~= nil then
        var12_upvr = 1
        for i = 1, #arg3, var12_upvr do
            local var13
            if typeof(arg3[i]) ~= "function" then
                var13 = false
            else
                var13 = true
            end
            assert(var13, "Expected the middleware ('%s') at index %d to be a function.":format(tostring(arg3[i]), i))
        end
    end
    local module_upvr = {}
    var12_upvr = arg4
    if not var12_upvr then
        var12_upvr = tbl_upvr
    end
    module_upvr._errorReporter = var12_upvr
    var12_upvr = false
    module_upvr._isDispatching = var12_upvr
    module_upvr._reducer = arg1
    var12_upvr = {}
    var12_upvr.type = "@@INIT"
    module_upvr._actionLog = {var12_upvr}
    local xpcall_result1, xpcall_result2_2 = xpcall(function() -- Line 62
        --[[ Upvalues[4]:
            [1]: module_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
            [4]: var12_upvr (readonly)
        ]]
        module_upvr._state = arg1(arg2, var12_upvr)
    end, tracebackReporter_upvr)
    if not xpcall_result1 then
        module_upvr._errorReporter.reportReducerError(arg2, var12_upvr, {
            message = "Caught error in reducer with init";
            thrownValue = xpcall_result2_2;
        })
        module_upvr._state = arg2
    end
    module_upvr._lastState = module_upvr._state
    module_upvr._mutatedSinceFlush = false
    module_upvr._connections = {}
    module_upvr.changed = Signal_upvr.new(module_upvr)
    setmetatable(module_upvr, module_upvr_2)
    table.insert(module_upvr._connections, module_upvr._flushEvent:Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr:flush()
    end))
    local var22_upvw
    if arg3 then
        local dispatch_2_upvr = module_upvr.dispatch
        function var22_upvw(...) -- Line 88
            --[[ Upvalues[2]:
                [1]: dispatch_2_upvr (readonly)
                [2]: module_upvr (readonly)
            ]]
            return dispatch_2_upvr(module_upvr, ...)
        end
        for i_2 = #arg3, 1, -1 do
            var22_upvw = arg3[i_2](var22_upvw, module_upvr)
        end
        function module_upvr.dispatch(arg1_2, ...) -- Line 97
            --[[ Upvalues[1]:
                [1]: var22_upvw (read and write)
            ]]
            return var22_upvw(...)
        end
    end
    return module_upvr
end
function module_upvr_2.getState(arg1) -- Line 108
    if arg1._isDispatching then
        error("You may not call store:getState() while the reducer is executing. The reducer (%s) has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.":format(tostring(arg1._reducer)))
    end
    return arg1._state
end
function module_upvr_2.dispatch(arg1, arg2) -- Line 125
    if typeof(arg2) ~= "table" then
        error("Actions must be tables. Use custom middleware for %q actions.":format(typeof(arg2)), 2)
    end
    if arg2.type == nil then
        error("Actions may not have an undefined 'type' property. ".."Have you misspelled a constant? \n"..tostring(arg2), 2)
    end
    if arg1._isDispatching then
        error("Reducers may not dispatch actions.")
    end
    local pcall_result1, pcall_result2 = pcall(function() -- Line 143
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        arg1._isDispatching = true
        arg1._state = arg1._reducer(arg1._state, arg2)
        arg1._mutatedSinceFlush = true
    end)
    arg1._isDispatching = false
    if not pcall_result1 then
        arg1._errorReporter.reportReducerError(arg1._state, arg2, {
            message = "Caught error in reducer";
            thrownValue = pcall_result2;
        })
    end
    if #arg1._actionLog == 3 then
        table.remove(arg1._actionLog, 1)
    end
    table.insert(arg1._actionLog, arg2)
end
function module_upvr_2.destruct(arg1) -- Line 171
    for _, v in ipairs(arg1._connections) do
        v:Disconnect()
    end
    arg1._connections = nil
end
local NoYield_upvr = require(script.Parent.NoYield)
function module_upvr_2.flush(arg1) -- Line 182
    --[[ Upvalues[2]:
        [1]: NoYield_upvr (readonly)
        [2]: tracebackReporter_upvr (readonly)
    ]]
    if not arg1._mutatedSinceFlush then
    else
        arg1._mutatedSinceFlush = false
        local _state_upvr = arg1._state
        local xpcall_result1_2, xpcall_result2 = xpcall(function() -- Line 194
            --[[ Upvalues[3]:
                [1]: NoYield_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: _state_upvr (readonly)
            ]]
            NoYield_upvr(function() -- Line 197
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: _state_upvr (copied, readonly)
                ]]
                arg1.changed:fire(_state_upvr, arg1._lastState)
            end)
        end, tracebackReporter_upvr)
        if not xpcall_result1_2 then
            arg1._errorReporter.reportUpdateError(arg1._lastState, _state_upvr, arg1._actionLog, {
                message = "Caught error flushing store updates";
                thrownValue = xpcall_result2;
            })
        end
        arg1._lastState = _state_upvr
    end
end
return module_upvr_2
ModuleScript Store.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.Store.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:17
-- Luau version 6, Types version 3
-- Time taken: 0.026041 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    describe("new", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should instantiate with a reducer", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_13 = Store_upvr.new(function(arg1, arg2) -- Line 6
                return "hello, world"
            end)
            expect(any_new_result1_13).to.be.ok()
            expect(any_new_result1_13:getState()).to.equal("hello, world")
            any_new_result1_13:destruct()
        end)
        it("should instantiate with a reducer and an initial state", function() -- Line 16
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_6 = Store_upvr.new(function(arg1, arg2) -- Line 17
                return arg1
            end, "initial state")
            expect(any_new_result1_6).to.be.ok()
            expect(any_new_result1_6:getState()).to.equal("initial state")
            any_new_result1_6:destruct()
        end)
        it("should instantiate with a reducer, initial state, and middlewares", function() -- Line 27
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_14 = Store_upvr.new(function(arg1, arg2) -- Line 28
                return arg1
            end, "initial state", {})
            expect(any_new_result1_14).to.be.ok()
            expect(any_new_result1_14:getState()).to.equal("initial state")
            any_new_result1_14:destruct()
        end)
        it("should modify the dispatch method when middlewares are passed", function() -- Line 38
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var14_upvw = 0
            local var15_upvw = 0
            local var16_upvw
            local var17_upvw
            local var18_upvw
            local function reducer(arg1, arg2) -- Line 45
                if arg2.type == "test" then
                    return "test state"
                end
                return arg1
            end
            local any_new_result1_9 = Store_upvr.new(reducer, "initial state", {function(arg1, arg2) -- Line 53, Named "testMiddleware"
                --[[ Upvalues[5]:
                    [1]: var14_upvw (read and write)
                    [2]: var16_upvw (read and write)
                    [3]: var17_upvw (read and write)
                    [4]: var15_upvw (read and write)
                    [5]: var18_upvw (read and write)
                ]]
                var14_upvw += 1
                var16_upvw = arg1
                var17_upvw = arg2
                return function(arg1_2) -- Line 58
                    --[[ Upvalues[3]:
                        [1]: var15_upvw (copied, read and write)
                        [2]: var18_upvw (copied, read and write)
                        [3]: arg1 (readonly)
                    ]]
                    var15_upvw += 1
                    var18_upvw = arg1_2
                    arg1(arg1_2)
                end
            end})
            expect(var14_upvw).to.equal(1)
            expect(var15_upvw).to.equal(0)
            expect(var16_upvw).to.be.a("function")
            expect(var17_upvw).to.equal(any_new_result1_9)
            any_new_result1_9:dispatch({
                type = "test";
            })
            expect(var14_upvw).to.equal(1)
            expect(var15_upvw).to.equal(1)
            expect(var18_upvw.type).to.equal("test")
            any_new_result1_9:flush()
            expect(any_new_result1_9:getState()).to.equal("test state")
            any_new_result1_9:destruct()
        end)
        it("should execute middleware left-to-right", function() -- Line 88
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local tbl_5_upvr = {}
            local any_new_result1_10 = Store_upvr.new(function(arg1) -- Line 91, Named "reducer"
                return arg1
            end, 5, {function(arg1, arg2) -- Line 95, Named "middlewareA"
                --[[ Upvalues[1]:
                    [1]: tbl_5_upvr (readonly)
                ]]
                table.insert(tbl_5_upvr, "instantiate a")
                return function(arg1_3) -- Line 97
                    --[[ Upvalues[2]:
                        [1]: tbl_5_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                    ]]
                    table.insert(tbl_5_upvr, "execute a")
                    return arg1(arg1_3)
                end
            end, function(arg1, arg2) -- Line 103, Named "middlewareB"
                --[[ Upvalues[1]:
                    [1]: tbl_5_upvr (readonly)
                ]]
                table.insert(tbl_5_upvr, "instantiate b")
                return function(arg1_4) -- Line 105
                    --[[ Upvalues[2]:
                        [1]: tbl_5_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                    ]]
                    table.insert(tbl_5_upvr, "execute b")
                    return arg1(arg1_4)
                end
            end})
            expect(#tbl_5_upvr).to.equal(2)
            expect(tbl_5_upvr[1]).to.equal("instantiate b")
            expect(tbl_5_upvr[2]).to.equal("instantiate a")
            any_new_result1_10:dispatch({
                type = "test";
            })
            expect(#tbl_5_upvr).to.equal(4)
            expect(tbl_5_upvr[3]).to.equal("execute a")
            expect(tbl_5_upvr[4]).to.equal("execute b")
            any_new_result1_10:destruct()
        end)
        it("should send an initial action with a 'type' field", function() -- Line 128
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var31_upvw
            local var32_upvw = 0
            expect(var32_upvw).to.equal(1)
            expect(var31_upvw).to.be.a("table")
            expect(var31_upvw.type).to.be.ok()
            Store_upvr.new(function(arg1, arg2) -- Line 132
                --[[ Upvalues[2]:
                    [1]: var31_upvw (read and write)
                    [2]: var32_upvw (read and write)
                ]]
                var31_upvw = arg2
                var32_upvw += 1
                return arg1
            end):destruct()
        end)
        it("should report a reducer error thrown when handling the INIT action", function() -- Line 146
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var35_upvw
            local var36_upvw
            local var37_upvw
            local tbl_3 = {}
            local function reportReducerError(arg1, arg2, arg3) -- Line 149
                --[[ Upvalues[3]:
                    [1]: var35_upvw (read and write)
                    [2]: var36_upvw (read and write)
                    [3]: var37_upvw (read and write)
                ]]
                var35_upvw = arg1
                var36_upvw = arg2
                var37_upvw = arg3
            end
            tbl_3.reportReducerError = reportReducerError
            local function reportUpdateError() -- Line 154
            end
            tbl_3.reportUpdateError = reportUpdateError
            expect(var35_upvw.Value).to.equal(1)
            expect(var36_upvw.type).to.equal("@@INIT")
            expect(var37_upvw.message).to.equal("Caught error in reducer with init")
            expect(string.find(var37_upvw.thrownValue, "Z4PH0D")).to.be.ok()
            expect(string.find(var37_upvw.thrownValue, script.Name)).to.be.ok()
            Store_upvr.new(function(arg1, arg2) -- Line 160
                error("Z4PH0D")
            end, {
                Value = 1;
            }, nil, tbl_3):destruct()
        end)
        it("should report a reducer error thrown when handling a subsequent action", function() -- Line 187
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var42_upvw
            local var43_upvw
            local var44_upvw
            local tbl = {}
            local function reportReducerError(arg1, arg2, arg3) -- Line 190
                --[[ Upvalues[3]:
                    [1]: var42_upvw (read and write)
                    [2]: var43_upvw (read and write)
                    [3]: var44_upvw (read and write)
                ]]
                var42_upvw = arg1
                var43_upvw = arg2
                var44_upvw = arg3
            end
            tbl.reportReducerError = reportReducerError
            local function reportUpdateError() -- Line 195
            end
            tbl.reportUpdateError = reportUpdateError
            local any_new_result1 = Store_upvr.new(function(arg1, arg2) -- Line 201
                if arg2.type == "ThrowError" then
                    error("Z4PH0D")
                    return arg1
                end
                if arg2.type == "Increment" then
                    return {
                        Value = arg1.Value + 1;
                    }
                end
                return arg1
            end, {
                Value = 1;
            }, nil, tbl)
            expect(var42_upvw).to.equal(nil)
            expect(var43_upvw).to.equal(nil)
            expect(var44_upvw).to.equal(nil)
            any_new_result1:dispatch({
                type = "Increment";
            })
            any_new_result1:dispatch({
                type = "ThrowError";
            })
            expect(var42_upvw.Value).to.equal(2)
            expect(var43_upvw.type).to.equal("ThrowError")
            expect(var44_upvw.message).to.equal("Caught error in reducer")
            expect(string.find(var44_upvw.thrownValue, "Z4PH0D")).to.be.ok()
            expect(string.find(var44_upvw.thrownValue, script.Name)).to.be.ok()
            any_new_result1:destruct()
        end)
    end)
    describe("getState", function() -- Line 244
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should get the current state", function() -- Line 245
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_8 = Store_upvr.new(function(arg1, arg2) -- Line 246
                return "foo"
            end)
            expect(any_new_result1_8:getState()).to.equal("foo")
            any_new_result1_8:destruct()
        end)
        it("should throw errors if triggered during dispatches", function() -- Line 257
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var58_upvw
            var58_upvw = Store_upvr.new(function(arg1, arg2) -- Line 259
                --[[ Upvalues[1]:
                    [1]: var58_upvw (read and write)
                ]]
                if arg2.type ~= "@@INIT" then
                    var58_upvw:getState()
                end
            end)
            local var59_upvw = var58_upvw
            expect(function() -- Line 265
                --[[ Upvalues[1]:
                    [1]: var59_upvw (read and write)
                ]]
                var59_upvw:dispatch({
                    type = "SomeAction";
                })
            end).to.throw()
            var59_upvw:destruct()
        end)
    end)
    describe("dispatch", function() -- Line 273
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should be sent through the reducer", function() -- Line 274
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_2 = Store_upvr.new(function(arg1, arg2) -- Line 275
                if arg2.type == "act" then
                    return "bar"
                end
                return arg1 or "foo"
            end)
            expect(any_new_result1_2).to.be.ok()
            expect(any_new_result1_2:getState()).to.equal("foo")
            any_new_result1_2:dispatch({
                type = "act";
            })
            any_new_result1_2:flush()
            expect(any_new_result1_2:getState()).to.equal("bar")
            any_new_result1_2:destruct()
        end)
        it("should trigger the changed event after a flush", function() -- Line 299
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_4 = Store_upvr.new(function(arg1, arg2) -- Line 300
                local var69 = arg1 or 0
                if arg2.type == "increment" then
                    return var69 + 1
                end
                return var69
            end)
            local var71_upvw = 0
            any_new_result1_4.changed:connect(function(arg1, arg2) -- Line 312
                --[[ Upvalues[1]:
                    [1]: var71_upvw (read and write)
                ]]
                expect(arg2).to.equal(0)
                expect(arg1).to.equal(1)
                var71_upvw += 1
            end)
            any_new_result1_4:dispatch({
                type = "increment";
            })
            any_new_result1_4:flush()
            expect(var71_upvw).to.equal(1)
            any_new_result1_4:destruct()
        end)
        it("should handle actions dispatched within the changed event", function() -- Line 330
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_12_upvr = Store_upvr.new(function(arg1, arg2) -- Line 331
                local var76 = arg1
                if not var76 then
                    var76 = {}
                    var76.value = 0
                end
                local var77 = var76
                if arg2.type == "increment" then
                    return {
                        value = var77.value + 1;
                    }
                end
                if arg2.type == "decrement" then
                    return {
                        value = var77.value - 1;
                    }
                end
                return var77
            end)
            local var81_upvw = 0
            any_new_result1_12_upvr.changed:connect(function(arg1, arg2) -- Line 351
                --[[ Upvalues[2]:
                    [1]: any_new_result1_12_upvr (readonly)
                    [2]: var81_upvw (read and write)
                ]]
                expect(arg1).never.to.equal(arg2)
                if 0 < arg1.value then
                    any_new_result1_12_upvr:dispatch({
                        type = "decrement";
                    })
                end
                var81_upvw += 1
            end)
            any_new_result1_12_upvr:dispatch({
                type = "increment";
            })
            any_new_result1_12_upvr:flush()
            any_new_result1_12_upvr:flush()
            expect(var81_upvw).to.equal(2)
            any_new_result1_12_upvr:destruct()
        end)
        it("should prevent yielding from changed handler", function() -- Line 374
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var86_upvw
            local var87_upvw
            local tbl_4 = {}
            local function reportUpdateError(arg1, arg2, arg3, arg4) -- Line 377
                --[[ Upvalues[2]:
                    [1]: var86_upvw (read and write)
                    [2]: var87_upvw (read and write)
                ]]
                var86_upvw = arg4.message
                var87_upvw = arg4.thrownValue
            end
            tbl_4.reportUpdateError = reportUpdateError
            local function reportReducerError() -- Line 381
            end
            tbl_4.reportReducerError = reportReducerError
            local var89_upvw = 0
            local var90_upvw = 0
            local any_new_result1_7 = Store_upvr.new(function(arg1, arg2) -- Line 388
                return (arg1 or 0) + 1
            end, nil, nil, tbl_4)
            any_new_result1_7.changed:connect(function(arg1, arg2) -- Line 393
                --[[ Upvalues[2]:
                    [1]: var89_upvw (read and write)
                    [2]: var90_upvw (read and write)
                ]]
                var89_upvw += 1
                wait()
                var90_upvw += 1
            end)
            any_new_result1_7:dispatch({
                type = "increment";
            })
            any_new_result1_7:flush()
            expect(var89_upvw).to.equal(1)
            expect(var90_upvw).to.equal(0)
            expect(var86_upvw).to.equal("Caught error flushing store updates")
            expect(string.find(var87_upvw, script.Name)).to.be.ok()
            expect(string.find(var87_upvw, "to yield")).to.be.ok()
            any_new_result1_7:destruct()
        end)
        it("should throw if an action is dispatched without a type field", function() -- Line 424
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_15_upvr = Store_upvr.new(function(arg1, arg2) -- Line 425
                return arg1
            end)
            expect(function() -- Line 429
                --[[ Upvalues[1]:
                    [1]: any_new_result1_15_upvr (readonly)
                ]]
                any_new_result1_15_upvr:dispatch({})
            end).to.throw()
            any_new_result1_15_upvr:destruct()
        end)
        it("should throw if the action is not a function or table", function() -- Line 436
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_3_upvr = Store_upvr.new(function(arg1, arg2) -- Line 437
                return arg1
            end)
            expect(function() -- Line 441
                --[[ Upvalues[1]:
                    [1]: any_new_result1_3_upvr (readonly)
                ]]
                any_new_result1_3_upvr:dispatch(1)
            end).to.throw()
            any_new_result1_3_upvr:destruct()
        end)
        it("should report an error if the listeners error when flushing", function() -- Line 448
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var108_upvw
            local var109_upvw
            local var110_upvw
            local var111_upvw
            local any_new_result1_5 = Store_upvr.new(function(arg1, arg2) -- Line 462
                if arg2.type == "Increment" then
                    return {
                        Value = arg1.Value + arg2.amount;
                    }
                end
                return arg1
            end, {
                Value = 1;
            }, nil, {
                reportReducerError = function() -- Line 451, Named "reportReducerError"
                end;
                reportUpdateError = function(arg1, arg2, arg3, arg4) -- Line 454, Named "reportUpdateError"
                    --[[ Upvalues[4]:
                        [1]: var108_upvw (read and write)
                        [2]: var109_upvw (read and write)
                        [3]: var110_upvw (read and write)
                        [4]: var111_upvw (read and write)
                    ]]
                    var108_upvw = arg1
                    var109_upvw = arg2
                    var110_upvw = arg3
                    var111_upvw = arg4
                end;
            })
            any_new_result1_5.changed:connect(function(arg1, arg2) -- Line 475
                if arg1.Value == 15 then
                    error("Z4PH0D")
                end
            end)
            local tbl_2 = {{
                type = "Increment";
                amount = 1;
            }, {
                type = "Increment";
                amount = 3;
            }, {
                type = "Increment";
                amount = 10;
            }}
            for _, v in ipairs(tbl_2) do
                any_new_result1_5:dispatch(v)
            end
            any_new_result1_5:flush()
            expect(var111_upvw.message).to.equal("Caught error flushing store updates")
            expect(string.find(var111_upvw.thrownValue, script.Name)).to.be.ok()
            expect(var110_upvw[1]).to.equal(tbl_2[1])
            expect(var110_upvw[2]).to.equal(tbl_2[2])
            expect(var110_upvw[3]).to.equal(tbl_2[3])
            expect(var108_upvw.Value).to.equal(1)
            expect(var109_upvw.Value).to.equal(15)
            any_new_result1_5:destruct()
        end)
        it("should throw errors if dispatching while a dispatch is already happening", function() -- Line 509
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var127_upvw
            var127_upvw = Store_upvr.new(function(arg1, arg2) -- Line 511
                --[[ Upvalues[1]:
                    [1]: var127_upvw (read and write)
                ]]
                if arg2.type == "SomeAction" then
                    var127_upvw:dispatch({
                        type = "MidDispatchAction";
                    })
                end
            end)
            local var129_upvw = var127_upvw
            expect(function() -- Line 517
                --[[ Upvalues[1]:
                    [1]: var129_upvw (read and write)
                ]]
                var129_upvw:dispatch({
                    type = "SomeAction";
                })
            end).to.throw()
            var129_upvw:destruct()
        end)
    end)
    describe("flush", function() -- Line 525
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should not fire a changed event if there were no dispatches", function() -- Line 526
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_11 = Store_upvr.new(function() -- Line 527
            end)
            local var136_upvw = 0
            any_new_result1_11.changed:connect(function() -- Line 531
                --[[ Upvalues[1]:
                    [1]: var136_upvw (read and write)
                ]]
                var136_upvw += 1
            end)
            any_new_result1_11:flush()
            expect(var136_upvw).to.equal(0)
            any_new_result1_11:dispatch({
                type = "increment";
            })
            any_new_result1_11:flush()
            expect(var136_upvw).to.equal(1)
            any_new_result1_11:flush()
            expect(var136_upvw).to.equal(1)
            any_new_result1_11:destruct()
        end)
    end)
end
ModuleScript combineReducers ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.combineReducers
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:19
-- Luau version 6, Types version 3
-- Time taken: 0.001005 seconds

return function(arg1) -- Line 4, Named "combineReducers"
    return function(arg1_2, arg2) -- Line 5
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == nil then
        end
        for i, v in pairs(arg1) do
            ({})[i] = v(({})[i], arg2)
            local var10
        end
        return var10
    end
end
ModuleScript combineReducers.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.combineReducers.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:20
-- Luau version 6, Types version 3
-- Time taken: 0.002883 seconds

return function() -- Line 1
    local combineReducers_upvr = require(script.Parent.combineReducers)
    it("should invoke each sub-reducer for every action", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local var4_upvw = 0
        local var5_upvw = 0
        local tbl_2 = {}
        local function a(arg1, arg2) -- Line 9
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            var4_upvw += 1
        end
        tbl_2.a = a
        local function b(arg1, arg2) -- Line 12
            --[[ Upvalues[1]:
                [1]: var5_upvw (read and write)
            ]]
            var5_upvw += 1
        end
        tbl_2.b = b
        combineReducers_upvr(tbl_2)({}, {})
        expect(var4_upvw).to.equal(1)
        expect(var5_upvw).to.equal(1)
    end)
    it("should assign each sub-reducer's value to the new state", function() -- Line 23
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local tbl = {}
        local function a(arg1, arg2) -- Line 25
            return (arg1 or 0) + 1
        end
        tbl.a = a
        local function b(arg1, arg2) -- Line 28
            return (arg1 or 0) + 3
        end
        tbl.b = b
        local var9 = combineReducers_upvr(tbl)({}, {})
        expect(var9.a).to.equal(1)
        expect(var9.b).to.equal(3)
    end)
    it("should not throw when state is nil", function() -- Line 38
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local combineReducers_upvr_result1_upvr = combineReducers_upvr({
            a = function(arg1, arg2) -- Line 40, Named "a"
                return (arg1 or 0) + 1
            end;
            b = function(arg1, arg2) -- Line 43, Named "b"
                return (arg1 or 0) + 3
            end;
        })
        expect(function() -- Line 48
            --[[ Upvalues[1]:
                [1]: combineReducers_upvr_result1_upvr (readonly)
            ]]
            combineReducers_upvr_result1_upvr(nil, {})
        end).to.never.throw()
    end)
end
ModuleScript createReducer ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.createReducer
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:22
-- Luau version 6, Types version 3
-- Time taken: 0.001117 seconds

return function(arg1, arg2) -- Line 1
    return function(arg1_2, arg2_2) -- Line 2
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        if arg1_2 == nil then
            local var3 = arg1
        end
        local var4 = arg2[arg2_2.type]
        if var4 then
            return var4(var3, arg2_2)
        end
        return var3
    end
end
ModuleScript createReducer.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.createReducer.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:23
-- Luau version 6, Types version 3
-- Time taken: 0.003696 seconds

return function() -- Line 1
    local createReducer_upvr = require(script.Parent.createReducer)
    it("should handle actions", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local tbl = {}
        local function a(arg1, arg2) -- Line 9
            return {
                a = arg1.a + 1;
                b = arg1.b;
            }
        end
        tbl.a = a
        local function b(arg1, arg2) -- Line 15
            return {
                a = arg1.a;
                b = arg1.b + 2;
            }
        end
        tbl.b = b
        local createReducer_upvr_result1_2 = createReducer_upvr({
            a = 0;
            b = 0;
        }, tbl)
        local createReducer_upvr_result1_2_result1 = createReducer_upvr_result1_2({
            a = 0;
            b = 0;
        }, {
            type = 'a';
        })
        expect(createReducer_upvr_result1_2_result1.a).to.equal(1)
        expect(createReducer_upvr_result1_2(createReducer_upvr_result1_2_result1, {
            type = 'b';
        }).b).to.equal(2)
    end)
    it("should return the initial state if the state is nil", function() -- Line 39
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local var15 = createReducer_upvr({
            a = 0;
            b = 0;
        }, {})(nil, {})
        expect(var15).to.be.ok()
        expect(var15.a).to.equal(0)
        expect(var15.b).to.equal(0)
    end)
    it("should still run action handlers if the state is nil", function() -- Line 52
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local var17_upvw = 0
        local createReducer_upvr_result1 = createReducer_upvr(0, {
            foo = function(arg1, arg2) -- Line 56, Named "foo"
                --[[ Upvalues[1]:
                    [1]: var17_upvw (read and write)
                ]]
                var17_upvw += 1
                return nil
            end;
        })
        expect(var17_upvw).to.equal(0)
        local createReducer_upvr_result1_result1 = createReducer_upvr_result1(nil, {
            type = "foo";
        })
        expect(var17_upvw).to.equal(1)
        expect(createReducer_upvr_result1_result1).to.equal(nil)
        expect(var17_upvw).to.equal(2)
        expect(createReducer_upvr_result1(createReducer_upvr_result1_result1, {
            type = "foo";
        })).to.equal(nil)
    end)
    it("should return the same state if the action is not handled", function() -- Line 79
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local tbl_2 = {
            a = 0;
            b = 0;
        }
        expect(createReducer_upvr(tbl_2, {
            a = function(arg1, arg2) -- Line 86, Named "a"
                return {
                    a = arg1.a + 1;
                    b = arg1.b;
                }
            end;
            b = function(arg1, arg2) -- Line 92, Named "b"
                return {
                    a = arg1.a;
                    b = arg1.b + 2;
                }
            end;
        })(tbl_2, {
            type = 'c';
        })).to.equal(tbl_2)
    end)
end
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:26
-- Luau version 6, Types version 3
-- Time taken: 0.000793 seconds

return function() -- Line 1
    describe("Rodux", function() -- Line 2
        it("should load", function() -- Line 3
            expect(require(script.Parent).Store).to.be.ok()
        end)
    end)
end
ModuleScript loggerMiddleware ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.loggerMiddleware
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:28
-- Luau version 6, Types version 3
-- Time taken: 0.001237 seconds

local module_upvr = {
    outputFunction = print;
}
local prettyPrint_upvr = require(script.Parent.prettyPrint)
function module_upvr.middleware(arg1, arg2) -- Line 10
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: prettyPrint_upvr (readonly)
    ]]
    return function(arg1_2) -- Line 11
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: module_upvr (copied, readonly)
            [3]: prettyPrint_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        module_upvr.outputFunction("Action dispatched: %s\nState changed to: %s":format(prettyPrint_upvr(arg1_2), prettyPrint_upvr(arg2:getState())))
        return arg1(arg1_2)
    end
end
return module_upvr
ModuleScript loggerMiddleware.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.loggerMiddleware.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:29
-- Luau version 6, Types version 3
-- Time taken: 0.002764 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    local loggerMiddleware_upvr = require(script.Parent.loggerMiddleware)
    it("should print whenever an action is dispatched", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: loggerMiddleware_upvr (readonly)
        ]]
        local var5_upvw = 0
        local var6_upvw
        function loggerMiddleware_upvr.outputFunction(arg1) -- Line 20
            --[[ Upvalues[2]:
                [1]: var5_upvw (read and write)
                [2]: var6_upvw (read and write)
            ]]
            var5_upvw += 1
            var6_upvw = arg1
        end
        Store_upvr.new(function(arg1, arg2) -- Line 9, Named "reducer"
            return arg1
        end, {
            fooValue = 12345;
            barValue = {
                bazValue = "hiBaz";
            };
        }, {loggerMiddleware_upvr.middleware}):dispatch({
            type = "testActionType";
        })
        expect(var5_upvw).to.equal(1)
        expect(var6_upvw:find("testActionType")).to.be.ok()
        expect(var6_upvw:find("fooValue")).to.be.ok()
        expect(var6_upvw:find("12345")).to.be.ok()
        expect(var6_upvw:find("barValue")).to.be.ok()
        expect(var6_upvw:find("bazValue")).to.be.ok()
        expect(var6_upvw:find("hiBaz")).to.be.ok()
        loggerMiddleware_upvr.outputFunction = print
    end)
end
ModuleScript makeActionCreator ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.makeActionCreator
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:31
-- Luau version 6, Types version 3
-- Time taken: 0.002451 seconds

return function(arg1, arg2) -- Line 4, Named "makeActionCreator"
    local var1
    if type(arg1) ~= "string" then
        var1 = false
    else
        var1 = true
    end
    assert(var1, "Bad argument #1: Expected a string name for the action creator")
    if type(arg2) ~= "function" then
        var1 = false
    else
        var1 = true
    end
    assert(var1, "Bad argument #2: Expected a function that creates action objects")
    var1 = {}
    var1.name = arg1
    return setmetatable(var1, {
        __call = function(arg1_2, ...) -- Line 12, Named "__call"
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local arg2_result1 = arg2(...)
            local var4
            if type(arg2_result1) ~= "table" then
                var4 = false
            else
                var4 = true
            end
            assert(var4, "Invalid action: An action creator must return a table")
            arg2_result1.type = arg1
            return arg2_result1
        end;
    })
end
ModuleScript makeActionCreator.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.makeActionCreator.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:32
-- Luau version 6, Types version 3
-- Time taken: 0.003697 seconds

return function() -- Line 1
    local makeActionCreator_upvr = require(script.Parent.makeActionCreator)
    it("should set the name of the actionCreator creator", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 5
            return {}
        end).name).to.equal("foo")
    end)
    it("should return a table when called as a function", function() -- Line 12
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 13
            return {}
        end)()).to.be.a("table")
    end)
    it("should set the type of the action creator", function() -- Line 20
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 21
            return {}
        end)().type).to.equal("foo")
    end)
    it("should set values", function() -- Line 28
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function(arg1) -- Line 29
            local module = {}
            module.value = arg1
            return module
        end)(100).value).to.equal(100)
    end)
    it("should throw when its result does not return a table", function() -- Line 38
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 39
            return function() -- Line 40
            end
        end)).to.throw()
    end)
    it("should throw if the first argument is not a string", function() -- Line 46
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(function() -- Line 47
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr(nil, function() -- Line 48
                return {}
            end)
        end).to.throw()
        expect(function() -- Line 53
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr(100, function() -- Line 54
                return {}
            end)
        end).to.throw()
    end)
    it("should throw if the second argument is not a function", function() -- Line 60
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(function() -- Line 61
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr("foo", nil)
        end).to.throw()
        expect(function() -- Line 65
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr("foo", {})
        end).to.throw()
    end)
end
ModuleScript prettyPrint ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.prettyPrint
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:34
-- Luau version 6, Types version 3
-- Time taken: 0.002243 seconds

local function prettyPrint_upvr(arg1, arg2) -- Line 3, Named "prettyPrint"
    --[[ Upvalues[1]:
        [1]: prettyPrint_upvr (readonly)
    ]]
    arg2 = arg2 or 0
    local var5 = arg2
    local module = {}
    if typeof(arg1) == "table" then
        table.insert(module, "{\n")
        for i, v in pairs(arg1) do
            table.insert(module, " ":rep(var5 + 1))
            table.insert(module, tostring(i))
            table.insert(module, " = ")
            table.insert(module, prettyPrint_upvr(v, var5 + 1))
            table.insert(module, '\n')
        end
        table.insert(module, " ":rep(var5))
        table.insert(module, '}')
    elseif typeof(arg1) == "string" then
        table.insert(module, string.format("%q", arg1))
        table.insert(module, " (string)")
    else
        table.insert(module, tostring(arg1))
        table.insert(module, " (")
        table.insert(module, typeof(arg1))
        table.insert(module, ')')
    end
    return table.concat(module, "")
end
return prettyPrint_upvr
ModuleScript thunkMiddleware ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.thunkMiddleware
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:36
-- Luau version 6, Types version 3
-- Time taken: 0.001616 seconds

local function tracebackReporter_upvr(arg1) -- Line 7, Named "tracebackReporter"
    return debug.traceback(arg1)
end
return function(arg1, arg2) -- Line 11, Named "thunkMiddleware"
    --[[ Upvalues[1]:
        [1]: tracebackReporter_upvr (readonly)
    ]]
    return function(arg1_2) -- Line 12
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: tracebackReporter_upvr (copied, readonly)
            [3]: arg1 (readonly)
        ]]
        if typeof(arg1_2) == "function" then
            local xpcall_result1, xpcall_result2 = xpcall(function() -- Line 14
                --[[ Upvalues[2]:
                    [1]: arg1_2 (readonly)
                    [2]: arg2 (copied, readonly)
                ]]
                return arg1_2(arg2)
            end, tracebackReporter_upvr)
            if not xpcall_result1 then
                arg2._errorReporter.reportReducerError(arg2:getState(), arg1_2, {
                    message = "Caught error in thunk";
                    thrownValue = xpcall_result2;
                })
                return nil
            end
            return xpcall_result2
        end
        return arg1(arg1_2)
    end
end
ModuleScript thunkMiddleware.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@3.0.0.rodux.thunkMiddleware.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:37
-- Luau version 6, Types version 3
-- Time taken: 0.004889 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    local thunkMiddleware_upvr = require(script.Parent.thunkMiddleware)
    it("should dispatch thunks", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local function reducer(arg1, arg2) -- Line 6
            return arg1
        end
        local var6_upvw = 0
        local function thunk(arg1) -- Line 13
            --[[ Upvalues[1]:
                [1]: var6_upvw (read and write)
            ]]
            var6_upvw += 1
        end
        Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch(thunk)
        expect(var6_upvw).to.equal(1)
    end)
    it("should allow normal actions to pass through", function() -- Line 22
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var8_upvw = 0
        local function reducer(arg1, arg2) -- Line 25
            --[[ Upvalues[1]:
                [1]: var8_upvw (read and write)
            ]]
            var8_upvw += 1
            return arg1
        end
        Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch({
            type = "test";
        })
        expect(var8_upvw).to.equal(2)
    end)
    it("should return the value from the thunk", function() -- Line 42
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local function reducer(arg1, arg2) -- Line 43
            return arg1
        end
        local function thunk(arg1) -- Line 50
            return "test"
        end
        expect(Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch(thunk)).to.equal("test")
    end)
    it("should report errors captured in thunks via the provided error reporter", function() -- Line 59
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var14_upvw
        local var15_upvw
        local var16_upvw
        local tbl = {}
        local function reportReducerError(arg1, arg2, arg3) -- Line 62
            --[[ Upvalues[3]:
                [1]: var14_upvw (read and write)
                [2]: var15_upvw (read and write)
                [3]: var16_upvw (read and write)
            ]]
            var14_upvw = arg1
            var15_upvw = arg2
            var16_upvw = arg3
        end
        tbl.reportReducerError = reportReducerError
        local function reducer(arg1, arg2) -- Line 69
            return arg1
        end
        local function thunk(arg1) -- Line 78
            error("thunk failed")
        end
        Store_upvr.new(reducer, {
            Value = 1;
        }, {thunkMiddleware_upvr}, tbl):dispatch(thunk)
        expect(var14_upvw.Value).to.equal(1)
        expect(var15_upvw).to.equal(thunk)
        expect(var16_upvw.message).to.equal("Caught error in thunk")
    end)
    it("should recover and continue to update after a thunk errors", function() -- Line 89
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var21_upvw
        local any_new_result1 = Store_upvr.new(function(arg1, arg2) -- Line 97, Named "reducer"
            return arg1
        end, {
            Value = 1;
        }, {thunkMiddleware_upvr}, {
            reportReducerError = function(arg1, arg2, arg3) -- Line 92, Named "reportReducerError"
                --[[ Upvalues[1]:
                    [1]: var21_upvw (read and write)
                ]]
                var21_upvw = arg3
            end;
        })
        local var26_upvw = false
        any_new_result1:dispatch(function(arg1) -- Line 106, Named "errorThunk"
            error("thunk failed")
        end)
        expect(var21_upvw.message).to.equal("Caught error in thunk")
        any_new_result1:dispatch(function(arg1) -- Line 110, Named "safeThunk"
            --[[ Upvalues[1]:
                [1]: var26_upvw (read and write)
            ]]
            var26_upvw = true
        end)
        expect(var26_upvw).to.equal(true)
    end)
end
ModuleScript rodux ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:39
-- Luau version 6, Types version 3
-- Time taken: 0.000716 seconds

return {
    Store = require(script.Store);
    createReducer = require(script.createReducer);
    combineReducers = require(script.combineReducers);
    makeActionCreator = require(script.makeActionCreator);
    loggerMiddleware = require(script.loggerMiddleware).middleware;
    thunkMiddleware = require(script.thunkMiddleware);
    makeThunkMiddleware = require(script.makeThunkMiddleware);
}
ModuleScript NoYield ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.NoYield
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:41
-- Luau version 6, Types version 3
-- Time taken: 0.000947 seconds

local function resultHandler_upvr(arg1, arg2, ...) -- Line 11, Named "resultHandler"
    if not arg2 then
        error(debug.traceback(arg1, ...), 2)
    end
    if coroutine.status(arg1) ~= "dead" then
        error(debug.traceback(arg1, "Attempted to yield inside changed event!"), 2)
    end
    return ...
end
return function(arg1, ...) -- Line 24, Named "NoYield"
    --[[ Upvalues[1]:
        [1]: resultHandler_upvr (readonly)
    ]]
    local coroutine_create_result1 = coroutine.create(arg1)
    return resultHandler_upvr(coroutine_create_result1, coroutine.resume(coroutine_create_result1, ...))
end
ModuleScript NoYield.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.NoYield.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:42
-- Luau version 6, Types version 3
-- Time taken: 0.002857 seconds

return function() -- Line 1
    local NoYield_upvr = require(script.Parent.NoYield)
    it("should call functions normally", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var4_upvw = 0
        local function test(arg1, arg2) -- Line 7
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            expect(arg1).to.equal(5)
            expect(arg2).to.equal(6)
            var4_upvw += 1
            return 11, "hello"
        end
        local NoYield_upvr_result1, NoYield_upvr_result2 = NoYield_upvr(test, 5, 6)
        expect(NoYield_upvr_result1).to.equal(11)
        expect(NoYield_upvr_result2).to.equal("hello")
    end)
    it("should throw on yield", function() -- Line 22
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var8_upvw = 0
        local var9_upvw = 0
        local pcall_result1, pcall_result2 = pcall(NoYield_upvr, function() -- Line 26, Named "testMethod"
            --[[ Upvalues[2]:
                [1]: var8_upvw (read and write)
                [2]: var9_upvw (read and write)
            ]]
            var8_upvw += 1
            wait()
            var9_upvw += 1
        end)
        expect(var8_upvw).to.equal(1)
        expect(var9_upvw).to.equal(0)
        expect(pcall_result1).to.equal(false)
        expect(pcall_result2:find("Attempted to yield inside changed event!")).to.be.ok()
        expect(pcall_result2:find("NoYield.spec")).to.be.ok()
    end)
    it("should propagate error messages", function() -- Line 42
        --[[ Upvalues[1]:
            [1]: NoYield_upvr (readonly)
        ]]
        local var13_upvw = 0
        local pcall_result1_2, pcall_result2_2 = pcall(NoYield_upvr, function() -- Line 45, Named "test"
            --[[ Upvalues[1]:
                [1]: var13_upvw (read and write)
            ]]
            var13_upvw += 1
            error("foo")
        end)
        expect(pcall_result1_2).to.equal(false)
        expect(pcall_result2_2:find("foo")).to.be.ok()
        expect(pcall_result2_2:find("NoYield.spec")).to.be.ok()
    end)
end
ModuleScript Signal ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:43
-- Luau version 6, Types version 3
-- Time taken: 0.003323 seconds

local function immutableAppend_upvr(arg1, ...) -- Line 8, Named "immutableAppend"
    local module = {}
    local len = #arg1
    for i = 1, len do
        module[i] = arg1[i]
    end
    for i_2 = 1, select('#', ...) do
        module[len + i_2] = select(i_2, ...)
    end
    return module
end
local function immutableRemoveValue_upvr(arg1, arg2) -- Line 23, Named "immutableRemoveValue"
    for i_3 = 1, #arg1 do
        if arg1[i_3] ~= arg2 then
            table.insert({}, arg1[i_3])
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module_3 = {
        _listeners = {};
    }
    module_3._store = arg1
    setmetatable(module_3, module_2_upvr)
    return module_3
end
function module_2_upvr.connect(arg1, arg2) -- Line 61
    --[[ Upvalues[2]:
        [1]: immutableAppend_upvr (readonly)
        [2]: immutableRemoveValue_upvr (readonly)
    ]]
    if typeof(arg2) ~= "function" then
        error("Expected the listener to be a function.")
    end
    if arg1._store and arg1._store._isDispatching then
        error("You may not call store.changed:connect() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store:getState() in the callback to access the latest state. ")
    end
    local tbl_upvr = {}
    tbl_upvr.callback = arg2
    tbl_upvr.disconnected = false
    tbl_upvr.connectTraceback = debug.traceback()
    tbl_upvr.disconnectTraceback = nil
    arg1._listeners = immutableAppend_upvr(arg1._listeners, tbl_upvr)
    return {
        disconnect = function() -- Line 83, Named "disconnect"
            --[[ Upvalues[3]:
                [1]: tbl_upvr (readonly)
                [2]: arg1 (readonly)
                [3]: immutableRemoveValue_upvr (copied, readonly)
            ]]
            if tbl_upvr.disconnected then
                error("Listener connected at: \n%s\nwas already disconnected at: \n%s\n":format(tostring(tbl_upvr.connectTraceback), tostring(tbl_upvr.disconnectTraceback)))
            end
            if arg1._store and arg1._store._isDispatching then
                error("You may not unsubscribe from a store listener while the reducer is executing.")
            end
            tbl_upvr.disconnected = true
            tbl_upvr.disconnectTraceback = debug.traceback()
            arg1._listeners = immutableRemoveValue_upvr(arg1._listeners, tbl_upvr)
        end;
    }
end
function module_2_upvr.fire(arg1, ...) -- Line 107
    for _, v in ipairs(arg1._listeners) do
        if not v.disconnected then
            v.callback(...)
        end
    end
end
return module_2_upvr
ModuleScript Signal.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.Signal.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:45
-- Luau version 6, Types version 3
-- Time taken: 0.008571 seconds

return function() -- Line 1
    local Signal_upvr = require(script.Parent.Signal)
    it("should construct from nothing", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        expect(Signal_upvr.new()).to.be.ok()
    end)
    it("should fire connected callbacks", function() -- Line 10
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local var5_upvw = 0
        local any_new_result1_5 = Signal_upvr.new()
        any_new_result1_5:fire("Hello World", 7)
        expect(var5_upvw).to.equal(1)
        any_new_result1_5:connect(function(arg1, arg2) -- Line 15
            --[[ Upvalues[1]:
                [1]: var5_upvw (read and write)
            ]]
            expect(arg1).to.equal("Hello World")
            expect(arg2).to.equal(7)
            var5_upvw += 1
        end):disconnect()
        any_new_result1_5:fire("Hello World", 7)
        expect(var5_upvw).to.equal(1)
    end)
    it("should disconnect handlers", function() -- Line 34
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1 = Signal_upvr.new()
        any_new_result1:connect(function() -- Line 35
            error("Callback was called after disconnect!")
        end):disconnect()
        any_new_result1:fire()
    end)
    it("should fire handlers in order", function() -- Line 47
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_3 = Signal_upvr.new()
        local var13_upvw = 0
        local var14_upvw = 0
        any_new_result1_3:connect(function() -- Line 52
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: var14_upvw (read and write)
            ]]
            expect(var13_upvw).to.equal(0)
            expect(var14_upvw).to.equal(0)
            var13_upvw += 1
        end)
        any_new_result1_3:connect(function() -- Line 58
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: var14_upvw (read and write)
            ]]
            expect(var13_upvw).to.equal(1)
            expect(var14_upvw).to.equal(0)
            var14_upvw += 1
        end)
        any_new_result1_3:fire()
        expect(var13_upvw).to.equal(1)
        expect(var14_upvw).to.equal(1)
    end)
    it("should continue firing despite mid-event disconnection", function() -- Line 72
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_2 = Signal_upvr.new()
        local var19_upvw = 0
        local var20_upvw = 0
        local var22_upvw
        var22_upvw = any_new_result1_2:connect(function() -- Line 78
            --[[ Upvalues[2]:
                [1]: var22_upvw (read and write)
                [2]: var19_upvw (read and write)
            ]]
            var22_upvw:disconnect()
            var19_upvw += 1
        end)
        any_new_result1_2:connect(function() -- Line 83
            --[[ Upvalues[1]:
                [1]: var20_upvw (read and write)
            ]]
            var20_upvw += 1
        end)
        any_new_result1_2:fire()
        expect(var19_upvw).to.equal(1)
        expect(var20_upvw).to.equal(1)
    end)
    it("should skip listeners that were disconnected during event evaluation", function() -- Line 93
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_7 = Signal_upvr.new()
        local var26_upvw = 0
        local var27_upvw = 0
        local var29_upvw
        any_new_result1_7:connect(function() -- Line 100
            --[[ Upvalues[2]:
                [1]: var26_upvw (read and write)
                [2]: var29_upvw (read and write)
            ]]
            var26_upvw += 1
            var29_upvw:disconnect()
        end)
        var29_upvw = any_new_result1_7:connect(function() -- Line 105
            --[[ Upvalues[1]:
                [1]: var27_upvw (read and write)
            ]]
            var27_upvw += 1
        end)
        any_new_result1_7:fire()
        expect(var26_upvw).to.equal(1)
        expect(var27_upvw).to.equal(0)
    end)
    it("should throw an error if the argument to `connect` is not a function", function() -- Line 115
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_new_result1_upvr = Signal_upvr.new()
        expect(function() -- Line 117
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:connect("not a function")
        end).to.throw()
    end)
    it("should throw an error when disconnecting more than once", function() -- Line 122
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local any_connect_result1 = Signal_upvr.new():connect(function() -- Line 125
        end)
        expect(any_connect_result1.disconnect).never.to.throw()
        expect(any_connect_result1.disconnect).to.throw()
    end)
    it("should throw an error when subscribing during dispatch", function() -- Line 133
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local tbl_2 = {
            _isDispatching = false;
        }
        local any_new_result1_6_upvr = Signal_upvr.new(tbl_2)
        any_new_result1_6_upvr:connect(function() -- Line 139
            --[[ Upvalues[1]:
                [1]: any_new_result1_6_upvr (readonly)
            ]]
            any_new_result1_6_upvr:connect(function() -- Line 141
            end)
        end)
        tbl_2._isDispatching = true
        expect(function() -- Line 145
            --[[ Upvalues[1]:
                [1]: any_new_result1_6_upvr (readonly)
            ]]
            any_new_result1_6_upvr:fire()
        end).to.throw()
    end)
    it("should throw an error when unsubscribing during dispatch", function() -- Line 150
        --[[ Upvalues[1]:
            [1]: Signal_upvr (readonly)
        ]]
        local tbl = {
            _isDispatching = false;
        }
        local any_new_result1_4_upvr = Signal_upvr.new(tbl)
        local var47_upvw
        var47_upvw = any_new_result1_4_upvr:connect(function() -- Line 157
            --[[ Upvalues[1]:
                [1]: var47_upvw (read and write)
            ]]
            var47_upvw.disconnect()
        end)
        tbl._isDispatching = true
        expect(function() -- Line 162
            --[[ Upvalues[1]:
                [1]: any_new_result1_4_upvr (readonly)
            ]]
            any_new_result1_4_upvr:fire()
        end).to.throw()
    end)
end
ModuleScript Store ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.Store
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:47
-- Luau version 6, Types version 3
-- Time taken: 0.010480 seconds

local tbl_upvr = {
    reportReducerError = function(arg1, arg2, arg3) -- Line 9, Named "reportReducerError"
        error(string.format("Received error: %s\n\n%s", arg3.message, arg3.thrownValue))
    end;
    reportUpdateError = function(arg1, arg2, arg3, arg4) -- Line 12, Named "reportUpdateError"
        error(string.format("Received error: %s\n\n%s", arg4.message, arg4.thrownValue))
    end;
}
local function tracebackReporter_upvr(arg1) -- Line 17, Named "tracebackReporter"
    return debug.traceback(tostring(arg1))
end
local module_upvr_2 = {
    _flushEvent = game:GetService("RunService").Heartbeat;
}
module_upvr_2.__index = module_upvr_2
local Signal_upvr = require(script.Parent.Signal)
function module_upvr_2.new(arg1, arg2, arg3, arg4) -- Line 41
    --[[ Upvalues[4]:
        [1]: tbl_upvr (readonly)
        [2]: tracebackReporter_upvr (readonly)
        [3]: Signal_upvr (readonly)
        [4]: module_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var12_upvr
    if typeof(arg1) ~= "function" then
        var12_upvr = false
    else
        var12_upvr = true
    end
    assert(var12_upvr, "Bad argument #1 to Store.new, expected function.")
    var12_upvr = true
    if arg3 ~= nil then
        if typeof(arg3) ~= "table" then
            var12_upvr = false
        else
            var12_upvr = true
        end
    end
    assert(var12_upvr, "Bad argument #3 to Store.new, expected nil or table.")
    if arg3 ~= nil then
        var12_upvr = 1
        for i = 1, #arg3, var12_upvr do
            local var13
            if typeof(arg3[i]) ~= "function" then
                var13 = false
            else
                var13 = true
            end
            assert(var13, "Expected the middleware ('%s') at index %d to be a function.":format(tostring(arg3[i]), i))
        end
    end
    local module_upvr = {}
    var12_upvr = arg4
    if not var12_upvr then
        var12_upvr = tbl_upvr
    end
    module_upvr._errorReporter = var12_upvr
    var12_upvr = false
    module_upvr._isDispatching = var12_upvr
    module_upvr._reducer = arg1
    var12_upvr = {}
    var12_upvr.type = "@@INIT"
    module_upvr._actionLog = {var12_upvr}
    local xpcall_result1, xpcall_result2_2 = xpcall(function() -- Line 62
        --[[ Upvalues[4]:
            [1]: module_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
            [4]: var12_upvr (readonly)
        ]]
        module_upvr._state = arg1(arg2, var12_upvr)
    end, tracebackReporter_upvr)
    if not xpcall_result1 then
        module_upvr._errorReporter.reportReducerError(arg2, var12_upvr, {
            message = "Caught error in reducer with init";
            thrownValue = xpcall_result2_2;
        })
        module_upvr._state = arg2
    end
    module_upvr._lastState = module_upvr._state
    module_upvr._mutatedSinceFlush = false
    module_upvr._connections = {}
    module_upvr.changed = Signal_upvr.new(module_upvr)
    setmetatable(module_upvr, module_upvr_2)
    table.insert(module_upvr._connections, module_upvr._flushEvent:Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        module_upvr:flush()
    end))
    local var22_upvw
    if arg3 then
        local dispatch_2_upvr = module_upvr.dispatch
        function var22_upvw(...) -- Line 88
            --[[ Upvalues[2]:
                [1]: dispatch_2_upvr (readonly)
                [2]: module_upvr (readonly)
            ]]
            return dispatch_2_upvr(module_upvr, ...)
        end
        for i_2 = #arg3, 1, -1 do
            var22_upvw = arg3[i_2](var22_upvw, module_upvr)
        end
        function module_upvr.dispatch(arg1_2, ...) -- Line 97
            --[[ Upvalues[1]:
                [1]: var22_upvw (read and write)
            ]]
            return var22_upvw(...)
        end
    end
    return module_upvr
end
function module_upvr_2.getState(arg1) -- Line 108
    if arg1._isDispatching then
        error("You may not call store:getState() while the reducer is executing. The reducer (%s) has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.":format(tostring(arg1._reducer)))
    end
    return arg1._state
end
function module_upvr_2.dispatch(arg1, arg2) -- Line 129
    if typeof(arg2) ~= "table" then
        error("Actions must be tables. Use custom middleware for %q actions.":format(typeof(arg2)), 2)
    end
    if arg2.type == nil then
        error("Actions may not have an undefined 'type' property. ".."Have you misspelled a constant? \n"..tostring(arg2), 2)
    end
    if arg1._isDispatching then
        error("Reducers may not dispatch actions.")
    end
    local pcall_result1, pcall_result2 = pcall(function() -- Line 147
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        arg1._isDispatching = true
        arg1._state = arg1._reducer(arg1._state, arg2)
        arg1._mutatedSinceFlush = true
    end)
    arg1._isDispatching = false
    if not pcall_result1 then
        arg1._errorReporter.reportReducerError(arg1._state, arg2, {
            message = "Caught error in reducer";
            thrownValue = pcall_result2;
        })
    end
    if #arg1._actionLog == 3 then
        table.remove(arg1._actionLog, 1)
    end
    table.insert(arg1._actionLog, arg2)
end
function module_upvr_2.destruct(arg1) -- Line 171
    for _, v in ipairs(arg1._connections) do
        v:Disconnect()
    end
    arg1._connections = nil
end
local NoYield_upvr = require(script.Parent.NoYield)
function module_upvr_2.flush(arg1) -- Line 182
    --[[ Upvalues[2]:
        [1]: NoYield_upvr (readonly)
        [2]: tracebackReporter_upvr (readonly)
    ]]
    if not arg1._mutatedSinceFlush then
    else
        arg1._mutatedSinceFlush = false
        local _state_upvr = arg1._state
        local xpcall_result1_2, xpcall_result2 = xpcall(function() -- Line 194
            --[[ Upvalues[3]:
                [1]: NoYield_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: _state_upvr (readonly)
            ]]
            NoYield_upvr(function() -- Line 197
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: _state_upvr (copied, readonly)
                ]]
                arg1.changed:fire(_state_upvr, arg1._lastState)
            end)
        end, tracebackReporter_upvr)
        if not xpcall_result1_2 then
            arg1._errorReporter.reportUpdateError(arg1._lastState, _state_upvr, arg1._actionLog, {
                message = "Caught error flushing store updates";
                thrownValue = xpcall_result2;
            })
        end
        arg1._lastState = _state_upvr
    end
end
return module_upvr_2
ModuleScript Store.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.Store.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:50
-- Luau version 6, Types version 3
-- Time taken: 0.026720 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    describe("new", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should instantiate with a reducer", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_11 = Store_upvr.new(function(arg1, arg2) -- Line 6
                return "hello, world"
            end)
            expect(any_new_result1_11).to.be.ok()
            expect(any_new_result1_11:getState()).to.equal("hello, world")
            any_new_result1_11:destruct()
        end)
        it("should instantiate with a reducer and an initial state", function() -- Line 16
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_5 = Store_upvr.new(function(arg1, arg2) -- Line 17
                return arg1
            end, "initial state")
            expect(any_new_result1_5).to.be.ok()
            expect(any_new_result1_5:getState()).to.equal("initial state")
            any_new_result1_5:destruct()
        end)
        it("should instantiate with a reducer, initial state, and middlewares", function() -- Line 27
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_12 = Store_upvr.new(function(arg1, arg2) -- Line 28
                return arg1
            end, "initial state", {})
            expect(any_new_result1_12).to.be.ok()
            expect(any_new_result1_12:getState()).to.equal("initial state")
            any_new_result1_12:destruct()
        end)
        it("should modify the dispatch method when middlewares are passed", function() -- Line 38
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var14_upvw = 0
            local var15_upvw = 0
            local var16_upvw
            local var17_upvw
            local var18_upvw
            local function reducer(arg1, arg2) -- Line 45
                if arg2.type == "test" then
                    return "test state"
                end
                return arg1
            end
            local any_new_result1_7 = Store_upvr.new(reducer, "initial state", {function(arg1, arg2) -- Line 53, Named "testMiddleware"
                --[[ Upvalues[5]:
                    [1]: var14_upvw (read and write)
                    [2]: var16_upvw (read and write)
                    [3]: var17_upvw (read and write)
                    [4]: var15_upvw (read and write)
                    [5]: var18_upvw (read and write)
                ]]
                var14_upvw += 1
                var16_upvw = arg1
                var17_upvw = arg2
                return function(arg1_2) -- Line 58
                    --[[ Upvalues[3]:
                        [1]: var15_upvw (copied, read and write)
                        [2]: var18_upvw (copied, read and write)
                        [3]: arg1 (readonly)
                    ]]
                    var15_upvw += 1
                    var18_upvw = arg1_2
                    arg1(arg1_2)
                end
            end})
            expect(var14_upvw).to.equal(1)
            expect(var15_upvw).to.equal(0)
            expect(var16_upvw).to.be.a("function")
            expect(var17_upvw).to.equal(any_new_result1_7)
            any_new_result1_7:dispatch({
                type = "test";
            })
            expect(var14_upvw).to.equal(1)
            expect(var15_upvw).to.equal(1)
            expect(var18_upvw.type).to.equal("test")
            any_new_result1_7:flush()
            expect(any_new_result1_7:getState()).to.equal("test state")
            any_new_result1_7:destruct()
        end)
        it("should execute middleware left-to-right", function() -- Line 88
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local tbl_4_upvr = {}
            local any_new_result1_8 = Store_upvr.new(function(arg1) -- Line 91, Named "reducer"
                return arg1
            end, 5, {function(arg1, arg2) -- Line 95, Named "middlewareA"
                --[[ Upvalues[1]:
                    [1]: tbl_4_upvr (readonly)
                ]]
                table.insert(tbl_4_upvr, "instantiate a")
                return function(arg1_3) -- Line 97
                    --[[ Upvalues[2]:
                        [1]: tbl_4_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                    ]]
                    table.insert(tbl_4_upvr, "execute a")
                    return arg1(arg1_3)
                end
            end, function(arg1, arg2) -- Line 103, Named "middlewareB"
                --[[ Upvalues[1]:
                    [1]: tbl_4_upvr (readonly)
                ]]
                table.insert(tbl_4_upvr, "instantiate b")
                return function(arg1_4) -- Line 105
                    --[[ Upvalues[2]:
                        [1]: tbl_4_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                    ]]
                    table.insert(tbl_4_upvr, "execute b")
                    return arg1(arg1_4)
                end
            end})
            expect(#tbl_4_upvr).to.equal(2)
            expect(tbl_4_upvr[1]).to.equal("instantiate b")
            expect(tbl_4_upvr[2]).to.equal("instantiate a")
            any_new_result1_8:dispatch({
                type = "test";
            })
            expect(#tbl_4_upvr).to.equal(4)
            expect(tbl_4_upvr[3]).to.equal("execute a")
            expect(tbl_4_upvr[4]).to.equal("execute b")
            any_new_result1_8:destruct()
        end)
        it("should send an initial action with a 'type' field", function() -- Line 128
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var31_upvw
            local var32_upvw = 0
            expect(var32_upvw).to.equal(1)
            expect(var31_upvw).to.be.a("table")
            expect(var31_upvw.type).to.be.ok()
            Store_upvr.new(function(arg1, arg2) -- Line 132
                --[[ Upvalues[2]:
                    [1]: var31_upvw (read and write)
                    [2]: var32_upvw (read and write)
                ]]
                var31_upvw = arg2
                var32_upvw += 1
                return arg1
            end):destruct()
        end)
        it("should report a reducer error thrown when handling the INIT action", function() -- Line 146
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var35_upvw
            local var36_upvw
            local var37_upvw
            local tbl_3 = {}
            local function reportReducerError(arg1, arg2, arg3) -- Line 149
                --[[ Upvalues[3]:
                    [1]: var35_upvw (read and write)
                    [2]: var36_upvw (read and write)
                    [3]: var37_upvw (read and write)
                ]]
                var35_upvw = arg1
                var36_upvw = arg2
                var37_upvw = arg3
            end
            tbl_3.reportReducerError = reportReducerError
            local function reportUpdateError() -- Line 154
            end
            tbl_3.reportUpdateError = reportUpdateError
            expect(var35_upvw.Value).to.equal(1)
            expect(var36_upvw.type).to.equal("@@INIT")
            expect(var37_upvw.message).to.equal("Caught error in reducer with init")
            expect(string.find(var37_upvw.thrownValue, "Z4PH0D")).to.be.ok()
            expect(string.find(var37_upvw.thrownValue, script.Name)).to.be.ok()
            Store_upvr.new(function(arg1, arg2) -- Line 160
                error("Z4PH0D")
            end, {
                Value = 1;
            }, nil, tbl_3):destruct()
        end)
        it("should report a reducer error thrown when handling a subsequent action", function() -- Line 183
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var42_upvw
            local var43_upvw
            local var44_upvw
            local tbl_5 = {}
            local function reportReducerError(arg1, arg2, arg3) -- Line 186
                --[[ Upvalues[3]:
                    [1]: var42_upvw (read and write)
                    [2]: var43_upvw (read and write)
                    [3]: var44_upvw (read and write)
                ]]
                var42_upvw = arg1
                var43_upvw = arg2
                var44_upvw = arg3
            end
            tbl_5.reportReducerError = reportReducerError
            local function reportUpdateError() -- Line 191
            end
            tbl_5.reportUpdateError = reportUpdateError
            local any_new_result1 = Store_upvr.new(function(arg1, arg2) -- Line 197
                if arg2.type == "ThrowError" then
                    error("Z4PH0D")
                    return arg1
                end
                if arg2.type == "Increment" then
                    return {
                        Value = arg1.Value + 1;
                    }
                end
                return arg1
            end, {
                Value = 1;
            }, nil, tbl_5)
            expect(var42_upvw).to.equal(nil)
            expect(var43_upvw).to.equal(nil)
            expect(var44_upvw).to.equal(nil)
            any_new_result1:dispatch({
                type = "Increment";
            })
            any_new_result1:dispatch({
                type = "ThrowError";
            })
            expect(var42_upvw.Value).to.equal(2)
            expect(var43_upvw.type).to.equal("ThrowError")
            expect(var44_upvw.message).to.equal("Caught error in reducer")
            expect(string.find(var44_upvw.thrownValue, "Z4PH0D")).to.be.ok()
            expect(string.find(var44_upvw.thrownValue, script.Name)).to.be.ok()
            any_new_result1:destruct()
        end)
    end)
    describe("getState", function() -- Line 235
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should get the current state", function() -- Line 236
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_15 = Store_upvr.new(function(arg1, arg2) -- Line 237
                return "foo"
            end)
            expect(any_new_result1_15:getState()).to.equal("foo")
            any_new_result1_15:destruct()
        end)
        it("should throw errors if triggered during dispatches", function() -- Line 248
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var58_upvw
            var58_upvw = Store_upvr.new(function(arg1, arg2) -- Line 250
                --[[ Upvalues[1]:
                    [1]: var58_upvw (read and write)
                ]]
                if arg2.type ~= "@@INIT" then
                    var58_upvw:getState()
                end
            end)
            local var59_upvw = var58_upvw
            expect(function() -- Line 256
                --[[ Upvalues[1]:
                    [1]: var59_upvw (read and write)
                ]]
                var59_upvw:dispatch({
                    type = "SomeAction";
                })
            end).to.throw()
            var59_upvw:destruct()
        end)
    end)
    describe("dispatch", function() -- Line 264
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should be sent through the reducer", function() -- Line 265
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_2 = Store_upvr.new(function(arg1, arg2) -- Line 266
                if arg2.type == "act" then
                    return "bar"
                end
                return arg1 or "foo"
            end)
            expect(any_new_result1_2).to.be.ok()
            expect(any_new_result1_2:getState()).to.equal("foo")
            any_new_result1_2:dispatch({
                type = "act";
            })
            any_new_result1_2:flush()
            expect(any_new_result1_2:getState()).to.equal("bar")
            any_new_result1_2:destruct()
        end)
        it("should trigger the changed event after a flush", function() -- Line 290
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_3 = Store_upvr.new(function(arg1, arg2) -- Line 291
                local var69 = arg1 or 0
                if arg2.type == "increment" then
                    return var69 + 1
                end
                return var69
            end)
            local var71_upvw = 0
            any_new_result1_3.changed:connect(function(arg1, arg2) -- Line 303
                --[[ Upvalues[1]:
                    [1]: var71_upvw (read and write)
                ]]
                expect(arg2).to.equal(0)
                expect(arg1).to.equal(1)
                var71_upvw += 1
            end)
            any_new_result1_3:dispatch({
                type = "increment";
            })
            any_new_result1_3:flush()
            expect(var71_upvw).to.equal(1)
            any_new_result1_3:destruct()
        end)
        it("should handle actions dispatched within the changed event", function() -- Line 321
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_10_upvr = Store_upvr.new(function(arg1, arg2) -- Line 322
                local var76 = arg1
                if not var76 then
                    var76 = {}
                    var76.value = 0
                end
                local var77 = var76
                if arg2.type == "increment" then
                    return {
                        value = var77.value + 1;
                    }
                end
                if arg2.type == "decrement" then
                    return {
                        value = var77.value - 1;
                    }
                end
                return var77
            end)
            local var81_upvw = 0
            any_new_result1_10_upvr.changed:connect(function(arg1, arg2) -- Line 342
                --[[ Upvalues[2]:
                    [1]: any_new_result1_10_upvr (readonly)
                    [2]: var81_upvw (read and write)
                ]]
                expect(arg1).never.to.equal(arg2)
                if 0 < arg1.value then
                    any_new_result1_10_upvr:dispatch({
                        type = "decrement";
                    })
                end
                var81_upvw += 1
            end)
            any_new_result1_10_upvr:dispatch({
                type = "increment";
            })
            any_new_result1_10_upvr:flush()
            any_new_result1_10_upvr:flush()
            expect(var81_upvw).to.equal(2)
            any_new_result1_10_upvr:destruct()
        end)
        it("should prevent yielding from changed handler", function() -- Line 365
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var86_upvw
            local var87_upvw
            local tbl = {}
            local function reportUpdateError(arg1, arg2, arg3, arg4) -- Line 368
                --[[ Upvalues[2]:
                    [1]: var86_upvw (read and write)
                    [2]: var87_upvw (read and write)
                ]]
                var86_upvw = arg4.message
                var87_upvw = arg4.thrownValue
            end
            tbl.reportUpdateError = reportUpdateError
            local function reportReducerError() -- Line 372
            end
            tbl.reportReducerError = reportReducerError
            local var89_upvw = 0
            local var90_upvw = 0
            local any_new_result1_6 = Store_upvr.new(function(arg1, arg2) -- Line 379
                return (arg1 or 0) + 1
            end, nil, nil, tbl)
            any_new_result1_6.changed:connect(function(arg1, arg2) -- Line 384
                --[[ Upvalues[2]:
                    [1]: var89_upvw (read and write)
                    [2]: var90_upvw (read and write)
                ]]
                var89_upvw += 1
                wait()
                var90_upvw += 1
            end)
            any_new_result1_6:dispatch({
                type = "increment";
            })
            any_new_result1_6:flush()
            expect(var89_upvw).to.equal(1)
            expect(var90_upvw).to.equal(0)
            expect(var86_upvw).to.equal("Caught error flushing store updates")
            expect(string.find(var87_upvw, script.Name)).to.be.ok()
            expect(string.find(var87_upvw, "to yield")).to.be.ok()
            any_new_result1_6:destruct()
        end)
        it("should throw if an action is dispatched without a type field", function() -- Line 417
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_14_upvr = Store_upvr.new(function(arg1, arg2) -- Line 418
                return arg1
            end)
            expect(function() -- Line 422
                --[[ Upvalues[1]:
                    [1]: any_new_result1_14_upvr (readonly)
                ]]
                any_new_result1_14_upvr:dispatch({})
            end).to.throw()
            any_new_result1_14_upvr:destruct()
        end)
        it("should throw if the action is not a function or table", function() -- Line 429
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_13_upvr = Store_upvr.new(function(arg1, arg2) -- Line 430
                return arg1
            end)
            expect(function() -- Line 434
                --[[ Upvalues[1]:
                    [1]: any_new_result1_13_upvr (readonly)
                ]]
                any_new_result1_13_upvr:dispatch(1)
            end).to.throw()
            any_new_result1_13_upvr:destruct()
        end)
        it("should report an error if the listeners error when flushing", function() -- Line 441
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var108_upvw
            local var109_upvw
            local var110_upvw
            local var111_upvw
            local any_new_result1_4 = Store_upvr.new(function(arg1, arg2) -- Line 455
                if arg2.type == "Increment" then
                    return {
                        Value = arg1.Value + arg2.amount;
                    }
                end
                return arg1
            end, {
                Value = 1;
            }, nil, {
                reportReducerError = function() -- Line 444, Named "reportReducerError"
                end;
                reportUpdateError = function(arg1, arg2, arg3, arg4) -- Line 447, Named "reportUpdateError"
                    --[[ Upvalues[4]:
                        [1]: var108_upvw (read and write)
                        [2]: var109_upvw (read and write)
                        [3]: var110_upvw (read and write)
                        [4]: var111_upvw (read and write)
                    ]]
                    var108_upvw = arg1
                    var109_upvw = arg2
                    var110_upvw = arg3
                    var111_upvw = arg4
                end;
            })
            any_new_result1_4.changed:connect(function(arg1, arg2) -- Line 468
                if arg1.Value == 15 then
                    error("Z4PH0D")
                end
            end)
            local tbl_2 = {{
                type = "Increment";
                amount = 1;
            }, {
                type = "Increment";
                amount = 3;
            }, {
                type = "Increment";
                amount = 10;
            }}
            for _, v in ipairs(tbl_2) do
                any_new_result1_4:dispatch(v)
            end
            any_new_result1_4:flush()
            expect(var111_upvw.message).to.equal("Caught error flushing store updates")
            expect(string.find(var111_upvw.thrownValue, script.Name)).to.be.ok()
            expect(var110_upvw[1]).to.equal(tbl_2[1])
            expect(var110_upvw[2]).to.equal(tbl_2[2])
            expect(var110_upvw[3]).to.equal(tbl_2[3])
            expect(var108_upvw.Value).to.equal(1)
            expect(var109_upvw.Value).to.equal(15)
            any_new_result1_4:destruct()
        end)
        it("should throw errors if dispatching while a dispatch is already happening", function() -- Line 503
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local var127_upvw
            var127_upvw = Store_upvr.new(function(arg1, arg2) -- Line 505
                --[[ Upvalues[1]:
                    [1]: var127_upvw (read and write)
                ]]
                if arg2.type == "SomeAction" then
                    var127_upvw:dispatch({
                        type = "MidDispatchAction";
                    })
                end
            end)
            local var129_upvw = var127_upvw
            expect(function() -- Line 511
                --[[ Upvalues[1]:
                    [1]: var129_upvw (read and write)
                ]]
                var129_upvw:dispatch({
                    type = "SomeAction";
                })
            end).to.throw()
            var129_upvw:destruct()
        end)
    end)
    describe("flush", function() -- Line 519
        --[[ Upvalues[1]:
            [1]: Store_upvr (readonly)
        ]]
        it("should not fire a changed event if there were no dispatches", function() -- Line 520
            --[[ Upvalues[1]:
                [1]: Store_upvr (copied, readonly)
            ]]
            local any_new_result1_9 = Store_upvr.new(function() -- Line 521
            end)
            local var136_upvw = 0
            any_new_result1_9.changed:connect(function() -- Line 524
                --[[ Upvalues[1]:
                    [1]: var136_upvw (read and write)
                ]]
                var136_upvw += 1
            end)
            any_new_result1_9:flush()
            expect(var136_upvw).to.equal(0)
            any_new_result1_9:dispatch({
                type = "increment";
            })
            any_new_result1_9:flush()
            expect(var136_upvw).to.equal(1)
            any_new_result1_9:flush()
            expect(var136_upvw).to.equal(1)
            any_new_result1_9:destruct()
        end)
    end)
end
ModuleScript combineReducers ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.combineReducers
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:52
-- Luau version 6, Types version 3
-- Time taken: 0.001073 seconds

return function(arg1) -- Line 17, Named "combineReducers"
    return function(arg1_2, arg2) -- Line 19
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2 == nil then
        end
        for i, v in pairs(arg1) do
            ({})[i] = v(({})[i], arg2)
            local var10
        end
        return var10
    end
end
ModuleScript combineReducers.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.combineReducers.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:54
-- Luau version 6, Types version 3
-- Time taken: 0.003307 seconds

return function() -- Line 1
    local combineReducers_upvr = require(script.Parent.combineReducers)
    it("should invoke each sub-reducer for every action", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local var4_upvw = 0
        local var5_upvw = 0
        local tbl_2 = {}
        local function a(arg1, arg2) -- Line 9
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            var4_upvw += 1
        end
        tbl_2.a = a
        local function b(arg1, arg2) -- Line 12
            --[[ Upvalues[1]:
                [1]: var5_upvw (read and write)
            ]]
            var5_upvw += 1
        end
        tbl_2.b = b
        combineReducers_upvr(tbl_2)({}, {})
        expect(var4_upvw).to.equal(1)
        expect(var5_upvw).to.equal(1)
    end)
    it("should assign each sub-reducer's value to the new state", function() -- Line 23
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local tbl = {}
        local function a(arg1, arg2) -- Line 25
            return (arg1 or 0) + 1
        end
        tbl.a = a
        local function b(arg1, arg2) -- Line 28
            return (arg1 or 0) + 3
        end
        tbl.b = b
        local var9 = combineReducers_upvr(tbl)({}, {})
        expect(var9.a).to.equal(1)
        expect(var9.b).to.equal(3)
    end)
    it("should not throw when state is nil", function() -- Line 38
        --[[ Upvalues[1]:
            [1]: combineReducers_upvr (readonly)
        ]]
        local combineReducers_upvr_result1_upvr = combineReducers_upvr({
            a = function(arg1, arg2) -- Line 40, Named "a"
                return (arg1 or 0) + 1
            end;
            b = function(arg1, arg2) -- Line 43, Named "b"
                return (arg1 or 0) + 3
            end;
        })
        expect(function() -- Line 48
            --[[ Upvalues[1]:
                [1]: combineReducers_upvr_result1_upvr (readonly)
            ]]
            combineReducers_upvr_result1_upvr(nil, {})
        end).to.never.throw()
    end)
end
ModuleScript createReducer ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.createReducer
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:56
-- Luau version 6, Types version 3
-- Time taken: 0.000955 seconds

return function(arg1, arg2) -- Line 9
    return function(arg1_2, arg2_2) -- Line 11
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        if arg1_2 == nil then
            local var3 = arg1
        end
        local var4 = arg2[arg2_2.type]
        if var4 then
            return var4(var3, arg2_2)
        end
        return var3
    end
end
ModuleScript createReducer.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.createReducer.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:57
-- Luau version 6, Types version 3
-- Time taken: 0.005402 seconds

return function() -- Line 1
    local createReducer_upvr = require(script.Parent.createReducer)
    it("should handle actions", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local tbl = {}
        local function a(arg1, arg2) -- Line 9
            return {
                a = arg1.a + 1;
                b = arg1.b;
            }
        end
        tbl.a = a
        local function b(arg1, arg2) -- Line 15
            return {
                a = arg1.a;
                b = arg1.b + 2;
            }
        end
        tbl.b = b
        local createReducer_upvr_result1_2 = createReducer_upvr({
            a = 0;
            b = 0;
        }, tbl)
        local createReducer_upvr_result1_2_result1 = createReducer_upvr_result1_2({
            a = 0;
            b = 0;
        }, {
            type = 'a';
        })
        expect(createReducer_upvr_result1_2_result1.a).to.equal(1)
        expect(createReducer_upvr_result1_2(createReducer_upvr_result1_2_result1, {
            type = 'b';
        }).b).to.equal(2)
    end)
    it("should return the initial state if the state is nil", function() -- Line 39
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local var15 = createReducer_upvr({
            a = 0;
            b = 0;
        }, {})(nil, {})
        expect(var15).to.be.ok()
        expect(var15.a).to.equal(0)
        expect(var15.b).to.equal(0)
    end)
    it("should still run action handlers if the state is nil", function() -- Line 52
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local var17_upvw = 0
        local createReducer_upvr_result1 = createReducer_upvr(0, {
            foo = function(arg1, arg2) -- Line 56, Named "foo"
                --[[ Upvalues[1]:
                    [1]: var17_upvw (read and write)
                ]]
                var17_upvw += 1
                return nil
            end;
        })
        expect(var17_upvw).to.equal(0)
        local createReducer_upvr_result1_result1 = createReducer_upvr_result1(nil, {
            type = "foo";
        })
        expect(var17_upvw).to.equal(1)
        expect(createReducer_upvr_result1_result1).to.equal(nil)
        expect(var17_upvw).to.equal(2)
        expect(createReducer_upvr_result1(createReducer_upvr_result1_result1, {
            type = "foo";
        })).to.equal(nil)
    end)
    it("should return the same state if the action is not handled", function() -- Line 79
        --[[ Upvalues[1]:
            [1]: createReducer_upvr (readonly)
        ]]
        local tbl_2 = {
            a = 0;
            b = 0;
        }
        expect(createReducer_upvr(tbl_2, {
            a = function(arg1, arg2) -- Line 86, Named "a"
                return {
                    a = arg1.a + 1;
                    b = arg1.b;
                }
            end;
            b = function(arg1, arg2) -- Line 92, Named "b"
                return {
                    a = arg1.a;
                    b = arg1.b + 2;
                }
            end;
        })(tbl_2, {
            type = 'c';
        })).to.equal(tbl_2)
    end)
end
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:06:59
-- Luau version 6, Types version 3
-- Time taken: 0.001009 seconds

return function() -- Line 1
    describe("Rodux", function() -- Line 2
        it("should load", function() -- Line 3
            expect(require(script.Parent).Store).to.be.ok()
        end)
    end)
end
ModuleScript loggerMiddleware ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.loggerMiddleware
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:01
-- Luau version 6, Types version 3
-- Time taken: 0.000914 seconds

local module_upvr = {
    outputFunction = print;
}
local prettyPrint_upvr = require(script.Parent.prettyPrint)
function module_upvr.middleware(arg1, arg2) -- Line 13
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: prettyPrint_upvr (readonly)
    ]]
    return function(arg1_2) -- Line 14
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: module_upvr (copied, readonly)
            [3]: prettyPrint_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        module_upvr.outputFunction("Action dispatched: %s\nState changed to: %s":format(prettyPrint_upvr(arg1_2), prettyPrint_upvr(arg2:getState())))
        return arg1(arg1_2)
    end
end
return module_upvr
ModuleScript loggerMiddleware.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.loggerMiddleware.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:03
-- Luau version 6, Types version 3
-- Time taken: 0.002080 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    local loggerMiddleware_upvr = require(script.Parent.loggerMiddleware)
    it("should print whenever an action is dispatched", function() -- Line 5
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: loggerMiddleware_upvr (readonly)
        ]]
        local var5_upvw = 0
        local var6_upvw
        function loggerMiddleware_upvr.outputFunction(arg1) -- Line 22
            --[[ Upvalues[2]:
                [1]: var5_upvw (read and write)
                [2]: var6_upvw (read and write)
            ]]
            var5_upvw += 1
            var6_upvw = arg1
        end
        Store_upvr.new(function(arg1, arg2) -- Line 9, Named "reducer"
            return arg1
        end, {
            fooValue = 12345;
            barValue = {
                bazValue = "hiBaz";
            };
        }, {loggerMiddleware_upvr.middleware}):dispatch({
            type = "testActionType";
        })
        expect(var5_upvw).to.equal(1)
        expect(var6_upvw:find("testActionType")).to.be.ok()
        expect(var6_upvw:find("fooValue")).to.be.ok()
        expect(var6_upvw:find("12345")).to.be.ok()
        expect(var6_upvw:find("barValue")).to.be.ok()
        expect(var6_upvw:find("bazValue")).to.be.ok()
        expect(var6_upvw:find("hiBaz")).to.be.ok()
        loggerMiddleware_upvr.outputFunction = print
    end)
end
ModuleScript makeActionCreator ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.makeActionCreator
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:05
-- Luau version 6, Types version 3
-- Time taken: 0.001837 seconds

return function(arg1, arg2) -- Line 10, Named "makeActionCreator"
    local var1
    if type(arg1) ~= "string" then
        var1 = false
    else
        var1 = true
    end
    assert(var1, "Bad argument #1: Expected a string name for the action creator")
    if type(arg2) ~= "function" then
        var1 = false
    else
        var1 = true
    end
    assert(var1, "Bad argument #2: Expected a function that creates action objects")
    var1 = {}
    var1.name = arg1
    return setmetatable(var1, {
        __call = function(arg1_2, ...) -- Line 21, Named "__call"
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: arg1 (readonly)
            ]]
            local arg2_result1 = arg2(...)
            local var4
            if type(arg2_result1) ~= "table" then
                var4 = false
            else
                var4 = true
            end
            assert(var4, "Invalid action: An action creator must return a table")
            arg2_result1.type = arg1
            return arg2_result1
        end;
    })
end
ModuleScript makeActionCreator.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.makeActionCreator.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:07
-- Luau version 6, Types version 3
-- Time taken: 0.003478 seconds

return function() -- Line 1
    local makeActionCreator_upvr = require(script.Parent.makeActionCreator)
    it("should set the name of the actionCreator creator", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 5
            return {}
        end).name).to.equal("foo")
    end)
    it("should return a table when called as a function", function() -- Line 12
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 13
            return {}
        end)()).to.be.a("table")
    end)
    it("should set the type of the action creator", function() -- Line 20
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 21
            return {}
        end)().type).to.equal("foo")
    end)
    it("should set values", function() -- Line 28
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function(arg1) -- Line 29
            local module = {}
            module.value = arg1
            return module
        end)(100).value).to.equal(100)
    end)
    it("should throw when its result does not return a table", function() -- Line 38
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(makeActionCreator_upvr("foo", function() -- Line 39
            return function() -- Line 40
            end
        end)).to.throw()
    end)
    it("should throw if the first argument is not a string", function() -- Line 46
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(function() -- Line 47
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr(nil, function() -- Line 48
                return {}
            end)
        end).to.throw()
        expect(function() -- Line 53
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr(100, function() -- Line 54
                return {}
            end)
        end).to.throw()
    end)
    it("should throw if the second argument is not a function", function() -- Line 60
        --[[ Upvalues[1]:
            [1]: makeActionCreator_upvr (readonly)
        ]]
        expect(function() -- Line 61
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr("foo", nil)
        end).to.throw()
        expect(function() -- Line 65
            --[[ Upvalues[1]:
                [1]: makeActionCreator_upvr (copied, readonly)
            ]]
            makeActionCreator_upvr("foo", {})
        end).to.throw()
    end)
end
ModuleScript makeThunkMiddleware ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.makeThunkMiddleware
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:09
-- Luau version 6, Types version 3
-- Time taken: 0.002332 seconds

local function tracebackReporter_upvr(arg1) -- Line 10, Named "tracebackReporter"
    return debug.traceback(arg1)
end
return function(arg1) -- Line 14, Named "makeThunkMiddleware"
    --[[ Upvalues[1]:
        [1]: tracebackReporter_upvr (readonly)
    ]]
    return function(arg1_2, arg2) -- Line 15, Named "thunkMiddleware"
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: tracebackReporter_upvr (copied, readonly)
        ]]
        return function(arg1_3) -- Line 16
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: arg1 (copied, readonly)
                [3]: tracebackReporter_upvr (copied, readonly)
                [4]: arg1_2 (readonly)
            ]]
            if typeof(arg1_3) == "function" then
                local xpcall_result1, xpcall_result2 = xpcall(function() -- Line 18
                    --[[ Upvalues[3]:
                        [1]: arg1_3 (readonly)
                        [2]: arg2 (copied, readonly)
                        [3]: arg1 (copied, readonly)
                    ]]
                    return arg1_3(arg2, arg1)
                end, tracebackReporter_upvr)
                if not xpcall_result1 then
                    arg2._errorReporter.reportReducerError(arg2:getState(), arg1_3, {
                        message = "Caught error in thunk";
                        thrownValue = xpcall_result2;
                    })
                    return nil
                end
                return xpcall_result2
            end
            return arg1_2(arg1_3)
        end
    end
end
ModuleScript prettyPrint ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.prettyPrint
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:10
-- Luau version 6, Types version 3
-- Time taken: 0.002886 seconds

local function prettyPrint_upvr(arg1, arg2) -- Line 4, Named "prettyPrint"
    --[[ Upvalues[1]:
        [1]: prettyPrint_upvr (readonly)
    ]]
    local var5 = arg2 or 0
    local module = {}
    if typeof(arg1) == "table" then
        table.insert(module, "{\n")
        for i, v in pairs(arg1) do
            table.insert(module, " ":rep(var5 + 1))
            table.insert(module, tostring(i))
            table.insert(module, " = ")
            table.insert(module, prettyPrint_upvr(v, var5 + 1))
            table.insert(module, '\n')
        end
        table.insert(module, " ":rep(var5))
        table.insert(module, '}')
    elseif typeof(arg1) == "string" then
        table.insert(module, string.format("%q", arg1))
        table.insert(module, " (string)")
    else
        table.insert(module, tostring(arg1))
        table.insert(module, " (")
        table.insert(module, typeof(arg1))
        table.insert(module, ')')
    end
    return table.concat(module, "")
end
return prettyPrint_upvr
ModuleScript thunkMiddleware ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.thunkMiddleware
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:11
-- Luau version 6, Types version 3
-- Time taken: 0.000309 seconds

return require(script.Parent.makeThunkMiddleware)(nil)
ModuleScript thunkMiddleware.spec ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.thunkMiddleware.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:13
-- Luau version 6, Types version 3
-- Time taken: 0.005776 seconds

return function() -- Line 1
    local Store_upvr = require(script.Parent.Store)
    local thunkMiddleware_upvr = require(script.Parent.thunkMiddleware)
    it("should dispatch thunks", function() -- Line 6
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local function reducer(arg1, arg2) -- Line 7
            return arg1
        end
        local var6_upvw = 0
        local function thunk(arg1) -- Line 14
            --[[ Upvalues[1]:
                [1]: var6_upvw (read and write)
            ]]
            var6_upvw += 1
        end
        Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch(thunk)
        expect(var6_upvw).to.equal(1)
    end)
    it("should allow normal actions to pass through", function() -- Line 23
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var8_upvw = 0
        local function reducer(arg1, arg2) -- Line 26
            --[[ Upvalues[1]:
                [1]: var8_upvw (read and write)
            ]]
            var8_upvw += 1
            return arg1
        end
        Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch({
            type = "test";
        })
        expect(var8_upvw).to.equal(2)
    end)
    it("should return the value from the thunk", function() -- Line 43
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local function reducer(arg1, arg2) -- Line 44
            return arg1
        end
        local function thunk(arg1) -- Line 51
            return "test"
        end
        expect(Store_upvr.new(reducer, {}, {thunkMiddleware_upvr}):dispatch(thunk)).to.equal("test")
    end)
    it("should report errors captured in thunks via the provided error reporter", function() -- Line 60
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var14_upvw
        local var15_upvw
        local var16_upvw
        local tbl_2 = {}
        local function reportReducerError(arg1, arg2, arg3) -- Line 63
            --[[ Upvalues[3]:
                [1]: var14_upvw (read and write)
                [2]: var15_upvw (read and write)
                [3]: var16_upvw (read and write)
            ]]
            var14_upvw = arg1
            var15_upvw = arg2
            var16_upvw = arg3
        end
        tbl_2.reportReducerError = reportReducerError
        local function reducer(arg1, arg2) -- Line 70
            return arg1
        end
        local function thunk(arg1) -- Line 79
            error("thunk failed")
        end
        Store_upvr.new(reducer, {
            Value = 1;
        }, {thunkMiddleware_upvr}, tbl_2):dispatch(thunk)
        expect(var14_upvw.Value).to.equal(1)
        expect(var15_upvw).to.equal(thunk)
        expect(var16_upvw.message).to.equal("Caught error in thunk")
    end)
    it("should recover and continue to update after a thunk errors", function() -- Line 90
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: thunkMiddleware_upvr (readonly)
        ]]
        local var21_upvw
        local function reducer(arg1, arg2) -- Line 98
            return arg1
        end
        local any_new_result1 = Store_upvr.new(reducer, {
            Value = 1;
        }, {thunkMiddleware_upvr}, {
            reportReducerError = function(arg1, arg2, arg3) -- Line 93, Named "reportReducerError"
                --[[ Upvalues[1]:
                    [1]: var21_upvw (read and write)
                ]]
                var21_upvw = arg3
            end;
        })
        local var26_upvw = false
        any_new_result1:dispatch(function(arg1) -- Line 107, Named "errorThunk"
            error("thunk failed")
        end)
        expect(var21_upvw.message).to.equal("Caught error in thunk")
        any_new_result1:dispatch(function(arg1) -- Line 111, Named "safeThunk"
            --[[ Upvalues[1]:
                [1]: var26_upvw (read and write)
            ]]
            var26_upvw = true
        end)
        expect(var26_upvw).to.equal(true)
    end)
    local makeThunkMiddleware_upvr = require(script.Parent.makeThunkMiddleware)
    it("should send extra argument to thunks when provided", function() -- Line 122
        --[[ Upvalues[2]:
            [1]: Store_upvr (readonly)
            [2]: makeThunkMiddleware_upvr (readonly)
        ]]
        local tbl = {
            What = "MyExtraArg";
        }
        local var31_upvw = 0
        local var32_upvw
        Store_upvr.new(function(arg1, arg2) -- Line 123, Named "reducer"
            return arg1
        end, {}, {makeThunkMiddleware_upvr(tbl)}):dispatch(function(arg1, arg2) -- Line 132, Named "thunk"
            --[[ Upvalues[2]:
                [1]: var31_upvw (read and write)
                [2]: var32_upvw (read and write)
            ]]
            var31_upvw += 1
            var32_upvw = arg2
        end)
        expect(var31_upvw).to.equal(1)
        expect(var32_upvw).to.equal(tbl)
    end)
end
ModuleScript actions ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.types.actions
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:14
-- Luau version 6, Types version 3
-- Time taken: 0.000307 seconds

return nil
ModuleScript reducers ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.types.reducers
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:16
-- Luau version 6, Types version 3
-- Time taken: 0.000484 seconds

return nil
ModuleScript store ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.types.store
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:17
-- Luau version 6, Types version 3
-- Time taken: 0.000485 seconds

return nil
ModuleScript thunks ReplicatedStorage.PopupShop.Packages._Index.roblox_rodux@4.0.0-rc.0.rodux.types.thunks
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:19
-- Luau version 6, Types version 3
-- Time taken: 0.000258 seconds

return nil
ModuleScript Option ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.Option
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:21
-- Luau version 6, Types version 3
-- Time taken: 0.000381 seconds

return require(script.Parent.Parent["[email protected]"].option)
ModuleScript Promise ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.Promise
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:22
-- Luau version 6, Types version 3
-- Time taken: 0.000302 seconds

return require(script.Parent.Parent["[email protected]"].promise)
ModuleScript Signal ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.Signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:24
-- Luau version 6, Types version 3
-- Time taken: 0.000409 seconds

return require(script.Parent.Parent["[email protected]"].signal)
ModuleScript comm ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:26
-- Luau version 6, Types version 3
-- Time taken: 0.000640 seconds

return {
    Server = require(script.Server);
    Client = require(script.Client);
    ServerComm = require(script.Server.ServerComm);
    ClientComm = require(script.Client.ClientComm);
}
ModuleScript Client ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Client
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:27
-- Luau version 6, Types version 3
-- Time taken: 0.013451 seconds

local Util_upvr = require(script.Parent.Util)
local module = {}
local Promise_upvr = require(script.Parent.Parent.Promise)
function module.GetFunction(arg1, arg2, arg3, arg4, arg5) -- Line 9
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: Promise_upvr (readonly)
    ]]
    assert(not Util_upvr.IsServer, "GetFunction must be called from the client")
    local var4 = arg2
    local SOME_upvr = Util_upvr.GetCommSubFolder(arg1, "RF"):Expect("Failed to get Comm RF folder"):WaitForChild(var4, Util_upvr.WaitForChildTimeout)
    local var6
    if SOME_upvr == nil then
        var4 = false
    else
        var4 = true
    end
    var6 = assert
    var6(var4, "Failed to find RemoteFunction: "..arg2)
    var6 = false
    if type(arg4) == "table" then
        if 0 >= #arg4 then
            var6 = false
        else
            var6 = true
        end
    end
    local var7_upvr = false
    if type(arg5) == "table" then
        if 0 >= #arg5 then
            var7_upvr = false
        else
            var7_upvr = true
        end
    end
    local function ProcessOutbound_upvr(arg1_2) -- Line 22, Named "ProcessOutbound"
        --[[ Upvalues[1]:
            [1]: arg5 (readonly)
        ]]
        for _, v in ipairs(arg5) do
            local packed = table.pack(v(arg1_2))
            if not packed[1] then
                return table.unpack(packed, 2, packed.n)
            end
            arg1_2.n = #arg1_2
        end
        return table.unpack(arg1_2, 1, arg1_2.n)
    end
    if var6 then
        if arg3 then
            return function(...) -- Line 34
                --[[ Upvalues[5]:
                    [1]: Promise_upvr (copied, readonly)
                    [2]: var7_upvr (readonly)
                    [3]: SOME_upvr (readonly)
                    [4]: ProcessOutbound_upvr (readonly)
                    [5]: arg4 (readonly)
                ]]
                local packed_upvr_2 = table.pack(...)
                return Promise_upvr.new(function(arg1_3, arg2_2) -- Line 36
                    --[[ Upvalues[5]:
                        [1]: var7_upvr (copied, readonly)
                        [2]: SOME_upvr (copied, readonly)
                        [3]: ProcessOutbound_upvr (copied, readonly)
                        [4]: packed_upvr_2 (readonly)
                        [5]: arg4 (copied, readonly)
                    ]]
                    local pcall_result1_2, pcall_result2 = pcall(function() -- Line 37
                        --[[ Upvalues[4]:
                            [1]: var7_upvr (copied, readonly)
                            [2]: SOME_upvr (copied, readonly)
                            [3]: ProcessOutbound_upvr (copied, readonly)
                            [4]: packed_upvr_2 (copied, readonly)
                        ]]
                        if var7_upvr then
                            return table.pack(SOME_upvr:InvokeServer(ProcessOutbound_upvr(packed_upvr_2)))
                        end
                        return table.pack(SOME_upvr:InvokeServer(table.unpack(packed_upvr_2, 1, packed_upvr_2.n)))
                    end)
                    if pcall_result1_2 then
                        for _, v_2 in ipairs(arg4) do
                            local packed_3 = table.pack(v_2(pcall_result2))
                            if not packed_3[1] then
                                return table.unpack(packed_3, 2, packed_3.n)
                            end
                            pcall_result2.n = #pcall_result2
                        end
                        arg1_3(table.unpack(pcall_result2, 1, pcall_result2.n))
                    else
                        arg2_2(pcall_result2)
                    end
                end)
            end
        end
        return function(...) -- Line 59
            --[[ Upvalues[4]:
                [1]: var7_upvr (readonly)
                [2]: SOME_upvr (readonly)
                [3]: ProcessOutbound_upvr (readonly)
                [4]: arg4 (readonly)
            ]]
            local var31
            if var7_upvr then
                var31 = table.pack(SOME_upvr:InvokeServer(ProcessOutbound_upvr(table.pack(...))))
            else
                var31 = table.pack(SOME_upvr:InvokeServer(...))
            end
            for _, v_3 in ipairs(arg4) do
                local packed_2 = table.pack(v_3(var31))
                if not packed_2[1] then
                    return table.unpack(packed_2, 2, packed_2.n)
                end
                var31.n = #var31
            end
            return table.unpack(var31, 1, var31.n)
        end
    end
    if arg3 then
        return function(...) -- Line 78
            --[[ Upvalues[4]:
                [1]: Promise_upvr (copied, readonly)
                [2]: var7_upvr (readonly)
                [3]: SOME_upvr (readonly)
                [4]: ProcessOutbound_upvr (readonly)
            ]]
            local packed_upvr = table.pack(...)
            return Promise_upvr.new(function(arg1_4, arg2_3) -- Line 80
                --[[ Upvalues[4]:
                    [1]: var7_upvr (copied, readonly)
                    [2]: SOME_upvr (copied, readonly)
                    [3]: ProcessOutbound_upvr (copied, readonly)
                    [4]: packed_upvr (readonly)
                ]]
                local pcall_result1, pcall_result2_2 = pcall(function() -- Line 81
                    --[[ Upvalues[4]:
                        [1]: var7_upvr (copied, readonly)
                        [2]: SOME_upvr (copied, readonly)
                        [3]: ProcessOutbound_upvr (copied, readonly)
                        [4]: packed_upvr (copied, readonly)
                    ]]
                    if var7_upvr then
                        return table.pack(SOME_upvr:InvokeServer(ProcessOutbound_upvr(packed_upvr)))
                    end
                    return table.pack(SOME_upvr:InvokeServer(table.unpack(packed_upvr, 1, packed_upvr.n)))
                end)
                if pcall_result1 then
                    arg1_4(table.unpack(pcall_result2_2, 1, pcall_result2_2.n))
                else
                    arg2_3(pcall_result2_2)
                end
            end)
        end
    end
    if var7_upvr then
        return function(...) -- Line 97
            --[[ Upvalues[2]:
                [1]: SOME_upvr (readonly)
                [2]: ProcessOutbound_upvr (readonly)
            ]]
            return SOME_upvr:InvokeServer(ProcessOutbound_upvr(table.pack(...)))
        end
    end
    return function(...) -- Line 101
        --[[ Upvalues[1]:
            [1]: SOME_upvr (readonly)
        ]]
        return SOME_upvr:InvokeServer(...)
    end
end
local ClientRemoteSignal_upvr = require(script.ClientRemoteSignal)
function module.GetSignal(arg1, arg2, arg3, arg4) -- Line 109
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: ClientRemoteSignal_upvr (readonly)
    ]]
    assert(not Util_upvr.IsServer, "GetSignal must be called from the client")
    local var45 = arg2
    local SOME_2 = Util_upvr.GetCommSubFolder(arg1, "RE"):Expect("Failed to get Comm RE folder"):WaitForChild(var45, Util_upvr.WaitForChildTimeout)
    if SOME_2 == nil then
        var45 = false
    else
        var45 = true
    end
    assert(var45, "Failed to find RemoteEvent: "..arg2)
    return ClientRemoteSignal_upvr.new(SOME_2, arg3, arg4)
end
local ClientRemoteProperty_upvr = require(script.ClientRemoteProperty)
function module.GetProperty(arg1, arg2, arg3, arg4) -- Line 122
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: ClientRemoteProperty_upvr (readonly)
    ]]
    assert(not Util_upvr.IsServer, "GetProperty must be called from the client")
    local var48 = arg2
    local SOME = Util_upvr.GetCommSubFolder(arg1, "RP"):Expect("Failed to get Comm RP folder"):WaitForChild(var48, Util_upvr.WaitForChildTimeout)
    if SOME == nil then
        var48 = false
    else
        var48 = true
    end
    assert(var48, "Failed to find RemoteEvent for RemoteProperty: "..arg2)
    return ClientRemoteProperty_upvr.new(SOME, arg3, arg4)
end
return module
ModuleScript ClientComm ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Client.ClientComm
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:28
-- Luau version 6, Types version 3
-- Time taken: 0.004622 seconds

local Parent_upvr = require(script.Parent)
local module_upvr = {}
module_upvr.__index = module_upvr
local Util_upvr = require(script.Parent.Parent.Util)
function module_upvr.new(arg1, arg2, arg3) -- Line 46
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local var4 = not Util_upvr.IsServer
    assert(var4, "ClientComm must be constructed from the client")
    local var5
    if typeof(arg1) ~= "Instance" then
        var4 = false
    else
        var4 = true
    end
    var5 = assert
    var5(var4, "Parent must be of type Instance")
    var5 = Util_upvr.DefaultCommFolderName
    if arg3 then
        var5 = arg3
    end
    local var6 = var5
    local SOME = arg1:WaitForChild(var6, Util_upvr.WaitForChildTimeout)
    if SOME == nil then
        var6 = false
    else
        var6 = true
    end
    assert(var6, "Could not find namespace for ClientComm in parent: "..var5)
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1._instancesFolder = SOME
    setmetatable_result1._usePromise = arg2
    return setmetatable_result1
end
function module_upvr.GetFunction(arg1, arg2, arg3, arg4) -- Line 95
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.GetFunction(arg1._instancesFolder, arg2, arg1._usePromise, arg3, arg4)
end
function module_upvr.GetSignal(arg1, arg2, arg3, arg4) -- Line 123
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.GetSignal(arg1._instancesFolder, arg2, arg3, arg4)
end
function module_upvr.GetProperty(arg1, arg2, arg3, arg4) -- Line 165
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.GetProperty(arg1._instancesFolder, arg2, arg3, arg4)
end
function module_upvr.BuildObject(arg1, arg2, arg3) -- Line 192
    local RF = arg1._instancesFolder:FindFirstChild("RF")
    local RE = arg1._instancesFolder:FindFirstChild("RE")
    local RP = arg1._instancesFolder:FindFirstChild("RP")
    if RF then
        for _, v in ipairs(RF:GetChildren()) do
            if v:IsA("RemoteFunction") then
                local any_GetFunction_result1_upvr = arg1:GetFunction(v.Name, arg2, arg3)
                ;({})[v.Name] = function(arg1_2, ...) -- Line 203
                    --[[ Upvalues[1]:
                        [1]: any_GetFunction_result1_upvr (readonly)
                    ]]
                    return any_GetFunction_result1_upvr(...)
                end
            end
        end
    end
    if RE then
        for _, v_2 in ipairs(RE:GetChildren()) do
            any_GetFunction_result1_upvr = v_2:IsA("RemoteEvent")
            if any_GetFunction_result1_upvr then
                any_GetFunction_result1_upvr = v_2.Name
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[any_GetFunction_result1_upvr] = arg1:GetSignal(v_2.Name, arg2, arg3)
            end
        end
    end
    if RP then
        for _, v_3 in ipairs(RP:GetChildren()) do
            any_GetFunction_result1_upvr = v_3:IsA("RemoteEvent")
            if any_GetFunction_result1_upvr then
                any_GetFunction_result1_upvr = v_3.Name
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                ;({})[any_GetFunction_result1_upvr] = arg1:GetProperty(v_3.Name, arg2, arg3)
            end
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return {}
end
function module_upvr.Destroy(arg1) -- Line 230
end
return module_upvr
ModuleScript ClientRemoteProperty ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Client.ClientRemoteProperty
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:30
-- Luau version 6, Types version 3
-- Time taken: 0.004641 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local ClientRemoteSignal_upvr = require(script.Parent.ClientRemoteSignal)
local Signal_upvr = require(script.Parent.Parent.Parent.Signal)
local Promise_upvr = require(script.Parent.Parent.Parent.Promise)
function module_upvr.new(arg1, arg2, arg3) -- Line 32
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: ClientRemoteSignal_upvr (readonly)
        [3]: Signal_upvr (readonly)
        [4]: Promise_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr._rs = ClientRemoteSignal_upvr.new(arg1, arg2, arg3)
    setmetatable_result1_upvr._ready = false
    setmetatable_result1_upvr._value = nil
    setmetatable_result1_upvr.Changed = Signal_upvr.new()
    setmetatable_result1_upvr._rs:Fire()
    local var6_upvw
    setmetatable_result1_upvr._readyPromise = Promise_upvr.new(function(arg1_2) -- Line 45
        --[[ Upvalues[1]:
            [1]: var6_upvw (read and write)
        ]]
        var6_upvw = arg1_2
    end)
    setmetatable_result1_upvr._changed = setmetatable_result1_upvr._rs:Connect(function(arg1_3) -- Line 48
        --[[ Upvalues[2]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: var6_upvw (read and write)
        ]]
        local var9
        if arg1_3 == setmetatable_result1_upvr._value then
            var9 = false
        else
            var9 = true
        end
        setmetatable_result1_upvr._value = arg1_3
        if not setmetatable_result1_upvr._ready then
            setmetatable_result1_upvr._ready = true
            var6_upvw(arg1_3)
        end
        if var9 then
            setmetatable_result1_upvr.Changed:Fire(arg1_3)
        end
    end)
    return setmetatable_result1_upvr
end
function module_upvr.Get(arg1) -- Line 71
    return arg1._value
end
function module_upvr.OnReady(arg1) -- Line 94
    return arg1._readyPromise
end
function module_upvr.IsReady(arg1) -- Line 110
    return arg1._ready
end
function module_upvr.Observe(arg1, arg2) -- Line 135
    if arg1._ready then
        task.defer(arg2, arg1._value)
    end
    return arg1.Changed:Connect(arg2)
end
function module_upvr.Destroy(arg1) -- Line 145
    arg1._rs:Destroy()
    if arg1._readyPromise then
        arg1._readyPromise:cancel()
    end
    if arg1._changed then
        arg1._changed:Disconnect()
    end
    arg1.Changed:Destroy()
end
return module_upvr
ModuleScript ClientRemoteSignal ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Client.ClientRemoteSignal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:31
-- Luau version 6, Types version 3
-- Time taken: 0.003861 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local Signal_upvr = require(script.Parent.Parent.Parent.Signal)
function module_upvr.new(arg1, arg2, arg3) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Signal_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr._re = arg1
    if arg3 and 0 < #arg3 then
        setmetatable_result1_upvr._hasOutbound = true
        setmetatable_result1_upvr._outbound = arg3
    else
        setmetatable_result1_upvr._hasOutbound = false
    end
    if arg2 and 0 < #arg2 then
        setmetatable_result1_upvr._directConnect = false
        setmetatable_result1_upvr._signal = Signal_upvr.new()
        setmetatable_result1_upvr._reConn = setmetatable_result1_upvr._re.OnClientEvent:Connect(function(...) -- Line 38
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: setmetatable_result1_upvr (readonly)
            ]]
            local packed_2 = table.pack(...)
            for _, v in ipairs(arg2) do
                if not table.pack(v(packed_2))[1] then return end
                packed_2.n = #packed_2
            end
            setmetatable_result1_upvr._signal:Fire(table.unpack(packed_2, 1, packed_2.n))
        end)
        return setmetatable_result1_upvr
    end
    setmetatable_result1_upvr._directConnect = true
    return setmetatable_result1_upvr
end
function module_upvr._processOutboundMiddleware(arg1, ...) -- Line 55
    local packed = table.pack(...)
    for _, v_2 in ipairs(arg1._outbound) do
        local packed_3 = table.pack(v_2(packed))
        if not packed_3[1] then
            return table.unpack(packed_3, 2, packed_3.n)
        end
        packed.n = #packed
    end
    return table.unpack(packed, 1, packed.n)
end
function module_upvr.Connect(arg1, arg2) -- Line 74
    if arg1._directConnect then
        return arg1._re.OnClientEvent:Connect(arg2)
    end
    return arg1._signal:Connect(arg2)
end
function module_upvr.Fire(arg1, ...) -- Line 90
    if arg1._hasOutbound then
        arg1._re:FireServer(arg1:_processOutboundMiddleware(...))
    else
        arg1._re:FireServer(...)
    end
end
function module_upvr.Destroy(arg1) -- Line 101
    if arg1._signal then
        arg1._signal:Destroy()
    end
end
return module_upvr
ModuleScript Server ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Server
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:32
-- Luau version 6, Types version 3
-- Time taken: 0.007781 seconds

local Util_upvr = require(script.Parent.Util)
local module_upvr = {
    BindFunction = function(arg1, arg2, arg3, arg4, arg5) -- Line 37, Named "BindFunction"
        --[[ Upvalues[1]:
            [1]: Util_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 32 start (CF ANALYSIS FAILED)
        assert(Util_upvr.IsServer, "BindFunction must be called from the server")
        local RemoteFunction = Instance.new("RemoteFunction")
        RemoteFunction.Name = arg2
        local var4 = false
        if type(arg4) == "table" then
            if 0 >= #arg4 then
                var4 = false
            else
                var4 = true
            end
        end
        local var5 = false
        if type(arg5) == "table" then
            if 0 >= #arg5 then
                var5 = false
            else
                var5 = true
            end
        end
        local function ProcessOutbound_upvr(arg1_2, ...) -- Line 50, Named "ProcessOutbound"
            --[[ Upvalues[1]:
                [1]: arg5 (readonly)
            ]]
            local packed_3 = table.pack(...)
            for _, v in ipairs(arg5) do
                local packed_5 = table.pack(v(arg1_2, packed_3))
                if not packed_5[1] then
                    return table.unpack(packed_5, 2, packed_5.n)
                end
                packed_3.n = #packed_3
            end
            return table.unpack(packed_3, 1, packed_3.n)
        end
        if var4 and var5 then
            local function OnServerInvoke(arg1_3, ...) -- Line 62
                --[[ Upvalues[3]:
                    [1]: arg4 (readonly)
                    [2]: ProcessOutbound_upvr (readonly)
                    [3]: arg3 (readonly)
                ]]
                local packed = table.pack(...)
                for _, v_2 in ipairs(arg4) do
                    local packed_6 = table.pack(v_2(arg1_3, packed))
                    if not packed_6[1] then
                        return table.unpack(packed_6, 2, packed_6.n)
                    end
                    packed.n = #packed
                end
                return ProcessOutbound_upvr(arg1_3, arg3(arg1_3, table.unpack(packed, 1, packed.n)))
            end
            RemoteFunction.OnServerInvoke = OnServerInvoke
            -- KONSTANTWARNING: GOTO [80] #64
        end
        -- KONSTANTERROR: [0] 1. Error Block 32 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [64] 51. Error Block 25 start (CF ANALYSIS FAILED)
        if var4 then
            function RemoteFunction.OnServerInvoke(arg1_4, ...) -- Line 75
                --[[ Upvalues[2]:
                    [1]: arg4 (readonly)
                    [2]: arg3 (readonly)
                ]]
                local packed_2 = table.pack(...)
                for _, v_3 in ipairs(arg4) do
                    local packed_4 = table.pack(v_3(arg1_4, packed_2))
                    if not packed_4[1] then
                        return table.unpack(packed_4, 2, packed_4.n)
                    end
                    packed_2.n = #packed_2
                end
                return arg3(arg1_4, table.unpack(packed_2, 1, packed_2.n))
            end
            -- KONSTANTWARNING: GOTO [80] #64
        end
        -- KONSTANTERROR: [64] 51. Error Block 25 end (CF ANALYSIS FAILED)
    end;
}
function module_upvr.WrapMethod(arg1, arg2, arg3, arg4, arg5) -- Line 99
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local var27 = "WrapMethod must be called from the server"
    assert(Util_upvr.IsServer, var27)
    local var28_upvr = arg2[arg3]
    if type(var28_upvr) ~= "function" then
        var27 = false
    else
        var27 = true
    end
    assert(var27, "Value at index "..arg3.." must be a function; got "..type(var28_upvr))
    return module_upvr.BindFunction(arg1, arg3, function(...) -- Line 109
        --[[ Upvalues[2]:
            [1]: var28_upvr (readonly)
            [2]: arg2 (readonly)
        ]]
        return var28_upvr(arg2, ...)
    end, arg4, arg5)
end
local RemoteSignal_upvr = require(script.RemoteSignal)
function module_upvr.CreateSignal(arg1, arg2, arg3, arg4) -- Line 114
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: RemoteSignal_upvr (readonly)
    ]]
    assert(Util_upvr.IsServer, "CreateSignal must be called from the server")
    return RemoteSignal_upvr.new(Util_upvr.GetCommSubFolder(arg1, "RE"):Expect("Failed to get Comm RE folder"), arg2, arg3, arg4)
end
local RemoteProperty_upvr = require(script.RemoteProperty)
function module_upvr.CreateProperty(arg1, arg2, arg3, arg4, arg5) -- Line 126
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: RemoteProperty_upvr (readonly)
    ]]
    assert(Util_upvr.IsServer, "CreateProperty must be called from the server")
    return RemoteProperty_upvr.new(Util_upvr.GetCommSubFolder(arg1, "RP"):Expect("Failed to get Comm RP folder"), arg2, arg3, arg4, arg5)
end
return module_upvr
ModuleScript RemoteProperty ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Server.RemoteProperty
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:33
-- Luau version 6, Types version 3
-- Time taken: 0.005394 seconds

local Players_upvr = game:GetService("Players")
local None_upvr = require(script.Parent.Parent.Util).None
local module_upvr = {}
module_upvr.__index = module_upvr
local RemoteSignal_upvr = require(script.Parent.RemoteSignal)
function module_upvr.new(arg1, arg2, arg3, arg4, arg5) -- Line 53
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: RemoteSignal_upvr (readonly)
        [3]: Players_upvr (readonly)
        [4]: None_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr._rs = RemoteSignal_upvr.new(arg1, arg2, arg4, arg5)
    setmetatable_result1_upvr._value = arg3
    setmetatable_result1_upvr._perPlayer = {}
    setmetatable_result1_upvr._playerRemoving = Players_upvr.PlayerRemoving:Connect(function(arg1_2) -- Line 64
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr._perPlayer[arg1_2] = nil
    end)
    setmetatable_result1_upvr._rs:Connect(function(arg1_3) -- Line 67
        --[[ Upvalues[2]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: None_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 12 start (CF ANALYSIS FAILED)
        local var8 = setmetatable_result1_upvr._perPlayer[arg1_3]
        local var9
        if var8 == nil then
            var9 = setmetatable_result1_upvr._value
            -- KONSTANTWARNING: GOTO [16] #13
        end
        -- KONSTANTERROR: [0] 1. Error Block 12 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 8. Error Block 13 start (CF ANALYSIS FAILED)
        if var8 == None_upvr then
            var9 = nil
        else
            var9 = var8
        end
        setmetatable_result1_upvr._rs:Fire(arg1_3, var9)
        -- KONSTANTERROR: [10] 8. Error Block 13 end (CF ANALYSIS FAILED)
    end)
    return setmetatable_result1_upvr
end
function module_upvr.Set(arg1, arg2) -- Line 91
    arg1._value = arg2
    table.clear(arg1._perPlayer)
    arg1._rs:FireAll(arg2)
end
function module_upvr.SetTop(arg1, arg2) -- Line 118
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    arg1._value = arg2
    for _, v in ipairs(Players_upvr:GetPlayers()) do
        if arg1._perPlayer[v] == nil then
            arg1._rs:Fire(v, arg2)
        end
    end
end
function module_upvr.SetFilter(arg1, arg2, arg3) -- Line 141
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    for _, v_2 in ipairs(Players_upvr:GetPlayers()) do
        if arg2(v_2, arg3) then
            arg1:SetFor(v_2, arg3)
        end
    end
end
function module_upvr.SetFor(arg1, arg2, arg3) -- Line 163
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    local var20
    if arg2.Parent then
        if arg3 == nil then
            var20 = None_upvr
        else
            var20 = arg3
        end
        arg1._perPlayer[arg2] = var20
    end
    arg1._rs:Fire(arg2, arg3)
end
function module_upvr.SetForList(arg1, arg2, arg3) -- Line 179
    for _, v_3 in ipairs(arg2) do
        arg1:SetFor(v_3, arg3)
    end
end
function module_upvr.ClearFor(arg1, arg2) -- Line 206
    if arg1._perPlayer[arg2] == nil then
    else
        arg1._perPlayer[arg2] = nil
        arg1._rs:Fire(arg2, arg1._value)
    end
end
function module_upvr.ClearForList(arg1, arg2) -- Line 219
    for _, v_4 in ipairs(arg2) do
        arg1:ClearFor(v_4)
    end
end
function module_upvr.ClearFilter(arg1, arg2) -- Line 229
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    for _, v_5 in ipairs(Players_upvr:GetPlayers()) do
        if arg2(v_5) then
            arg1:ClearFor(v_5)
        end
    end
end
function module_upvr.Get(arg1) -- Line 247
    return arg1._value
end
function module_upvr.GetFor(arg1, arg2) -- Line 281
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    local var36 = arg1._perPlayer[arg2]
    if var36 == nil then
        return arg1._value
    end
    if var36 == None_upvr then
        return nil
    end
    return var36
end
function module_upvr.Destroy(arg1) -- Line 290
    arg1._rs:Destroy()
    arg1._playerRemoving:Disconnect()
end
return module_upvr
ModuleScript RemoteSignal ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Server.RemoteSignal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:35
-- Luau version 6, Types version 3
-- Time taken: 0.007213 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local Signal_upvr = require(script.Parent.Parent.Parent.Signal)
function module_upvr.new(arg1, arg2, arg3, arg4) -- Line 25
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Signal_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr._re = Instance.new("RemoteEvent")
    setmetatable_result1_upvr._re.Name = arg2
    setmetatable_result1_upvr._re.Parent = arg1
    if arg4 and 0 < #arg4 then
        setmetatable_result1_upvr._hasOutbound = true
        setmetatable_result1_upvr._outbound = arg4
    else
        setmetatable_result1_upvr._hasOutbound = false
    end
    if arg3 and 0 < #arg3 then
        setmetatable_result1_upvr._directConnect = false
        setmetatable_result1_upvr._signal = Signal_upvr.new()
        setmetatable_result1_upvr._re.OnServerEvent:Connect(function(arg1_2, ...) -- Line 44
            --[[ Upvalues[2]:
                [1]: arg3 (readonly)
                [2]: setmetatable_result1_upvr (readonly)
            ]]
            local packed_3 = table.pack(...)
            for _, v in ipairs(arg3) do
                if not table.pack(v(arg1_2, packed_3))[1] then return end
                packed_3.n = #packed_3
            end
            setmetatable_result1_upvr._signal:Fire(arg1_2, table.unpack(packed_3, 1, packed_3.n))
        end)
        return setmetatable_result1_upvr
    end
    setmetatable_result1_upvr._directConnect = true
    return setmetatable_result1_upvr
end
function module_upvr.Connect(arg1, arg2) -- Line 68
    if arg1._directConnect then
        return arg1._re.OnServerEvent:Connect(arg2)
    end
    return arg1._signal:Connect(arg2)
end
function module_upvr._processOutboundMiddleware(arg1, arg2, ...) -- Line 76
    if not arg1._hasOutbound then
        return ...
    end
    local packed_2 = table.pack(...)
    for _, v_2 in ipairs(arg1._outbound) do
        local packed = table.pack(v_2(arg2, packed_2))
        if not packed[1] then
            return table.unpack(packed, 2, packed.n)
        end
        packed_2.n = #packed_2
    end
    return table.unpack(packed_2, 1, packed_2.n)
end
function module_upvr.Fire(arg1, arg2, ...) -- Line 101
    arg1._re:FireClient(arg2, arg1:_processOutboundMiddleware(arg2, ...))
end
function module_upvr.FireAll(arg1, ...) -- Line 114
    arg1._re:FireAllClients(arg1:_processOutboundMiddleware(nil, ...))
end
function module_upvr.FireExcept(arg1, arg2, ...) -- Line 129
    arg1:FireFilter(function(arg1_3) -- Line 130
        --[[ Upvalues[1]:
            [1]: arg2 (readonly)
        ]]
        local var19
        if arg1_3 == arg2 then
            var19 = false
        else
            var19 = true
        end
        return var19
    end, ...)
end
local Players_upvr = game:GetService("Players")
function module_upvr.FireFilter(arg1, arg2, ...) -- Line 159
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    for _, v_3 in ipairs(Players_upvr:GetPlayers()) do
        if arg2(v_3, ...) then
            arg1._re:FireClient(v_3, arg1:_processOutboundMiddleware(nil, ...))
        end
    end
end
function module_upvr.FireFor(arg1, arg2, ...) -- Line 183
    for _, v_4 in ipairs(arg2) do
        arg1._re:FireClient(v_4, arg1:_processOutboundMiddleware(nil, ...))
    end
end
function module_upvr.Destroy(arg1) -- Line 192
    arg1._re:Destroy()
    if arg1._signal then
        arg1._signal:Destroy()
    end
end
return module_upvr
ModuleScript ServerComm ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Server.ServerComm
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:36
-- Luau version 6, Types version 3
-- Time taken: 0.003272 seconds

local Parent_upvr = require(script.Parent)
local module_upvr = {}
module_upvr.__index = module_upvr
local Util_upvr = require(script.Parent.Parent.Util)
function module_upvr.new(arg1, arg2) -- Line 44
    --[[ Upvalues[2]:
        [1]: Util_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local IsServer = Util_upvr.IsServer
    assert(IsServer, "ServerComm must be constructed from the server")
    if typeof(arg1) ~= "Instance" then
        IsServer = false
    else
        IsServer = true
    end
    assert(IsServer, "Parent must be of type Instance")
    local DefaultCommFolderName = Util_upvr.DefaultCommFolderName
    if arg2 then
        DefaultCommFolderName = arg2
    end
    assert(not arg1:FindFirstChild(DefaultCommFolderName), "Parent already has another ServerComm bound to namespace "..DefaultCommFolderName)
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1._instancesFolder = Instance.new("Folder")
    setmetatable_result1._instancesFolder.Name = DefaultCommFolderName
    setmetatable_result1._instancesFolder.Parent = arg1
    return setmetatable_result1
end
function module_upvr.BindFunction(arg1, arg2, arg3, arg4, arg5) -- Line 76
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.BindFunction(arg1._instancesFolder, arg2, arg3, arg4, arg5)
end
function module_upvr.WrapMethod(arg1, arg2, arg3, arg4, arg5) -- Line 108
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.WrapMethod(arg1._instancesFolder, arg2, arg3, arg4, arg5)
end
function module_upvr.CreateSignal(arg1, arg2, arg3, arg4) -- Line 141
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.CreateSignal(arg1._instancesFolder, arg2, arg3, arg4)
end
function module_upvr.CreateProperty(arg1, arg2, arg3, arg4, arg5) -- Line 189
    --[[ Upvalues[1]:
        [1]: Parent_upvr (readonly)
    ]]
    return Parent_upvr.CreateProperty(arg1._instancesFolder, arg2, arg3, arg4, arg5)
end
function module_upvr.Destroy(arg1) -- Line 201
    arg1._instancesFolder:Destroy()
end
return module_upvr
ModuleScript Types ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Types
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:38
-- Luau version 6, Types version 3
-- Time taken: 0.000216 seconds

return nil
ModuleScript Util ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.Util
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:39
-- Luau version 6, Types version 3
-- Time taken: 0.001498 seconds

local module_upvr = {
    IsServer = game:GetService("RunService"):IsServer();
    WaitForChildTimeout = 60;
    DefaultCommFolderName = "__comm__";
    None = newproxy();
}
local Option_upvr = require(script.Parent.Parent.Option)
function module_upvr.GetCommSubFolder(arg1, arg2) -- Line 12
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Option_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 9 start (CF ANALYSIS FAILED)
    local var3
    if module_upvr.IsServer then
        var3 = arg1:FindFirstChild(arg2)
        if not var3 then
            var3 = Instance.new("Folder")
            var3.Name = arg2
            var3.Parent = arg1
            -- KONSTANTWARNING: GOTO [29] #23
        end
    else
        var3 = arg1:WaitForChild(arg2, module_upvr.WaitForChildTimeout)
    end
    -- KONSTANTERROR: [0] 1. Error Block 9 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [29] 23. Error Block 6 start (CF ANALYSIS FAILED)
    do
        return Option_upvr.Wrap(var3)
    end
    -- KONSTANTERROR: [29] 23. Error Block 6 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript wally ReplicatedStorage.PopupShop.Packages._Index.sleitnick_comm@0.3.2.comm.wally
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:41
-- Luau version 6, Types version 3
-- Time taken: 0.000872 seconds

return {
    dependencies = {
        Option = "sleitnick/option@1";
        Promise = "evaera/promise@4";
        Signal = "sleitnick/signal@1";
    };
    package = {
        authors = {"Stephen Leitnick"};
        description = "Comm library for remote communication";
        license = "MIT";
        name = "sleitnick/comm";
        realm = "shared";
        registry = "https://github.com/UpliftGames/wally-index";
        version = "0.3.2";
    };
}
ModuleScript option ReplicatedStorage.PopupShop.Packages._Index.sleitnick_option@1.0.5.option
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:43
-- Luau version 6, Types version 3
-- Time taken: 0.009688 seconds

local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr._new(arg1) -- Line 129
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local module = {}
    local var3 = "Option"
    module.ClassName = var3
    module._v = arg1
    if arg1 == nil then
        var3 = false
    else
        var3 = true
    end
    module._s = var3
    return setmetatable(module, module_2_upvr)
end
function module_2_upvr.Some(arg1) -- Line 145
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1 == nil then
    else
    end
    assert(true, "Option.Some() value cannot be nil")
    return module_2_upvr._new(arg1)
end
function module_2_upvr.Wrap(arg1) -- Line 158
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1 == nil then
        return module_2_upvr.None
    end
    return module_2_upvr.Some(arg1)
end
function module_2_upvr.Is(arg1) -- Line 171
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local var4 = false
    if type(arg1) == "table" then
        if getmetatable(arg1) ~= module_2_upvr then
            var4 = false
        else
            var4 = true
        end
    end
    return var4
end
function module_2_upvr.Assert(arg1) -- Line 179
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    assert(module_2_upvr.Is(arg1), "Result was not of type Option")
end
function module_2_upvr.Deserialize(arg1) -- Line 189
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local var5 = false
    local var6
    if type(arg1) == "table" then
        if arg1.ClassName ~= "Option" then
            var5 = false
        else
            var5 = true
        end
    end
    var6 = assert
    var6(var5, "Invalid data for deserializing Option")
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var6 = module_2_upvr.None
        return var6
    end
    if arg1.Value ~= nil or not INLINED() then
        var6 = module_2_upvr.Some(arg1.Value)
    end
    return var6
end
function module_2_upvr.Serialize(arg1) -- Line 198
    return {
        ClassName = arg1.ClassName;
        Value = arg1._v;
    }
end
function module_2_upvr.Match(arg1, arg2) -- Line 219
    local Some_2 = arg2.Some
    local None = arg2.None
    local var10
    if type(Some_2) ~= "function" then
        var10 = false
    else
        var10 = true
    end
    assert(var10, "Missing 'Some' match")
    if type(None) ~= "function" then
        var10 = false
    else
        var10 = true
    end
    assert(var10, "Missing 'None' match")
    if arg1:IsSome() then
        var10 = arg1:Unwrap()
        return Some_2(var10)
    end
    return None()
end
function module_2_upvr.IsSome(arg1) -- Line 235
    return arg1._s
end
function module_2_upvr.IsNone(arg1) -- Line 243
    return not arg1._s
end
function module_2_upvr.Expect(arg1, arg2) -- Line 257
    assert(arg1:IsSome(), arg2)
    return arg1._v
end
function module_2_upvr.ExpectNone(arg1, arg2) -- Line 266
    assert(arg1:IsNone(), arg2)
end
function module_2_upvr.Unwrap(arg1) -- Line 274
    return arg1:Expect("Cannot unwrap option of None type")
end
function module_2_upvr.UnwrapOr(arg1, arg2) -- Line 283
    if arg1:IsSome() then
        return arg1:Unwrap()
    end
    return arg2
end
function module_2_upvr.UnwrapOrElse(arg1, arg2) -- Line 297
    if arg1:IsSome() then
        return arg1:Unwrap()
    end
    return arg2()
end
function module_2_upvr.And(arg1, arg2) -- Line 323
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1:IsSome() then
        return arg2
    end
    return module_2_upvr.None
end
function module_2_upvr.AndThen(arg1, arg2) -- Line 347
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1:IsSome() then
        local arg2_result1 = arg2(arg1:Unwrap())
        module_2_upvr.Assert(arg2_result1)
        return arg2_result1
    end
    return module_2_upvr.None
end
function module_2_upvr.Or(arg1, arg2) -- Line 362
    if arg1:IsSome() then
        return arg1
    end
    return arg2
end
function module_2_upvr.OrElse(arg1, arg2) -- Line 376
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1:IsSome() then
        return arg1
    end
    local arg2_result1_2 = arg2()
    module_2_upvr.Assert(arg2_result1_2)
    return arg2_result1_2
end
function module_2_upvr.XOr(arg1, arg2) -- Line 393
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    local any_IsSome_result1_4 = arg1:IsSome()
    if any_IsSome_result1_4 == arg2:IsSome() then
        return module_2_upvr.None
    end
    if any_IsSome_result1_4 then
        return arg1
    end
    return arg2
end
function module_2_upvr.Filter(arg1, arg2) -- Line 411
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if arg1:IsNone() or not arg2(arg1._v) then
        return module_2_upvr.None
    end
    return arg1
end
function module_2_upvr.Contains(arg1, arg2) -- Line 424
    local any_IsSome_result1_2 = arg1:IsSome()
    if any_IsSome_result1_2 then
        if arg1._v ~= arg2 then
            any_IsSome_result1_2 = false
        else
            any_IsSome_result1_2 = true
        end
    end
    return any_IsSome_result1_2
end
function module_2_upvr.__tostring(arg1) -- Line 438
    if arg1:IsSome() then
        return "Option<"..typeof(arg1._v)..'>'
    end
    return "Option<None>"
end
function module_2_upvr.__eq(arg1, arg2) -- Line 464
    --[[ Upvalues[1]:
        [1]: module_2_upvr (readonly)
    ]]
    if module_2_upvr.Is(arg2) then
        if arg1:IsSome() then
            local any_IsSome_result1 = arg2:IsSome()
            if any_IsSome_result1 then
                if arg1:Unwrap() ~= arg2:Unwrap() then
                    any_IsSome_result1 = false
                else
                    any_IsSome_result1 = true
                end
                return any_IsSome_result1
            end
        end
        if arg1:IsNone() and arg2:IsNone() then
            return true
        end
    end
    return false
end
module_2_upvr.None = module_2_upvr._new()
return module_2_upvr
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.sleitnick_option@1.0.5.option.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:45
-- Luau version 6, Types version 3
-- Time taken: 0.026305 seconds

return function() -- Line 1
    local Parent_upvr = require(script.Parent)
    describe("Some", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should create some option", function() -- Line 5
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(true):IsSome()).to.equal(true)
        end)
        it("should fail to create some option with nil", function() -- Line 10
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 11
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                Parent_upvr.Some(nil)
            end).to.throw()
        end)
        it("should not be none", function() -- Line 16
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(10):IsNone()).to.equal(false)
        end)
    end)
    describe("None", function() -- Line 22
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should be able to reference none", function() -- Line 23
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(function() -- Line 24
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
            end).never.to.throw()
        end)
        it("should be able to check if none", function() -- Line 29
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:IsNone()).to.equal(true)
        end)
        it("should be able to check if not some", function() -- Line 34
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:IsSome()).to.equal(false)
        end)
    end)
    describe("Equality", function() -- Line 40
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should equal the same some from same options", function() -- Line 41
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_3 = Parent_upvr.Some(32)
            expect(any_Some_result1_3).to.equal(any_Some_result1_3)
        end)
        it("should equal the same some from different options", function() -- Line 46
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(32)).to.equal(Parent_upvr.Some(32))
        end)
    end)
    describe("Assert", function() -- Line 53
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should assert that a some option is an option", function() -- Line 54
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Is(Parent_upvr.Some(10))).to.equal(true)
        end)
        it("should assert that a none option is an option", function() -- Line 58
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Is(Parent_upvr.None)).to.equal(true)
        end)
        it("should assert that a non-option is not an option", function() -- Line 62
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Is(10)).to.equal(false)
            expect(Parent_upvr.Is(true)).to.equal(false)
            expect(Parent_upvr.Is(false)).to.equal(false)
            expect(Parent_upvr.Is("Test")).to.equal(false)
            expect(Parent_upvr.Is({})).to.equal(false)
            expect(Parent_upvr.Is(function() -- Line 68
            end)).to.equal(false)
            expect(Parent_upvr.Is(coroutine.create(function() -- Line 69
            end))).to.equal(false)
            expect(Parent_upvr.Is(Parent_upvr)).to.equal(false)
        end)
    end)
    describe("Unwrap", function() -- Line 74
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should unwrap a some option", function() -- Line 75
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_5_upvr = Parent_upvr.Some(10)
            expect(function() -- Line 77
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_5_upvr (readonly)
                ]]
                any_Some_result1_5_upvr:Unwrap()
            end).never.to.throw()
            expect(any_Some_result1_5_upvr:Unwrap()).to.equal(10)
        end)
        it("should fail to unwrap a none option", function() -- Line 83
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local None_upvr = Parent_upvr.None
            expect(function() -- Line 85
                --[[ Upvalues[1]:
                    [1]: None_upvr (readonly)
                ]]
                None_upvr:Unwrap()
            end).to.throw()
        end)
    end)
    describe("Expect", function() -- Line 91
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should expect a some option", function() -- Line 92
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_13_upvr = Parent_upvr.Some(10)
            expect(function() -- Line 94
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_13_upvr (readonly)
                ]]
                any_Some_result1_13_upvr:Expect("Expecting some value")
            end).never.to.throw()
            expect(any_Some_result1_13_upvr:Unwrap()).to.equal(10)
        end)
        it("should fail when expecting on a none option", function() -- Line 100
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local None_upvr_3 = Parent_upvr.None
            expect(function() -- Line 102
                --[[ Upvalues[1]:
                    [1]: None_upvr_3 (readonly)
                ]]
                None_upvr_3:Expect("Expecting some value")
            end).to.throw()
        end)
    end)
    describe("ExpectNone", function() -- Line 108
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should fail to expect a none option", function() -- Line 109
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_9_upvr = Parent_upvr.Some(10)
            expect(function() -- Line 111
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_9_upvr (readonly)
                ]]
                any_Some_result1_9_upvr:ExpectNone("Expecting some value")
            end).to.throw()
        end)
        it("should expect a none option", function() -- Line 116
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local None_upvr_4 = Parent_upvr.None
            expect(function() -- Line 118
                --[[ Upvalues[1]:
                    [1]: None_upvr_4 (readonly)
                ]]
                None_upvr_4:ExpectNone("Expecting some value")
            end).never.to.throw()
        end)
    end)
    describe("UnwrapOr", function() -- Line 124
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should unwrap a some option", function() -- Line 125
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(10):UnwrapOr(20)).to.equal(10)
        end)
        it("should unwrap a none option", function() -- Line 130
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:UnwrapOr(20)).to.equal(20)
        end)
    end)
    describe("UnwrapOrElse", function() -- Line 136
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should unwrap a some option", function() -- Line 137
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(10):UnwrapOrElse(function() -- Line 139
                return 30
            end)).to.equal(10)
        end)
        it("should unwrap a none option", function() -- Line 145
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:UnwrapOrElse(function() -- Line 147
                return 30
            end)).to.equal(30)
        end)
    end)
    describe("And", function() -- Line 154
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return the second option with and when both are some", function() -- Line 155
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_12 = Parent_upvr.Some(2)
            expect(Parent_upvr.Some(1):And(any_Some_result1_12)).to.equal(any_Some_result1_12)
        end)
        it("should return none when first option is some and second option is none", function() -- Line 161
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(1):And(Parent_upvr.None):IsNone()).to.equal(true)
        end)
        it("should return none when first option is none and second option is some", function() -- Line 167
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:And(Parent_upvr.Some(2)):IsNone()).to.equal(true)
        end)
        it("should return none when both options are none", function() -- Line 173
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:And(Parent_upvr.None):IsNone()).to.equal(true)
        end)
    end)
    describe("AndThen", function() -- Line 180
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should pass the some value to the predicate", function() -- Line 181
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            Parent_upvr.Some(32):AndThen(function(arg1) -- Line 183
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                expect(arg1).to.equal(32)
                return Parent_upvr.None
            end)
        end)
        it("should throw if an option is not returned from predicate", function() -- Line 189
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_upvr = Parent_upvr.Some(32)
            expect(function() -- Line 191
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_upvr (readonly)
                ]]
                any_Some_result1_upvr:AndThen(function() -- Line 192
                end)
            end).to.throw()
        end)
        it("should return none if the option is none", function() -- Line 196
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:AndThen(function() -- Line 198
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                return Parent_upvr.Some(10)
            end):IsNone()).to.equal(true)
        end)
        it("should return option of predicate if option is some", function() -- Line 203
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_AndThen_result1 = Parent_upvr.Some(32):AndThen(function() -- Line 205
                --[[ Upvalues[1]:
                    [1]: Parent_upvr (copied, readonly)
                ]]
                return Parent_upvr.Some(10)
            end)
            expect(any_AndThen_result1:IsSome()).to.equal(true)
            expect(any_AndThen_result1:Unwrap()).to.equal(10)
        end)
    end)
    describe("Or", function() -- Line 213
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return the first option if it is some", function() -- Line 214
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_8 = Parent_upvr.Some(10)
            expect(any_Some_result1_8:Or(Parent_upvr.Some(20))).to.equal(any_Some_result1_8)
        end)
        it("should return the second option if the first one is none", function() -- Line 220
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_11 = Parent_upvr.Some(20)
            expect(Parent_upvr.None:Or(any_Some_result1_11)).to.equal(any_Some_result1_11)
        end)
    end)
    describe("OrElse", function() -- Line 227
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return the first option if it is some", function() -- Line 228
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1 = Parent_upvr.Some(10)
            local any_Some_result1_7_upvr = Parent_upvr.Some(20)
            expect(any_Some_result1:OrElse(function() -- Line 231
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_7_upvr (readonly)
                ]]
                return any_Some_result1_7_upvr
            end)).to.equal(any_Some_result1)
        end)
        it("should return the second option if the first one is none", function() -- Line 236
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_10_upvr = Parent_upvr.Some(20)
            expect(Parent_upvr.None:OrElse(function() -- Line 239
                --[[ Upvalues[1]:
                    [1]: any_Some_result1_10_upvr (readonly)
                ]]
                return any_Some_result1_10_upvr
            end)).to.equal(any_Some_result1_10_upvr)
        end)
        it("should throw if the predicate does not return an option", function() -- Line 244
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local None_upvr_2 = Parent_upvr.None
            expect(function() -- Line 246
                --[[ Upvalues[1]:
                    [1]: None_upvr_2 (readonly)
                ]]
                None_upvr_2:OrElse(function() -- Line 247
                end)
            end).to.throw()
        end)
    end)
    describe("XOr", function() -- Line 252
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return first option if first option is some and second option is none", function() -- Line 253
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_6 = Parent_upvr.Some(1)
            expect(any_Some_result1_6:XOr(Parent_upvr.None)).to.equal(any_Some_result1_6)
        end)
        it("should return second option if first option is none and second option is some", function() -- Line 259
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_4 = Parent_upvr.Some(2)
            expect(Parent_upvr.None:XOr(any_Some_result1_4)).to.equal(any_Some_result1_4)
        end)
        it("should return none if first and second option are some", function() -- Line 265
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(1):XOr(Parent_upvr.Some(2))).to.equal(Parent_upvr.None)
        end)
        it("should return none if first and second option are none", function() -- Line 271
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:XOr(Parent_upvr.None)).to.equal(Parent_upvr.None)
        end)
    end)
    describe("Filter", function() -- Line 278
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return none if option is none", function() -- Line 279
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:Filter(function() -- Line 281
            end)).to.equal(Parent_upvr.None)
        end)
        it("should return none if option is some but fails predicate", function() -- Line 284
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(10):Filter(function(arg1) -- Line 286
                return false
            end)).to.equal(Parent_upvr.None)
        end)
        it("should return self if option is some and passes predicate", function() -- Line 291
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            local any_Some_result1_2 = Parent_upvr.Some(10)
            expect(any_Some_result1_2:Filter(function(arg1) -- Line 293
                return true
            end)).to.equal(any_Some_result1_2)
        end)
    end)
    describe("Contains", function() -- Line 299
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return true if some option contains the given value", function() -- Line 300
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(32):Contains(32)).to.equal(true)
        end)
        it("should return false if some option does not contain the given value", function() -- Line 305
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.Some(32):Contains(64)).to.equal(false)
        end)
        it("should return false if option is none", function() -- Line 310
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(Parent_upvr.None:Contains(64)).to.equal(false)
        end)
    end)
    describe("ToString", function() -- Line 316
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        it("should return string of none option", function() -- Line 317
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            expect(tostring(Parent_upvr.None)).to.equal("Option<None>")
        end)
        it("should return string of some option with type", function() -- Line 322
            --[[ Upvalues[1]:
                [1]: Parent_upvr (copied, readonly)
            ]]
            for _, v in ipairs({10, true, false, "test", {}, function() -- Line 323
            end, coroutine.create(function() -- Line 323
            end), workspace}) do
                expect(tostring(Parent_upvr.Some(v))).to.equal("Option<%s>":format(typeof(v)))
            end
        end)
    end)
end
ModuleScript wally ReplicatedStorage.PopupShop.Packages._Index.sleitnick_option@1.0.5.option.wally
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:47
-- Luau version 6, Types version 3
-- Time taken: 0.000720 seconds

return {
    package = {
        authors = {"Stephen Leitnick"};
        description = "Represent optional values in Lua";
        license = "MIT";
        name = "sleitnick/option";
        realm = "shared";
        registry = "https://github.com/UpliftGames/wally-index";
        version = "1.0.5";
    };
}
ModuleScript signal ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@1.5.0.signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:48
-- Luau version 6, Types version 3
-- Time taken: 0.012456 seconds

local var1_upvw
local function acquireRunnerThreadAndCallEventHandler_upvr(arg1, ...) -- Line 53, Named "acquireRunnerThreadAndCallEventHandler"
    --[[ Upvalues[1]:
        [1]: var1_upvw (read and write)
    ]]
    var1_upvw = nil
    arg1(...)
    var1_upvw = var1_upvw
end
local function runEventHandlerInFreeThread_upvr(...) -- Line 64, Named "runEventHandlerInFreeThread"
    --[[ Upvalues[1]:
        [1]: acquireRunnerThreadAndCallEventHandler_upvr (readonly)
    ]]
    acquireRunnerThreadAndCallEventHandler_upvr(...)
    while true do
        acquireRunnerThreadAndCallEventHandler_upvr(coroutine.yield())
    end
end
local tbl_upvr_2 = {}
tbl_upvr_2.__index = tbl_upvr_2
local function new(arg1, arg2) -- Line 90
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local module_2 = {
        Connected = true;
    }
    module_2._signal = arg1
    module_2._fn = arg2
    module_2._next = false
    return setmetatable(module_2, tbl_upvr_2)
end
tbl_upvr_2.new = new
function tbl_upvr_2.Disconnect(arg1) -- Line 99
    local var4
    if not var4 then
    else
        var4 = false
        arg1.Connected = var4
        var4 = arg1._signal._handlerListHead
        if var4 == arg1 then
            var4 = arg1._signal
            var4._handlerListHead = arg1._next
            return
        end
        var4 = arg1._signal._handlerListHead
        while var4 and var4._next ~= arg1 do
            var4 = var4._next
        end
        if var4 then
            var4._next = arg1._next
        end
    end
end
tbl_upvr_2.Destroy = tbl_upvr_2.Disconnect
local tbl = {}
local function __index(arg1, arg2) -- Line 126
    error("Attempt to get Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl.__index = __index
local function __newindex(arg1, arg2, arg3) -- Line 129
    error("Attempt to set Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl.__newindex = __newindex
setmetatable(tbl_upvr_2, tbl)
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
function tbl_upvr.new() -- Line 165
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    return setmetatable({
        _handlerListHead = false;
        _proxyHandler = nil;
    }, tbl_upvr)
end
function tbl_upvr.Wrap(arg1) -- Line 186
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local var8
    if typeof(arg1) ~= "RBXScriptSignal" then
        var8 = false
    else
        var8 = true
    end
    assert(var8, "Argument #1 to Signal.Wrap must be a RBXScriptSignal; got "..typeof(arg1))
    var8 = tbl_upvr
    local any_new_result1_upvr = var8.new()
    var8 = arg1:Connect(function(...) -- Line 192
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvr (readonly)
        ]]
        any_new_result1_upvr:Fire(...)
    end)
    any_new_result1_upvr._proxyHandler = var8
    return any_new_result1_upvr
end
function tbl_upvr.Is(arg1) -- Line 204
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local var11 = false
    if type(arg1) == "table" then
        if getmetatable(arg1) ~= tbl_upvr then
            var11 = false
        else
            var11 = true
        end
    end
    return var11
end
function tbl_upvr.Connect(arg1, arg2) -- Line 221
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local any_new_result1 = tbl_upvr_2.new(arg1, arg2)
    if arg1._handlerListHead then
        any_new_result1._next = arg1._handlerListHead
        arg1._handlerListHead = any_new_result1
        return any_new_result1
    end
    arg1._handlerListHead = any_new_result1
    return any_new_result1
end
function tbl_upvr.ConnectOnce(arg1, arg2) -- Line 237
    return arg1:Once(arg2)
end
function tbl_upvr.Once(arg1, arg2) -- Line 256
    local var14_upvw = false
    local var15_upvw
    var15_upvw = arg1:Connect(function(...) -- Line 259
        --[[ Upvalues[3]:
            [1]: var14_upvw (read and write)
            [2]: var15_upvw (read and write)
            [3]: arg2 (readonly)
        ]]
        if var14_upvw then
        else
            var14_upvw = true
            var15_upvw:Disconnect()
            arg2(...)
        end
    end)
    return var15_upvw
end
function tbl_upvr.GetConnections(arg1) -- Line 270
    local module = {}
    local _handlerListHead = arg1._handlerListHead
    while _handlerListHead do
        table.insert(module, _handlerListHead)
    end
    return module
end
function tbl_upvr.DisconnectAll(arg1) -- Line 288
    local _handlerListHead_4 = arg1._handlerListHead
    while _handlerListHead_4 do
        _handlerListHead_4.Connected = false
    end
    arg1._handlerListHead = false
end
function tbl_upvr.Fire(arg1, ...) -- Line 312
    --[[ Upvalues[2]:
        [1]: var1_upvw (read and write)
        [2]: runEventHandlerInFreeThread_upvr (readonly)
    ]]
    local _handlerListHead_2 = arg1._handlerListHead
    while _handlerListHead_2 do
        if _handlerListHead_2.Connected then
            if not var1_upvw then
                var1_upvw = coroutine.create(runEventHandlerInFreeThread_upvr)
            end
            task.spawn(var1_upvw, _handlerListHead_2._fn, ...)
        end
    end
end
function tbl_upvr.FireDeferred(arg1, ...) -- Line 333
    local _handlerListHead_3 = arg1._handlerListHead
    while _handlerListHead_3 do
        task.defer(_handlerListHead_3._fn, ...)
    end
end
function tbl_upvr.Wait(arg1) -- Line 356
    local var22_upvw = false
    local var23_upvw
    local current_thread_upvr = coroutine.running()
    var23_upvw = arg1:Connect(function(...) -- Line 360
        --[[ Upvalues[3]:
            [1]: var22_upvw (read and write)
            [2]: var23_upvw (read and write)
            [3]: current_thread_upvr (readonly)
        ]]
        if var22_upvw then
        else
            var22_upvw = true
            var23_upvw:Disconnect()
            task.spawn(current_thread_upvr, ...)
        end
    end)
    return coroutine.yield()
end
function tbl_upvr.Destroy(arg1) -- Line 383
    arg1:DisconnectAll()
    local rawget_result1 = rawget(arg1, "_proxyHandler")
    if rawget_result1 then
        rawget_result1:Disconnect()
    end
end
setmetatable(tbl_upvr, {
    __index = function(arg1, arg2) -- Line 393, Named "__index"
        error("Attempt to get Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
    __newindex = function(arg1, arg2, arg3) -- Line 396, Named "__newindex"
        error("Attempt to set Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
})
return {
    new = tbl_upvr.new;
    Wrap = tbl_upvr.Wrap;
    Is = tbl_upvr.Is;
}
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@1.5.0.signal.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:50
-- Luau version 6, Types version 3
-- Time taken: 0.011558 seconds

local function AwaitCondition_upvr(arg1, arg2) -- Line 1, Named "AwaitCondition"
    while true do
        if arg1() then
            return true
        end
        if (arg2 or 10) < os.clock() - os.clock() then
            return false
        end
        task.wait()
    end
end
return function() -- Line 15
    --[[ Upvalues[1]:
        [1]: AwaitCondition_upvr (readonly)
    ]]
    local Parent_upvr = require(script.Parent)
    local var3_upvw
    local function _(arg1) -- Line 20, Named "NumConns"
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        local var4 = arg1
        if not var4 then
            var4 = var3_upvw
        end
        return #var4:GetConnections()
    end
    beforeEach(function() -- Line 25
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: Parent_upvr (readonly)
        ]]
        var3_upvw = Parent_upvr.new()
    end)
    afterEach(function() -- Line 29
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        var3_upvw:Destroy()
    end)
    describe("Constructor", function() -- Line 33
        --[[ Upvalues[3]:
            [1]: Parent_upvr (readonly)
            [2]: var3_upvw (read and write)
            [3]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should create a new signal and fire it", function() -- Line 34
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: var3_upvw (copied, read and write)
            ]]
            expect(Parent_upvr.Is(var3_upvw)).to.equal(true)
            task.defer(function() -- Line 36
                --[[ Upvalues[1]:
                    [1]: var3_upvw (copied, read and write)
                ]]
                var3_upvw:Fire(10, 20)
            end)
            local any_Wait_result1, any_Wait_result2_2 = var3_upvw:Wait()
            expect(any_Wait_result1).to.equal(10)
            expect(any_Wait_result2_2).to.equal(20)
        end)
        it("should create a proxy signal and connect to it", function() -- Line 44
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local any_Wrap_result1 = Parent_upvr.Wrap(game:GetService("RunService").Heartbeat)
            expect(Parent_upvr.Is(any_Wrap_result1)).to.equal(true)
            local var14_upvw = false
            any_Wrap_result1:Connect(function() -- Line 48
                --[[ Upvalues[1]:
                    [1]: var14_upvw (read and write)
                ]]
                var14_upvw = true
            end)
            expect(AwaitCondition_upvr(function() -- Line 51
                --[[ Upvalues[1]:
                    [1]: var14_upvw (read and write)
                ]]
                return var14_upvw
            end, 2)).to.equal(true)
            any_Wrap_result1:Destroy()
        end)
    end)
    describe("FireDeferred", function() -- Line 58
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should be able to fire primitive argument", function() -- Line 59
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local var19_upvw
            var3_upvw:Connect(function(arg1) -- Line 62
                --[[ Upvalues[1]:
                    [1]: var19_upvw (read and write)
                ]]
                var19_upvw = arg1
            end)
            var3_upvw:FireDeferred(10)
            expect(AwaitCondition_upvr(function() -- Line 66
                --[[ Upvalues[1]:
                    [1]: var19_upvw (read and write)
                ]]
                local var22
                if var19_upvw ~= 10 then
                    var22 = false
                else
                    var22 = true
                end
                return var22
            end, 1)).to.equal(true)
        end)
        it("should be able to fire a reference based argument", function() -- Line 71
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local tbl_2_upvr = {10, 20}
            local var25_upvw
            var3_upvw:Connect(function(arg1) -- Line 74
                --[[ Upvalues[1]:
                    [1]: var25_upvw (read and write)
                ]]
                var25_upvw = arg1
            end)
            var3_upvw:FireDeferred(tbl_2_upvr)
            expect(AwaitCondition_upvr(function() -- Line 78
                --[[ Upvalues[2]:
                    [1]: tbl_2_upvr (readonly)
                    [2]: var25_upvw (read and write)
                ]]
                local var28
                if tbl_2_upvr ~= var25_upvw then
                    var28 = false
                else
                    var28 = true
                end
                return var28
            end, 1)).to.equal(true)
        end)
    end)
    describe("Fire", function() -- Line 84
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should be able to fire primitive argument", function() -- Line 85
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var31_upvw
            var3_upvw:Connect(function(arg1) -- Line 88
                --[[ Upvalues[1]:
                    [1]: var31_upvw (read and write)
                ]]
                var31_upvw = arg1
            end)
            var3_upvw:Fire(10)
            expect(var31_upvw).to.equal(10)
        end)
        it("should be able to fire a reference based argument", function() -- Line 95
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local tbl = {10, 20}
            local var35_upvw
            var3_upvw:Connect(function(arg1) -- Line 98
                --[[ Upvalues[1]:
                    [1]: var35_upvw (read and write)
                ]]
                var35_upvw = arg1
            end)
            var3_upvw:Fire(tbl)
            expect(var35_upvw).to.equal(tbl)
        end)
    end)
    describe("ConnectOnce", function() -- Line 106
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should only capture first fire", function() -- Line 107
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var39_upvw
            local any_ConnectOnce_result1 = var3_upvw:ConnectOnce(function(arg1) -- Line 109
                --[[ Upvalues[1]:
                    [1]: var39_upvw (read and write)
                ]]
                var39_upvw = arg1
            end)
            expect(any_ConnectOnce_result1.Connected).to.equal(true)
            var3_upvw:Fire(10)
            expect(any_ConnectOnce_result1.Connected).to.equal(false)
            var3_upvw:Fire(20)
            expect(var39_upvw).to.equal(10)
        end)
    end)
    describe("Wait", function() -- Line 120
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should be able to wait for a signal to fire", function() -- Line 121
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            task.defer(function() -- Line 122
                --[[ Upvalues[1]:
                    [1]: var3_upvw (copied, read and write)
                ]]
                var3_upvw:Fire(10, 20, 30)
            end)
            local any_Wait_result1_2, any_Wait_result2, any_Wait_result3 = var3_upvw:Wait()
            expect(any_Wait_result1_2).to.equal(10)
            expect(any_Wait_result2).to.equal(20)
            expect(any_Wait_result3).to.equal(30)
        end)
    end)
    describe("DisconnectAll", function() -- Line 132
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should disconnect all connections", function() -- Line 133
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            var3_upvw:Connect(function() -- Line 134
            end)
            var3_upvw:Connect(function() -- Line 135
            end)
            local var52
            if not var52 then
                var52 = var3_upvw
            end
            expect(#var52:GetConnections()).to.equal(2)
            var3_upvw:DisconnectAll()
            local var53
            if not var53 then
                var53 = var3_upvw
            end
            expect(#var53:GetConnections()).to.equal(0)
        end)
    end)
    describe("Disconnect", function() -- Line 142
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should disconnect connection", function() -- Line 143
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var57
            if not var57 then
                var57 = var3_upvw
            end
            expect(#var57:GetConnections()).to.equal(1)
            var3_upvw:Connect(function() -- Line 144
            end):Disconnect()
            local var58
            if not var58 then
                var58 = var3_upvw
            end
            expect(#var58:GetConnections()).to.equal(0)
        end)
        it("should still work if connections disconnected while firing", function() -- Line 150
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var60_upvw = 0
            var3_upvw:Connect(function() -- Line 153
                --[[ Upvalues[1]:
                    [1]: var60_upvw (read and write)
                ]]
                var60_upvw += 1
            end)
            local var63_upvw
            var63_upvw = var3_upvw:Connect(function() -- Line 156
                --[[ Upvalues[2]:
                    [1]: var63_upvw (read and write)
                    [2]: var60_upvw (read and write)
                ]]
                var63_upvw:Disconnect()
                var60_upvw += 1
            end)
            var3_upvw:Connect(function() -- Line 160
                --[[ Upvalues[1]:
                    [1]: var60_upvw (read and write)
                ]]
                var60_upvw += 1
            end)
            var3_upvw:Fire()
            expect(var60_upvw).to.equal(3)
        end)
        it("should still work if connections disconnected while firing deferred", function() -- Line 167
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local var66_upvw = 0
            var3_upvw:Connect(function() -- Line 170
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                var66_upvw += 1
            end)
            local var69_upvw
            var69_upvw = var3_upvw:Connect(function() -- Line 173
                --[[ Upvalues[2]:
                    [1]: var69_upvw (read and write)
                    [2]: var66_upvw (read and write)
                ]]
                var69_upvw:Disconnect()
                var66_upvw += 1
            end)
            var3_upvw:Connect(function() -- Line 177
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                var66_upvw += 1
            end)
            var3_upvw:FireDeferred()
            expect(AwaitCondition_upvr(function() -- Line 181
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                local var72
                if var66_upvw ~= 3 then
                    var72 = false
                else
                    var72 = true
                end
                return var72
            end)).to.equal(true)
        end)
    end)
end
ModuleScript wally ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@1.5.0.signal.wally
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:51
-- Luau version 6, Types version 3
-- Time taken: 0.000777 seconds

return {
    package = {
        authors = {"Stephen Leitnick"};
        description = "Signal class";
        license = "MIT";
        name = "sleitnick/signal";
        realm = "shared";
        registry = "https://github.com/UpliftGames/wally-index";
        version = "1.5.0";
    };
}
ModuleScript signal ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@2.0.1.signal
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:53
-- Luau version 6, Types version 3
-- Time taken: 0.012990 seconds

local var1_upvw
local function acquireRunnerThreadAndCallEventHandler_upvr(arg1, ...) -- Line 44, Named "acquireRunnerThreadAndCallEventHandler"
    --[[ Upvalues[1]:
        [1]: var1_upvw (read and write)
    ]]
    var1_upvw = nil
    arg1(...)
    var1_upvw = var1_upvw
end
local function runEventHandlerInFreeThread_upvr(...) -- Line 55, Named "runEventHandlerInFreeThread"
    --[[ Upvalues[1]:
        [1]: acquireRunnerThreadAndCallEventHandler_upvr (readonly)
    ]]
    acquireRunnerThreadAndCallEventHandler_upvr(...)
    while true do
        acquireRunnerThreadAndCallEventHandler_upvr(coroutine.yield())
    end
end
local tbl_3_upvr = {}
tbl_3_upvr.__index = tbl_3_upvr
function tbl_3_upvr.Disconnect(arg1) -- Line 81
    local var3
    if not var3 then
    else
        var3 = false
        arg1.Connected = var3
        var3 = arg1._signal._handlerListHead
        if var3 == arg1 then
            var3 = arg1._signal
            var3._handlerListHead = arg1._next
            return
        end
        var3 = arg1._signal._handlerListHead
        while var3 and var3._next ~= arg1 do
            var3 = var3._next
        end
        if var3 then
            var3._next = arg1._next
        end
    end
end
tbl_3_upvr.Destroy = tbl_3_upvr.Disconnect
local tbl_2 = {}
local function __index(arg1, arg2) -- Line 108
    error("Attempt to get Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl_2.__index = __index
local function __newindex(arg1, arg2, arg3) -- Line 111
    error("Attempt to set Connection::%s (not a valid member)":format(tostring(arg2)), 2)
end
tbl_2.__newindex = __newindex
setmetatable(tbl_3_upvr, tbl_2)
local tbl_4_upvr = {}
tbl_4_upvr.__index = tbl_4_upvr
function tbl_4_upvr.new() -- Line 147
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    return setmetatable({
        _handlerListHead = false;
        _proxyHandler = nil;
        _yieldedThreads = nil;
    }, tbl_4_upvr)
end
function tbl_4_upvr.Wrap(arg1) -- Line 170
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var7
    if typeof(arg1) ~= "RBXScriptSignal" then
        var7 = false
    else
        var7 = true
    end
    assert(var7, "Argument #1 to Signal.Wrap must be a RBXScriptSignal; got "..typeof(arg1))
    var7 = tbl_4_upvr
    local any_new_result1_upvr = var7.new()
    var7 = arg1:Connect(function(...) -- Line 177
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvr (readonly)
        ]]
        any_new_result1_upvr:Fire(...)
    end)
    any_new_result1_upvr._proxyHandler = var7
    return any_new_result1_upvr
end
function tbl_4_upvr.Is(arg1) -- Line 190
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local var10 = false
    if type(arg1) == "table" then
        if getmetatable(arg1) ~= tbl_4_upvr then
            var10 = false
        else
            var10 = true
        end
    end
    return var10
end
function tbl_4_upvr.Connect(arg1, arg2) -- Line 207
    --[[ Upvalues[1]:
        [1]: tbl_3_upvr (readonly)
    ]]
    local tbl = {
        Connected = true;
    }
    tbl._signal = arg1
    tbl._fn = arg2
    tbl._next = false
    local setmetatable_result1 = setmetatable(tbl, tbl_3_upvr)
    if arg1._handlerListHead then
        setmetatable_result1._next = arg1._handlerListHead
        arg1._handlerListHead = setmetatable_result1
        return setmetatable_result1
    end
    arg1._handlerListHead = setmetatable_result1
    return setmetatable_result1
end
function tbl_4_upvr.ConnectOnce(arg1, arg2) -- Line 230
    return arg1:Once(arg2)
end
function tbl_4_upvr.Once(arg1, arg2) -- Line 249
    local var14_upvw = false
    local var15_upvw
    var15_upvw = arg1:Connect(function(...) -- Line 253
        --[[ Upvalues[3]:
            [1]: var14_upvw (read and write)
            [2]: var15_upvw (read and write)
            [3]: arg2 (readonly)
        ]]
        if var14_upvw then
        else
            var14_upvw = true
            var15_upvw:Disconnect()
            arg2(...)
        end
    end)
    return var15_upvw
end
function tbl_4_upvr.GetConnections(arg1) -- Line 266
    local module = {}
    local _handlerListHead = arg1._handlerListHead
    while _handlerListHead do
        table.insert(module, _handlerListHead)
    end
    return module
end
function tbl_4_upvr.DisconnectAll(arg1) -- Line 286
    local _handlerListHead_3 = arg1._handlerListHead
    while _handlerListHead_3 do
        _handlerListHead_3.Connected = false
    end
    arg1._handlerListHead = false
    local rawget_result1_3 = rawget(arg1, "_yieldedThreads")
    if rawget_result1_3 then
        for i in rawget_result1_3 do
            if coroutine.status(i) == "suspended" then
                warn(debug.traceback(i, "signal disconnected; yielded thread cancelled", 2))
                task.cancel(i)
            end
        end
        table.clear(arg1._yieldedThreads)
    end
end
function tbl_4_upvr.Fire(arg1, ...) -- Line 321
    --[[ Upvalues[2]:
        [1]: var1_upvw (read and write)
        [2]: runEventHandlerInFreeThread_upvr (readonly)
    ]]
    local _handlerListHead_4 = arg1._handlerListHead
    while _handlerListHead_4 do
        if _handlerListHead_4.Connected then
            if not var1_upvw then
                var1_upvw = coroutine.create(runEventHandlerInFreeThread_upvr)
            end
            task.spawn(var1_upvw, _handlerListHead_4._fn, ...)
        end
    end
end
function tbl_4_upvr.FireDeferred(arg1, ...) -- Line 342
    local _handlerListHead_2_upvr = arg1._handlerListHead
    while _handlerListHead_2_upvr do
        task.defer(function(...) -- Line 346
            --[[ Upvalues[1]:
                [1]: _handlerListHead_2_upvr (readonly)
            ]]
            if _handlerListHead_2_upvr.Connected then
                _handlerListHead_2_upvr._fn(...)
            end
        end, ...)
    end
end
function tbl_4_upvr.Wait(arg1) -- Line 370
    local rawget_result1_2_upvw = rawget(arg1, "_yieldedThreads")
    if not rawget_result1_2_upvw then
        rawget_result1_2_upvw = {}
        rawset(arg1, "_yieldedThreads", rawget_result1_2_upvw)
    end
    local current_thread_upvr = coroutine.running()
    rawget_result1_2_upvw[current_thread_upvr] = true
    arg1:Once(function(...) -- Line 380
        --[[ Upvalues[2]:
            [1]: rawget_result1_2_upvw (read and write)
            [2]: current_thread_upvr (readonly)
        ]]
        rawget_result1_2_upvw[current_thread_upvr] = nil
        task.spawn(current_thread_upvr, ...)
    end)
    return coroutine.yield()
end
function tbl_4_upvr.Destroy(arg1) -- Line 400
    arg1:DisconnectAll()
    local rawget_result1 = rawget(arg1, "_proxyHandler")
    if rawget_result1 then
        rawget_result1:Disconnect()
    end
end
setmetatable(tbl_4_upvr, {
    __index = function(arg1, arg2) -- Line 411, Named "__index"
        error("Attempt to get Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
    __newindex = function(arg1, arg2, arg3) -- Line 414, Named "__newindex"
        error("Attempt to set Signal::%s (not a valid member)":format(tostring(arg2)), 2)
    end;
})
return table.freeze({
    new = tbl_4_upvr.new;
    Wrap = tbl_4_upvr.Wrap;
    Is = tbl_4_upvr.Is;
})
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@2.0.1.signal.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:54
-- Luau version 6, Types version 3
-- Time taken: 0.016556 seconds

local function AwaitCondition_upvr(arg1, arg2) -- Line 1, Named "AwaitCondition"
    while true do
        if arg1() then
            return true
        end
        if (arg2 or 10) < os.clock() - os.clock() then
            return false
        end
        task.wait()
    end
end
return function() -- Line 15
    --[[ Upvalues[1]:
        [1]: AwaitCondition_upvr (readonly)
    ]]
    local Parent_upvr = require(script.Parent)
    local var3_upvw
    local function _(arg1) -- Line 20, Named "NumConns"
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        local var4 = arg1
        if not var4 then
            var4 = var3_upvw
        end
        return #var4:GetConnections()
    end
    beforeEach(function() -- Line 25
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: Parent_upvr (readonly)
        ]]
        var3_upvw = Parent_upvr.new()
    end)
    afterEach(function() -- Line 29
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        var3_upvw:Destroy()
    end)
    describe("Constructor", function() -- Line 33
        --[[ Upvalues[3]:
            [1]: Parent_upvr (readonly)
            [2]: var3_upvw (read and write)
            [3]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should create a new signal and fire it", function() -- Line 34
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: var3_upvw (copied, read and write)
            ]]
            expect(Parent_upvr.Is(var3_upvw)).to.equal(true)
            task.defer(function() -- Line 36
                --[[ Upvalues[1]:
                    [1]: var3_upvw (copied, read and write)
                ]]
                var3_upvw:Fire(10, 20)
            end)
            local any_Wait_result1, any_Wait_result2_2 = var3_upvw:Wait()
            expect(any_Wait_result1).to.equal(10)
            expect(any_Wait_result2_2).to.equal(20)
        end)
        it("should create a proxy signal and connect to it", function() -- Line 44
            --[[ Upvalues[2]:
                [1]: Parent_upvr (copied, readonly)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local any_Wrap_result1 = Parent_upvr.Wrap(game:GetService("RunService").Heartbeat)
            expect(Parent_upvr.Is(any_Wrap_result1)).to.equal(true)
            local var14_upvw = false
            any_Wrap_result1:Connect(function() -- Line 48
                --[[ Upvalues[1]:
                    [1]: var14_upvw (read and write)
                ]]
                var14_upvw = true
            end)
            expect(AwaitCondition_upvr(function() -- Line 51
                --[[ Upvalues[1]:
                    [1]: var14_upvw (read and write)
                ]]
                return var14_upvw
            end, 2)).to.equal(true)
            any_Wrap_result1:Destroy()
        end)
    end)
    describe("FireDeferred", function() -- Line 58
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should be able to fire primitive argument", function() -- Line 59
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local var19_upvw
            var3_upvw:Connect(function(arg1) -- Line 62
                --[[ Upvalues[1]:
                    [1]: var19_upvw (read and write)
                ]]
                var19_upvw = arg1
            end)
            var3_upvw:FireDeferred(10)
            expect(AwaitCondition_upvr(function() -- Line 66
                --[[ Upvalues[1]:
                    [1]: var19_upvw (read and write)
                ]]
                local var22
                if var19_upvw ~= 10 then
                    var22 = false
                else
                    var22 = true
                end
                return var22
            end, 1)).to.equal(true)
        end)
        it("should be able to fire a reference based argument", function() -- Line 71
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local tbl_2_upvr = {10, 20}
            local var25_upvw
            var3_upvw:Connect(function(arg1) -- Line 74
                --[[ Upvalues[1]:
                    [1]: var25_upvw (read and write)
                ]]
                var25_upvw = arg1
            end)
            var3_upvw:FireDeferred(tbl_2_upvr)
            expect(AwaitCondition_upvr(function() -- Line 78
                --[[ Upvalues[2]:
                    [1]: tbl_2_upvr (readonly)
                    [2]: var25_upvw (read and write)
                ]]
                local var28
                if tbl_2_upvr ~= var25_upvw then
                    var28 = false
                else
                    var28 = true
                end
                return var28
            end, 1)).to.equal(true)
        end)
    end)
    describe("Fire", function() -- Line 84
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should be able to fire primitive argument", function() -- Line 85
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var31_upvw
            var3_upvw:Connect(function(arg1) -- Line 88
                --[[ Upvalues[1]:
                    [1]: var31_upvw (read and write)
                ]]
                var31_upvw = arg1
            end)
            var3_upvw:Fire(10)
            expect(var31_upvw).to.equal(10)
        end)
        it("should be able to fire a reference based argument", function() -- Line 95
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local tbl = {10, 20}
            local var35_upvw
            var3_upvw:Connect(function(arg1) -- Line 98
                --[[ Upvalues[1]:
                    [1]: var35_upvw (read and write)
                ]]
                var35_upvw = arg1
            end)
            var3_upvw:Fire(tbl)
            expect(var35_upvw).to.equal(tbl)
        end)
    end)
    describe("ConnectOnce", function() -- Line 106
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should only capture first fire", function() -- Line 107
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var39_upvw
            local any_ConnectOnce_result1 = var3_upvw:ConnectOnce(function(arg1) -- Line 109
                --[[ Upvalues[1]:
                    [1]: var39_upvw (read and write)
                ]]
                var39_upvw = arg1
            end)
            expect(any_ConnectOnce_result1.Connected).to.equal(true)
            var3_upvw:Fire(10)
            expect(any_ConnectOnce_result1.Connected).to.equal(false)
            var3_upvw:Fire(20)
            expect(var39_upvw).to.equal(10)
        end)
    end)
    describe("Wait", function() -- Line 120
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should be able to wait for a signal to fire", function() -- Line 121
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            task.defer(function() -- Line 122
                --[[ Upvalues[1]:
                    [1]: var3_upvw (copied, read and write)
                ]]
                var3_upvw:Fire(10, 20, 30)
            end)
            local any_Wait_result1_2, any_Wait_result2, any_Wait_result3 = var3_upvw:Wait()
            expect(any_Wait_result1_2).to.equal(10)
            expect(any_Wait_result2).to.equal(20)
            expect(any_Wait_result3).to.equal(30)
        end)
    end)
    describe("DisconnectAll", function() -- Line 132
        --[[ Upvalues[1]:
            [1]: var3_upvw (read and write)
        ]]
        it("should disconnect all connections", function() -- Line 133
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            var3_upvw:Connect(function() -- Line 134
            end)
            var3_upvw:Connect(function() -- Line 135
            end)
            local var52
            if not var52 then
                var52 = var3_upvw
            end
            expect(#var52:GetConnections()).to.equal(2)
            var3_upvw:DisconnectAll()
            local var53
            if not var53 then
                var53 = var3_upvw
            end
            expect(#var53:GetConnections()).to.equal(0)
        end)
    end)
    describe("Disconnect", function() -- Line 142
        --[[ Upvalues[2]:
            [1]: var3_upvw (read and write)
            [2]: AwaitCondition_upvr (copied, readonly)
        ]]
        it("should disconnect connection", function() -- Line 143
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var57
            if not var57 then
                var57 = var3_upvw
            end
            expect(#var57:GetConnections()).to.equal(1)
            var3_upvw:Connect(function() -- Line 144
            end):Disconnect()
            local var58
            if not var58 then
                var58 = var3_upvw
            end
            expect(#var58:GetConnections()).to.equal(0)
        end)
        it("should still work if connections disconnected while firing", function() -- Line 150
            --[[ Upvalues[1]:
                [1]: var3_upvw (copied, read and write)
            ]]
            local var60_upvw = 0
            var3_upvw:Connect(function() -- Line 153
                --[[ Upvalues[1]:
                    [1]: var60_upvw (read and write)
                ]]
                var60_upvw += 1
            end)
            local var63_upvw
            var63_upvw = var3_upvw:Connect(function() -- Line 156
                --[[ Upvalues[2]:
                    [1]: var63_upvw (read and write)
                    [2]: var60_upvw (read and write)
                ]]
                var63_upvw:Disconnect()
                var60_upvw += 1
            end)
            var3_upvw:Connect(function() -- Line 160
                --[[ Upvalues[1]:
                    [1]: var60_upvw (read and write)
                ]]
                var60_upvw += 1
            end)
            var3_upvw:Fire()
            expect(var60_upvw).to.equal(3)
        end)
        it("should still work if connections disconnected while firing deferred", function() -- Line 167
            --[[ Upvalues[2]:
                [1]: var3_upvw (copied, read and write)
                [2]: AwaitCondition_upvr (copied, readonly)
            ]]
            local var66_upvw = 0
            var3_upvw:Connect(function() -- Line 170
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                var66_upvw += 1
            end)
            local var69_upvw
            var69_upvw = var3_upvw:Connect(function() -- Line 173
                --[[ Upvalues[2]:
                    [1]: var69_upvw (read and write)
                    [2]: var66_upvw (read and write)
                ]]
                var69_upvw:Disconnect()
                var66_upvw += 1
            end)
            var3_upvw:Connect(function() -- Line 177
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                var66_upvw += 1
            end)
            var3_upvw:FireDeferred()
            expect(AwaitCondition_upvr(function() -- Line 181
                --[[ Upvalues[1]:
                    [1]: var66_upvw (read and write)
                ]]
                local var72
                if var66_upvw ~= 3 then
                    var72 = false
                else
                    var72 = true
                end
                return var72
            end)).to.equal(true)
        end)
    end)
end
ModuleScript wally ReplicatedStorage.PopupShop.Packages._Index.sleitnick_signal@2.0.1.signal.wally
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:56
-- Luau version 6, Types version 3
-- Time taken: 0.000829 seconds

return {
    package = {
        authors = {"Stephen Leitnick"};
        description = "Signal class";
        exclude = {"node_modules", "package.json", "**/*.ts"};
        license = "MIT";
        name = "sleitnick/signal";
        realm = "shared";
        registry = "https://github.com/UpliftGames/wally-index";
        version = "2.0.1";
    };
}
ModuleScript trove ReplicatedStorage.PopupShop.Packages._Index.sleitnick_trove@1.3.0.trove
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:57
-- Luau version 6, Types version 3
-- Time taken: 0.010814 seconds

local newproxy_result1_upvr_2 = newproxy()
local newproxy_result1_upvr = newproxy()
local table_freeze_result1_upvr = table.freeze({"Destroy", "Disconnect", "destroy", "disconnect"})
local function GetObjectCleanupFunction_upvr(arg1, arg2) -- Line 123, Named "GetObjectCleanupFunction"
    --[[ Upvalues[3]:
        [1]: newproxy_result1_upvr_2 (readonly)
        [2]: newproxy_result1_upvr (readonly)
        [3]: table_freeze_result1_upvr (readonly)
    ]]
    local typeof_result1 = typeof(arg1)
    if typeof_result1 == "function" then
        return newproxy_result1_upvr_2
    end
    if typeof_result1 == "thread" then
        return newproxy_result1_upvr
    end
    if arg2 then
        return arg2
    end
    if typeof_result1 == "Instance" then
        return "Destroy"
    end
    if typeof_result1 == "RBXScriptConnection" then
        return "Disconnect"
    end
    if typeof_result1 == "table" then
        for _, v in table_freeze_result1_upvr do
            if typeof(arg1[v]) == "function" then
                return v
            end
        end
    end
    error(`failed to get cleanup function for object {typeof_result1}: {arg1}`, 3)
end
local function _(arg1) -- Line 151, Named "AssertPromiseLike"
    if typeof(arg1) ~= "table" or typeof(arg1.getStatus) ~= "function" or typeof(arg1.finally) ~= "function" or typeof(arg1.cancel) ~= "function" then
        error("did not receive a promise as an argument", 3)
    end
end
local tbl_2_upvr = {}
tbl_2_upvr.__index = tbl_2_upvr
function tbl_2_upvr.new() -- Line 178
    --[[ Upvalues[1]:
        [1]: tbl_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, tbl_2_upvr)
    setmetatable_result1._objects = {}
    setmetatable_result1._cleaning = false
    return setmetatable_result1
end
function tbl_2_upvr.Add(arg1, arg2, arg3) -- Line 237
    --[[ Upvalues[1]:
        [1]: GetObjectCleanupFunction_upvr (readonly)
    ]]
    if arg1._cleaning then
        error("cannot call trove:Add() while cleaning", 2)
    end
    local tbl = {}
    tbl[1] = arg2
    tbl[2] = GetObjectCleanupFunction_upvr(arg2, arg3)
    table.insert(arg1._objects, tbl)
    return arg2
end
function tbl_2_upvr.Clone(arg1, arg2) -- Line 259
    if arg1._cleaning then
        error("cannot call trove:Clone() while cleaning", 2)
    end
    return arg1:Add(arg2:Clone())
end
function tbl_2_upvr.Construct(arg1, arg2, ...) -- Line 302
    if arg1._cleaning then
        error("Cannot call trove:Construct() while cleaning", 2)
    end
    local var11
    local type_result1 = type(arg2)
    if type_result1 == "table" then
        var11 = arg2.new(...)
    elseif type_result1 == "function" then
        var11 = arg2(...)
    end
    return arg1:Add(var11)
end
function tbl_2_upvr.Connect(arg1, arg2, arg3) -- Line 335
    if arg1._cleaning then
        error("Cannot call trove:Connect() while cleaning", 2)
    end
    return arg1:Add(arg2:Connect(arg3))
end
local RunService_upvr = game:GetService("RunService")
function tbl_2_upvr.BindToRenderStep(arg1, arg2, arg3, arg4) -- Line 358
    --[[ Upvalues[1]:
        [1]: RunService_upvr (readonly)
    ]]
    if arg1._cleaning then
        error("cannot call trove:BindToRenderStep() while cleaning", 2)
    end
    RunService_upvr:BindToRenderStep(arg2, arg3, arg4)
    arg1:Add(function() -- Line 365
        --[[ Upvalues[2]:
            [1]: RunService_upvr (copied, readonly)
            [2]: arg2 (readonly)
        ]]
        RunService_upvr:UnbindFromRenderStep(arg2)
    end)
end
function tbl_2_upvr.AddPromise(arg1, arg2) -- Line 395
    if arg1._cleaning then
        error("cannot call trove:AddPromise() while cleaning", 2)
    end
    if typeof(arg2) ~= "table" or typeof(arg2.getStatus) ~= "function" or typeof(arg2.finally) ~= "function" or typeof(arg2.cancel) ~= "function" then
        error("did not receive a promise as an argument", 3)
    end
    if arg2:getStatus() == "Started" then
        arg2:finally(function() -- Line 402
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
            ]]
            if arg1._cleaning then
            else
                arg1:_findAndRemoveFromObjects(arg2, false)
            end
        end)
        arg1:Add(arg2, "cancel")
    end
    return arg2
end
function tbl_2_upvr.Remove(arg1, arg2) -- Line 427
    if arg1._cleaning then
        error("cannot call trove:Remove() while cleaning", 2)
    end
    return arg1:_findAndRemoveFromObjects(arg2, true)
end
function tbl_2_upvr.Extend(arg1) -- Line 456
    --[[ Upvalues[1]:
        [1]: tbl_2_upvr (readonly)
    ]]
    if arg1._cleaning then
        error("cannot call trove:Extend() while cleaning", 2)
    end
    return arg1:Construct(tbl_2_upvr)
end
function tbl_2_upvr.Clean(arg1) -- Line 476
    if arg1._cleaning then
    else
        arg1._cleaning = true
        for _, v_3 in arg1._objects do
            arg1:_cleanupObject(v_3[1], v_3[2])
        end
        table.clear(arg1._objects)
        arg1._cleaning = false
    end
end
function tbl_2_upvr.WrapClean(arg1) -- Line 518
    return function() -- Line 519
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:Clean()
    end
end
function tbl_2_upvr._findAndRemoveFromObjects(arg1, arg2, arg3) -- Line 524
    local _objects = arg1._objects
    for i_2, v_2 in _objects do
        if v_2[1] == arg2 then
            local len = #_objects
            _objects[i_2] = _objects[len]
            _objects[len] = nil
            if arg3 then
                arg1:_cleanupObject(v_2[1], v_2[2])
            end
            return true
        end
    end
    return false
end
function tbl_2_upvr._cleanupObject(arg1, arg2, arg3) -- Line 544
    --[[ Upvalues[2]:
        [1]: newproxy_result1_upvr_2 (readonly)
        [2]: newproxy_result1_upvr (readonly)
    ]]
    if arg3 == newproxy_result1_upvr_2 then
        arg2()
    else
        if arg3 == newproxy_result1_upvr then
            pcall(task.cancel, arg2)
            return
        end
        arg2[arg3](arg2)
    end
end
function tbl_2_upvr.AttachToInstance(arg1, arg2) -- Line 584
    if arg1._cleaning then
        error("cannot call trove:AttachToInstance() while cleaning", 2)
    elseif not arg2:IsDescendantOf(game) then
        error("instance is not a descendant of the game hierarchy", 2)
    end
    return arg1:Connect(arg2.Destroying, function() -- Line 591
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:Destroy()
    end)
end
function tbl_2_upvr.Destroy(arg1) -- Line 605
    arg1:Clean()
end
return {
    new = tbl_2_upvr.new;
}
ModuleScript init.spec ReplicatedStorage.PopupShop.Packages._Index.sleitnick_trove@1.3.0.trove.init.spec
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:07:58
-- Luau version 6, Types version 3
-- Time taken: 0.015484 seconds

return function() -- Line 1
    local Parent_upvr = require(script.Parent)
    describe("Trove", function() -- Line 4
        --[[ Upvalues[1]:
            [1]: Parent_upvr (readonly)
        ]]
        local var4_upvw
        beforeEach(function() -- Line 7
            --[[ Upvalues[2]:
                [1]: var4_upvw (read and write)
                [2]: Parent_upvr (copied, readonly)
            ]]
            var4_upvw = Parent_upvr.new()
        end)
        afterEach(function() -- Line 11
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            if var4_upvw then
                var4_upvw:Destroy()
                var4_upvw = nil
            end
        end)
        it("should add and clean up roblox instance", function() -- Line 18
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local Part_4 = Instance.new("Part")
            Part_4.Parent = workspace
            var4_upvw:Add(Part_4)
            var4_upvw:Destroy()
            expect(Part_4.Parent).to.equal(nil)
        end)
        it("should add and clean up roblox connection", function() -- Line 26
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local any_Connect_result1_2 = workspace.Changed:Connect(function() -- Line 27
            end)
            var4_upvw:Add(any_Connect_result1_2)
            var4_upvw:Destroy()
            expect(any_Connect_result1_2.Connected).to.equal(false)
        end)
        it("should add and clean up a table with a destroy method", function() -- Line 33
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local tbl = {
                Destroyed = false;
            }
            local function Destroy(arg1) -- Line 35
                arg1.Destroyed = true
            end
            tbl.Destroy = Destroy
            var4_upvw:Add(tbl)
            var4_upvw:Destroy()
            expect(tbl.Destroyed).to.equal(true)
        end)
        it("should add and clean up a table with a disconnect method", function() -- Line 43
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local tbl_4 = {
                Connected = true;
                Disconnect = function(arg1) -- Line 45, Named "Disconnect"
                    arg1.Connected = false
                end;
            }
            var4_upvw:Add(tbl_4)
            var4_upvw:Destroy()
            expect(tbl_4.Connected).to.equal(false)
        end)
        it("should add and clean up a function", function() -- Line 53
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local var17_upvw = false
            var4_upvw:Add(function() -- Line 55
                --[[ Upvalues[1]:
                    [1]: var17_upvw (read and write)
                ]]
                var17_upvw = true
            end)
            var4_upvw:Destroy()
            expect(var17_upvw).to.equal(true)
        end)
        it("should allow a custom cleanup method", function() -- Line 62
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local tbl_5 = {
                Cleaned = false;
                Cleanup = function(arg1) -- Line 64, Named "Cleanup"
                    arg1.Cleaned = true
                end;
            }
            var4_upvw:Add(tbl_5, "Cleanup")
            var4_upvw:Destroy()
            expect(tbl_5.Cleaned).to.equal(true)
        end)
        it("should return the object passed to add", function() -- Line 72
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local Part = Instance.new("Part")
            expect(Part).to.equal(var4_upvw:Add(Part))
            var4_upvw:Destroy()
        end)
        it("should fail to add object without proper cleanup method", function() -- Line 79
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local tbl_2_upvr = {}
            expect(function() -- Line 81
                --[[ Upvalues[2]:
                    [1]: var4_upvw (copied, read and write)
                    [2]: tbl_2_upvr (readonly)
                ]]
                var4_upvw:Add(tbl_2_upvr)
            end).to.throw()
        end)
        it("should construct an object and add it", function() -- Line 86
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local tbl_3_upvr = {}
            tbl_3_upvr.__index = tbl_3_upvr
            function tbl_3_upvr.new(arg1) -- Line 89
                --[[ Upvalues[1]:
                    [1]: tbl_3_upvr (readonly)
                ]]
                local setmetatable_result1 = setmetatable({}, tbl_3_upvr)
                setmetatable_result1._msg = arg1
                setmetatable_result1._destroyed = false
                return setmetatable_result1
            end
            function tbl_3_upvr.Destroy(arg1) -- Line 95
                arg1._destroyed = true
            end
            local any_Construct_result1_2 = var4_upvw:Construct(tbl_3_upvr, "abc")
            expect(typeof(any_Construct_result1_2)).to.equal("table")
            expect(getmetatable(any_Construct_result1_2)).to.equal(tbl_3_upvr)
            expect(any_Construct_result1_2._msg).to.equal("abc")
            expect(any_Construct_result1_2._destroyed).to.equal(false)
            var4_upvw:Destroy()
            expect(any_Construct_result1_2._destroyed).to.equal(true)
        end)
        it("should connect to a signal", function() -- Line 108
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local any_Connect_result1_4 = var4_upvw:Connect(workspace.Changed, function() -- Line 109
            end)
            expect(typeof(any_Connect_result1_4)).to.equal("RBXScriptConnection")
            expect(any_Connect_result1_4.Connected).to.equal(true)
            var4_upvw:Destroy()
            expect(any_Connect_result1_4.Connected).to.equal(false)
        end)
        it("should remove an object", function() -- Line 116
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local any_Connect_result1 = var4_upvw:Connect(workspace.Changed, function() -- Line 117
            end)
            expect(var4_upvw:Remove(any_Connect_result1)).to.equal(true)
            expect(any_Connect_result1.Connected).to.equal(false)
        end)
        it("should not remove an object not in the trove", function() -- Line 122
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local any_Connect_result1_3 = workspace.Changed:Connect(function() -- Line 123
            end)
            expect(var4_upvw:Remove(any_Connect_result1_3)).to.equal(false)
            expect(any_Connect_result1_3.Connected).to.equal(true)
            any_Connect_result1_3:Disconnect()
        end)
        it("should attach to instance", function() -- Line 129
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local Part_3 = Instance.new("Part")
            Part_3.Parent = workspace
            local any_AttachToInstance_result1 = var4_upvw:AttachToInstance(Part_3)
            expect(any_AttachToInstance_result1.Connected).to.equal(true)
            Part_3:Destroy()
            expect(any_AttachToInstance_result1.Connected).to.equal(false)
        end)
        it("should fail to attach to instance not in hierarchy", function() -- Line 138
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local Part_2_upvr = Instance.new("Part")
            expect(function() -- Line 140
                --[[ Upvalues[2]:
                    [1]: var4_upvw (copied, read and write)
                    [2]: Part_2_upvr (readonly)
                ]]
                var4_upvw:AttachToInstance(Part_2_upvr)
            end).to.throw()
        end)
        it("should extend itself", function() -- Line 145
            --[[ Upvalues[2]:
                [1]: var4_upvw (read and write)
                [2]: Parent_upvr (copied, readonly)
            ]]
            local any_Extend_result1 = var4_upvw:Extend()
            local var47_upvw = false
            any_Extend_result1:Add(function() -- Line 148
                --[[ Upvalues[1]:
                    [1]: var47_upvw (read and write)
                ]]
                var47_upvw = true
            end)
            expect(any_Extend_result1).to.be.a("table")
            expect(getmetatable(any_Extend_result1)).to.equal(Parent_upvr)
            var4_upvw:Clean()
            expect(var47_upvw).to.equal(true)
        end)
        it("should clone an instance", function() -- Line 157
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local any_Construct_result1 = var4_upvw:Construct(Instance.new, "Part")
            any_Construct_result1.Name = "TroveCloneTest"
            local clone = var4_upvw:Clone(any_Construct_result1)
            expect(typeof(clone)).to.equal("Instance")
            expect(clone).to.never.equal(any_Construct_result1)
            expect(clone.Name).to.equal("TroveCloneTest")
            expect(any_Construct_result1.Name).to.equal(clone.Name)
        end)
        it("should clean up a thread", function() -- Line 168
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            local coroutine_create_result1 = coroutine.create(function() -- Line 169
            end)
            var4_upvw:Add(coroutine_create_result1)
            expect(coroutine.status(coroutine_create_result1)).to.equal("suspended")
            var4_upvw:Clean()
            expect(coroutine.status(coroutine_create_result1)).to.equal("dead")
        end)
        it("should not allow objects added during cleanup", function() -- Line 176
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            expect(function() -- Line 177
                --[[ Upvalues[1]:
                    [1]: var4_upvw (copied, read and write)
                ]]
                var4_upvw:Add(function() -- Line 178
                    --[[ Upvalues[1]:
                        [1]: var4_upvw (copied, read and write)
                    ]]
                    var4_upvw:Add(function() -- Line 179
                    end)
                end)
                var4_upvw:Clean()
            end).to.throw()
        end)
        it("should not allow objects to be removed during cleanup", function() -- Line 185
            --[[ Upvalues[1]:
                [1]: var4_upvw (read and write)
            ]]
            expect(function() -- Line 186
                --[[ Upvalues[1]:
                    [1]: var4_upvw (copied, read and write)
                ]]
                local function var61_upvr() -- Line 187
                end
                var4_upvw:Add(var61_upvr)
                var4_upvw:Add(function() -- Line 189
                    --[[ Upvalues[2]:
                        [1]: var4_upvw (copied, read and write)
                        [2]: var61_upvr (readonly)
                    ]]
                    var4_upvw:Remove(var61_upvr)
                end)
                var4_upvw:Clean()
            end).to.throw()
        end)
    end)
end
ModuleScript wally ReplicatedStorage.PopupShop.Packages._Index.sleitnick_trove@1.3.0.trove.wally
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:00
-- Luau version 6, Types version 3
-- Time taken: 0.000802 seconds

return {
    package = {
        authors = {"Stephen Leitnick"};
        description = "Trove class for tracking and cleaning up objects";
        license = "MIT";
        name = "sleitnick/trove";
        realm = "shared";
        registry = "https://github.com/UpliftGames/wally-index";
        version = "1.3.0";
    };
}
LocalScript RbxCharacterSounds RbxCharacterSounds
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:02
-- Luau version 6, Types version 3
-- Time taken: 0.025626 seconds

local Players = game:GetService("Players")
local function _(arg1) -- Line 9, Named "loadFlag"
    local pcall_result1, pcall_result2 = pcall(function() -- Line 10
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return UserSettings():IsUserFeatureEnabled(arg1)
    end)
    return pcall_result1 and pcall_result2
end
local tbl_8_upvr = {
    Climbing = {
        SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3";
        Looped = true;
    };
    Died = {
        SoundId = "rbxasset://sounds/uuhhh.mp3";
    };
    FreeFalling = {
        SoundId = "rbxasset://sounds/action_falling.mp3";
        Looped = true;
    };
    GettingUp = {
        SoundId = "";
    };
    Jumping = {
        SoundId = "";
    };
    Landing = {
        SoundId = "";
    };
    Running = {
        SoundId = "";
        Looped = true;
        Pitch = 1.85;
    };
    Splash = {
        SoundId = "rbxasset://sounds/impact_water.mp3";
    };
    Swimming = {
        SoundId = "rbxasset://sounds/action_swim.mp3";
        Looped = true;
        Pitch = 1.6;
    };
}
local function _(arg1, arg2, arg3, arg4, arg5) -- Line 53, Named "map"
    return (arg1 - arg2) * (arg5 - arg4) / (arg3 - arg2) + arg4
end
local function _(arg1) -- Line 57, Named "playSound"
    arg1.TimePosition = 0
    arg1.Playing = true
end
local function _(arg1) -- Line 62, Named "shallowCopy"
    local module = {}
    for i, v in pairs(arg1) do
        module[i] = v
    end
    return module
end
local RunService_upvr = game:GetService("RunService")
local any_new_result1_upvr = require(script:WaitForChild("AtomicBinding")).new({
    humanoid = "Humanoid";
    rootPart = "HumanoidRootPart";
}, function(arg1) -- Line 70, Named "initializeSoundSystem"
    --[[ Upvalues[2]:
        [1]: tbl_8_upvr (readonly)
        [2]: RunService_upvr (readonly)
    ]]
    local humanoid_upvr = arg1.humanoid
    local rootPart_upvr = arg1.rootPart
    local tbl_12_upvr = {}
    for i_2, v_2 in pairs(tbl_8_upvr) do
        local Sound = Instance.new("Sound")
        Sound.Name = i_2
        Sound.Archivable = false
        Sound.RollOffMinDistance = 5
        Sound.RollOffMaxDistance = 150
        Sound.Volume = 0.65
        for i_3, v_3 in pairs(v_2) do
            Sound[i_3] = v_3
        end
        Sound.Parent = rootPart_upvr
        tbl_12_upvr[i_2] = Sound
    end
    local tbl_7_upvr = {}
    local function _(arg1_2) -- Line 98, Named "stopPlayingLoopedSounds"
        --[[ Upvalues[1]:
            [1]: tbl_7_upvr (readonly)
        ]]
        local tbl_2 = {}
        for i_4, v_4 in pairs(tbl_7_upvr) do
            tbl_2[i_4] = v_4
        end
        for i_5 in pairs(tbl_2) do
            if i_5 ~= arg1_2 then
                i_5.Playing = false
                tbl_7_upvr[i_5] = nil
            end
        end
    end
    local tbl_5_upvr = {
        [Enum.HumanoidStateType.FallingDown] = function() -- Line 109
            --[[ Upvalues[1]:
                [1]: tbl_7_upvr (readonly)
            ]]
            local tbl_14 = {}
            for i_6, v_5 in pairs(tbl_7_upvr) do
                tbl_14[i_6] = v_5
            end
            for i_7 in pairs(tbl_14) do
                if i_7 ~= nil then
                    i_7.Playing = false
                    tbl_7_upvr[i_7] = nil
                end
            end
        end;
        [Enum.HumanoidStateType.GettingUp] = function() -- Line 113
            --[[ Upvalues[2]:
                [1]: tbl_7_upvr (readonly)
                [2]: tbl_12_upvr (readonly)
            ]]
            local tbl_3 = {}
            for i_8, v_6 in pairs(tbl_7_upvr) do
                tbl_3[i_8] = v_6
            end
            for i_9 in pairs(tbl_3) do
                if i_9 ~= nil then
                    i_9.Playing = false
                    tbl_7_upvr[i_9] = nil
                end
            end
            local GettingUp = tbl_12_upvr.GettingUp
            GettingUp.TimePosition = 0
            GettingUp.Playing = true
        end;
        [Enum.HumanoidStateType.Jumping] = function() -- Line 118
            --[[ Upvalues[2]:
                [1]: tbl_7_upvr (readonly)
                [2]: tbl_12_upvr (readonly)
            ]]
            local tbl_13 = {}
            for i_10, v_7 in pairs(tbl_7_upvr) do
                tbl_13[i_10] = v_7
            end
            for i_11 in pairs(tbl_13) do
                if i_11 ~= nil then
                    i_11.Playing = false
                    tbl_7_upvr[i_11] = nil
                end
            end
            local Jumping = tbl_12_upvr.Jumping
            Jumping.TimePosition = 0
            Jumping.Playing = true
        end;
        [Enum.HumanoidStateType.Swimming] = function() -- Line 123
            --[[ Upvalues[3]:
                [1]: rootPart_upvr (readonly)
                [2]: tbl_12_upvr (readonly)
                [3]: tbl_7_upvr (readonly)
            ]]
            local absolute_2 = math.abs(rootPart_upvr.AssemblyLinearVelocity.Y)
            if 0.1 < absolute_2 then
                tbl_12_upvr.Splash.Volume = math.clamp((absolute_2 - 100) * 0.72 / 250 + 0.28, 0, 1)
                local Splash = tbl_12_upvr.Splash
                Splash.TimePosition = 0
                Splash.Playing = true
            end
            for i_12, v_8 in pairs(tbl_7_upvr) do
                ({})[i_12] = v_8
                local var118
            end
            for i_13 in pairs(var118) do
                if i_13 ~= tbl_12_upvr.Swimming then
                    i_13.Playing = false
                    tbl_7_upvr[i_13] = nil
                end
            end
            tbl_12_upvr.Swimming.Playing = true
            tbl_7_upvr[tbl_12_upvr.Swimming] = true
        end;
        [Enum.HumanoidStateType.Freefall] = function() -- Line 134
            --[[ Upvalues[2]:
                [1]: tbl_12_upvr (readonly)
                [2]: tbl_7_upvr (readonly)
            ]]
            tbl_12_upvr.FreeFalling.Volume = 0
            local tbl = {}
            for i_14, v_9 in pairs(tbl_7_upvr) do
                tbl[i_14] = v_9
            end
            for i_15 in pairs(tbl) do
                if i_15 ~= tbl_12_upvr.FreeFalling then
                    i_15.Playing = false
                    tbl_7_upvr[i_15] = nil
                end
            end
            tbl_7_upvr[tbl_12_upvr.FreeFalling] = true
        end;
        [Enum.HumanoidStateType.Landed] = function() -- Line 140
            --[[ Upvalues[3]:
                [1]: tbl_7_upvr (readonly)
                [2]: rootPart_upvr (readonly)
                [3]: tbl_12_upvr (readonly)
            ]]
            local tbl_9 = {}
            for i_16, v_10 in pairs(tbl_7_upvr) do
                tbl_9[i_16] = v_10
            end
            for i_17 in pairs(tbl_9) do
                if i_17 ~= nil then
                    i_17.Playing = false
                    tbl_7_upvr[i_17] = nil
                end
            end
            local absolute = math.abs(rootPart_upvr.AssemblyLinearVelocity.Y)
            if 75 < absolute then
                tbl_12_upvr.Landing.Volume = math.clamp((absolute - 50) * 1 / 50 + 0, 0, 1)
                local Landing = tbl_12_upvr.Landing
                Landing.TimePosition = 0
                Landing.Playing = true
            end
        end;
        [Enum.HumanoidStateType.Running] = function() -- Line 149
            --[[ Upvalues[2]:
                [1]: tbl_12_upvr (readonly)
                [2]: tbl_7_upvr (readonly)
            ]]
            local tbl_10 = {}
            for i_18, v_11 in pairs(tbl_7_upvr) do
                tbl_10[i_18] = v_11
            end
            for i_19 in pairs(tbl_10) do
                if i_19 ~= tbl_12_upvr.Running then
                    i_19.Playing = false
                    tbl_7_upvr[i_19] = nil
                end
            end
            tbl_12_upvr.Running.Playing = true
            tbl_7_upvr[tbl_12_upvr.Running] = true
        end;
        [Enum.HumanoidStateType.Climbing] = function() -- Line 155
            --[[ Upvalues[3]:
                [1]: tbl_12_upvr (readonly)
                [2]: rootPart_upvr (readonly)
                [3]: tbl_7_upvr (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            local Climbing = tbl_12_upvr.Climbing
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [15] 11. Error Block 30 start (CF ANALYSIS FAILED)
            Climbing.Playing = true
            for i_20, v_12 in pairs(tbl_7_upvr) do
                ({})[i_20] = v_12
                local var178
            end
            for i_21 in pairs(var178) do
                if i_21 ~= Climbing then
                    i_21.Playing = false
                    tbl_7_upvr[i_21] = nil
                end
            end
            tbl_7_upvr[Climbing] = true
            -- KONSTANTERROR: [15] 11. Error Block 30 end (CF ANALYSIS FAILED)
        end;
        [Enum.HumanoidStateType.Seated] = function() -- Line 166
            --[[ Upvalues[1]:
                [1]: tbl_7_upvr (readonly)
            ]]
            local tbl_11 = {}
            for i_22, v_13 in pairs(tbl_7_upvr) do
                tbl_11[i_22] = v_13
            end
            for i_23 in pairs(tbl_11) do
                if i_23 ~= nil then
                    i_23.Playing = false
                    tbl_7_upvr[i_23] = nil
                end
            end
        end;
        [Enum.HumanoidStateType.Dead] = function() -- Line 170
            --[[ Upvalues[2]:
                [1]: tbl_7_upvr (readonly)
                [2]: tbl_12_upvr (readonly)
            ]]
            local tbl_6 = {}
            for i_24, v_14 in pairs(tbl_7_upvr) do
                tbl_6[i_24] = v_14
            end
            for i_25 in pairs(tbl_6) do
                if i_25 ~= nil then
                    i_25.Playing = false
                    tbl_7_upvr[i_25] = nil
                end
            end
            local Died = tbl_12_upvr.Died
            Died.TimePosition = 0
            Died.Playing = true
        end;
    }
    local tbl_4_upvr = {
        [tbl_12_upvr.Climbing] = function(arg1_3, arg2, arg3) -- Line 178
            local var213
            if 0.1 >= arg3.Magnitude then
                var213 = false
            else
                var213 = true
            end
            arg2.Playing = var213
        end;
        [tbl_12_upvr.FreeFalling] = function(arg1_4, arg2, arg3) -- Line 182
            if 75 < arg3.Magnitude then
                arg2.Volume = math.clamp(arg2.Volume + arg1_4 * 0.9, 0, 1)
            else
                arg2.Volume = 0
            end
        end;
        [tbl_12_upvr.Running] = function(arg1_5, arg2, arg3) -- Line 190
            --[[ Upvalues[1]:
                [1]: humanoid_upvr (readonly)
            ]]
            local var216 = false
            if 0.5 < arg3.Magnitude then
                if 0.5 >= humanoid_upvr.MoveDirection.Magnitude then
                    var216 = false
                else
                    var216 = true
                end
            end
            arg2.Playing = var216
        end;
    }
    local tbl_upvr_2 = {
        [Enum.HumanoidStateType.RunningNoPhysics] = Enum.HumanoidStateType.Running;
    }
    local var218_upvw = tbl_upvr_2[humanoid_upvr:GetState()]
    if not var218_upvw then
        var218_upvw = humanoid_upvr:GetState()
    end
    local function _(arg1_6) -- Line 202, Named "transitionTo"
        --[[ Upvalues[2]:
            [1]: tbl_5_upvr (readonly)
            [2]: var218_upvw (read and write)
        ]]
        local var219 = tbl_5_upvr[arg1_6]
        if var219 then
            var219()
        end
        var218_upvw = arg1_6
    end
    local var220 = var218_upvw
    local var221 = tbl_5_upvr[var220]
    if var221 then
        var221()
    end
    var218_upvw = var220
    local any_Connect_result1_upvr_2 = humanoid_upvr.StateChanged:Connect(function(arg1_7, arg2) -- Line 214
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (readonly)
            [2]: var218_upvw (read and write)
            [3]: tbl_5_upvr (readonly)
        ]]
        local var223 = tbl_upvr_2[arg2] or arg2
        if var223 ~= var218_upvw then
            local var224 = var223
            local var225 = tbl_5_upvr[var224]
            if var225 then
                var225()
            end
            var218_upvw = var224
        end
    end)
    local any_Connect_result1_upvr = RunService_upvr.Stepped:Connect(function(arg1_8, arg2) -- Line 222
        --[[ Upvalues[3]:
            [1]: tbl_7_upvr (readonly)
            [2]: tbl_4_upvr (readonly)
            [3]: rootPart_upvr (readonly)
        ]]
        for i_26 in pairs(tbl_7_upvr) do
            local var231 = tbl_4_upvr[i_26]
            if var231 then
                var231(arg2, i_26, rootPart_upvr.AssemblyLinearVelocity)
            end
        end
    end)
    return function() -- Line 233, Named "terminate"
        --[[ Upvalues[3]:
            [1]: any_Connect_result1_upvr_2 (readonly)
            [2]: any_Connect_result1_upvr (readonly)
            [3]: tbl_12_upvr (readonly)
        ]]
        any_Connect_result1_upvr_2:Disconnect()
        any_Connect_result1_upvr:Disconnect()
        for _, v_15 in pairs(tbl_12_upvr) do
            v_15:Destroy()
        end
        table.clear(tbl_12_upvr)
    end
end)
local tbl_upvr = {}
local function characterAdded_upvr(arg1) -- Line 256, Named "characterAdded"
    --[[ Upvalues[1]:
        [1]: any_new_result1_upvr (readonly)
    ]]
    any_new_result1_upvr:bindRoot(arg1)
end
local function characterRemoving_upvr(arg1) -- Line 260, Named "characterRemoving"
    --[[ Upvalues[1]:
        [1]: any_new_result1_upvr (readonly)
    ]]
    any_new_result1_upvr:unbindRoot(arg1)
end
local function playerAdded(arg1) -- Line 264
    --[[ Upvalues[4]:
        [1]: tbl_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: characterAdded_upvr (readonly)
        [4]: characterRemoving_upvr (readonly)
    ]]
    local var242 = tbl_upvr[arg1]
    if not var242 then
        var242 = {}
        tbl_upvr[arg1] = var242
    end
    if arg1.Character then
        any_new_result1_upvr:bindRoot(arg1.Character)
    end
    table.insert(var242, arg1.CharacterAdded:Connect(characterAdded_upvr))
    table.insert(var242, arg1.CharacterRemoving:Connect(characterRemoving_upvr))
end
for _, v_17 in ipairs(Players:GetPlayers()) do
    task.spawn(playerAdded, v_17)
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerRemoving:Connect(function(arg1) -- Line 278, Named "playerRemoving"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    local var245 = tbl_upvr[arg1]
    if var245 then
        for _, v_16 in ipairs(var245) do
            v_16:Disconnect()
        end
        tbl_upvr[arg1] = nil
    end
    if arg1.Character then
        any_new_result1_upvr:unbindRoot(arg1.Character)
    end
end)
ModuleScript AtomicBinding AtomicBinding
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:04
-- Luau version 6, Types version 3
-- Time taken: 0.013093 seconds

local function parsePath_upvr(arg1) -- Line 4, Named "parsePath"
    local string_split_result1 = string.split(arg1, '/')
    for i = #string_split_result1, 1, -1 do
        if string_split_result1[i] == "" then
            table.remove(string_split_result1, i)
        end
    end
    return string_split_result1
end
local function _(arg1, arg2) -- Line 14, Named "isManifestResolved"
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 15 start (CF ANALYSIS FAILED)
    local var7 = 0
    for _ in pairs(arg1) do
        var7 += 1
    end
    if var7 > arg2 then
        -- KONSTANTWARNING: GOTO [13] #11
    end
    -- KONSTANTERROR: [0] 1. Error Block 15 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 10. Error Block 18 start (CF ANALYSIS FAILED)
    assert(true, var7)
    if var7 ~= arg2 then
    else
    end
    do
        return true
    end
    -- KONSTANTERROR: [12] 10. Error Block 18 end (CF ANALYSIS FAILED)
end
local function unbindNodeDescend_upvr(arg1, arg2) -- Line 24, Named "unbindNodeDescend"
    --[[ Upvalues[1]:
        [1]: unbindNodeDescend_upvr (readonly)
    ]]
    if arg1.instance == nil then
    else
        arg1.instance = nil
        local connections = arg1.connections
        if connections then
            for _, v_7 in ipairs(connections) do
                v_7:Disconnect()
            end
            table.clear(connections)
        end
        if arg2 and arg1.alias then
            arg2[arg1.alias] = nil
        end
        local children = arg1.children
        if children then
            for _, v_8 in pairs(children) do
                unbindNodeDescend_upvr(v_8, arg2)
            end
        end
    end
end
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1, arg2) -- Line 54
    --[[ Upvalues[2]:
        [1]: parsePath_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    local var29 = 1
    for i_3, v in pairs(arg1) do
        tbl[i_3] = parsePath_upvr(v)
        var29 += 1
    end
    local module = {}
    module._boundFn = arg2
    module._parsedManifest = tbl
    module._manifestSizeTarget = var29
    module._dtorMap = {}
    module._connections = {}
    module._rootInstToRootNode = {}
    module._rootInstToManifest = {}
    return setmetatable(module, module_upvr)
end
function module_upvr._startBoundFn(arg1, arg2, arg3) -- Line 80
    local _dtorMap = arg1._dtorMap
    local var35 = _dtorMap[arg2]
    if var35 then
        var35()
        _dtorMap[arg2] = nil
    end
    local any__boundFn_result1 = arg1._boundFn(arg3)
    if any__boundFn_result1 then
        _dtorMap[arg2] = any__boundFn_result1
    end
end
function module_upvr._stopBoundFn(arg1, arg2) -- Line 96
    local _dtorMap_2 = arg1._dtorMap
    local var38 = _dtorMap_2[arg2]
    if var38 then
        var38()
        _dtorMap_2[arg2] = nil
    end
end
function module_upvr.bindRoot(arg1, arg2) -- Line 106
    --[[ Upvalues[1]:
        [1]: unbindNodeDescend_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    debug.profilebegin("AtomicBinding:BindRoot")
    local _parsedManifest = arg1._parsedManifest
    local _rootInstToManifest_2 = arg1._rootInstToManifest
    local var57
    if _rootInstToManifest_2[arg2] ~= nil then
        var57 = false
    else
        var57 = true
    end
    assert(var57)
    local tbl_upvr = {}
    _rootInstToManifest_2[arg2] = tbl_upvr
    var57 = debug.profilebegin
    var57("BuildTree")
    var57 = {}
    var57.alias = "root"
    var57.instance = arg2
    if next(_parsedManifest) then
        var57.children = {}
        var57.connections = {}
    end
    arg1._rootInstToRootNode[arg2] = var57
    for i_4, v_2 in pairs(_parsedManifest) do
        local var62 = var57
        for i_5, v_3 in ipairs(v_2) do
            local var66
            if i_5 ~= #v_2 then
                var66 = false
            else
                var66 = true
            end
            if not var62.children[v_3] then
                local tbl_2 = {}
                local var68
            end
            if var66 then
                var68 = tbl_2.alias
                if var68 ~= nil then
                    var68 = error
                    var68("Multiple aliases assigned to one instance")
                end
                tbl_2.alias = i_4
            else
                var68 = tbl_2.children
                if not var68 then
                    var68 = {}
                end
                tbl_2.children = var68
                var68 = tbl_2.connections
                if not var68 then
                    var68 = {}
                end
                tbl_2.connections = var68
            end
            var62.children[v_3] = tbl_2
        end
    end
    debug.profileend()
    local _manifestSizeTarget_upvr = arg1._manifestSizeTarget
    local function processNode_upvr(arg1_2) -- Line 160, Named "processNode"
        --[[ Upvalues[6]:
            [1]: tbl_upvr (readonly)
            [2]: processNode_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
            [5]: unbindNodeDescend_upvr (copied, readonly)
            [6]: _manifestSizeTarget_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local alias = arg1_2.alias
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [12] 9. Error Block 2 start (CF ANALYSIS FAILED)
        tbl_upvr[alias] = assert(arg1_2.instance)
        -- KONSTANTERROR: [12] 9. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 11. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 11. Error Block 3 end (CF ANALYSIS FAILED)
    end
    debug.profilebegin("ResolveTree")
    processNode_upvr(var57)
    debug.profileend()
    debug.profileend()
end
function module_upvr.unbindRoot(arg1, arg2) -- Line 236
    --[[ Upvalues[1]:
        [1]: unbindNodeDescend_upvr (readonly)
    ]]
    local _rootInstToRootNode = arg1._rootInstToRootNode
    local _rootInstToManifest = arg1._rootInstToManifest
    arg1:_stopBoundFn(arg2)
    local var73 = _rootInstToRootNode[arg2]
    if var73 then
        unbindNodeDescend_upvr(var73, assert(_rootInstToManifest[arg2]))
        _rootInstToRootNode[arg2] = nil
    end
    _rootInstToManifest[arg2] = nil
end
function module_upvr.destroy(arg1) -- Line 252
    --[[ Upvalues[1]:
        [1]: unbindNodeDescend_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    debug.profilebegin("AtomicBinding:destroy")
    for _, v_4 in pairs(arg1._dtorMap) do
        v_4:destroy()
    end
    table.clear(arg1._dtorMap)
    for _, v_5 in ipairs(arg1._connections) do
        v_5:Disconnect()
    end
    table.clear(arg1._connections)
    for i_8, v_6 in pairs(arg1._rootInstToRootNode) do
        unbindNodeDescend_upvr(v_6, assert(arg1._rootInstToManifest[i_8]))
        local _
    end
    table.clear(arg1._rootInstToManifest)
    table.clear(arg1._rootInstToRootNode)
    debug.profileend()
end
return module_upvr
LocalScript ClientEngine ClientEngine
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:05
-- Luau version 6, Types version 3
-- Time taken: 0.030036 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
engine:load("Ping")
local any_new_result1_upvr_2 = engine:load("Ragdoll").new()
any_new_result1_upvr_2:init()
local Services_upvr_2 = engine.Services
local LocalPlayer = Services_upvr_2.Players.LocalPlayer
if engine:load("Global")._debug then
    if not table.find(engine:load("Whitelist", "utils"), LocalPlayer.UserId) then return end
end
if table.find(engine:load("Blacklist", "utils").users, LocalPlayer.UserId) then
else
    if not Services_upvr_2.RunService:IsStudio() or not script:GetAttribute("disableBootstrapperInStudio") then
        task.spawn(function() -- Line 68
            require(script:WaitForChild("bootstrapper"), 100)
        end)
    end
    local Character_upvw = LocalPlayer.Character
    if not Character_upvw then
        Character_upvw = LocalPlayer.CharacterAdded:Wait()
    end
    local tbl_3_upvr = {
        Forward = {
            Key = Enum.KeyCode.W;
            Direction = Enum.NormalId.Front;
        };
        Backward = {
            Key = Enum.KeyCode.S;
            Direction = Enum.NormalId.Back;
        };
        Left = {
            Key = Enum.KeyCode.A;
            Direction = Enum.NormalId.Left;
        };
        Right = {
            Key = Enum.KeyCode.D;
            Direction = Enum.NormalId.Right;
        };
    }
    local visuals_upvr = script.Parent:WaitForChild("visuals", 100)
    local controllers_upvr = script.Parent:WaitForChild("controllers", 100)
    local tbl_upvr = {
        visuals = {};
        controllers = {};
        mechanics = {};
    }
    local function _(arg1, arg2, arg3) -- Line 103, Named "lerp"
        return arg1 + (arg2 - arg1) * arg3
    end
    local PlayerModule_upvr = require(LocalPlayer.PlayerScripts.PlayerModule)
    local function getWalkDirectionCameraSpace_upvr(arg1) -- Line 107, Named "getWalkDirectionCameraSpace"
        --[[ Upvalues[3]:
            [1]: Services_upvr_2 (readonly)
            [2]: PlayerModule_upvr (readonly)
            [3]: tbl_3_upvr (readonly)
        ]]
        local var92
        if arg1 and (Services_upvr_2.UserInputService.TouchEnabled or arg1 == Enum.UserInputType.Gamepad1) then
            var92 += PlayerModule_upvr:GetControls():GetMoveVector()
            return var92
        end
        for _, v in pairs(tbl_3_upvr) do
            if Services_upvr_2.UserInputService:IsKeyDown(v.Key) and not Services_upvr_2.UserInputService:GetFocusedTextBox() then
                var92 += Vector3.FromNormalId(v.Direction)
            end
        end
        if 0 < var92.Magnitude then
            var92 = var92.Unit
        end
        return var92
    end
    local function _(arg1) -- Line 131, Named "getWalkDirectionWorldSpace"
        --[[ Upvalues[1]:
            [1]: getWalkDirectionCameraSpace_upvr (readonly)
        ]]
        local var96 = workspace.CurrentCamera.CFrame:VectorToWorldSpace(getWalkDirectionCameraSpace_upvr(arg1)) * Vector3.new(1, 0, 1)
        if 0 < var96.Magnitude then
            var96 = var96.Unit
        end
        return var96
    end
    for _, v_2_upvr in next, visuals_upvr:GetChildren() do
        if v_2_upvr and v_2_upvr:IsA("ModuleScript") then
            task.spawn(function() -- Line 146
                --[[ Upvalues[2]:
                    [1]: v_2_upvr (readonly)
                    [2]: tbl_upvr (readonly)
                ]]
                local v_2_upvr_2 = require(v_2_upvr)
                tbl_upvr.visuals[v_2_upvr.Name] = v_2_upvr_2
                if v_2_upvr_2.init then
                    v_2_upvr_2:init()
                end
            end)
        end
    end
    for _, v_3_upvr in next, script.Parent:WaitForChild("mechanics", 100):GetChildren() do
        if v_3_upvr and v_3_upvr:IsA("ModuleScript") then
            task.spawn(function() -- Line 159
                --[[ Upvalues[2]:
                    [1]: v_3_upvr (readonly)
                    [2]: tbl_upvr (readonly)
                ]]
                local v_3_upvr_2 = require(v_3_upvr)
                tbl_upvr.mechanics[v_3_upvr.Name] = v_3_upvr_2
                if v_3_upvr_2.init then
                    v_3_upvr_2:init()
                end
            end)
        end
    end
    for i_4, v_4_upvr in next, controllers_upvr:GetChildren() do
        if v_4_upvr and v_4_upvr:IsA("ModuleScript") then
            task.spawn(function() -- Line 172
                --[[ Upvalues[2]:
                    [1]: v_4_upvr (readonly)
                    [2]: tbl_upvr (readonly)
                ]]
                local v_4_upvr_2 = require(v_4_upvr)
                tbl_upvr.controllers[v_4_upvr.Name] = v_4_upvr_2
                if v_4_upvr_2.init then
                    if v_4_upvr.Name == "replicationController" then
                        v_4_upvr_2:init(tbl_upvr)
                        return
                    end
                    v_4_upvr_2:init()
                end
            end)
        end
    end
    if Services_upvr_2.RunService:IsServer() then
        v_4_upvr = tick() - tick()
        i_4 = tostring(v_4_upvr)
        warn(string.format("Engine.Server | Modules intialized, time taken: %s", i_4))
    elseif Services_upvr_2.RunService:IsClient() then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        v_4_upvr = tick() - tick()
        i_4 = tostring(v_4_upvr)
        warn(string.format("Engine.Client | Modules intialized, time taken: %s", i_4))
    end
    LocalPlayer.CharacterAdded:Connect(function(arg1) -- Line 195
        --[[ Upvalues[5]:
            [1]: Character_upvw (read and write)
            [2]: any_new_result1_upvr_2 (readonly)
            [3]: tbl_upvr (readonly)
            [4]: visuals_upvr (readonly)
            [5]: controllers_upvr (readonly)
        ]]
        -- KONSTANTERROR: Failed to generate AST for unnamed function:
assertion failed!
Traceback:
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K

    end)
    local module_upvr_2 = require(script:WaitForChild("ragdoll", 100))
    script:GetAttributeChangedSignal("Ragdoll"):Connect(function() -- Line 261
        --[[ Upvalues[2]:
            [1]: module_upvr_2 (readonly)
            [2]: Character_upvw (read and write)
        ]]
        if script:GetAttribute("Ragdoll") then
            module_upvr_2:bind(Character_upvw:WaitForChild("Humanoid", 100), script:GetAttribute("IsHolding"))
        else
            module_upvr_2:unbind(Character_upvw:WaitForChild("Humanoid", 100))
        end
    end)
    local zero_vector3_upvw_3 = Vector3.new()
    local zero_vector3_upvw_4 = Vector3.new()
    Services_upvr_2.RunService.RenderStepped:Connect(function(arg1) -- Line 293
        --[[ Upvalues[5]:
            [1]: Character_upvw (read and write)
            [2]: Services_upvr_2 (readonly)
            [3]: getWalkDirectionCameraSpace_upvr (readonly)
            [4]: zero_vector3_upvw_3 (read and write)
            [5]: zero_vector3_upvw_4 (read and write)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local Humanoid = Character_upvw:FindFirstChild("Humanoid")
        local any_GetLastInputType_result1_2 = Services_upvr_2.UserInputService:GetLastInputType()
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [12] 10. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [12] 10. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [18] 15. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [18] 15. Error Block 3 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [24] 20. Error Block 4 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [24] 20. Error Block 4 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 24. Error Block 5 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [30] 24. Error Block 5 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [36] 28. Error Block 6 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [36] 28. Error Block 6 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [97] 72. Error Block 31 start (CF ANALYSIS FAILED)
        local var117 = workspace.CurrentCamera.CFrame:VectorToWorldSpace(getWalkDirectionCameraSpace_upvr(any_GetLastInputType_result1_2)) * Vector3.new(1, 0, 1)
        if 0 < var117.Magnitude then
            var117 = var117.Unit
        end
        zero_vector3_upvw_3 = var117
        local var118 = zero_vector3_upvw_4
        zero_vector3_upvw_4 = var118 + (zero_vector3_upvw_3 - var118) * math.clamp(arg1 * 10, 0, 1)
        Humanoid:Move(zero_vector3_upvw_4)
        do
            return
        end
        -- KONSTANTERROR: [97] 72. Error Block 31 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [138] 104. Error Block 34 start (CF ANALYSIS FAILED)
        if Humanoid and not Character_upvw:GetAttribute("freezeMovement") and not Character_upvw:GetAttribute("moveTo") and not Services_upvr_2.UserInputService.KeyboardEnabled and not Services_upvr_2.UserInputService.MouseEnabled and (Services_upvr_2.UserInputService.TouchEnabled or any_GetLastInputType_result1_2 == Enum.UserInputType.Gamepad1) then
            local var119 = workspace.CurrentCamera.CFrame:VectorToWorldSpace(getWalkDirectionCameraSpace_upvr(any_GetLastInputType_result1_2)) * Vector3.new(1, 0, 1)
            if 0 < var119.Magnitude then
                var119 = var119.Unit
            end
            zero_vector3_upvw_3 = var119
            local var120 = zero_vector3_upvw_4
            zero_vector3_upvw_4 = var120 + (zero_vector3_upvw_3 - var120) * math.clamp(arg1 * math.clamp(script:GetAttribute("moveAcceleration") / 0.66, 5, 10), 0, 1)
            Humanoid:Move(zero_vector3_upvw_4)
        end
        -- KONSTANTERROR: [138] 104. Error Block 34 end (CF ANALYSIS FAILED)
    end)
end
ModuleScript bootstrapper bootstrapper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:08
-- Luau version 6, Types version 3
-- Time taken: 0.125384 seconds

return (function() -- Line 3
    local function var2_upvr(arg1) -- Line 3
        return string.gsub(arg1, "[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=]", ""):gsub('.', function(arg1_2) -- Line 3
            if arg1_2 == '=' then
                return ""
            end
            local var6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/":find(arg1_2) - 1
            for i = 6, 1, -1 do
                local var7
                if 0 < var6 % 2 ^ i - var6 % 2 ^ (i - 1) then
                    var7 = '1'
                else
                    var7 = '0'
                end
            end
            return ""..var7
        end):gsub("%d%d%d?%d?%d?%d?%d?%d?", function(arg1_3) -- Line 3
            local var11
            if var11 ~= 8 then
                var11 = ""
                return var11
            end
            var11 = 0
            for i_2 = 1, 8 do
                local var12
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var12 = 2 ^ (8 - i_2)
                    return var12
                end
                if arg1_3:sub(i_2, i_2) ~= '1' or not INLINED() then
                    var12 = 0
                end
                var11 += var12
            end
            return string.char(var11)
        end)
    end
    local getfenv_upvr = getfenv
    if not getfenv_upvr then
        function getfenv_upvr() -- Line 3
            return _ENV
        end
    end
    local var13_result1_upvr = (function() -- Line 3
        local function j_upvr(arg1, arg2) -- Line 3, Named "j"
            local S_2 = arg1.S
            local i_22 = arg1.i
            local j = arg1.j
            local module_21 = {}
            local char_2 = string.char
            for i_7 = 1, arg2 do
                i_22 = (i_22 + 1) % 256
                j = (j + S_2[i_22]) % 256
                S_2[i_22] = S_2[j]
                S_2[j] = S_2[i_22]
                module_21[i_7] = char_2(S_2[(S_2[i_22] + S_2[j]) % 256])
            end
            arg1.i = i_22
            arg1.j = j
            return table.concat(module_21)
        end
        local a_result1_upvr = (function(arg1) -- Line 3, Named "a"
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local module_8 = {}
            for i_3 = 0, 255 do
                module_8[i_3] = {}
            end
            module_8[0][0] = arg1[1] * 255
            local var31 = 1
            for _ = 0, 7 do
                for i_5 = 0, var31 - 1 do
                    for i_6 = 0, var31 - 1 do
                        local var32 = module_8[i_5][i_6] - arg1[1] * var31
                        module_8[i_5][i_6 + var31] = var32 + arg1[2] * var31
                        module_8[i_5 + var31][i_6] = var32 + arg1[3] * var31
                        module_8[i_5 + var31][i_6 + var31] = var32 + arg1[4] * var31
                        local _
                    end
                end
            end
            return module_8
        end)({0, 1, 1, 0})
        local function p_upvr(arg1, arg2) -- Line 3, Named "p"
            --[[ Upvalues[2]:
                [1]: j_upvr (readonly)
                [2]: a_result1_upvr (readonly)
            ]]
            local j_upvr_result1 = j_upvr(arg1, #arg2)
            local module_3 = {}
            local byte = string.byte
            local char = string.char
            for i_8 = 1, #arg2 do
                module_3[i_8] = char(a_result1_upvr[byte(arg2, i_8)][byte(j_upvr_result1, i_8)])
            end
            return table.concat(module_3)
        end
        local function u_upvr(arg1, arg2) -- Line 3, Named "u"
            local S = arg1.S
            local var52 = 0
            local len = #arg2
            local byte_2 = string.byte
            for i_9 = 0, 255 do
                var52 = (var52 + S[i_9] + byte_2(arg2, i_9 % len + 1)) % 256
                S[i_9] = S[var52]
                S[var52] = S[i_9]
            end
        end
        function new(arg1) -- Line 3
            --[[ Upvalues[3]:
                [1]: j_upvr (readonly)
                [2]: p_upvr (readonly)
                [3]: u_upvr (readonly)
            ]]
            local tbl_34 = {}
            local module_13 = {
                S = tbl_34;
                i = 0;
                j = 0;
                generate = j_upvr;
                cipher = p_upvr;
                schedule = u_upvr;
            }
            for i_10 = 0, 255 do
                tbl_34[i_10] = i_10
            end
            if arg1 then
                i_10 = arg1
                module_13:schedule(i_10)
            end
            return module_13
        end
        return new
    end)()
    function CRYPTEDlIIlIlll(arg1, arg2) -- Line 3
        --[[ Upvalues[1]:
            [1]: var2_upvr (readonly)
        ]]
        return var2_upvr(arg1, arg2), "QHZiQkloTlA+cEtBQWl3MDMzUA=="
    end
    return (function() -- Line 3
        --[[ Upvalues[1]:
            [1]: getfenv_upvr (readonly)
        ]]
        if not bit then
            local var265_upvw
            pcall(function() -- Line 3
                --[[ Upvalues[1]:
                    [1]: var265_upvw (read and write)
                ]]
                var265_upvw = require("bit")
            end)
            bit = var265_upvw -- Setting global
        end
        var265_upvw = bit
        local var267_upvr = var265_upvw
        if not var267_upvr then
            var267_upvr = bit32
            if not var267_upvr then
                var267_upvr = (function() -- Line 3
                    local module_12 = {
                        _TYPE = "module";
                        _NAME = "bit.numberlua";
                        _VERSION = "0.3.1.20120131";
                    }
                    local function e_upvr(arg1) -- Line 3, Named "e"
                        local tbl_29 = {}
                        local setmetatable_result1_upvr = setmetatable({}, tbl_29)
                        function tbl_29.__index(arg1_10, arg2) -- Line 3
                            --[[ Upvalues[2]:
                                [1]: arg1 (readonly)
                                [2]: setmetatable_result1_upvr (readonly)
                            ]]
                            local arg1_result1 = arg1(arg2)
                            setmetatable_result1_upvr[arg2] = arg1_result1
                            return arg1_result1
                        end
                        return setmetatable_result1_upvr
                    end
                    local function k_upvr(arg1, arg2) -- Line 3, Named "k"
                        return function(arg1_11, arg2_3) -- Line 3, Named "m"
                            --[[ Upvalues[2]:
                                [1]: arg2 (readonly)
                                [2]: arg1 (readonly)
                            ]]
                            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                            local const_number_2 = 1
                            local var274
                            while var274 ~= 0 and arg2_3 ~= 0 do
                                local var275 = var274 % arg2
                                local var276 = arg2_3 % arg2
                                var274 = (var274 - var275) / arg2
                            end
                            return 0 + arg1[var275][var276] * const_number_2 + (var274 + (arg2_3 - var276) / arg2) * (const_number_2 * arg2)
                        end
                    end
                    local function tobit(arg1) -- Line 3
                        return arg1 % 4294967296
                    end
                    module_12.tobit = tobit
                    module_12.bxor = (function(arg1) -- Line 3, Named "t"
                        --[[ Upvalues[2]:
                            [1]: k_upvr (readonly)
                            [2]: e_upvr (readonly)
                        ]]
                        local k_upvr_result1_upvr = k_upvr(arg1, 2)
                        return k_upvr(e_upvr(function(arg1_12) -- Line 3
                            --[[ Upvalues[2]:
                                [1]: e_upvr (copied, readonly)
                                [2]: k_upvr_result1_upvr (readonly)
                            ]]
                            return e_upvr(function(arg1_13) -- Line 3
                                --[[ Upvalues[2]:
                                    [1]: k_upvr_result1_upvr (copied, readonly)
                                    [2]: arg1_12 (readonly)
                                ]]
                                return k_upvr_result1_upvr(arg1_12, arg1_13)
                            end)
                        end), 2 ^ (arg1.n or 1))
                    end)({
                        n = 4;
                        {0}
                    })
                    local bxor_upvr = module_12.bxor
                    local function bnot(arg1) -- Line 3
                        return 4294967295 - arg1
                    end
                    module_12.bnot = bnot
                    local bnot_upvr_2 = module_12.bnot
                    function module_12.band(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: bxor_upvr (readonly)
                        ]]
                        return (arg1 + arg2 - bxor_upvr(arg1, arg2)) / 2
                    end
                    local band_3_upvr = module_12.band
                    function module_12.bor(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        return 4294967295 - band_3_upvr(4294967295 - arg1, 4294967295 - arg2)
                    end
                    local var286_upvw
                    local floor_upvr_2 = math.floor
                    local function rshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: var286_upvw (read and write)
                            [2]: floor_upvr_2 (readonly)
                        ]]
                        if arg2 < 0 then
                            return var286_upvw(arg1, -arg2)
                        end
                        return floor_upvr_2(arg1 % 4294967296 / 2 ^ arg2)
                    end
                    module_12.rshift = rshift
                    local rshift_upvw_2 = module_12.rshift
                    local function lshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rshift_upvw_2 (read and write)
                        ]]
                        if arg2 < 0 then
                            return rshift_upvw_2(arg1, -arg2)
                        end
                        return arg1 * 2 ^ arg2 % 4294967296
                    end
                    module_12.lshift = lshift
                    var286_upvw = module_12.lshift
                    local var289_upvw = var286_upvw
                    local function tohex(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        arg2 = arg2 or 8
                        local var290 = arg2
                        local var291
                        if var290 <= 0 then
                            if var290 == 0 then
                                return ""
                            end
                            var291 = true
                            var290 = -var290
                        end
                        local var292 = 16 ^ var290
                        if var291 then
                            var292 = 'X'
                        else
                            var292 = 'x'
                        end
                        return "%0"..var290..var292:format(band_3_upvr(arg1, var292 - 1))
                    end
                    module_12.tohex = tohex
                    local function extract(arg1, arg2, arg3) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw_2 (read and write)
                        ]]
                        return band_3_upvr(rshift_upvw_2(arg1, arg2), 2 ^ (arg3 or 1) - 1)
                    end
                    module_12.extract = extract
                    local function replace(arg1, arg2, arg3, arg4) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: bnot_upvr_2 (readonly)
                            [3]: var289_upvw (read and write)
                        ]]
                        local var293 = 2 ^ (arg4 or 1) - 1
                        return band_3_upvr(arg1, bnot_upvr_2(var289_upvw(var293, arg3))) + var289_upvw(band_3_upvr(arg2, var293), arg3)
                    end
                    module_12.replace = replace
                    local function bswap(arg1) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw_2 (read and write)
                            [3]: var289_upvw (read and write)
                        ]]
                        local var288_result1_3 = rshift_upvw_2(arg1, 8)
                        local var288_result1 = rshift_upvw_2(var288_result1_3, 8)
                        return var289_upvw(var289_upvw(var289_upvw(band_3_upvr(arg1, 255), 8) + band_3_upvr(var288_result1_3, 255), 8) + band_3_upvr(var288_result1, 255), 8) + band_3_upvr(rshift_upvw_2(var288_result1, 8), 255)
                    end
                    module_12.bswap = bswap
                    local function rrotate(arg1, arg2) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw_2 (read and write)
                            [3]: var289_upvw (read and write)
                        ]]
                        local var296 = arg2 % 32
                        return rshift_upvw_2(arg1, var296) + var289_upvw(band_3_upvr(arg1, 2 ^ var296 - 1), 32 - var296)
                    end
                    module_12.rrotate = rrotate
                    local rrotate_upvr_2 = module_12.rrotate
                    local function lrotate(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rrotate_upvr_2 (readonly)
                        ]]
                        return rrotate_upvr_2(arg1, -arg2)
                    end
                    module_12.lrotate = lrotate
                    local lrotate_upvr_2 = module_12.lrotate
                    module_12.rol = module_12.lrotate
                    module_12.ror = module_12.rrotate
                    local function arshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: rshift_upvw_2 (read and write)
                            [2]: var289_upvw (read and write)
                        ]]
                        local var288_result1_2 = rshift_upvw_2(arg1, arg2)
                        if 2147483648 <= arg1 then
                            var288_result1_2 += var289_upvw(2 ^ arg2 - 1, 32 - arg2)
                        end
                        return var288_result1_2
                    end
                    module_12.arshift = arshift
                    local function btest(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        local var300
                        if band_3_upvr(arg1, arg2) == 0 then
                            var300 = false
                        else
                            var300 = true
                        end
                        return var300
                    end
                    module_12.btest = btest
                    module_12.bit32 = {}
                    module_12.bit32.bnot = function(arg1) -- Line 3, Named "W"
                        return (-1 - arg1) % 4294967296
                    end
                    local function X_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "X"
                        --[[ Upvalues[2]:
                            [1]: bxor_upvr (readonly)
                            [2]: X_upvr (readonly)
                        ]]
                        local var301
                        if arg2 then
                            var301 %= 4294967296
                            local var283_result1 = bxor_upvr(var301, arg2 % 4294967296)
                            if arg3 then
                                var283_result1 = X_upvr(var283_result1, arg3, ...)
                            end
                            return var283_result1
                        end
                        if var301 then
                            return var301 % 4294967296
                        end
                        return 0
                    end
                    module_12.bit32.bxor = X_upvr
                    local function Y_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "Y"
                        --[[ Upvalues[2]:
                            [1]: bxor_upvr (readonly)
                            [2]: Y_upvr (readonly)
                        ]]
                        if arg2 then
                            local var303 = arg1 % 4294967296
                            local var304 = arg2 % 4294967296
                            local var305 = (var303 + var304 - bxor_upvr(var303, var304)) / 2
                            if arg3 then
                                var305 = Y_upvr(var305, arg3, ...)
                            end
                            return var305
                        end
                        if var303 then
                            return var303 % 4294967296
                        end
                        return 4294967295
                    end
                    module_12.bit32.band = Y_upvr
                    local function Z_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "Z"
                        --[[ Upvalues[2]:
                            [1]: band_3_upvr (readonly)
                            [2]: Z_upvr (readonly)
                        ]]
                        local var306
                        if arg2 then
                            var306 %= 4294967296
                            local var307 = 4294967295 - band_3_upvr(4294967295 - var306, 4294967295 - arg2 % 4294967296)
                            if arg3 then
                                var307 = Z_upvr(var307, arg3, ...)
                            end
                            return var307
                        end
                        if var306 then
                            return var306 % 4294967296
                        end
                        return 0
                    end
                    module_12.bit32.bor = Z_upvr
                    module_12.bit32.btest = function(...) -- Line 3, Named "btest"
                        --[[ Upvalues[1]:
                            [1]: Y_upvr (readonly)
                        ]]
                        local var308
                        if Y_upvr(...) == 0 then
                            var308 = false
                        else
                            var308 = true
                        end
                        return var308
                    end
                    module_12.bit32.lrotate = function(arg1, arg2) -- Line 3, Named "lrotate"
                        --[[ Upvalues[1]:
                            [1]: lrotate_upvr_2 (readonly)
                        ]]
                        return lrotate_upvr_2(arg1 % 4294967296, arg2)
                    end
                    module_12.bit32.rrotate = function(arg1, arg2) -- Line 3, Named "rrotate"
                        --[[ Upvalues[1]:
                            [1]: rrotate_upvr_2 (readonly)
                        ]]
                        return rrotate_upvr_2(arg1 % 4294967296, arg2)
                    end
                    local function lshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: var289_upvw (read and write)
                        ]]
                        if 31 < arg2 or arg2 < -31 then
                            return 0
                        end
                        return var289_upvw(arg1 % 4294967296, arg2)
                    end
                    module_12.bit32.lshift = lshift
                    local function rshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rshift_upvw_2 (read and write)
                        ]]
                        if 31 < arg2 or arg2 < -31 then
                            return 0
                        end
                        return rshift_upvw_2(arg1 % 4294967296, arg2)
                    end
                    module_12.bit32.rshift = rshift
                    local function arshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: rshift_upvw_2 (read and write)
                            [2]: var289_upvw (read and write)
                        ]]
                        local var309 = arg1 % 4294967296
                        if 0 <= arg2 then
                            if 31 < arg2 then
                                if 2147483648 <= var309 then
                                    return 4294967295
                                end
                                return 0
                            end
                            local var288_result1_4 = rshift_upvw_2(var309, arg2)
                            if 2147483648 <= var309 then
                                var288_result1_4 += var289_upvw(2 ^ arg2 - 1, 32 - arg2)
                            end
                            return var288_result1_4
                        end
                        return var289_upvw(var309, -arg2)
                    end
                    module_12.bit32.arshift = arshift
                    local extract_upvr = module_12.extract
                    module_12.bit32.extract = function(arg1, arg2, ...) -- Line 3, Named "extract"
                        --[[ Upvalues[1]:
                            [1]: extract_upvr (readonly)
                        ]]
                        local var312 = ... or 1
                        if arg2 < 0 or 31 < arg2 or var312 < 0 or 32 < arg2 + var312 then
                            error("out of range")
                        end
                        return extract_upvr(arg1 % 4294967296, arg2, ...)
                    end
                    local replace_upvr = module_12.replace
                    module_12.bit32.replace = function(arg1, arg2, arg3, ...) -- Line 3, Named "replace"
                        --[[ Upvalues[1]:
                            [1]: replace_upvr (readonly)
                        ]]
                        local var314 = ... or 1
                        if arg3 < 0 or 31 < arg3 or var314 < 0 or 32 < arg3 + var314 then
                            error("out of range")
                        end
                        return replace_upvr(arg1 % 4294967296, arg2 % 4294967296, arg3, ...)
                    end
                    module_12.bit = {}
                    module_12.bit.tobit = function(arg1) -- Line 3, Named "tobit"
                        arg1 %= 4294967296
                        local var315 = arg1
                        if 2147483648 <= var315 then
                            var315 -= 4294967296
                        end
                        return var315
                    end
                    local tobit_upvr_2 = module_12.bit.tobit
                    local tohex_upvr_2 = module_12.tohex
                    module_12.bit.tohex = function(arg1, ...) -- Line 3, Named "tohex"
                        --[[ Upvalues[1]:
                            [1]: tohex_upvr_2 (readonly)
                        ]]
                        return tohex_upvr_2(arg1 % 4294967296, ...)
                    end
                    module_12.bit.bnot = function(arg1) -- Line 3, Named "bnot"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: bnot_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(bnot_upvr_2(arg1 % 4294967296))
                    end
                    local bor_4_upvr = module_12.bor
                    local function a0_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a0"
                        --[[ Upvalues[3]:
                            [1]: a0_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: bor_4_upvr (readonly)
                        ]]
                        if arg3 then
                            return a0_upvr(a0_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(bor_4_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_12.bit.bor = a0_upvr
                    local function a1_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a1"
                        --[[ Upvalues[3]:
                            [1]: a1_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: band_3_upvr (readonly)
                        ]]
                        if arg3 then
                            return a1_upvr(a1_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(band_3_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_12.bit.band = a1_upvr
                    local function a2_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a2"
                        --[[ Upvalues[3]:
                            [1]: a2_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: bxor_upvr (readonly)
                        ]]
                        if arg3 then
                            return a2_upvr(a2_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(bxor_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_12.bit.bxor = a2_upvr
                    module_12.bit.lshift = function(arg1, arg2) -- Line 3, Named "lshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: var289_upvw (read and write)
                        ]]
                        return tobit_upvr_2(var289_upvw(arg1 % 4294967296, arg2 % 32))
                    end
                    module_12.bit.rshift = function(arg1, arg2) -- Line 3, Named "rshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: rshift_upvw_2 (read and write)
                        ]]
                        return tobit_upvr_2(rshift_upvw_2(arg1 % 4294967296, arg2 % 32))
                    end
                    local arshift_upvr = module_12.arshift
                    module_12.bit.arshift = function(arg1, arg2) -- Line 3, Named "arshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: arshift_upvr (readonly)
                        ]]
                        return tobit_upvr_2(arshift_upvr(arg1 % 4294967296, arg2 % 32))
                    end
                    module_12.bit.rol = function(arg1, arg2) -- Line 3, Named "rol"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: lrotate_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(lrotate_upvr_2(arg1 % 4294967296, arg2 % 32))
                    end
                    module_12.bit.ror = function(arg1, arg2) -- Line 3, Named "ror"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: rrotate_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(rrotate_upvr_2(arg1 % 4294967296, arg2 % 32))
                    end
                    local bswap_upvr_2 = module_12.bswap
                    module_12.bit.bswap = function(arg1) -- Line 3, Named "bswap"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: bswap_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(bswap_upvr_2(arg1 % 4294967296))
                    end
                    return module_12
                end)()
            end
        end
        local unpack_upvr = table.unpack
        if not unpack_upvr then
            unpack_upvr = unpack
        end
        local tbl_10_upvr = {13, 23, 0, 2, 4, 7, 9, 12, 14, 17, 5, 1, 6, 10, 16, 20, 26, 30, 36, 19, 22, 18, 24, 27, 29, 33, 32, 11, 15, 21, 8, 34, 28, 37, 25, 31, 35}
        local tbl_30_upvr = {"ABx", "ABC", "ABC", "ABC", "ABx", "ABC", "ABx", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "AsBx", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "AsBx", "AsBx", "ABC", "ABC", "ABC", "ABx", "ABC"}
        local tbl_44_upvr = {{
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgR";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgR";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgN";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgN";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }}
        local function aa_upvr(arg1, arg2, arg3, arg4) -- Line 3, Named "aa"
            local var365 = 0
            for i_11 = arg2, arg3, arg4 do
                var365 += string.byte(arg1, i_11, i_11) * 256 ^ (i_11 - arg2)
            end
            return var365
        end
        local function ad_upvr(arg1, arg2, arg3, arg4) -- Line 3, Named "ad"
            --[[ Upvalues[1]:
                [1]: var267_upvr (readonly)
            ]]
            local var366 = -1 ^ var267_upvr.rshift(arg4, 7)
            local var367 = var267_upvr.rshift(arg3, 7) + var267_upvr.lshift(var267_upvr.band(arg4, 127), 1)
            local var368 = 1
            if var367 == 0 then
                if arg1 + var267_upvr.lshift(arg2, 8) + var267_upvr.lshift(var267_upvr.band(arg3, 127), 16) == 0 then
                    return var366 * 0
                end
                var368 = 0
                var367 = 1
            elseif var367 == 127 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if arg1 + var267_upvr.lshift(arg2, 8) + var267_upvr.lshift(var267_upvr.band(arg3, 127), 16) == 0 then
                    return var366 * 1 / 0
                end
                return var366 * 0 / 0
            end
            return var366 * 2 ^ (var367 - 127) * (var368 / 8388608 + 1)
        end
        local function am_upvr(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "am"
            --[[ Upvalues[1]:
                [1]: var267_upvr (readonly)
            ]]
            local var369 = -1 ^ var267_upvr.rshift(arg8, 7)
            local var370 = var267_upvr.lshift(var267_upvr.band(arg8, 127), 4) + var267_upvr.rshift(arg7, 4)
            local var371 = 1
            if var370 == 0 then
                if var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1 == 0 then
                    return var369 * 0
                end
                var371 = 0
                var370 = 1
            elseif var370 == 2047 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1 == 0 then
                    return var369 * 1 / 0
                end
                return var369 * 0 / 0
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return var369 * 2 ^ (var370 - 1023) * (var371 + (var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1) / 4503599627370496)
        end
        local function ar_upvr(arg1, arg2, arg3) -- Line 3, Named "ar"
            --[[ Upvalues[1]:
                [1]: aa_upvr (readonly)
            ]]
            return aa_upvr(arg1, arg2, arg3 - 1, 1)
        end
        local function as_upvr(arg1, arg2, arg3) -- Line 3, Named "as"
            --[[ Upvalues[1]:
                [1]: aa_upvr (readonly)
            ]]
            return aa_upvr(arg1, arg3 - 1, arg2, -1)
        end
        local tbl_53_upvr = {-- : First try: K:0: attempt to index nil with 't'

        local function ay_upvr(arg1) -- Line 3, Named "ay"
            local index = arg1.index
            arg1.index = index + 1
            return string.byte(arg1.source, index, index)
        end
        local function aB_upvr(arg1, arg2) -- Line 3, Named "aB"
            local var388 = arg1.index + arg2
            arg1.index = var388
            return string.sub(arg1.source, arg1.index, var388 - 1)
        end
        local function aF_upvr(arg1) -- Line 3, Named "aF"
            --[[ Upvalues[1]:
                [1]: aB_upvr (readonly)
            ]]
            local any_s_szt_result1_2 = arg1:s_szt()
            local var390
            if any_s_szt_result1_2 ~= 0 then
                var390 = string.sub(aB_upvr(arg1, any_s_szt_result1_2), 1, -2)
            end
            return var390
        end
        local function aG_upvr(arg1, arg2) -- Line 3, Named "aG"
            return function(arg1_14) -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                local var392 = arg1_14.index + arg1
                arg1_14.index = var392
                return arg2(arg1_14.source, arg1_14.index, var392)
            end
        end
        local function aJ_upvr(arg1, arg2) -- Line 3, Named "aJ"
            return function(arg1_15) -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: arg1 (readonly)
                ]]
                arg1_15.index += arg1
                return arg2(arg1_15.source, arg1_15.index)
            end
        end
        local function aL_upvr(arg1) -- Line 3, Named "aL"
            --[[ Upvalues[4]:
                [1]: var267_upvr (readonly)
                [2]: tbl_30_upvr (readonly)
                [3]: tbl_44_upvr (readonly)
                [4]: tbl_10_upvr (readonly)
            ]]
            local module_17 = {}
            for i_12 = 1, arg1:s_int() do
                local any_s_ins_result1 = arg1:s_ins()
                local any_band_result1 = var267_upvr.band(any_s_ins_result1, 63)
                local var399 = tbl_30_upvr[any_band_result1]
                local var400 = tbl_44_upvr[any_band_result1]
                local tbl_35 = {
                    value = any_s_ins_result1;
                    op = tbl_10_upvr[any_band_result1];
                    A = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 6), 255);
                }
                local var402
                if var399 == "ABC" then
                    var402 = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 23), 511)
                    tbl_35.B = var402
                    var402 = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 511)
                    tbl_35.C = var402
                    var402 = false
                    if var400.b == "OpArgK" then
                        if 255 >= tbl_35.B then
                            var402 = false
                        else
                            var402 = true
                        end
                    end
                    tbl_35.is_KB = var402
                    if var400.c == "OpArgK" then
                        if 255 >= tbl_35.C then
                        else
                        end
                    end
                    tbl_35.is_KC = true
                elseif var399 == "ABx" then
                    tbl_35.Bx = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 262143)
                    if var400.b ~= "OpArgK" then
                    else
                    end
                    tbl_35.is_K = true
                elseif var399 == "AsBx" then
                    tbl_35.sBx = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 262143) - 131071
                end
                module_17[i_12] = tbl_35
            end
            return module_17
        end
        local function aT_upvr(arg1) -- Line 3, Named "aT"
            --[[ Upvalues[2]:
                [1]: ay_upvr (readonly)
                [2]: aF_upvr (readonly)
            ]]
            local module_6 = {}
            for i_13 = 1, arg1:s_int() do
                local ay_result1 = ay_upvr(arg1)
                local var407
                if ay_result1 == 1 then
                    if ay_upvr(arg1) == 0 then
                        var407 = false
                    else
                        var407 = true
                    end
                elseif ay_result1 == 3 then
                    var407 = arg1:s_num()
                elseif ay_result1 == 4 then
                    var407 = aF_upvr(arg1)
                end
                module_6[i_13] = var407
            end
            return module_6
        end
        local a5_upvw
        local function aW_upvr(arg1, arg2) -- Line 3, Named "aW"
            --[[ Upvalues[1]:
                [1]: a5_upvw (read and write)
            ]]
            local module = {}
            for i_14 = 1, arg1:s_int() do
                module[i_14] = a5_upvw(arg1, arg2)
            end
            return module
        end
        local function aY_upvr(arg1) -- Line 3, Named "aY"
            local module_11 = {}
            for i_15 = 1, arg1:s_int() do
                module_11[i_15] = arg1:s_int()
            end
            return module_11
        end
        local function a__upvr(arg1) -- Line 3, Named "a_"
            --[[ Upvalues[1]:
                [1]: aF_upvr (readonly)
            ]]
            local module_14 = {}
            for i_16 = 1, arg1:s_int() do
                module_14[i_16] = {
                    varname = aF_upvr(arg1);
                    startpc = arg1:s_int();
                    endpc = arg1:s_int();
                }
            end
            return module_14
        end
        local function b1_upvr(arg1) -- Line 3, Named "b1"
            --[[ Upvalues[1]:
                [1]: aF_upvr (readonly)
            ]]
            local module_5 = {}
            for i_17 = 1, arg1:s_int() do
                module_5[i_17] = aF_upvr(arg1)
            end
            return module_5
        end
        function a5_upvw(arg1, arg2) -- Line 3, Named "a5"
            --[[ Upvalues[8]:
                [1]: aF_upvr (readonly)
                [2]: ay_upvr (readonly)
                [3]: aL_upvr (readonly)
                [4]: aT_upvr (readonly)
                [5]: aW_upvr (readonly)
                [6]: aY_upvr (readonly)
                [7]: a__upvr (readonly)
                [8]: b1_upvr (readonly)
            ]]
            local module_16 = {}
            local var425 = aF_upvr(arg1) or arg2
            module_16.source = var425
            arg1:s_int()
            arg1:s_int()
            module_16.numupvals = ay_upvr(arg1)
            module_16.numparams = ay_upvr(arg1)
            ay_upvr(arg1)
            ay_upvr(arg1)
            module_16.code = aL_upvr(arg1)
            module_16.const = aT_upvr(arg1)
            module_16.subs = aW_upvr(arg1, var425)
            module_16.lines = aY_upvr(arg1)
            a__upvr(arg1)
            b1_upvr(arg1)
            for _, v in ipairs(module_16.code) do
                if v.is_K then
                    v.const = module_16.const[v.Bx + 1]
                else
                    if v.is_KB then
                        v.const_B = module_16.const[v.B - 255]
                    end
                    if v.is_KC then
                        v.const_C = module_16.const[v.C - 255]
                    end
                end
            end
            return module_16
        end
        local function a3_upvw(arg1) -- Line 3, Named "a3"
            --[[ Upvalues[8]:
                [1]: aB_upvr (readonly)
                [2]: ay_upvr (readonly)
                [3]: ar_upvr (readonly)
                [4]: as_upvr (readonly)
                [5]: aG_upvr (readonly)
                [6]: tbl_53_upvr (readonly)
                [7]: aJ_upvr (readonly)
                [8]: a5_upvw (read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 51 start (CF ANALYSIS FAILED)
            local tbl_27 = {
                index = 1;
            }
            tbl_27.source = arg1
            local var430
            if aB_upvr(tbl_27, 4) ~= "\x1BLua" then
                var430 = false
            else
                var430 = true
            end
            assert(var430, "invalid Lua signature")
            if ay_upvr(tbl_27) ~= 81 then
                var430 = false
                -- KONSTANTWARNING: GOTO [34] #29
            end
            -- KONSTANTERROR: [0] 1. Error Block 51 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [33] 28. Error Block 56 start (CF ANALYSIS FAILED)
            var430 = true
            assert(var430, "invalid Lua version")
            if ay_upvr(tbl_27) ~= 0 then
                var430 = false
                -- KONSTANTWARNING: GOTO [47] #39
            end
            -- KONSTANTERROR: [33] 28. Error Block 56 end (CF ANALYSIS FAILED)
        end
        local function bd_upvr(arg1, arg2) -- Line 3, Named "bd"
            for i_19, v_2 in pairs(arg1) do
                if arg2 <= v_2.index then
                    v_2.value = v_2.store[v_2.index]
                    v_2.store = v_2
                    v_2.index = "value"
                    arg1[i_19] = nil
                end
            end
        end
        local function bh_upvr(arg1, arg2, arg3) -- Line 3, Named "bh"
            local var436 = arg1[arg2]
            if not var436 then
                local tbl_51 = {}
                tbl_51.index = arg2
                tbl_51.store = arg3
                var436 = tbl_51
                arg1[arg2] = var436
            end
            return var436
        end
        local function bk_upvr(...) -- Line 3, Named "bk"
            return select('#', ...), {...}
        end
        local function bl_upvr(arg1, arg2) -- Line 3, Named "bl"
            local string_match_result1_2, string_match_result2, string_match_result3_2 = string.match(arg2, "^(.-):(%d+):%s+(.+)")
            error(string.format("%s:%i: [%s:%i] %s", arg1.source, arg1.lines[arg1.pc - 1] or '0', string_match_result1_2 or '?', string_match_result2 or '0', string_match_result3_2 or arg2), 0)
        end
        local a4_upvw
        local function bs_upvr(arg1) -- Line 3, Named "bs"
            --[[ Upvalues[6]:
                [1]: bk_upvr (readonly)
                [2]: unpack_upvr (readonly)
                [3]: bd_upvr (readonly)
                [4]: tbl_10_upvr (readonly)
                [5]: bh_upvr (readonly)
                [6]: a4_upvw (read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [959] 718. Error Block 299 start (CF ANALYSIS FAILED)
            arg1.pc = arg1.pc
            -- KONSTANTERROR: [959] 718. Error Block 299 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [17] 10. Error Block 2 start (CF ANALYSIS FAILED)
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [961.11]
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [961.65666]
            -- KONSTANTERROR: [17] 10. Error Block 2 end (CF ANALYSIS FAILED)
        end
        function a4_upvw(arg1, arg2, arg3) -- Line 3, Named "a4"
            --[[ Upvalues[4]:
                [1]: bk_upvr (readonly)
                [2]: bs_upvr (readonly)
                [3]: unpack_upvr (readonly)
                [4]: bl_upvr (readonly)
            ]]
            local numparams_upvr_2 = arg1.numparams
            local code_upvr_2 = arg1.code
            local subs_upvr_2 = arg1.subs
            local lines_upvr_2 = arg1.lines
            local source_upvr = arg1.source
            return function(...) -- Line 3, Named "bY"
                --[[ Upvalues[11]:
                    [1]: bk_upvr (copied, readonly)
                    [2]: numparams_upvr_2 (readonly)
                    [3]: code_upvr_2 (readonly)
                    [4]: subs_upvr_2 (readonly)
                    [5]: lines_upvr_2 (readonly)
                    [6]: source_upvr (readonly)
                    [7]: arg2 (readonly)
                    [8]: arg3 (readonly)
                    [9]: bs_upvr (copied, readonly)
                    [10]: unpack_upvr (copied, readonly)
                    [11]: bl_upvr (copied, readonly)
                ]]
                local tbl_52 = {}
                local tbl_12 = {}
                local var455 = 0
                local bk_upvr_result1, bk_upvr_result2 = bk_upvr(...)
                for i_20 = 1, numparams_upvr_2 do
                    tbl_52[i_20 - 1] = bk_upvr_result2[i_20]
                end
                if numparams_upvr_2 < bk_upvr_result1 then
                    var455 = bk_upvr_result1 - numparams_upvr_2
                    i_20 = 1
                    for i_21 = i_20, var455 do
                        tbl_12[i_21] = bk_upvr_result2[numparams_upvr_2 + i_21]
                    end
                end
                local tbl_49 = {
                    varargs = {
                        list = tbl_12;
                        size = var455;
                    };
                    code = code_upvr_2;
                    subs = subs_upvr_2;
                    lines = lines_upvr_2;
                    source = source_upvr;
                }
                tbl_49.env = arg2
                tbl_49.upvals = arg3
                tbl_49.stack = tbl_52
                tbl_49.pc = 1
                local var460 = tbl_49
                local pcall_result1, pcall_result2_2, pcall_result3_2 = pcall(bs_upvr, var460, ...)
                local var464 = pcall_result2_2
                if pcall_result1 then
                    return unpack_upvr(pcall_result3_2, 1, var464)
                end
                bl_upvr(var460, var464)
            end
        end
        return function(arg1, arg2) -- Line 3
            --[[ Upvalues[3]:
                [1]: a4_upvw (read and write)
                [2]: a3_upvw (read and write)
                [3]: getfenv_upvr (copied, readonly)
            ]]
            local var466 = arg2
            if not var466 then
                var466 = getfenv_upvr(0)
            end
            return a4_upvw(a3_upvw(arg1), var466)
        end
    end)()((function(arg1, arg2) -- Line 3
        --[[ Upvalues[2]:
            [1]: var13_result1_upvr (readonly)
            [2]: var2_upvr (readonly)
        ]]
        local var13_result1_upvr_result1 = var13_result1_upvr(var2_upvr(arg1))
        return var2_upvr(var13_result1_upvr_result1.cipher(var13_result1_upvr_result1, var2_upvr(arg2)))
    end)("elI9MXNnL1slUQ==", "mYGqCSP7NQiWYBZ8tHA8Yfd3JGqOU39oRF1g+XX6gk61APaSnMIsgkaPukQ1XViM0ijoG2bkpiBDDpJCITIe16ybFr9OCfn/Py2RRAp9aDd6EJWPgPW/DS1ctx9ABlDaqeQAq4vNggClDeI0SJDPziFNpC80PRZfcPdGhxhxsFAc7S44WMSWU9XxwRk2yryOxcZFklZcKGCjiYKLD2dEoKo+qb/j5qFjYF+fAXJUX3v5EYTPXVNFqjHE+ex602IfdvVWD/XoHjF2XCXT+gyg8KXpzCRutKjsmvWS2VZzQgDroqSzCKvi1GOtzFotRHnx+IJl6ivWXFNUGAYaORI250I2wzAdRQKqA8sBj2eMb0GkE4iFgkTjP7jwex17U0T44aNr6ZVXJNn3WCfewCR/ECwAK7IhEnmmnAxAdchgXHrkpU9JTcqg6Rj0iARfq44EPZohTRFGcmMHjfQ7yBzaH6S/91p+rWeYzzTXrtjikZVrjAUcKpGMk2F35bZVRRnr618TGGQOesCEmKjSkHnNzRfLx1cingl+iRpdwsHc8GR0WGGCQ6fadQVWbOxYsgK8KbI/F7iTaeIBWO6qOZTs+Wt2rzuFhZ7ka9q560oDmZbPKIij7VsVD7BVj0i8Y6sjhHkguTgUaEpvwBmfiMriMOOvJ/5pz/6fSIH3RGc3b4t35DhMfoQBWleBcI9s22rWpHXSvRq5+nTBZZdtOy+5XFtxFKFRrgf0oUn7olveRpKGB5rFETamKNGGBgNwfyG6+hyjVM7VSy/DSU8YWg1it2pz9MwvEng4JmPBv8Iy1QpbBmxYTwLsQWZHAMCCPw0jjOVIsUMGuFqekSAHgcQKJkqyV9wdOaPrZf6FPhVMnTqrbSZCdImuXNVqjrg2F4+NUtK1e9ByvHYG88GckPWkhxA+2nq7lyMbbVCOabqZISUzOYYnZ+HIU9GlgY8dpcySCl8xFJs8lSjoy4zsw0gFQhg0eWvlM+D0P2wcXuwDw6yx5+D59W9gPSoIxuWZ9rbwiEP6q+Idv4NIL3cFwJvYcGdOwyF//yuBiDIX3oYB4TiPaKVY+FA9rpp1YeWIlPE4xVGQVuGEoVpuXYboKIj15CIyCxvBE3gHhF0ka5zOA+Fr176HEFyNU6WBtI0hPeyDqZXEKX4eP6Blcf7CTyksYhhBoL82vf6rlNXG4waIwaZ2RXYhsIzfj4cMhm4OWr8cvtSw/cv3epIbmR0Vh9KN9oH4duxyWFTEnj0pnjjJilpI8tkOFAT+fgPLti7FBxkFQD2YJI0HVTsqNeuszGPc8pBXraB9+MYIsHuZGh31cLsG0tcCZvg2x7KPUwGZTLJeAPB78pGOds/MRt37u4uox293NOCJjEifVs4yOCyS2zTm8arXYZtmMU9sYzDiL0USQs+WgjQ4IsOhlCLcrg4U/9H+vUaL1k7hJIoI3AzL4+Y08FJd46XF/2s8ln3P4VdfjaPNq5UvntjBNMQ1t8XvXclDHQL0sA5bGZtK6aCIiojZ+1+55xiKgnO21G5Xm/uQ/FXf4jX98iRKtVA8gRcHS+K+5CtQ9kaA0qvtoEjUFU6SPqXJakC0Dw3GwOkJNN/j+iEYhdgP6+CIWxK9auhH3NutXFq7zswt0ChQu+3DotaFl/SubNHyAZathWUQIvWUVzFrxpUcILq4kND2lJZoErwb9dKCa0Fv8cqIPwJRWtdVpeu6be4dWJ/eISzGYqgcVZ+l4wCsmztT6OzvQ3TNnSjPX+7BVGR2q4ytLheHj4HK9HUE8KLQaUzksWVo2+kBukqv1aJs7tFhv1Z3E517aQwd5C4bll6dgecDtKUQKNbEcXX1KiEiqqUyeUYgOn3dR2uq6pRjfdu46eO85JdVk21NqghA446JgHl1oV/yl05zdxBP3fAC9Zi/Z3hooz5JhHYPXgy6F3Zbu2Pfv9xQIOM1C5Y3Xe9QKbfHktLMOAQEvx5jHg9YLLyBWCQjNiPpnswxqDdbuGHgElit6sY3eCL427shokypPNSPudar5GzoRBydfjWxGwuuDc5MccXePwk53KnwlDCgt9EYLC7V/nEEz9lbsjBTogRdlr4PrgtZkfJr0p1NmiLHnK11dsVUhJb4nmgyEEFjsBw05HTJ+26cnz6Qsq7WFK0RecEx9BwZUZvNltCtfPnosR/HBC3eWduGmXM35wkpGmtEHwZ7WWw4kGgh0Af08fM8j6QEe3qSZ0BKlCmKHPZiFstbLnc8AS5fsd8+hDy/+kJYOceISvO5Nhv+7edouJBzoFdfeyIrJx3WeaF5tnvQmj/FzKgH5S/Bz6Imm9SI8tiZ1/lQTzJafsN5NCHA/UU9BjjLW2jRaw2ZSG1qy+KJGyKPXwUMPEQBJUcmXzB43fFUcqmqE6cdfXdlMRKDiYyNsF7V6vA5Y510wg/N/dkMI1oMQcbmU+sCvsGzkfaCug2lyJwAYaU3DCSZgABc/ldjVcsOWoNOb1EnOO2eyyqBZrBd3oppxV7vl2GJiDVKUGg131E/zKC/Q02NgFH9/wVhmWTaK5yKCTDSbNh1MYLH4SNOuCShtvufAOyaW4VB0SDQJ41aluEv237GXdDhfi0Lx9v2z0e9XK8e11Rx0BvTjj8F8grpW76q9oSKO1H/NvgMUyYDqdl8jfBrGSH4uRaBEvppg8EjIPlyNlGnhxq8mzS2QrDxvlTttXmno5XW0io4VzuB5AruR5D7PFNRF4ZQMvqEq3zBXGMP6Z6DTYtl8tL8JFZ3f/axbmN/LV7/0bQb/YlgydS6jbIuTO7Sb4G0BoIRQhluDv70+BR8YQ/5gPSjDYpIx/nkI0fL1KxSfD8M8fLE7McmnfwzMy80JsvkLH3h9YJwJ1ItBGCNSmMGHmc4LFeOTEoFhVbRwTdY5fswfZaQFefxNb8OnXbo0YPsZ+4yYPyfgii9DzvVpyo+WikECN8iOjzVlstVkFnELxivL0XHcg2weUOWH3xGI/VZiwlD4wd9BNS9h4IKyDTp1nWArKjptquQ8ANMgG+JR+gUWVXs7Bozcss2s7cWQG5EBozCnITlB74Co0kTFYI8WhuWkVM0wtPNJh5E1RtaH0eOlibuhpcicc2qNQpIlLbJ5xp9vkmM8J8QRUjcW1W3gPWZEKPbRAmYpd0dMhfj0rY7wvmO7GXgYo2B/ldSbotK1cL8tsOisEx1t+SEhf1EdqtPUCWsAHipEOI1vbYOMSl3tfgsP2N1gU7i2ZFzlEwzI/A+dXRn7RoOOr9Z+R37ZPv7IOdTQXqbClyIVoHs94ENtrLec0UaYPEPG6BcegQ+lFe5xqfzcwpbaYmvTqd0WNZdkSoKdMavTw+s7zaMAP1QPkqfvdsE61/FRJDv6mY48GKtQm8QzXVwKSsupWmrR4hE9yz35h1Ly7z3yxyDyn7bhz8JVVRGLK2uEH+i5sKu0kkmOD3h2vvkIdVhOZ+y8hmG73nf6s9ztvUH8EazbsX5cAD8J04we6rxnRAHeRfWlPsM8qzd2PVCF9memujLZB+fad6Qdgq/tsbpt6nQGlUhZDZJl5w0iR9UpbFrLpiI7vRgQodJMPfcodRqanQvgziA/+7xy82Va7wGHSSlCRXDRJnrHCoGkP8mUQ9JGvmeWQScr60Flmn1eRDIGDE4QovBCIPdHICV/qKpUgGo+JOwyVFx5XWATmitTQy6s3m/M/Nw7wV5zRjbdYXS43JPZVssY19MqupeINwp75eALTkfVvHtK1gYIPb2PqUKbhbHcPmzG3I8ecOjT4h3DisYEAJHQaF3dHGBG3yAWHSNSoAkiqY+ZXaqfsa8lb4mvmD9YIN71kzQhXatdEie5iCIlHI8zHSdSIZyTbiVUEoyDOIzf1ceKpaGstDtQbbwBVsJW6YpX2MXmpZrvMZ1OJhtGSJdbfwDTiRpSO2Zq7uRbYnyg+xJE6+IwTDgBF/UndVK3PUFYPGQkXGqr438s2edmTFdqgn4S2mFDWpyUqiSga7/EtxyNqc0Uhy6TtOpLnnmPqrakyXFLNR/1iAFTDh6BrwAT4K2fxBLKjKxOnr+DOF7dY2zWcaWmueHNOYUP2SsjNGjIyh1nKmV4V9RXicFGS4QLrzVVePhXD9VxvIEuVIKFZWzW02M3g6KuPdj3YZarKRRDayNHS/geyxfxwmzslgOTWMwL39U03K68GxpzAGUcvqYTsCa2EaxeZky4V3qLTCL8DpKhq786xUH2GBBKPx1K6feQpJXXTvUGQHXo/pnAslidwnaaQVklizRHAnG1H/fyeEPhrxdRAC3m/xd82JiRx4ewYqiCmO0UkAlwsl9fY97Awp3j3garSVsGUSEojkBCObGYiJnSSE2eKUBVRSSdvW1xTkykLb9KkTTb9IXRKl7c7rraxdL8rvM88KHpxx3tIAyR/DpPRU8lzBrMbBrfpv4Q76t+3cHQ5Tpjlu2fK1LXCsE8prUnifnhnwJYitc08PWAsRMDsz6N9iA5MlhBNDdw8X5uSOJGLgcN+2JPooY6yp7mGCeYSGI7A8cVKHlhiQxzztLzGKHa4Rq5wy2bA0VI8FVwG5U/0Cu5RAh49fe/0/9fEVZa2CZL7QU/geqA0FV4696KufdIOi9EFGCY3nLrk+LEgHQ2FIDyTTknLaluDPDwY6lVUegxyyKZEk1SZyx0Rp4H5CDtU6y0hSoCEjuR15zQXxVfKxn/oYr2Tynn0Wt9gXACvpM6JvFMCOA4daPgujrVsPOvxp6bdgC76RK5bJZj2VDifb/3wSwUCPelnH3IiR0rnuj8dShNZWSDoijmWGrUtVs74AP5TT5bNjRuguGfaiOCsQNArKmOCq/LAycv/qhCxV3shApYNgapUwHxDHSPlxkrkTSTniRxNY+eyUPc171SPCxgvQkQtRWAMstOLyldu1Vosj87tPQ7KGgKarXPnVIlSCNDhgkBisK1q/Lm9MtISF+O1tZPU2J1BaGyL2RDfr6SZczKUZrx+J2r0YyQ/9kX6Lv4gvf+eAeHXLCaJ9fFqr2W0aZpZ8ke3f1PWt3NQ4vRHBxjAHyM98czdNl3Xl79uT+G4SN6e0HG/WUXJra/cpz0Jgzm+pBNibvf1iyzI4stlcGx4cKbGtn42tQUA9m0g5Pz7FobhArswQSVDKtoQg8Yq6awupF5THEQzdMQiOF4wUvTRHr391USznNYBcKSaFWHQC5OFCg1xRtSPBQvRGXk3j7oKDudOaNizMGpAM4KsCqzpNNvCgx0dnJLVacgG0iBphCc/H6itOMO4SfQlHGzhtMCZKyM3DeFeztT7ZdKwsH7f77XkEqGfqDYVFPTeZ97NyKNTd7+gHdlR++zaKL1+7qoUkNJQBRMeYrmtFwsT2IbK4SKet4JZrjpIVSnj31T64pdAnH7dpal3EGuvVXPp0zcERjDlKhknTQzYK44XYCnLTiKkxfLZzDGY1UX3QkIsBNG924XumfDVdzYNk8986cN+S+gk1yfbEpCc6Vn7jDBo2iOa7EurzV0+b5FAgqbV7T1XqfG23TzbPlZ1XkTcQRkcsZC5RmeI9qp4/YZ97QUUE63/1Xzhd5x/3NdT5ShyIVy+sUAKB+dVgb+ft1TjO7+CBa/9bA7DJ4ItOn0tYgA5Ju1HTG7sDvuRYWYKb78DoHZwxZZEUv4b4g3ihUKypxILYjVSWMyyhYavHZdXUpRladUQrVL9fh8RJGF4PPAlXXX8u8un0sw5DxqMPLyf6MH8p9rRIE0SbMUS8M2PUHKKNe4v/9hllWmob+Naj8gHJIjQ6vsslA7Rw0ZAaP/68cgxeW5YitfCumj2/1v91JIjgQLWAMktrMKRq+QJQjrIxpyfrqh0pbqYvr7B127n4IR995w9j2woQ+KLiJTn+CczfQAHAPktmUU4TuW70xasK/9sPU/Rn3/Mzq/1P84z3IG7Df0sNa8D+humvOnWXQvaK8nbO7JRhW6wiXqp8z1wGTwKUXCAOVz/Cz3tbpWxb4zRIQav5x9D8K9WniEF7UoaFi1kDCdWtGEHoxE+0f9LM8T8jcEDT/y6MN7EOQspfhfOUu7J6bT3j3aKWeqN6sytU914au49DXp4AJVplybiF6EMc+Qdrcxu5dmeyfsEd21aqq4F8QY+qnftBY7VULbqNWRbgdE1vwoHCAXuMnzFehWLxxfPYrKWc3g62xttSRwvyrhKiNDUAfmVyOrC5jt6fRUgZ2NJYiq87pC3v/TQG4dQ37XHMiXolFCIUonpVxI7ekYA6oRSSG2f79Q1M4h0f8QgkcprvJIN131gZGkwuYrHcf0JW0C6qrpsUj4F47PBRdTO+PyUERSGObKJLFDDUOBX40wMMAk9xL/XMr1fMQWFPBN1tmp4uaJl+y4AuPWp5xv01jHvHfrpsS537BY0fV00LkZLw2pfCqMpeg64IEgmrP5TfCkeyHJBjc9i0mIAJLfKSZIq+7YHQoGZd+jUm2hxyymE9nSS9g7VOM0cV+bhkUWk46XsH+zEQyQDECAIk890jfIALgwlJfVoOzPlzqcAaCsogSXQD8mxTlCHC5F1FnxmIYBZhgkiuZamJvu6gCmo65F5/rdO55fHw9R2hrTRDujvFKDK5GDm0Kk5o2dXlapegNaLdSTZCb3S5DqXDcF8KLpxK2c/CNzNKXVLFPUt31XroxONNrNaMvGO07KeJQEMGcWK2Hj76rdTv1UiTP03P2Hu2R45jRIVkKCK7++jd6KPkSJteZ2RC3Iwy9Xq27U60pcMZTPp/y4aPfxN4jJQyWAqQnm5Bx/erqG5V0KlsTdHXyDn3aIvO0znIAP1g31tHfsnIozkCd7+eePjjnuSp6+lLdselHmNn6Qls0thvo1Urp1itbycptF3V14csNWYsEhdOb4e5gKVLpb2+oQIC0RZYabX6vnmweS80H/xlAJy3dO/f++MVM7WXiufWhzO8oz4+nhGgIQMIS4FFk5muuOfr4+cpu7rMeQxQDGyFfHaLGRyAu7uEDgyklMXoaJo8m3pH717c2a6+LsB0HV6/ay+9dR88zmNMogVHLv2mMzvJKDTRQipL+FsUBSHNpXjp60tVizle6pJsEDs5d0ljkJZHPfPr147xmT82OtjcKjWkivLZH5YCR+8Zrk7Yc2F7t6xNTT4p5AFNzwcljLQk27n/yFDnv1lfvcydPBes5Uz45h8yOgIc4c/z+W3CRH+Z3cEdC+J2gcsg7QwyBnLAunoJvKNgZNN25ww80M1/jeEIXuetQy+uLKpmTnzZ5srd7wZyz3u3AjSblZO463e6veZQDBJCebkTde1Tpz3y7Z8H+nP3Y8ffoNpoP3/LYZu/7ODlMj074+g0am1XdOC826Xx99HBYs8POWGtpM0KANKRw13md4VBEE95GKyBj3G2wp08htz7xGfo2TNzMaPTq77ouCV0ncKicIDfyDrWbWAbCh1T8TY24skALH17yC7Oq63nFEbzA+t2jTzK6PO6PVSgwsH/WmFsLc31gl6wtV0/sFxwUrmnr5tjuK/HzwotY5/nGk4CfceI6BEaN3cq2xnRuzxJ+QYDiRecwcmmTiQcspQHfyj3YiejD2+PAHPZmdA22pljgP37XZ9BcHnemPDulndjshW6L+tc7N2i2/vrr0NdoYkpnZ5i24zd3qdxCpCTDBChS+8XcjPMVnCLR8VFFhWHm+sONqsKjBiiM0SaCsoII3wbiD7mEFTxdZOEZWpUb1QKdl+FDbLVSByKiYDpCJ7X+BgutxE8pEBgCo6h5yPGd6esLj2wofLW/s75pzUK8eOeQ5dx1zJA0q/7C6x/QAlsgGGBLC4A0D+NdbaKCT90j1//3TrqoOtI/+rntzUJXstKwdOQEAHdlpeQFNsaM5JGds7xmgto0VSYhAZ3KbJyCjgkAOykpyqoCQZolQ2xnLBJ2geRqO/iFU+20SG71nvZYQqI8+JHcyUxB0B93ffDdUrCz+DPtLk4IY7y3V27LAE009tKic0/f0DUBwi3L/TeJgu//hCCQIpo5+vEJnlC8n6+kW6gFOEqCUQACaX7S/RVnHKdHKEjMbVK/UM2GVdk3yREBDB1v41PGNk9rhpKw7pSSj7Twqbj7XdKkjDbg43Lrl8r9ov1F5iPT0PoY1jo9lbsMd1v/r9d26ywpOsigoUlknwssX/oFhdF8ZmSJxCJCBn2dvJ5F0127orhHS6wt7sOUJr9Hew2n2N4V+QmRAJT2h2Ajv/e28ksTu2ofn+GNN3uV9KnblZrX1Ap8vhemKcf7Y29RiI4cADd67rwTI6mJro8OmYpVehfKJa4r4ZXeiY1e0ITDk3rJAIbdktCHcMMyNtogvSuJalLSDWRWXCmi+R07O1eUFPoLgp0ZP8rdToVCQC8cxxnXzGZmG5nz3cuJfznG/lHIvOcOxQ91EPi7vMfKm8E+7HjrkNZWde8uwb7O0N1Aog9Npy7CAY/bsho70QqSOAG+CUQL4RYeWFRhVnwxWFSxZYxV4VkZNwHMCpdpYRB/ABO9uhONuquoPEMHiskXyJ5048mOt2XAOg4E3i0jDCd2HmaKmmWs8iY4YkOfynClUqQKHzYb0necft6hwgoN/u12jfSW/5RoS5sCcsCi48ovXY7l/r2yIIelsTdmjSEUJ5s74/NibuKDKWIQhWtVKZJVD1/EbK8or5zQbgE510Kpq+jk79PqjwCpzLEl6HFkMXtVwNPGKDju0JOFEFk8m4PGwuooJ2DcYNlmJkp4bz8fdkdYvwT33I0Hd3WVCBA2t7dTf19o8Q9DNgVjQa6PsrG1L1+1FZcWXU9iyQ/bkFJoBfQf57BP95lT2HKqaX0uKB7NrWDh7n0WkHjCXAfRB2Kp8OTVfDFANMOZ4uir1o47D3zud7pvrYltCpLM7s3jGa9s5n61z+tc/oAajEZC3ixXA3yQQP9E9Y0u0x8OGkcQuLddw7vG2YcMZLTnKNtX1HmLOE8qdJXUbq3T1CFBg/5Y7yin9wddFDz7P5guhf8XHGwFepzEvxPrkSvOK/UC52BYpgoWVl89S5xiW2Guj9Tg59L30VWpAb4ZDmH4uFyxLzes0D7SQAtwnmcZJayCeF1tpC781T3cOeBDLFxUAP43c1q29cTm+qzkNuEoDyL1qtb83gdRg+zKHmZD1iSR2gztL60M///+Y6UpXP7X74jm1nt9PwcRgmC8OshHRMzLqS1dLBB5hnCZsski7WxPFjIWF5ovmQR54fnCK2xTwb/K2oL6bCLbwhVg9uq4yhx0rbKB+HpbcLeZD6I9WSoX9QNMdOSQ7jH88MLBwPoTRlEZBuFhUknTpAEyKfMdxBsulNwQaDDO/lCOh+tz8BFFFtxW0QSg43od4IpWgv8JZVd+mSBLswVlHCuLx6S5ckOASy0t45fpi750QLircKa+ufkHITc8b85TmU1+RN9beGxy5gIWDpGA3gPLphwknM0VB0j6aP0GpM+gMIxwrgFw1qRJoqpyuVP+LMkg7hPPr8hkL3zxfM2I/hhZ53C3BGqm2EYdhMuP5c2cr3l80pK/ckVumIfbov4HX7aiKqmfHmxbm4MbL6jmi6YW3AUzvEcKUlr1ECBr4D7A6YGzvciCPiPHcCkx+0faY0ILjRE4gOJVszP3Wb4dhOZBwz8eyKe2Wr/BguacVbEyxosijYtzZgr3FUVAtrSJppyHm5UANLWG1xQ3RErdvKIK2dQvZ27UA4jkNsRVem0QrD6HgoqgYpKyHOvR2hRQU4C+9uPzetUUgSf4dwR/6JmO3QkMJ11FafqIxOhaz7VEcs6eOUSDNPMCwc00fsPlaxg5t3Vl4HGUeUPfN15xITu/1iAmxAKW1ztnvwqbvlttRL0p4N/G1KzpXHVjOQcEMdAWGp6QZqAcePprPVnINfnegP42n1NK2iVZdXVyFvOV14qpmr77TvIEDayXQnWlVejW6R+Wm6bc1rEXu7DyAKajRLrZmQoE1GofdpkVl9Ps93vB3D51Y1UkU9sBueBXZry5CQ6LpciXYJ0s16e9S9hN0NFo54lOgUPV8O50rWcfolKc1Np1HRjnZGRc7Q373EOQ4YGbKMsUPncJfQrnzo3ZfVuipK7k2HzcK536RzQE47gHsCUhVpWYdPfLm6ToCw/1Ok5SjAxhCyRCRWh+jE+6qq1A92VqapmAouK5h9MEJzY/OyhL5IhBNP/atuxShEmafK+Oix4PIQAssr7kCQ1XINWPsTQv7rLHqy7Za27HynQiSUvl3Tk9Bhapxloqth15fA9ijPVoABLq3/2J1/8IyQThHHFAHwMq8s0LhNxBGO9upTXwy1we3OrWZyp/F6jphlT3ASRzyRFhaFCrIbU4/ws6Hew+PH9o/IbWg0r0HKpU7YN6SQe9tueCLwVIpL56YI/9MbFPD8W5VNLWDMczgy9HkZAd00ISPIjrnRaIAPfLkV3ofeyN0J2tqa3N4v4s90M3ypqLBpw7S3SSvzv7bgxBcnxifyA515n77R0pFVfuMKWhS4x2wkdzfpnCtFxnFBiNq5AkFUUm9aVR1gYf817U82gDuhCLxG4fFs5IMdk2r/nAtkEuBBCCKeV67x98J8YSEc3MxNIqBTRKo3jgu38WIlJoogpqYUhp2/BVnceJvpIDp6a9CRLhvOQCggYCHlMwBUpjmuZ2oR+VAGg92U5euo+v5FVRNZWYO9HEeAsat+4Ovu4jxc9kzkULFWo4f4/5NXFizNeztZ8qIVb7nLugCH5R33KBn6iqQrAn0wmrmIaQsD4d58vnLccn2PEZxWrNOVh4tDRzxucvCeEtWwCYEPBUaT9BMyQmilUq5SR7MJSZtW0MElXVcscEwCe8fYOrZkSXy1Y8NmW9UC31isbE15SkHc36y+4NDhT/OKaeNVPThmHyOk7PiJyIaZDH8QoyCOORrb1uIMi/FkQZDsw0a1AcWBUxQacf+R/aUFgZPtMLqYT0P5lMsLp0x9agd8yPK1Km5X7A7rGSuzIfZWe0qZUbdkMcED8D2oGeel7SdydgRQz2YkE/881W93pgxvB292HjuXidCXqg/9/CxLbwdyTPJeKl1SwVhLOFBjzh62Qo3GVIqk+V1kDmAEH6/3tiG/zkMQ6HrKKWJLJlBllijFEGRxORnpAxkxDm5O5D7weYI3s8klTb8KprDwBzfVQT7SZWCP7HEtMRyv5sH3DRqs9Cx7ym3r+JF+kccMvdZXhtIf723q6d7/ZTeN3rvQA7e7ddxskTwWlizq46K6x35C4V2udJIJ0r4ouWWDD/CUQrbC2amUUYJCa3GzcYmNG0fvPWXS9hafltswdaPRg63t7WF6suG6FdU+JwdTbG2vejl7swo2FtULq59Axvhopczf/Q3oMXMsJDu02429TXpADA3clJhA0whOX1HBmAeVdEeNnpk/Wiw5kqHxwTZLO/gBtljRKMRJW3fF4D/zY0gIZLL8fThYNwxQwjGx1rL9KfkZI04euxNXqKWUEygOqg80EbOLoagNQcW9/DGLB8TBM9zM/fK0TMO3tQw1QxmX8BoNAOPCw6+njdZoxkKSQoVEmHWFUzZ/cyVG5EYpNx0hlzbIZ/JTWTlq1ZffvdWyekajBI6NDun9/4vQCvfTSscz1NzWvEth5NGi6ZElsJPOCxsvH6Jo42xBLCPcypcgpMCtx673/uM4HUnDSlvpZ79rlf40hnU9rrOw0bIjGUrjbjKnGFohm+iZ9sbYIGLPbLzr7X4KIpruKYpHzIZDasJmWsk8rjAKFQiaVl6tjqpppyICCrDQIOjuEESmL0f/I2Cj11LxRALlxQQFx9dsJYmhueBgjY7UjdFsERekmoVM1SumifE7FOBeFKBYgUIfQethQzisVwpuUguUIN/wu5VcmEcm/j3J8/tGoFq6cfZU71aUKhHiwUXlaN4D1nnDU7n/S5icqzfGOJv5bzm/PxmIgvdeJX3kPCDBLZKC7tIkabGXcaikhs17SxA0YZJeG22xjZdAX6myQk5AK2PZo4VAVJS6732iDYNwuMoy3MRlzUgedQqLImc7ASPJ2pjIBgsdwCDG7pJX+3jpaRoYkguB/Lz45wi7qriUs1OJ/kwiWYLkLbPQTk3ELLihz1xUUbXbwZMHJ6dw80Ia2vxOwi1T1d/9p83n5gZt2y7SNoXSD43hlXjIlaFz72OUvNAZopFGRORsK8zVClk+ztZQ1s+bVMZWX8oQ/qsFllmy3S4TbkiWckcbZupulUSfell9kXG1yVzGQh0sUpEf/LeU3GORnhVvI5PWw7TIbgzc5E7nycZra6Tn7K13nW4vKx8/e5vHOvNJyd4mSVR3YvIrVaPFMLT/HYuPTGv1T5InQFMKhHoznPNMlppD6BwFN69qAJ0BI/C9xzkhmQjNd3jAG6vPFwOlVh9BvCkyZSMiPucigoFT17I5rZJ/sIsEU1PmBwtg1wLuRAMi8ZESYs9s5K9p+M/c3hMvc5tNS+Jgtusm63uEIeTkRn6wbwt5znJMCxSgxBo1ldPbVYB1qIuSXyE6ubk8n/an6EKlC6vgGpxrpgOjiAUzBT70DLfAEodVoxBCuAD/N8AxXFlTPddU+C1rNIp5rIq0Udno76mRVhIW0wYa1KYozxXiLWF2CIynsvhTdrqAFA2QSsvHx7oFBrSzRRfWb1lZnCnemdK4HIUfYV6feAqhI6kXexvnDVOTYAyJ++mWCy6kxg7nHqGwaXrY5bODxUa9Zl946iF6xxeIGuCQkFRhHCv/uCZwX18nXZ9aPoFYsFt0YsYVWefOB6R0cshTmgFqaSigDBRFbVQGk4q71sN8xScHD1CqdC70Jm2Ne8uO35Ep2Ke6vuOPYO+ovvqNX/+ErvXtt4Z/Zyl3CH3kNtUrfsY+2Iy9rblxrM/4ahS8YniIIOd0nBgjSjjnCzQ1oQoG1VT6lpbC/u8cKCcYgSX8Aq4BRWEZ/tkuFJVRl2/prISXErVW255xdBGt6gGnFaEE52MW67Mw7TMfvG2Tizh5ASyKuh+7QQz3rS6AKmuZLU3WwemL9BH2OJSDKQQrGbz98vGnsKD0DDQ88PUlR9WXZKuGTH93Uv/hBsjzeOBz5RaESsWCQd2QYq0JvNndUyHEkMOtimMMNlkY2OZVgGam5OKyI+zzcIjOF5xA4tE+DKLBq+D1VinNKTmU/3gpjsLXYdnC/1yxj82YxSQ5zopz4nxS9/sJTTycUX9QmKnaDQR0DKvWTOanCJcvirXb9fF40bEfHwIwnv8g6C9BNm9OTEb9n1UcHbW0bzoldC+TFQCIR/MFRlo5q5ZcPU48rP7RXPT4T5bPq4AaROGXjW5nM6BdeQ/3CuF6BysXDWImNgrOQV3N9gBJ8zhqltr1L8Xf9Pk2FuO9lbicP7cb/dZPesnqkkICYS3c0bFEqQeE0EjJ11lRhMDlJJjakjcKmQQIxSKD/Ig7xSrY9NWFgLgxZDoNeZQ957jiVxzXSDz1QRZqXzVmCMSUG2lscNZ/T4KQJsdDcVpWgirx7c0L0sKIpQ2HTE/P8hOf58G3fBZTU9MsD3VsbrmbiBRpRxICFYn7q56B5Lf6PPbkzibJCj0Kn96YiqZljB9PpaTv9zVMmzvpS6lJtTjN1x+AQRj7JDWv98BnlkI4pM8/m0ImNA2T6AH+imjT9v7pC519xvt1D2EQXExOKuIW9XBPWdThyvcEMiysAlNbNPShNN6dmj5beUyymgPBtHzYiywWQajDGFos0k2aX+4zNeupAGVHrgqm7VF+iCKjpIHHzjrRfiyGsQgoUuV96otceDzhzfsVvyGpxrxgNrbqutwARuRagxPkGSyaDephTqNxr0r6Sf12NYv6Ka9MOhHTbLC2qkUmm8FaRbFuTYgLSEvWcDNyW2VNMM1EMdgRBvJ7EVSAwMBRgZMkeHSuUClcDzSI5M9rCrAHvkcWoMRcO4QhEzRtdx6GvypUDg7xkQXOLH5yGo1V4gou9I3sJfjk+FcaNygWwZtMTCs3eNLuqGtVcG4yVIb77HC1aLAvdTZw9Z6k6n5C5Xz9yi7AwnL1v58+q48Kbz9WgTPDlJmRJMpzs3wFeqwxGmVjG8+zA+uXXFGc2QJr4ntMFlPMMlcF4ZQQepVi2H6jsY4rWvN9A9YrP7FmwsBauBqKFxI+kzJd9wRVTx4ZX9TzQFlnCvUG2J6aCMnrV27nEOKmTPAW+cKuj2NPhBrsMan60KBRBlgmDtViIdHq3qGmaO0CNktA2aI1bpnvDP2EdZKftxEfGN5z1rnQ0Vquemn1GEURXm4LFAAcY+gNB5hKtZXuk3psTvfRRemsUtjBiZXjF5UR5+o3CcQ8tinb7V8lOgIl2G+Mp5tmXZrwgSOoLsh8AA03NUH24c+1D+osx0bQ2BBt+v5VK/x2P3rcjtJpPMWsNwkYcJ6tyYdpee5qaBsnWdvgJjKXZJoeY2aYnwwbtBrAkeED0zmm9KRQ7XfiEsXZ7dcYAjtYfm00zUpSANddnAkNxLJLxHwmOhqNioYNjn84hkL9nmYMccT3Ao2WZ1hodKLmntBAFazFonXMtWlej55W2fr/aUs63AnnYkIC6NItuS2PI7tjjbAldi/54lgOVJ4+ZEWczs8Skdcr2FhIW5EtdUIr4CoKG7S+JWA0+J4W9OBbGIkh2ivL1kexV7JVm0ZHtmKpTK4vtyrABXAq5y6RR/6aV0/CHF7HZ5R4pFjqbpkNoBRX501M+DozmVtV52SS2UNBBo1Dna0JSnVmDBUvpoWrlWMyolOoR+7US97x80iJBk5CTmrYJiaYK7QQsGCl/Vp3urk0IRuQ9Pd31C+1Qoe9HeNn3TRBWCoUX+XCkhg1pkOH+8dUro8czwpja8CfHyLXF06n74qqKdNyZbxkgqhuPXaCuTEyauxuIls0wNAPsivI2qUVL6AIe8h1kkJNLoa5nKu8XRknE1fbl2TkFeKoCIekpDnVL53m7258ONl3wg9P8d0dla3UHU9HqXN31wffM2tS+A31t5am178KX5LWzW+jwLA5surVDBILA4SKkol3DKkSQl4pjtpJCptR7SO3k4ZExs3PpEgwpvU2Fce2LPmvHLbQSVN2wvZudzGWQ8wIr3ttXCghuQCQBF/HBNDxvpeyl4UuZ1WqTg3YBIuk6VDeuP/YxUBoS2e87tesec2pX3W9cwf4hQtVrWbEYuwJA9aBf1dLgne5bgaX9Ovc43aM4HUQKNu3sM7TVqRjauI9taarvyKNjT5+t7C6X6Zd8uU8OupejJRU885V2VfZf43HJSK/5X/96nIwuwpbvRvLJ2nrCUXFTr2q5+W7+WukremP0P7dfDoMVX+4XoTFS6Y1QKHfvQywptvYHn9cooXFJp7LrhWkfAr0Q0FtVTYMp+lpsB8Ig1pSx+cSUjGlkQjlpI8Js8q3tOGJMWWuIYMAvys+ay8IQyqgnp+45dqzAGmnrfiQm5u72lsEAvf5wdQsyGbRjVINPHvTJRThzaSdXPhpedrjwYveFIGupd+n0zxfLRwISQrY3QwgV/qtRoEbX+eUEiLjrO3bbVInnxmdfIDQTg92/wDDw9kW8Is6GyicjsPZAHc2BacIDvbZHVhEIWKJY9MmalGJplALlYsW88o5uTJfWu9V6rt62MyS40+hLNMgw5ihSJ34JifMtyA+pDVcnvMDgYM1w8wyY/LuLjcvHJiqFYqoVlvw1qNzbDfS7+zzi4vUgkyDVlvRzdp1EdCfT/kX7G219umf9TzpMrTYO2mMsmVjeb69BYl6gJzqDA62cZM2J/1iFV6p1ndblR6Bd+T9+BEonIBxxw/XxFwNqGIlSdK68jzH5qfgcnloorFfrtAFa+eZ8mqPpTA/4DLnJMmWlTafwV+iickB83AXRUjQvf0cG0jDnmvchkMkyQ/fh8oJnVHMIqTmUdVjGxV2oW3Q6Et1fRyKpKMKqVJAhSQr+RYekpzzuySaTpJSvXVC+qcZnO2+fOgGDG4HqAce32mjTz6dcCE20Tovw4Irm2ASzvZyg0rQfEOSZaWR1G5CSBJU6wszPBCVJMgulmknSNwN4t/cOPL5eIaXeurKI7dR3sf5oua/0I1NqEOCaMpzS48AaR6fU92zMlnDEivgp6XAxoMiP5Pcckes8YipBwFPsdGriP7ZxnH0/20n16MSyG/5LexJ7Fiv9DGHIjFQXOBAkMZmDTe71TZ6l28dZYwnjbtBRlBRb6m/9a2wGq3Xu3ZdkuSvnS7y+Bpqolrd+Jx2cHMQb9/5TD1ppZgjuJnJMgIQ704uRdEOdiTafp7W4tyfbICY1tSvWCZqIhyB5nzRfHEXKcE4WPJn0jqeca6MJkhBlZbRypj+2+3OLcYFs8QghndgKr403LE8ByaLjianzzTRwIAA/ZWtBu0TNd2uLUrk8JdMnnEGxU6ZsnLQvk2uQDuSeINmv5+ENKiq/ZVZvtb146mAmIRi8YcrgU82+wZBD7ii6wsDjWupIobWnEYTSSeVhzEf7O5VH0mowjpUA99y+tPwkYdjo/dIZLAnDN6cIc2CsKk0Fc9TYP88phXwVUaf9hK5z/8UjNW9V6ec9IyMFpptMzP8Yb3RxARXXU0ULMLowHeRi1eW9MyAMgkMxat7mesZBP5grocFD1Vg/+a/XOzKl1L3a68SiUkh8n250p1UZfxRhGXjbhJGGr2GUUPK0l3OXkS5EgFIsCOnDFrBPRO6JHjjAMMuIDmp0CHrVJzdo5kOLMr5DERhhkkccua6N4PO/qqn16S8bS1RUHTZRmjTBLyg+4m7xxnz36ZtQxcXZ5nm7B8gXfYGhDOnvp9hE+vSHK79R4kbn2s0fyUorz7SLPk9+yz9WysdqRYdQaafsghmgcwsDUj//Rsd9Y3e1UbMwfqZew1a5IrZEW3qKg+cuWSRnxkQoawPzixgldJd3qRkXpKOQEHnZmaAGnq6beeaJcWamLaCpHlLFOSub7W9N1Z5KsGZv3qSqDBmcPl8QlLikA3jNhaQYQm6q1KUdWsNn/k94ZvyPTkpLWGWUpovvYPpZ3kcQUGqBZfIX3jIm+hJo7pSdPRtmaS7dhpnUC7PdEkGiSA970cLCcc6moYW9dGk20TsHBbQ7HiYHrk00L8QJ9QYXsBTLFoxv44yaHrLe5Pp6EyKDzITkbdsKq8970+ZCulqCdFHDoUEdKmp47lnQ+N79KAD1tdXa7oR82oFoMu/L6TZ8lwclbwlXeu7YrxqYRF/VqOPjzafs3fcmFAmRw++awmlO5UV+xZ4y8gtzf8EnBjToe2Q6AD4v7tIHHAr4iHmNJPkXD9mzIZMF2buwifcyXj53YVs6RuFdyDeqFxJBHRptyvWd8tKIGvNSn+zlGoQ8mkv6s0AWQ3Yn0/2qVgHM9dmq+iyRsrrstO55kPT7vcMAEnOepbWYqGajk2UAunNpcZK8sWCgbtTuyx2wktnZqf8/C05ZuRfPvOXQLh/C0ECr4ST3czB3KQ8gMXMAEbVMUljkaK2J6uvroGnDYF5tz0Hsorciwt5otOyGTcj0Mbv01LiPRuw6YHxaLQCH3YlBCaO/xvLTA68HEdNt0v3Sici6MneKaTbldMh+oP2uXmPlUj1b1d/q+NBAN4kR4mw5MOhSyhey0qUEe7BZTIbIN5QlsQAYBre7tgM6HvjlSTjDwiBUYWOUOJ1FRikjtSG1KuAfcTMlMzGVJK1UcgZ+sV9Hbhs3MXTfsdftplEwmCyIv++v/FRa0Pa4VX0V9e9MEmRmJBohb0zRwJDOz/7ZfBEtbO9MtqQZ24kMzYAP00TdAcVP3z6OArt8oZj8QXh483XwxWLbwoEnfySU0KE0ow/UcnQdpU2hA9/BvcFPNJz25dECSTZX/WQjA51y5nW/NiS4lLk/7pjs515LyP1L9qqSJ7Xb3QNiv7fDJmYLYxceeQhPhcmI2HfsVbDT2ceGdo1jW5zouwnsyR6x/a+7VCKW2wQbG71ODz9E6jitE4rKjuUd2nzzxAC1CQoLmnaYVeEgeNwOnTT7HWwQ5ubI0KB8hRrISZhuvPTKmp7JyqFZAbPN2lMwK4CPWpkLoiI+0fGIR/Ky5kYw71rdEPQnd/oPNn1WuhTLsJux2Fn/AjivlL+EbkCnTMr8DSBZnyJ+G30OAyDp1pRtsZSLvrbLZQNKewYk4HK9Dackyzvd6v8pSzEP4Zg=="), getfenv(0))()
end)()
ModuleScript ragdoll ragdoll
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:11
-- Luau version 6, Types version 3
-- Time taken: 0.107439 seconds

return (function() -- Line 3
    local function var2_upvr(arg1) -- Line 3
        return string.gsub(arg1, "[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=]", ""):gsub('.', function(arg1_2) -- Line 3
            if arg1_2 == '=' then
                return ""
            end
            local var6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/":find(arg1_2) - 1
            for i = 6, 1, -1 do
                local var7
                if 0 < var6 % 2 ^ i - var6 % 2 ^ (i - 1) then
                    var7 = '1'
                else
                    var7 = '0'
                end
            end
            return ""..var7
        end):gsub("%d%d%d?%d?%d?%d?%d?%d?", function(arg1_3) -- Line 3
            local var11
            if var11 ~= 8 then
                var11 = ""
                return var11
            end
            var11 = 0
            for i_2 = 1, 8 do
                local var12
                local function INLINED() -- Internal function, doesn't exist in bytecode
                    var12 = 2 ^ (8 - i_2)
                    return var12
                end
                if arg1_3:sub(i_2, i_2) ~= '1' or not INLINED() then
                    var12 = 0
                end
                var11 += var12
            end
            return string.char(var11)
        end)
    end
    local getfenv_upvr = getfenv
    if not getfenv_upvr then
        function getfenv_upvr() -- Line 3
            return _ENV
        end
    end
    local var13_result1_upvr = (function() -- Line 3
        local function j_upvr(arg1, arg2) -- Line 3, Named "j"
            local S_2 = arg1.S
            local i_22 = arg1.i
            local j = arg1.j
            local module_19 = {}
            local char_2 = string.char
            for i_7 = 1, arg2 do
                i_22 = (i_22 + 1) % 256
                j = (j + S_2[i_22]) % 256
                S_2[i_22] = S_2[j]
                S_2[j] = S_2[i_22]
                module_19[i_7] = char_2(S_2[(S_2[i_22] + S_2[j]) % 256])
            end
            arg1.i = i_22
            arg1.j = j
            return table.concat(module_19)
        end
        local a_result1_upvr = (function(arg1) -- Line 3, Named "a"
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local module_8 = {}
            for i_3 = 0, 255 do
                module_8[i_3] = {}
            end
            module_8[0][0] = arg1[1] * 255
            local var31 = 1
            for _ = 0, 7 do
                for i_5 = 0, var31 - 1 do
                    for i_6 = 0, var31 - 1 do
                        local var32 = module_8[i_5][i_6] - arg1[1] * var31
                        module_8[i_5][i_6 + var31] = var32 + arg1[2] * var31
                        module_8[i_5 + var31][i_6] = var32 + arg1[3] * var31
                        module_8[i_5 + var31][i_6 + var31] = var32 + arg1[4] * var31
                        local _
                    end
                end
            end
            return module_8
        end)({0, 1, 1, 0})
        local function p_upvr(arg1, arg2) -- Line 3, Named "p"
            --[[ Upvalues[2]:
                [1]: j_upvr (readonly)
                [2]: a_result1_upvr (readonly)
            ]]
            local j_upvr_result1 = j_upvr(arg1, #arg2)
            local module_3 = {}
            local byte = string.byte
            local char = string.char
            for i_8 = 1, #arg2 do
                module_3[i_8] = char(a_result1_upvr[byte(arg2, i_8)][byte(j_upvr_result1, i_8)])
            end
            return table.concat(module_3)
        end
        local function u_upvr(arg1, arg2) -- Line 3, Named "u"
            local S = arg1.S
            local var52 = 0
            local len = #arg2
            local byte_2 = string.byte
            for i_9 = 0, 255 do
                var52 = (var52 + S[i_9] + byte_2(arg2, i_9 % len + 1)) % 256
                S[i_9] = S[var52]
                S[var52] = S[i_9]
            end
        end
        function new(arg1) -- Line 3
            --[[ Upvalues[3]:
                [1]: j_upvr (readonly)
                [2]: p_upvr (readonly)
                [3]: u_upvr (readonly)
            ]]
            local tbl_34 = {}
            local module_21 = {
                S = tbl_34;
                i = 0;
                j = 0;
                generate = j_upvr;
                cipher = p_upvr;
                schedule = u_upvr;
            }
            for i_10 = 0, 255 do
                tbl_34[i_10] = i_10
            end
            if arg1 then
                i_10 = arg1
                module_21:schedule(i_10)
            end
            return module_21
        end
        return new
    end)()
    function CRYPTEDlIIlIlll(arg1, arg2) -- Line 3
        --[[ Upvalues[1]:
            [1]: var2_upvr (readonly)
        ]]
        return var2_upvr(arg1, arg2), "QHZiQkloTlA+cEtBQWl3MDMzUA=="
    end
    return (function() -- Line 3
        --[[ Upvalues[1]:
            [1]: getfenv_upvr (readonly)
        ]]
        if not bit then
            local var265_upvw
            pcall(function() -- Line 3
                --[[ Upvalues[1]:
                    [1]: var265_upvw (read and write)
                ]]
                var265_upvw = require("bit")
            end)
            bit = var265_upvw -- Setting global
        end
        var265_upvw = bit
        local var267_upvr = var265_upvw
        if not var267_upvr then
            var267_upvr = bit32
            if not var267_upvr then
                var267_upvr = (function() -- Line 3
                    local module_17 = {
                        _TYPE = "module";
                        _NAME = "bit.numberlua";
                        _VERSION = "0.3.1.20120131";
                    }
                    local function e_upvr(arg1) -- Line 3, Named "e"
                        local tbl_28 = {}
                        local setmetatable_result1_upvr_2 = setmetatable({}, tbl_28)
                        function tbl_28.__index(arg1_10, arg2) -- Line 3
                            --[[ Upvalues[2]:
                                [1]: arg1 (readonly)
                                [2]: setmetatable_result1_upvr_2 (readonly)
                            ]]
                            local arg1_result1 = arg1(arg2)
                            setmetatable_result1_upvr_2[arg2] = arg1_result1
                            return arg1_result1
                        end
                        return setmetatable_result1_upvr_2
                    end
                    local function k_upvr(arg1, arg2) -- Line 3, Named "k"
                        return function(arg1_11, arg2_3) -- Line 3, Named "m"
                            --[[ Upvalues[2]:
                                [1]: arg2 (readonly)
                                [2]: arg1 (readonly)
                            ]]
                            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                            local const_number_2 = 1
                            local var274
                            while var274 ~= 0 and arg2_3 ~= 0 do
                                local var275 = var274 % arg2
                                local var276 = arg2_3 % arg2
                                var274 = (var274 - var275) / arg2
                            end
                            return 0 + arg1[var275][var276] * const_number_2 + (var274 + (arg2_3 - var276) / arg2) * (const_number_2 * arg2)
                        end
                    end
                    local function tobit(arg1) -- Line 3
                        return arg1 % 4294967296
                    end
                    module_17.tobit = tobit
                    module_17.bxor = (function(arg1) -- Line 3, Named "t"
                        --[[ Upvalues[2]:
                            [1]: k_upvr (readonly)
                            [2]: e_upvr (readonly)
                        ]]
                        local k_upvr_result1_upvr = k_upvr(arg1, 2)
                        return k_upvr(e_upvr(function(arg1_12) -- Line 3
                            --[[ Upvalues[2]:
                                [1]: e_upvr (copied, readonly)
                                [2]: k_upvr_result1_upvr (readonly)
                            ]]
                            return e_upvr(function(arg1_13) -- Line 3
                                --[[ Upvalues[2]:
                                    [1]: k_upvr_result1_upvr (copied, readonly)
                                    [2]: arg1_12 (readonly)
                                ]]
                                return k_upvr_result1_upvr(arg1_12, arg1_13)
                            end)
                        end), 2 ^ (arg1.n or 1))
                    end)({
                        n = 4;
                        {0}
                    })
                    local bxor_upvr = module_17.bxor
                    local function bnot(arg1) -- Line 3
                        return 4294967295 - arg1
                    end
                    module_17.bnot = bnot
                    local bnot_upvr_2 = module_17.bnot
                    function module_17.band(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: bxor_upvr (readonly)
                        ]]
                        return (arg1 + arg2 - bxor_upvr(arg1, arg2)) / 2
                    end
                    local band_3_upvr = module_17.band
                    function module_17.bor(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        return 4294967295 - band_3_upvr(4294967295 - arg1, 4294967295 - arg2)
                    end
                    local var286_upvw
                    local floor_upvr_2 = math.floor
                    local function rshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: var286_upvw (read and write)
                            [2]: floor_upvr_2 (readonly)
                        ]]
                        if arg2 < 0 then
                            return var286_upvw(arg1, -arg2)
                        end
                        return floor_upvr_2(arg1 % 4294967296 / 2 ^ arg2)
                    end
                    module_17.rshift = rshift
                    local rshift_upvw = module_17.rshift
                    local function lshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rshift_upvw (read and write)
                        ]]
                        if arg2 < 0 then
                            return rshift_upvw(arg1, -arg2)
                        end
                        return arg1 * 2 ^ arg2 % 4294967296
                    end
                    module_17.lshift = lshift
                    var286_upvw = module_17.lshift
                    local var289_upvw = var286_upvw
                    local function tohex(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        arg2 = arg2 or 8
                        local var290 = arg2
                        local var291
                        if var290 <= 0 then
                            if var290 == 0 then
                                return ""
                            end
                            var291 = true
                            var290 = -var290
                        end
                        local var292 = 16 ^ var290
                        if var291 then
                            var292 = 'X'
                        else
                            var292 = 'x'
                        end
                        return "%0"..var290..var292:format(band_3_upvr(arg1, var292 - 1))
                    end
                    module_17.tohex = tohex
                    local function extract(arg1, arg2, arg3) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw (read and write)
                        ]]
                        return band_3_upvr(rshift_upvw(arg1, arg2), 2 ^ (arg3 or 1) - 1)
                    end
                    module_17.extract = extract
                    local function replace(arg1, arg2, arg3, arg4) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: bnot_upvr_2 (readonly)
                            [3]: var289_upvw (read and write)
                        ]]
                        local var293 = 2 ^ (arg4 or 1) - 1
                        return band_3_upvr(arg1, bnot_upvr_2(var289_upvw(var293, arg3))) + var289_upvw(band_3_upvr(arg2, var293), arg3)
                    end
                    module_17.replace = replace
                    local function bswap(arg1) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw (read and write)
                            [3]: var289_upvw (read and write)
                        ]]
                        local rshift_upvw_result1 = rshift_upvw(arg1, 8)
                        local var288_result1 = rshift_upvw(rshift_upvw_result1, 8)
                        return var289_upvw(var289_upvw(var289_upvw(band_3_upvr(arg1, 255), 8) + band_3_upvr(rshift_upvw_result1, 255), 8) + band_3_upvr(var288_result1, 255), 8) + band_3_upvr(rshift_upvw(var288_result1, 8), 255)
                    end
                    module_17.bswap = bswap
                    local function rrotate(arg1, arg2) -- Line 3
                        --[[ Upvalues[3]:
                            [1]: band_3_upvr (readonly)
                            [2]: rshift_upvw (read and write)
                            [3]: var289_upvw (read and write)
                        ]]
                        local var296 = arg2 % 32
                        return rshift_upvw(arg1, var296) + var289_upvw(band_3_upvr(arg1, 2 ^ var296 - 1), 32 - var296)
                    end
                    module_17.rrotate = rrotate
                    local rrotate_upvr_2 = module_17.rrotate
                    local function lrotate(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rrotate_upvr_2 (readonly)
                        ]]
                        return rrotate_upvr_2(arg1, -arg2)
                    end
                    module_17.lrotate = lrotate
                    local lrotate_upvr_2 = module_17.lrotate
                    module_17.rol = module_17.lrotate
                    module_17.ror = module_17.rrotate
                    local function arshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: rshift_upvw (read and write)
                            [2]: var289_upvw (read and write)
                        ]]
                        local var288_result1_2 = rshift_upvw(arg1, arg2)
                        if 2147483648 <= arg1 then
                            var288_result1_2 += var289_upvw(2 ^ arg2 - 1, 32 - arg2)
                        end
                        return var288_result1_2
                    end
                    module_17.arshift = arshift
                    local function btest(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: band_3_upvr (readonly)
                        ]]
                        local var300
                        if band_3_upvr(arg1, arg2) == 0 then
                            var300 = false
                        else
                            var300 = true
                        end
                        return var300
                    end
                    module_17.btest = btest
                    module_17.bit32 = {}
                    module_17.bit32.bnot = function(arg1) -- Line 3, Named "W"
                        return (-1 - arg1) % 4294967296
                    end
                    local function X_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "X"
                        --[[ Upvalues[2]:
                            [1]: bxor_upvr (readonly)
                            [2]: X_upvr (readonly)
                        ]]
                        local var301
                        if arg2 then
                            var301 %= 4294967296
                            local var283_result1 = bxor_upvr(var301, arg2 % 4294967296)
                            if arg3 then
                                var283_result1 = X_upvr(var283_result1, arg3, ...)
                            end
                            return var283_result1
                        end
                        if var301 then
                            return var301 % 4294967296
                        end
                        return 0
                    end
                    module_17.bit32.bxor = X_upvr
                    local function Y_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "Y"
                        --[[ Upvalues[2]:
                            [1]: bxor_upvr (readonly)
                            [2]: Y_upvr (readonly)
                        ]]
                        if arg2 then
                            local var303 = arg1 % 4294967296
                            local var304 = arg2 % 4294967296
                            local var305 = (var303 + var304 - bxor_upvr(var303, var304)) / 2
                            if arg3 then
                                var305 = Y_upvr(var305, arg3, ...)
                            end
                            return var305
                        end
                        if var303 then
                            return var303 % 4294967296
                        end
                        return 4294967295
                    end
                    module_17.bit32.band = Y_upvr
                    local function Z_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "Z"
                        --[[ Upvalues[2]:
                            [1]: band_3_upvr (readonly)
                            [2]: Z_upvr (readonly)
                        ]]
                        local var306
                        if arg2 then
                            var306 %= 4294967296
                            local var307 = 4294967295 - band_3_upvr(4294967295 - var306, 4294967295 - arg2 % 4294967296)
                            if arg3 then
                                var307 = Z_upvr(var307, arg3, ...)
                            end
                            return var307
                        end
                        if var306 then
                            return var306 % 4294967296
                        end
                        return 0
                    end
                    module_17.bit32.bor = Z_upvr
                    module_17.bit32.btest = function(...) -- Line 3, Named "btest"
                        --[[ Upvalues[1]:
                            [1]: Y_upvr (readonly)
                        ]]
                        local var308
                        if Y_upvr(...) == 0 then
                            var308 = false
                        else
                            var308 = true
                        end
                        return var308
                    end
                    module_17.bit32.lrotate = function(arg1, arg2) -- Line 3, Named "lrotate"
                        --[[ Upvalues[1]:
                            [1]: lrotate_upvr_2 (readonly)
                        ]]
                        return lrotate_upvr_2(arg1 % 4294967296, arg2)
                    end
                    module_17.bit32.rrotate = function(arg1, arg2) -- Line 3, Named "rrotate"
                        --[[ Upvalues[1]:
                            [1]: rrotate_upvr_2 (readonly)
                        ]]
                        return rrotate_upvr_2(arg1 % 4294967296, arg2)
                    end
                    local function lshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: var289_upvw (read and write)
                        ]]
                        if 31 < arg2 or arg2 < -31 then
                            return 0
                        end
                        return var289_upvw(arg1 % 4294967296, arg2)
                    end
                    module_17.bit32.lshift = lshift
                    local function rshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[1]:
                            [1]: rshift_upvw (read and write)
                        ]]
                        if 31 < arg2 or arg2 < -31 then
                            return 0
                        end
                        return rshift_upvw(arg1 % 4294967296, arg2)
                    end
                    module_17.bit32.rshift = rshift
                    local function arshift(arg1, arg2) -- Line 3
                        --[[ Upvalues[2]:
                            [1]: rshift_upvw (read and write)
                            [2]: var289_upvw (read and write)
                        ]]
                        local var309 = arg1 % 4294967296
                        if 0 <= arg2 then
                            if 31 < arg2 then
                                if 2147483648 <= var309 then
                                    return 4294967295
                                end
                                return 0
                            end
                            local rshift_upvw_result1_2 = rshift_upvw(var309, arg2)
                            if 2147483648 <= var309 then
                                rshift_upvw_result1_2 += var289_upvw(2 ^ arg2 - 1, 32 - arg2)
                            end
                            return rshift_upvw_result1_2
                        end
                        return var289_upvw(var309, -arg2)
                    end
                    module_17.bit32.arshift = arshift
                    local extract_upvr = module_17.extract
                    module_17.bit32.extract = function(arg1, arg2, ...) -- Line 3, Named "extract"
                        --[[ Upvalues[1]:
                            [1]: extract_upvr (readonly)
                        ]]
                        local var312 = ... or 1
                        if arg2 < 0 or 31 < arg2 or var312 < 0 or 32 < arg2 + var312 then
                            error("out of range")
                        end
                        return extract_upvr(arg1 % 4294967296, arg2, ...)
                    end
                    local replace_upvr = module_17.replace
                    module_17.bit32.replace = function(arg1, arg2, arg3, ...) -- Line 3, Named "replace"
                        --[[ Upvalues[1]:
                            [1]: replace_upvr (readonly)
                        ]]
                        local var314 = ... or 1
                        if arg3 < 0 or 31 < arg3 or var314 < 0 or 32 < arg3 + var314 then
                            error("out of range")
                        end
                        return replace_upvr(arg1 % 4294967296, arg2 % 4294967296, arg3, ...)
                    end
                    module_17.bit = {}
                    module_17.bit.tobit = function(arg1) -- Line 3, Named "tobit"
                        arg1 %= 4294967296
                        local var315 = arg1
                        if 2147483648 <= var315 then
                            var315 -= 4294967296
                        end
                        return var315
                    end
                    local tobit_upvr_2 = module_17.bit.tobit
                    local tohex_upvr_2 = module_17.tohex
                    module_17.bit.tohex = function(arg1, ...) -- Line 3, Named "tohex"
                        --[[ Upvalues[1]:
                            [1]: tohex_upvr_2 (readonly)
                        ]]
                        return tohex_upvr_2(arg1 % 4294967296, ...)
                    end
                    module_17.bit.bnot = function(arg1) -- Line 3, Named "bnot"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: bnot_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(bnot_upvr_2(arg1 % 4294967296))
                    end
                    local bor_4_upvr = module_17.bor
                    local function a0_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a0"
                        --[[ Upvalues[3]:
                            [1]: a0_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: bor_4_upvr (readonly)
                        ]]
                        if arg3 then
                            return a0_upvr(a0_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(bor_4_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_17.bit.bor = a0_upvr
                    local function a1_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a1"
                        --[[ Upvalues[3]:
                            [1]: a1_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: band_3_upvr (readonly)
                        ]]
                        if arg3 then
                            return a1_upvr(a1_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(band_3_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_17.bit.band = a1_upvr
                    local function a2_upvr(arg1, arg2, arg3, ...) -- Line 3, Named "a2"
                        --[[ Upvalues[3]:
                            [1]: a2_upvr (readonly)
                            [2]: tobit_upvr_2 (readonly)
                            [3]: bxor_upvr (readonly)
                        ]]
                        if arg3 then
                            return a2_upvr(a2_upvr(arg1, arg2), arg3, ...)
                        end
                        if arg2 then
                            return tobit_upvr_2(bxor_upvr(arg1 % 4294967296, arg2 % 4294967296))
                        end
                        return tobit_upvr_2(arg1)
                    end
                    module_17.bit.bxor = a2_upvr
                    module_17.bit.lshift = function(arg1, arg2) -- Line 3, Named "lshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: var289_upvw (read and write)
                        ]]
                        return tobit_upvr_2(var289_upvw(arg1 % 4294967296, arg2 % 32))
                    end
                    module_17.bit.rshift = function(arg1, arg2) -- Line 3, Named "rshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: rshift_upvw (read and write)
                        ]]
                        return tobit_upvr_2(rshift_upvw(arg1 % 4294967296, arg2 % 32))
                    end
                    local arshift_upvr = module_17.arshift
                    module_17.bit.arshift = function(arg1, arg2) -- Line 3, Named "arshift"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: arshift_upvr (readonly)
                        ]]
                        return tobit_upvr_2(arshift_upvr(arg1 % 4294967296, arg2 % 32))
                    end
                    module_17.bit.rol = function(arg1, arg2) -- Line 3, Named "rol"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: lrotate_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(lrotate_upvr_2(arg1 % 4294967296, arg2 % 32))
                    end
                    module_17.bit.ror = function(arg1, arg2) -- Line 3, Named "ror"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: rrotate_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(rrotate_upvr_2(arg1 % 4294967296, arg2 % 32))
                    end
                    local bswap_upvr_2 = module_17.bswap
                    module_17.bit.bswap = function(arg1) -- Line 3, Named "bswap"
                        --[[ Upvalues[2]:
                            [1]: tobit_upvr_2 (readonly)
                            [2]: bswap_upvr_2 (readonly)
                        ]]
                        return tobit_upvr_2(bswap_upvr_2(arg1 % 4294967296))
                    end
                    return module_17
                end)()
            end
        end
        local unpack_upvr = table.unpack
        if not unpack_upvr then
            unpack_upvr = unpack
        end
        local tbl_10_upvr = {13, 23, 0, 2, 4, 7, 9, 12, 14, 17, 5, 1, 6, 10, 16, 20, 26, 30, 36, 19, 22, 18, 24, 27, 29, 33, 32, 11, 15, 21, 8, 34, 28, 37, 25, 31, 35}
        local tbl_29_upvr = {"ABx", "ABC", "ABC", "ABC", "ABx", "ABC", "ABx", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "AsBx", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "AsBx", "AsBx", "ABC", "ABC", "ABC", "ABx", "ABC"}
        local tbl_44_upvr = {{
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgR";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgK";
            c = "OpArgK";
        }, {
            b = "OpArgR";
            c = "OpArgU";
        }, {
            b = "OpArgR";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgR";
            c = "OpArgN";
        }, {
            b = "OpArgN";
            c = "OpArgU";
        }, {
            b = "OpArgU";
            c = "OpArgU";
        }, {
            b = "OpArgN";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }, {
            b = "OpArgU";
            c = "OpArgN";
        }}
        local function aa_upvr(arg1, arg2, arg3, arg4) -- Line 3, Named "aa"
            local var365 = 0
            for i_11 = arg2, arg3, arg4 do
                var365 += string.byte(arg1, i_11, i_11) * 256 ^ (i_11 - arg2)
            end
            return var365
        end
        local function ad_upvr(arg1, arg2, arg3, arg4) -- Line 3, Named "ad"
            --[[ Upvalues[1]:
                [1]: var267_upvr (readonly)
            ]]
            local var366 = -1 ^ var267_upvr.rshift(arg4, 7)
            local var367 = var267_upvr.rshift(arg3, 7) + var267_upvr.lshift(var267_upvr.band(arg4, 127), 1)
            local var368 = 1
            if var367 == 0 then
                if arg1 + var267_upvr.lshift(arg2, 8) + var267_upvr.lshift(var267_upvr.band(arg3, 127), 16) == 0 then
                    return var366 * 0
                end
                var368 = 0
                var367 = 1
            elseif var367 == 127 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if arg1 + var267_upvr.lshift(arg2, 8) + var267_upvr.lshift(var267_upvr.band(arg3, 127), 16) == 0 then
                    return var366 * 1 / 0
                end
                return var366 * 0 / 0
            end
            return var366 * 2 ^ (var367 - 127) * (var368 / 8388608 + 1)
        end
        local function am_upvr(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) -- Line 3, Named "am"
            --[[ Upvalues[1]:
                [1]: var267_upvr (readonly)
            ]]
            local var369 = -1 ^ var267_upvr.rshift(arg8, 7)
            local var370 = var267_upvr.lshift(var267_upvr.band(arg8, 127), 4) + var267_upvr.rshift(arg7, 4)
            local var371 = 1
            if var370 == 0 then
                if var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1 == 0 then
                    return var369 * 0
                end
                var371 = 0
                var370 = 1
            elseif var370 == 2047 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1 == 0 then
                    return var369 * 1 / 0
                end
                return var369 * 0 / 0
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return var369 * 2 ^ (var370 - 1023) * (var371 + (var267_upvr.band(arg7, 15) * 281474976710656 + arg6 * 1099511627776 + arg5 * 4294967296 + arg4 * 16777216 + arg3 * 65536 + arg2 * 256 + arg1) / 4503599627370496)
        end
        local function ar_upvr(arg1, arg2, arg3) -- Line 3, Named "ar"
            --[[ Upvalues[1]:
                [1]: aa_upvr (readonly)
            ]]
            return aa_upvr(arg1, arg2, arg3 - 1, 1)
        end
        local function as_upvr(arg1, arg2, arg3) -- Line 3, Named "as"
            --[[ Upvalues[1]:
                [1]: aa_upvr (readonly)
            ]]
            return aa_upvr(arg1, arg3 - 1, arg2, -1)
        end
        local tbl_53_upvr = {-- : First try: K:0: attempt to index nil with 't'

        local function ay_upvr(arg1) -- Line 3, Named "ay"
            local index = arg1.index
            arg1.index = index + 1
            return string.byte(arg1.source, index, index)
        end
        local function aB_upvr(arg1, arg2) -- Line 3, Named "aB"
            local var388 = arg1.index + arg2
            arg1.index = var388
            return string.sub(arg1.source, arg1.index, var388 - 1)
        end
        local function aF_upvr(arg1) -- Line 3, Named "aF"
            --[[ Upvalues[1]:
                [1]: aB_upvr (readonly)
            ]]
            local any_s_szt_result1_2 = arg1:s_szt()
            local var390
            if any_s_szt_result1_2 ~= 0 then
                var390 = string.sub(aB_upvr(arg1, any_s_szt_result1_2), 1, -2)
            end
            return var390
        end
        local function aG_upvr(arg1, arg2) -- Line 3, Named "aG"
            return function(arg1_14) -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                local var392 = arg1_14.index + arg1
                arg1_14.index = var392
                return arg2(arg1_14.source, arg1_14.index, var392)
            end
        end
        local function aJ_upvr(arg1, arg2) -- Line 3, Named "aJ"
            return function(arg1_15) -- Line 3
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: arg1 (readonly)
                ]]
                arg1_15.index += arg1
                return arg2(arg1_15.source, arg1_15.index)
            end
        end
        local function aL_upvr(arg1) -- Line 3, Named "aL"
            --[[ Upvalues[4]:
                [1]: var267_upvr (readonly)
                [2]: tbl_29_upvr (readonly)
                [3]: tbl_44_upvr (readonly)
                [4]: tbl_10_upvr (readonly)
            ]]
            local module_15 = {}
            for i_12 = 1, arg1:s_int() do
                local any_s_ins_result1 = arg1:s_ins()
                local any_band_result1 = var267_upvr.band(any_s_ins_result1, 63)
                local var399 = tbl_29_upvr[any_band_result1]
                local var400 = tbl_44_upvr[any_band_result1]
                local tbl_35 = {
                    value = any_s_ins_result1;
                    op = tbl_10_upvr[any_band_result1];
                    A = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 6), 255);
                }
                local var402
                if var399 == "ABC" then
                    var402 = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 23), 511)
                    tbl_35.B = var402
                    var402 = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 511)
                    tbl_35.C = var402
                    var402 = false
                    if var400.b == "OpArgK" then
                        if 255 >= tbl_35.B then
                            var402 = false
                        else
                            var402 = true
                        end
                    end
                    tbl_35.is_KB = var402
                    if var400.c == "OpArgK" then
                        if 255 >= tbl_35.C then
                        else
                        end
                    end
                    tbl_35.is_KC = true
                elseif var399 == "ABx" then
                    tbl_35.Bx = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 262143)
                    if var400.b ~= "OpArgK" then
                    else
                    end
                    tbl_35.is_K = true
                elseif var399 == "AsBx" then
                    tbl_35.sBx = var267_upvr.band(var267_upvr.rshift(any_s_ins_result1, 14), 262143) - 131071
                end
                module_15[i_12] = tbl_35
            end
            return module_15
        end
        local function aT_upvr(arg1) -- Line 3, Named "aT"
            --[[ Upvalues[2]:
                [1]: ay_upvr (readonly)
                [2]: aF_upvr (readonly)
            ]]
            local module_6 = {}
            for i_13 = 1, arg1:s_int() do
                local ay_result1 = ay_upvr(arg1)
                local var407
                if ay_result1 == 1 then
                    if ay_upvr(arg1) == 0 then
                        var407 = false
                    else
                        var407 = true
                    end
                elseif ay_result1 == 3 then
                    var407 = arg1:s_num()
                elseif ay_result1 == 4 then
                    var407 = aF_upvr(arg1)
                end
                module_6[i_13] = var407
            end
            return module_6
        end
        local a5_upvw
        local function aW_upvr(arg1, arg2) -- Line 3, Named "aW"
            --[[ Upvalues[1]:
                [1]: a5_upvw (read and write)
            ]]
            local module = {}
            for i_14 = 1, arg1:s_int() do
                module[i_14] = a5_upvw(arg1, arg2)
            end
            return module
        end
        local function aY_upvr(arg1) -- Line 3, Named "aY"
            local module_11 = {}
            for i_15 = 1, arg1:s_int() do
                module_11[i_15] = arg1:s_int()
            end
            return module_11
        end
        local function a__upvr(arg1) -- Line 3, Named "a_"
            --[[ Upvalues[1]:
                [1]: aF_upvr (readonly)
            ]]
            local module_12 = {}
            for i_16 = 1, arg1:s_int() do
                module_12[i_16] = {
                    varname = aF_upvr(arg1);
                    startpc = arg1:s_int();
                    endpc = arg1:s_int();
                }
            end
            return module_12
        end
        local function b1_upvr(arg1) -- Line 3, Named "b1"
            --[[ Upvalues[1]:
                [1]: aF_upvr (readonly)
            ]]
            local module_5 = {}
            for i_17 = 1, arg1:s_int() do
                module_5[i_17] = aF_upvr(arg1)
            end
            return module_5
        end
        function a5_upvw(arg1, arg2) -- Line 3, Named "a5"
            --[[ Upvalues[8]:
                [1]: aF_upvr (readonly)
                [2]: ay_upvr (readonly)
                [3]: aL_upvr (readonly)
                [4]: aT_upvr (readonly)
                [5]: aW_upvr (readonly)
                [6]: aY_upvr (readonly)
                [7]: a__upvr (readonly)
                [8]: b1_upvr (readonly)
            ]]
            local module_14 = {}
            local var425 = aF_upvr(arg1) or arg2
            module_14.source = var425
            arg1:s_int()
            arg1:s_int()
            module_14.numupvals = ay_upvr(arg1)
            module_14.numparams = ay_upvr(arg1)
            ay_upvr(arg1)
            ay_upvr(arg1)
            module_14.code = aL_upvr(arg1)
            module_14.const = aT_upvr(arg1)
            module_14.subs = aW_upvr(arg1, var425)
            module_14.lines = aY_upvr(arg1)
            a__upvr(arg1)
            b1_upvr(arg1)
            for _, v in ipairs(module_14.code) do
                if v.is_K then
                    v.const = module_14.const[v.Bx + 1]
                else
                    if v.is_KB then
                        v.const_B = module_14.const[v.B - 255]
                    end
                    if v.is_KC then
                        v.const_C = module_14.const[v.C - 255]
                    end
                end
            end
            return module_14
        end
        local function a3_upvw(arg1) -- Line 3, Named "a3"
            --[[ Upvalues[8]:
                [1]: aB_upvr (readonly)
                [2]: ay_upvr (readonly)
                [3]: ar_upvr (readonly)
                [4]: as_upvr (readonly)
                [5]: aG_upvr (readonly)
                [6]: tbl_53_upvr (readonly)
                [7]: aJ_upvr (readonly)
                [8]: a5_upvw (read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 51 start (CF ANALYSIS FAILED)
            local tbl_26 = {
                index = 1;
            }
            tbl_26.source = arg1
            local var430
            if aB_upvr(tbl_26, 4) ~= "\x1BLua" then
                var430 = false
            else
                var430 = true
            end
            assert(var430, "invalid Lua signature")
            if ay_upvr(tbl_26) ~= 81 then
                var430 = false
                -- KONSTANTWARNING: GOTO [34] #29
            end
            -- KONSTANTERROR: [0] 1. Error Block 51 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [33] 28. Error Block 56 start (CF ANALYSIS FAILED)
            var430 = true
            assert(var430, "invalid Lua version")
            if ay_upvr(tbl_26) ~= 0 then
                var430 = false
                -- KONSTANTWARNING: GOTO [47] #39
            end
            -- KONSTANTERROR: [33] 28. Error Block 56 end (CF ANALYSIS FAILED)
        end
        local function bd_upvr(arg1, arg2) -- Line 3, Named "bd"
            for i_19, v_2 in pairs(arg1) do
                if arg2 <= v_2.index then
                    v_2.value = v_2.store[v_2.index]
                    v_2.store = v_2
                    v_2.index = "value"
                    arg1[i_19] = nil
                end
            end
        end
        local function bh_upvr(arg1, arg2, arg3) -- Line 3, Named "bh"
            local var436 = arg1[arg2]
            if not var436 then
                local tbl_51 = {}
                tbl_51.index = arg2
                tbl_51.store = arg3
                var436 = tbl_51
                arg1[arg2] = var436
            end
            return var436
        end
        local function bk_upvr(...) -- Line 3, Named "bk"
            return select('#', ...), {...}
        end
        local function bl_upvr(arg1, arg2) -- Line 3, Named "bl"
            local string_match_result1_2, string_match_result2, string_match_result3_2 = string.match(arg2, "^(.-):(%d+):%s+(.+)")
            error(string.format("%s:%i: [%s:%i] %s", arg1.source, arg1.lines[arg1.pc - 1] or '0', string_match_result1_2 or '?', string_match_result2 or '0', string_match_result3_2 or arg2), 0)
        end
        local a4_upvw
        local function bs_upvr(arg1) -- Line 3, Named "bs"
            --[[ Upvalues[6]:
                [1]: bk_upvr (readonly)
                [2]: unpack_upvr (readonly)
                [3]: bd_upvr (readonly)
                [4]: tbl_10_upvr (readonly)
                [5]: bh_upvr (readonly)
                [6]: a4_upvw (read and write)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [959] 718. Error Block 299 start (CF ANALYSIS FAILED)
            arg1.pc = arg1.pc
            -- KONSTANTERROR: [959] 718. Error Block 299 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [17] 10. Error Block 2 start (CF ANALYSIS FAILED)
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [961.11]
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [961.65666]
            -- KONSTANTERROR: [17] 10. Error Block 2 end (CF ANALYSIS FAILED)
        end
        function a4_upvw(arg1, arg2, arg3) -- Line 3, Named "a4"
            --[[ Upvalues[4]:
                [1]: bk_upvr (readonly)
                [2]: bs_upvr (readonly)
                [3]: unpack_upvr (readonly)
                [4]: bl_upvr (readonly)
            ]]
            local numparams_upvr_2 = arg1.numparams
            local code_upvr_2 = arg1.code
            local subs_upvr_2 = arg1.subs
            local lines_upvr_2 = arg1.lines
            local source_upvr = arg1.source
            return function(...) -- Line 3, Named "bY"
                --[[ Upvalues[11]:
                    [1]: bk_upvr (copied, readonly)
                    [2]: numparams_upvr_2 (readonly)
                    [3]: code_upvr_2 (readonly)
                    [4]: subs_upvr_2 (readonly)
                    [5]: lines_upvr_2 (readonly)
                    [6]: source_upvr (readonly)
                    [7]: arg2 (readonly)
                    [8]: arg3 (readonly)
                    [9]: bs_upvr (copied, readonly)
                    [10]: unpack_upvr (copied, readonly)
                    [11]: bl_upvr (copied, readonly)
                ]]
                local tbl_52 = {}
                local tbl_12 = {}
                local var455 = 0
                local bk_upvr_result1, bk_upvr_result2 = bk_upvr(...)
                for i_20 = 1, numparams_upvr_2 do
                    tbl_52[i_20 - 1] = bk_upvr_result2[i_20]
                end
                if numparams_upvr_2 < bk_upvr_result1 then
                    var455 = bk_upvr_result1 - numparams_upvr_2
                    i_20 = 1
                    for i_21 = i_20, var455 do
                        tbl_12[i_21] = bk_upvr_result2[numparams_upvr_2 + i_21]
                    end
                end
                local tbl_50 = {
                    varargs = {
                        list = tbl_12;
                        size = var455;
                    };
                    code = code_upvr_2;
                    subs = subs_upvr_2;
                    lines = lines_upvr_2;
                    source = source_upvr;
                }
                tbl_50.env = arg2
                tbl_50.upvals = arg3
                tbl_50.stack = tbl_52
                tbl_50.pc = 1
                local var460 = tbl_50
                local pcall_result1, pcall_result2_2, pcall_result3_2 = pcall(bs_upvr, var460, ...)
                local var464 = pcall_result2_2
                if pcall_result1 then
                    return unpack_upvr(pcall_result3_2, 1, var464)
                end
                bl_upvr(var460, var464)
            end
        end
        return function(arg1, arg2) -- Line 3
            --[[ Upvalues[3]:
                [1]: a4_upvw (read and write)
                [2]: a3_upvw (read and write)
                [3]: getfenv_upvr (copied, readonly)
            ]]
            local var466 = arg2
            if not var466 then
                var466 = getfenv_upvr(0)
            end
            return a4_upvw(a3_upvw(arg1), var466)
        end
    end)()((function(arg1, arg2) -- Line 3
        --[[ Upvalues[2]:
            [1]: var13_result1_upvr (readonly)
            [2]: var2_upvr (readonly)
        ]]
        local var13_result1_upvr_result1 = var13_result1_upvr(var2_upvr(arg1))
        return var2_upvr(var13_result1_upvr_result1.cipher(var13_result1_upvr_result1, var2_upvr(arg2)))
    end)("elI9MXNnL1slUQ==", "mYGqCSP7NQiWYBZ8tHA8Yfd3JGqOU39oRF1g+XX6gk61APaSnMIsgkaPukQ1XViM0ifkTmb0piBDDpJCITIe16ybFr9OCfn/Py2RRAp9aDd6EJWEgPW/DRJAtxxAFVPan/QBiovNhgCvK+M3SIzbzgdNpw4SJR5fdtlHhRhlsFAc7SgcWO6eUO/Xxhs27JyN89ZPtmB+JGHDiYuOD05To5wAobvj9qVjWWmSAHJ2XnjfEY7UXWA5xgjE8eh621IdQ/VTLsPoEjM9RCPW+hCs8JPf3S9YgqTrhJif2VYBfAHOoqG3GJ3y1APQwVotUETwzoJoyzvoTFBLHAoeORk65lI2xDQdRRKqBLYKimeYfEenA46LpFDzOofkexl7cUT5x6Nt5IVXJNmBLSTewyx5Ei8AI5AHPHmgjipKdctocnjCpUhPTc664HzgjANfpLcGPZooSgFgZmE/+Ps8yAjTGqev4HNupW2WkzTXrtjyx5VJlAAIKqOUkRB/y7ZVYDfp618TDnAhb/mZ/4jsixjbzBf9xFEU5xF4mjxP5NrkiExSWHStU4Hadz0nYepYxzGUD5MzPKzFatUKAeujObns/Gt2qhmVo57mR4ej22l0orjUF5iIwCUCeIAJlWikPrcmh3kHmygyaEhXsRSZk62AGsCfUNVftvaeW7PmTWQZZ4534gRZdrQRWG2RXods23HTnHXSuynkywPmb+BdGDCCXVhxELdRri/0o3/tnUOyY5aHF6jnOD6mK9egFgNkUBWW4iuofsT5bgLiTVwXWhlis0xz5sosHlUkNHLYzOI36yN5MGxKTQL6QWVTEMqCPxU3v+Npw3EbnWmdoyMBg8QSIliEcdoOOajUf/iRAQNCpBepexNYXYG+VtcTnbU0FLaJUtu+XfFap0QL1dOYk8+kgzY+/lKonyALfE2XRJmmJyEyKfchdOX+W8Glk48J3tOnF30IAaoemgW9xb3Gw0sNTmBGF2zDFdb0B3oeZuM/yJSZjNzN/kQaBSg+2+aa7rD1jVP8s8Qr3pZBJ3sFwLHqdXdYkBVa5Um0kwZzoJZ1oQmqYaRi2y8AhbhHce+Ktvg8wEGSdMeyom1nW4bJH7yz0CpQIhj7ExUHon80ZJzBO+RwpKH7BEGJWoCRlpwhMeWHrIXEC09tR5BUQcD6bEZTUj9BoLgMvY+rjd3W4wam7IpwUxsImYy2hocukn8OXrsbut2lysDIV6Y2gQkHh9KE8IX4de9xcVDEuCkxlDjFjFxG8tkNLT3qexPbslLFDRIBXy2BJo4PVTgPF/yt3HPH9a1pmIp+5MYLlnuZODn1cLg3yt0BZs0PxZSPWAWbT4tZOcJ6/5K4QMncTs7qq5elwBhvNsKguWadRLclPBi/4DPf8a3RYoBJN2sdcyPwF1IWeu2WoztZNsCIkDPYvgo8+/29j0ey0UviL6QS3gzT4+Zg9HRd45/V9Gs8k3vPy1tctdbuqZUzmdLBAsY1tOPvXp1HHQL0ih5RGZtN76Dwv4zHjlyw533/r1qYwnhXi9iXmVHo4Tbc9iRrtU0xpQA3T9Sc5ih57lqI6rPmhWjcAUupPqDPeUCgDw3o3uIbXfjk5Dkro+EQ0uOPfR+9TOR12vCbKVyo2sUtmyB5sNviitq8l/S4Wt3gAZmDlGgAIsKRVwMZxb4AD727rsL4kbtQF6Ji+fWRWUhs9sqKPyRNVNFhteq8fvkSV7neCwjFfrAVQanXwROCizF98PjvQ3fVnUK7MtLgN1VOt6a0Ih+tr4by9EIJyYD1dib+gE9Lu/AzsEuc/oFP0+tpvQBLM4RTSTEExDgDplHsndsTj4saG+fjY3DzEBMqpaUyXUYjPmXUcET1/qZbBfTLw+u25JR1k25VryhD5I27n0ZYi1vUpThRQRVNy/QC+qGRRHJtgSZJ1HAJchykCEFA41PXmvhJFMADe5I0Xe9fW7/nktLuDBUumWxFDylYL4S3QyggMg7nm+A0gBdrr0T4OHit6ckCfgT40rwIhGapHI+OtdC7/GXORA+bfUSfFGDYJvlvI9PZPAlIyo/hj17VgdkYOFHsjWEd2Yx5uB14jjtMu74IpgNZkfJv0J1NmiLOl4RuBdVbvInJ7ksrNWxjsAwz5HTJ+37vtheymIzUEr0SQcIx1hYZUZvNltCtfOqdi1XBcULUZ/GGhnMR5wkqPGtEHwZ7WWw4kFEZzynr8sogtJkUSXqlZmpPpimgB/Z0AfdePmc2AS5fsd8+hyWn6mAACcb/RMHmMh746/dsuKZRoFdfeyIrJx6nQcQotnjA+hLGzKgK5S/Bz6Imm9SQ4+qGzNVXfSlMCuhiLS3A/kA+IRrnXEfKbXWrSGsS5vuJGyaNXwUMPEQCIGRVZQxD0vELUduxLacdbXNlMRKDiYiCmX35keo/U6RB2xnZ/doMO1oMQcXtcZo7ic6j+uO7yXShyIwyYaU3DCSZgAMt9ld7F+h+QbNraVZWI/2ezymYQ5l9x5ppxl7KrHqf/B9KUHgyy1cG5YSpVHWvsFrI2TlxmWTaK5yKDErGSatiBKHq7g5qlz+QroutAO+aaZ1B0SDQIY1alvUD6krSLsfBWwEm7Mbmz0O/aYEe11Rx8BvTjTYmwif8QKSPhaScNFz/NugBVQADqdl/o/BrHi6qoQ+KY+dGiMgGNeFyNVKnpBq8mzS/ZLDxriTggVyhtIXz1SkAfW+a1RHrJaj7PENyF4ZQMvOyq3zBVhUiyrKTaohl0NL1ElZ3f/XIbkB5VVDk16Mx9YlwwNS4jbIuTO70b4i7Lag9by9LDP7w/QR8Rw/5gPSrHYlB3OLzIGLCx71yajR83OTQ7MQnmfwzMy8cJsvkLG7B2LloM1EfH3SgVnd0DRcrDHq5TEgFjlbRwR1Y5fswdpK9LvOBNs8Vm1vy0YP8deUiYPyfgDy9Dzzapw86VR4tAsgrHyjekeh5l1/nKQ+FJUXXdQ2yX0OWH3xoI/FOvyZVkgd+Bsi9h4IKzTTp1nWTz9DRrb+1gCNbkCCwV8U4WlX87BozcqE2s7cWUmh9NIzCjInlB70shl9jPKEXIRiViH4Z4Pn0Fy0QxRtZH0OOlibuhpcicc2aAAJrl7fz5CIY+GaP8K0QRUjcMVW3gPWJBtPsYQ+5nsgLJSPGwrY/4u/2x332W52i+FMSbotrpMbKpsSisEx1t+SHsN4yHa9MUEeYJnyUJ8Earo4tQhBFtvdQDkJVhj/Cz+lHtnowDNZ7TEZH9BU/GcwuywbiUf/gOeh4WmzvIGeyNYHrsvkxlYTec0UaYPEPG6NXWHcIlFS56NfzcwpbaomnTrRaBud+hy98VNDXezms/TCMAPpTPkqcuv0d+Hb7aK/C6mEQ9GKtRngA3XFyBik3lEqfR4hH9xj60BlLyLznzx+T2A3ppDkMBlJQVJuFHm+h5c6j0n82MTDh1vPnFLYdAr/I9Sye+XPQ+s9js8wH8kazYt75Ri/+G1VOf6nihToFeR/al/sM447Z0f5tDd/ms/PvRCepT8mYdhqztrTttanQPGxRYSBHrr9LrDZEh6ViLpCA7dJgR6VZNPDquMIYQ1El4AC22ffyy8GdaKwSGSGlBST3XI/9PRkqvcg3bh54OYqeWQecu6kGoGn1eRDIGCU+eIvHaoz0O7+F/qGrWgGo+JCg631m10LfTm2mUnv8s1ewSvh25HVa2x/vVvb/yVpfBhUVfEMWj+xZD9Er7LijXyk5VvaFK1gYMP72PqUKbh/UBNuydHcELMSNV7hnDisIFAZCQaJbb2iSMFyAW3ysOY8NqaE9V26zUNOGpZsInzXEUoN7xkXQhXW9V06ZkjuYiE8B9nOpU7BySbijUEoyC88zfFdsDYWwstTuZ7bwHXdxbIMgUzUXmulqu8BiBJ19CSpdbfwDTiRqXfaGgY+scon7gNZgY4mO8zDjBHHUndVK3OYTFNiYzmGulqH7nEGbjgldqhnyS2mGInFddKiRh7HEANoKBLwyfyi5VNSGDTzDBomohBHeLNcK9kMgYxt8ErwDT5mDZwZmHjKxKmHcIPZAbpSjWcWcgc+jMuEvHRe7/enGCm5jsqTd+mZ8SjA4Q2k/P7eXefnydRtjxvIEuVIKH4WwY1WhwSeoyvh8+IB3hqd5dJuBCg2UdTlXhQaYlG4MSGswLH5I03K68F5pzAGUXfCTO9iBon2qYIo3+ljEGjCW9EpEkfHE5AAlnWxUIIh5K7fFQpdXXTvUGTfXqvFPKs9lTCusfnREgDyfETG/7Xza45UDqKwoSxWRm/BN82ZoRx4ewY+mCmO0UUA97eBUU9t0Li90qlIUhVxjFVGQ1jsiAJbIYggWRTQUQ6YCfxSeQPW1xTw+kJTRIUDLdt0sULBoQqHrVSBGyb/N/detnxxinvE+R+SbPRUs/DBrMbBrSJv4Q7ey01MBRK/L/UzHfshMGT0ai6Pbiw2TgFcdFidZ37DZJMRICNz6N/iJ8/x5EqfS+/zAkAH7F5U5M+ajMKJh1SZujBSQdCn44hM1FrST5g0RzBFEzGKHa45q5wyUQBZgO9ha83VN7HG14D4W7uquomThc0p0bFKgJZ8UjQeqE1pV46xICZTSCcuzGEu+fFPdrhqcbiHGyCUO8U3dk6WA+xzu4ImII2Kv6xOGYEwDSZyx0Rp4H5CDok2E6Cqoeke1Ylhea3JLBZtr655f1ymv6Umo7j3PB/JM65vRMCOA4dOPgujrdIfNlj8JCNgB77BO5bJZj2ZDifbfyWCBdSPelnP3IiR3iHuj8dSAMY6LAfKBtRnfUMV84oAP1zT5bNjcug+JU4quM+4dFJOMIzyvIQ+cmfqjPRV3shAbYMhp3XQk6Cb5Hlxkqkf0eHiRxNYyeyUMWUDFcdmVkoEhQtRWDsstOLyrVO1RoMiJ7tPQ7K+gKanBG0pHpDiiNzUkBjsc1q/Lm9ctISF+PHZsJVus6haG2LqVHfr6SZQ3KUZtt9hTqWAyRO9GX6Ls5gvf+eAJP17FXI5Jbp/2WWCZpZ8kSnf1OF1sEx4lRHJbjAHyM8YcxNBdyX9CwfztHKmvz+1yG/WUXJXK/cpz1Ywzm+pCASbvf1id6o4stlI0x4cKXEFn42tQUDlm0g5M4bFobhMQtioXZRKBtwg/VJya0u9p4iHEQz9lbCCF4x0MTQHtovJxQhz6Sz84SaRwDQCfPX6t1xBtRdlEvRGXm1j7sKnjX/2lmAgrlHcTMdqfzpZdtCwx3PfJL2Cfi20qEZhCc/P8rN6DFY+aWmPenwR3CZLHEWDeFZnuT7RdLgs17e77XEY6GfmxawxDZMViz+6CPBNU2CfdhRa6zaKF1/7qoUk7KDZVNeYCmtNwqVboWJsyV99LJ4XYr51RhT3XVq4ndAzB7dValHESvvBXOoowU1IYe2+V7lvg0Ji4with7pbOUHh8P5v+MKRhW3RcGrdNG9WyTN+fDURRZN0889WqGsS7r1V0HYAHb8aSl57FBI63FK3inKjTyu7/FAgMQF3Ty3WQGGLE+bGefFLkTv1mkcsdD5ZYeIxpgYzaZ97IenJv5slR0xBI5ri6SD5YqCIWy+llAKRydmwD+fx1TjS4+wZaxM7G3Rh9Se6S0t9pA7Ru2QTW7sDvgDATZKbZrEY="), getfenv(0))()
end)()
LocalScript ClientUIPositionLoader ClientUIPositionLoader
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:14
-- Luau version 6, Types version 3
-- Time taken: 0.001465 seconds

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LoadedButtonPositions = _G.LoadedButtonPositions
if not LoadedButtonPositions then
    LoadedButtonPositions = {}
end
_G.LoadedButtonPositions = LoadedButtonPositions
local BindableEvent_upvr = Instance.new("BindableEvent")
BindableEvent_upvr.Name = "ButtonPositionsLoadedEvent"
BindableEvent_upvr.Parent = ReplicatedStorage
print("ClientUIPositionLoader: Created ButtonPositionsLoadedEvent")
ReplicatedStorage:WaitForChild("NetColorRemoteEvent").OnClientEvent:Connect(function(arg1, arg2) -- Line 15
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    if arg1 == "LoadButtonPositions" then
        print("ClientUIPositionLoader: Received LoadButtonPositions data:", arg2)
        if type(arg2) == "table" then
            _G.LoadedButtonPositions = arg2
        else
            _G.LoadedButtonPositions = {}
        end
        BindableEvent_upvr:Fire()
        print("ClientUIPositionLoader: Fired ButtonPositionsLoadedEvent with data:", _G.LoadedButtonPositions)
    end
end)
print("ClientUIPositionLoader: Script loaded and listening for LoadButtonPositions events")
ModuleScript PlayerModule PlayerModule
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:16
-- Luau version 6, Types version 3
-- Time taken: 0.001240 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 13
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.cameras = require(script:WaitForChild("CameraModule"))
    setmetatable_result1.controls = require(script:WaitForChild("ControlModule"))
    return setmetatable_result1
end
function module_upvr.GetCameras(arg1) -- Line 20
    return arg1.cameras
end
function module_upvr.GetControls(arg1) -- Line 24
    return arg1.controls
end
function module_upvr.GetClickToMoveController(arg1) -- Line 28
    return arg1.controls:GetClickToMoveController()
end
return module_upvr.new()
ModuleScript ControlModule ControlModule
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:17
-- Luau version 6, Types version 3
-- Time taken: 0.032888 seconds

local module_upvr_3 = {}
module_upvr_3.__index = module_upvr_3
local Players_upvr = game:GetService("Players")
local UserInputService_upvr = game:GetService("UserInputService")
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
local module_upvr = require(script:WaitForChild("Keyboard"))
local module_upvr_4 = require(script:WaitForChild("Gamepad"))
local module_upvr_7 = require(script:WaitForChild("DynamicThumbstick"))
local pcall_result1, pcall_result2 = pcall(function() -- Line 29
    return UserSettings():IsUserFeatureEnabled("UserMakeThumbstickDynamic")
end)
local var11_upvr
local function INLINED() -- Internal function, doesn't exist in bytecode
    var11_upvr = module_upvr_7
    return var11_upvr
end
if not (pcall_result1 and pcall_result2) or not INLINED() then
    var11_upvr = require(script:WaitForChild("TouchThumbstick"))
end
local module_upvr_6 = require(script:WaitForChild("ClickToMoveController"))
local Value_upvr = Enum.ContextActionPriority.Default.Value
local tbl_upvr = {
    [Enum.TouchMovementMode.DPad] = module_upvr_7;
    [Enum.DevTouchMovementMode.DPad] = module_upvr_7;
    [Enum.TouchMovementMode.Thumbpad] = module_upvr_7;
    [Enum.DevTouchMovementMode.Thumbpad] = module_upvr_7;
    [Enum.TouchMovementMode.Thumbstick] = var11_upvr;
    [Enum.DevTouchMovementMode.Thumbstick] = var11_upvr;
    [Enum.TouchMovementMode.DynamicThumbstick] = module_upvr_7;
    [Enum.DevTouchMovementMode.DynamicThumbstick] = module_upvr_7;
    [Enum.TouchMovementMode.ClickToMove] = module_upvr_6;
    [Enum.DevTouchMovementMode.ClickToMove] = module_upvr_6;
    [Enum.TouchMovementMode.Default] = module_upvr_7;
    [Enum.ComputerMovementMode.Default] = module_upvr;
    [Enum.ComputerMovementMode.KeyboardMouse] = module_upvr;
    [Enum.DevComputerMovementMode.KeyboardMouse] = module_upvr;
    [Enum.DevComputerMovementMode.Scriptable] = nil;
    [Enum.ComputerMovementMode.ClickToMove] = module_upvr_6;
    [Enum.DevComputerMovementMode.ClickToMove] = module_upvr_6;
}
local tbl_upvr_2 = {
    [Enum.UserInputType.Keyboard] = module_upvr;
    [Enum.UserInputType.MouseButton1] = module_upvr;
    [Enum.UserInputType.MouseButton2] = module_upvr;
    [Enum.UserInputType.MouseButton3] = module_upvr;
    [Enum.UserInputType.MouseWheel] = module_upvr;
    [Enum.UserInputType.MouseMovement] = module_upvr;
    [Enum.UserInputType.Gamepad1] = module_upvr_4;
    [Enum.UserInputType.Gamepad2] = module_upvr_4;
    [Enum.UserInputType.Gamepad3] = module_upvr_4;
    [Enum.UserInputType.Gamepad4] = module_upvr_4;
}
local var16_upvw
local module_upvr_5 = require(script:WaitForChild("VehicleController"))
local RunService_upvr = game:GetService("RunService")
function module_upvr_3.new() -- Line 86
    --[[ Upvalues[7]:
        [1]: module_upvr_3 (readonly)
        [2]: Players_upvr (readonly)
        [3]: module_upvr_5 (readonly)
        [4]: Value_upvr (readonly)
        [5]: RunService_upvr (readonly)
        [6]: UserInputService_upvr (readonly)
        [7]: UserGameSettings_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr_3)
    setmetatable_result1_upvr.controllers = {}
    setmetatable_result1_upvr.activeControlModule = nil
    setmetatable_result1_upvr.activeController = nil
    setmetatable_result1_upvr.touchJumpController = nil
    setmetatable_result1_upvr.moveFunction = Players_upvr.LocalPlayer.Move
    setmetatable_result1_upvr.humanoid = nil
    setmetatable_result1_upvr.lastInputType = Enum.UserInputType.None
    setmetatable_result1_upvr.humanoidSeatedConn = nil
    setmetatable_result1_upvr.vehicleController = nil
    setmetatable_result1_upvr.touchControlFrame = nil
    setmetatable_result1_upvr.vehicleController = module_upvr_5.new(Value_upvr)
    Players_upvr.LocalPlayer.CharacterAdded:Connect(function(arg1) -- Line 108
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnCharacterAdded(arg1)
    end)
    Players_upvr.LocalPlayer.CharacterRemoving:Connect(function(arg1) -- Line 109
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnCharacterRemoving(arg1)
    end)
    if Players_upvr.LocalPlayer.Character then
        setmetatable_result1_upvr:OnCharacterAdded(Players_upvr.LocalPlayer.Character)
    end
    RunService_upvr:BindToRenderStep("ControlScriptRenderstep", Enum.RenderPriority.Input.Value, function(arg1) -- Line 114
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnRenderStepped(arg1)
    end)
    UserInputService_upvr.LastInputTypeChanged:Connect(function(arg1) -- Line 118
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnLastInputTypeChanged(arg1)
    end)
    UserGameSettings_upvr:GetPropertyChangedSignal("TouchMovementMode"):Connect(function() -- Line 123
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnTouchMovementModeChange()
    end)
    Players_upvr.LocalPlayer:GetPropertyChangedSignal("DevTouchMovementMode"):Connect(function() -- Line 126
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnTouchMovementModeChange()
    end)
    UserGameSettings_upvr:GetPropertyChangedSignal("ComputerMovementMode"):Connect(function() -- Line 130
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnComputerMovementModeChange()
    end)
    Players_upvr.LocalPlayer:GetPropertyChangedSignal("DevComputerMovementMode"):Connect(function() -- Line 133
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnComputerMovementModeChange()
    end)
    setmetatable_result1_upvr.playerGui = nil
    setmetatable_result1_upvr.touchGui = nil
    setmetatable_result1_upvr.playerGuiAddedConn = nil
    if UserInputService_upvr.TouchEnabled then
        setmetatable_result1_upvr.playerGui = Players_upvr.LocalPlayer:FindFirstChildOfClass("PlayerGui")
        if setmetatable_result1_upvr.playerGui then
            setmetatable_result1_upvr:CreateTouchGuiContainer()
            setmetatable_result1_upvr:OnLastInputTypeChanged(UserInputService_upvr:GetLastInputType())
            return setmetatable_result1_upvr
        end
        setmetatable_result1_upvr.playerGuiAddedConn = Players_upvr.LocalPlayer.ChildAdded:Connect(function(arg1) -- Line 148
            --[[ Upvalues[2]:
                [1]: setmetatable_result1_upvr (readonly)
                [2]: UserInputService_upvr (copied, readonly)
            ]]
            if arg1:IsA("PlayerGui") then
                setmetatable_result1_upvr.playerGui = arg1
                setmetatable_result1_upvr:CreateTouchGuiContainer()
                setmetatable_result1_upvr.playerGuiAddedConn:Disconnect()
                setmetatable_result1_upvr.playerGuiAddedConn = nil
                setmetatable_result1_upvr:OnLastInputTypeChanged(UserInputService_upvr:GetLastInputType())
            end
        end)
        return setmetatable_result1_upvr
    end
    setmetatable_result1_upvr:OnLastInputTypeChanged(UserInputService_upvr:GetLastInputType())
    return setmetatable_result1_upvr
end
function module_upvr_3.GetMoveVector(arg1) -- Line 168
    if arg1.activeController then
        return arg1.activeController:GetMoveVector()
    end
    return Vector3.new(0, 0, 0)
end
function module_upvr_3.GetActiveController(arg1) -- Line 175
    return arg1.activeController
end
function module_upvr_3.EnableActiveControlModule(arg1) -- Line 179
    --[[ Upvalues[2]:
        [1]: module_upvr_6 (readonly)
        [2]: Players_upvr (readonly)
    ]]
    local var29
    if arg1.activeControlModule == module_upvr_6 then
        if Players_upvr.LocalPlayer.DevComputerMovementMode ~= Enum.DevComputerMovementMode.UserChoice then
            var29 = false
        else
            var29 = true
        end
        arg1.activeController:Enable(true, var29, arg1.touchJumpController)
    else
        if arg1.touchControlFrame then
            var29 = arg1.touchControlFrame
            arg1.activeController:Enable(true, var29)
            return
        end
        arg1.activeController:Enable(true)
    end
end
function module_upvr_3.Enable(arg1, arg2) -- Line 195
    local var30
    if not arg1.activeController then
    else
        if var30 == nil then
            var30 = true
        end
        if var30 then
            arg1:EnableActiveControlModule()
            return
        end
        arg1:Disable()
    end
end
function module_upvr_3.Disable(arg1) -- Line 211
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    if arg1.activeController then
        arg1.activeController:Enable(false)
        if arg1.moveFunction then
            arg1.moveFunction(Players_upvr.LocalPlayer, Vector3.new(0, 0, 0), true)
        end
    end
end
function module_upvr_3.SelectComputerMovementModule(arg1) -- Line 223
    --[[ Upvalues[8]:
        [1]: UserInputService_upvr (readonly)
        [2]: Players_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: var16_upvw (read and write)
        [5]: UserGameSettings_upvr (readonly)
        [6]: module_upvr (readonly)
        [7]: module_upvr_6 (readonly)
        [8]: tbl_upvr (readonly)
    ]]
    if not UserInputService_upvr.KeyboardEnabled and not UserInputService_upvr.GamepadEnabled then
        return nil, false
    end
    local var31
    local DevComputerMovementMode = Players_upvr.LocalPlayer.DevComputerMovementMode
    if DevComputerMovementMode == Enum.DevComputerMovementMode.UserChoice then
        var31 = tbl_upvr_2[var16_upvw]
        if UserGameSettings_upvr.ComputerMovementMode == Enum.ComputerMovementMode.ClickToMove and var31 == module_upvr then
            var31 = module_upvr_6
            -- KONSTANTWARNING: GOTO [48] #36
        end
    else
        var31 = tbl_upvr[DevComputerMovementMode]
        if not var31 and DevComputerMovementMode ~= Enum.DevComputerMovementMode.Scriptable then
            warn("No character control module is associated with DevComputerMovementMode ", DevComputerMovementMode)
        end
    end
    if var31 then
        return var31, true
    end
    if DevComputerMovementMode == Enum.DevComputerMovementMode.Scriptable then
        return nil, true
    end
    return nil, false
end
function module_upvr_3.SelectTouchModule(arg1) -- Line 261
    --[[ Upvalues[4]:
        [1]: UserInputService_upvr (readonly)
        [2]: Players_upvr (readonly)
        [3]: tbl_upvr (readonly)
        [4]: UserGameSettings_upvr (readonly)
    ]]
    if not UserInputService_upvr.TouchEnabled then
        return nil, false
    end
    local var33
    local DevTouchMovementMode = Players_upvr.LocalPlayer.DevTouchMovementMode
    if DevTouchMovementMode == Enum.DevTouchMovementMode.UserChoice then
        var33 = tbl_upvr[UserGameSettings_upvr.TouchMovementMode]
    else
        if DevTouchMovementMode == Enum.DevTouchMovementMode.Scriptable then
            return nil, true
        end
        var33 = tbl_upvr[DevTouchMovementMode]
    end
    return var33, true
end
local Workspace_upvr = game:GetService("Workspace")
local function calculateRawMoveVector_upvr(arg1, arg2) -- Line 277, Named "calculateRawMoveVector"
    --[[ Upvalues[1]:
        [1]: Workspace_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local CurrentCamera = Workspace_upvr.CurrentCamera
    if not CurrentCamera then
        return arg2
    end
    if arg1:GetState() == Enum.HumanoidStateType.Swimming then
        return CurrentCamera.CFrame:VectorToWorldSpace(arg2)
    end
    local _, _, any_GetComponents_result3, any_GetComponents_result4, any_GetComponents_result5, any_GetComponents_result6, _, _, any_GetComponents_result9, _, _, any_GetComponents_result12 = CurrentCamera.CFrame:GetComponents()
    local var49
    if any_GetComponents_result9 < 1 and -1 < any_GetComponents_result9 then
        var49 = any_GetComponents_result12
        local _ = any_GetComponents_result6
    else
        var49 = any_GetComponents_result4
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    local squareroot = math.sqrt(var49 * var49 + (-any_GetComponents_result5 * math.sign(any_GetComponents_result9)) * (-any_GetComponents_result5 * math.sign(any_GetComponents_result9)))
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
    return Vector3.new((var49 * arg2.x + -any_GetComponents_result5 * math.sign(any_GetComponents_result9) * arg2.z) / squareroot, 0, (var49 * arg2.z - -any_GetComponents_result5 * math.sign(any_GetComponents_result9) * arg2.x) / squareroot)
end
local function _(arg1, arg2, arg3) -- Line 320, Named "lerp"
    return arg1 + (arg2 - arg1) * arg3
end
local zero_vector3_upvw_2 = Vector3.new()
local zero_vector3_upvw = Vector3.new()
local const_number_upvw = 0
local const_number_upvw_3 = 0
local const_number_upvw_2 = 0
function module_upvr_3.OnRenderStepped(arg1, arg2) -- Line 324
    --[[ Upvalues[8]:
        [1]: Players_upvr (readonly)
        [2]: module_upvr_4 (readonly)
        [3]: calculateRawMoveVector_upvr (readonly)
        [4]: zero_vector3_upvw_2 (read and write)
        [5]: zero_vector3_upvw (read and write)
        [6]: const_number_upvw (read and write)
        [7]: const_number_upvw_3 (read and write)
        [8]: const_number_upvw_2 (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var64
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [3] 3. Error Block 2 start (CF ANALYSIS FAILED)
    var64 = arg1.activeController.enabled
    -- KONSTANTERROR: [3] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [8] 6. Error Block 3 start (CF ANALYSIS FAILED)
    var64 = arg1.humanoid
    -- KONSTANTERROR: [8] 6. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [226] 160. Error Block 95 start (CF ANALYSIS FAILED)
    var64 = arg1.activeController:OnRenderStepped
    var64(arg2)
    var64 = arg1.activeController:GetMoveVector()
    local any_IsMoveVectorCameraRelative_result1_2 = arg1.activeController:IsMoveVectorCameraRelative()
    local any_GetClickToMoveController_result1_2 = arg1:GetClickToMoveController()
    if arg1.activeController ~= any_GetClickToMoveController_result1_2 then
        if 0 < var64.magnitude then
            any_GetClickToMoveController_result1_2:CleanupPath()
        else
            any_GetClickToMoveController_result1_2:OnRenderStepped(arg2)
            var64 = any_GetClickToMoveController_result1_2:GetMoveVector()
            any_IsMoveVectorCameraRelative_result1_2 = any_GetClickToMoveController_result1_2:IsMoveVectorCameraRelative()
        end
    end
    local var67
    if arg1.vehicleController then
        if arg1.activeControlModule ~= module_upvr_4 then
            var67 = false
        else
            var67 = true
        end
        local any_Update_result1, _ = arg1.vehicleController:Update(var64, any_IsMoveVectorCameraRelative_result1_2, var67)
        var64 = any_Update_result1
    end
    if any_IsMoveVectorCameraRelative_result1_2 then
        var64 = calculateRawMoveVector_upvr(arg1.humanoid, var64)
    end
    arg1.moveFunction(Players_upvr.LocalPlayer, var64, false)
    local any_GetIsJumping_result1 = arg1.activeController:GetIsJumping()
    if not any_GetIsJumping_result1 then
        any_GetIsJumping_result1 = arg1.touchJumpController
        if any_GetIsJumping_result1 then
            any_GetIsJumping_result1 = arg1.touchJumpController:GetIsJumping()
        end
    end
    arg1.humanoid.Jump = any_GetIsJumping_result1
    -- KONSTANTERROR: [226] 160. Error Block 95 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [323] 227. Error Block 69 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [323] 227. Error Block 69 end (CF ANALYSIS FAILED)
end
function module_upvr_3.OnHumanoidSeated(arg1, arg2, arg3) -- Line 438
    --[[ Upvalues[1]:
        [1]: Value_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 7. Error Block 12 start (CF ANALYSIS FAILED)
    if not arg1.vehicleController then
        arg1.vehicleController = arg1.vehicleController.new(Value_upvr)
    end
    arg1.vehicleController:Enable(true, arg3)
    do
        return
    end
    -- KONSTANTERROR: [7] 7. Error Block 12 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [26] 20. Error Block 10 start (CF ANALYSIS FAILED)
    if arg1.vehicleController then
        arg1.vehicleController:Enable(false, arg3)
    end
    -- KONSTANTERROR: [26] 20. Error Block 10 end (CF ANALYSIS FAILED)
end
function module_upvr_3.OnCharacterAdded(arg1, arg2) -- Line 453
    arg1.humanoid = arg2:FindFirstChildOfClass("Humanoid")
    while not arg1.humanoid do
        arg2.ChildAdded:wait()
        arg1.humanoid = arg2:FindFirstChildOfClass("Humanoid")
    end
    if arg1.touchGui then
        arg1.touchGui.Enabled = true
    end
    if arg1.humanoidSeatedConn then
        arg1.humanoidSeatedConn:Disconnect()
        arg1.humanoidSeatedConn = nil
    end
    arg1.humanoidSeatedConn = arg1.humanoid.Seated:Connect(function(arg1_2, arg2_2) -- Line 468
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnHumanoidSeated(arg1_2, arg2_2)
    end)
end
function module_upvr_3.OnCharacterRemoving(arg1, arg2) -- Line 473
    arg1.humanoid = nil
    if arg1.touchGui then
        arg1.touchGui.Enabled = false
    end
end
local module_upvr_2 = require(script:WaitForChild("TouchJump"))
function module_upvr_3.SwitchToController(arg1, arg2) -- Line 485
    --[[ Upvalues[5]:
        [1]: Value_upvr (readonly)
        [2]: module_upvr_6 (readonly)
        [3]: var11_upvr (readonly)
        [4]: module_upvr_7 (readonly)
        [5]: module_upvr_2 (readonly)
    ]]
    if not arg2 then
        if arg1.activeController then
            arg1.activeController:Enable(false)
        end
        arg1.activeController = nil
        arg1.activeControlModule = nil
    else
        if not arg1.controllers[arg2] then
            arg1.controllers[arg2] = arg2.new(Value_upvr)
        end
        if arg1.activeController ~= arg1.controllers[arg2] then
            if arg1.activeController then
                arg1.activeController:Enable(false)
            end
            arg1.activeController = arg1.controllers[arg2]
            arg1.activeControlModule = arg2
            if arg1.touchControlFrame and (arg1.activeControlModule == module_upvr_6 or arg1.activeControlModule == var11_upvr or arg1.activeControlModule == module_upvr_7) then
                if not arg1.controllers[module_upvr_2] then
                    arg1.controllers[module_upvr_2] = module_upvr_2.new()
                end
                arg1.touchJumpController = arg1.controllers[module_upvr_2]
                arg1.touchJumpController:Enable(true, arg1.touchControlFrame)
            elseif arg1.touchJumpController then
                arg1.touchJumpController:Enable(false)
            end
            arg1:EnableActiveControlModule()
        end
    end
end
function module_upvr_3.OnLastInputTypeChanged(arg1, arg2) -- Line 523
    --[[ Upvalues[2]:
        [1]: var16_upvw (read and write)
        [2]: tbl_upvr_2 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [3] 3. Error Block 2 start (CF ANALYSIS FAILED)
    warn("LastInputType Change listener called with current type.")
    -- KONSTANTERROR: [3] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 3 start (CF ANALYSIS FAILED)
    var16_upvw = arg2
    -- KONSTANTERROR: [7] 6. Error Block 3 end (CF ANALYSIS FAILED)
end
function module_upvr_3.OnComputerMovementModeChange(arg1) -- Line 548
    local any_SelectComputerMovementModule_result1, any_SelectComputerMovementModule_result2 = arg1:SelectComputerMovementModule()
    if any_SelectComputerMovementModule_result2 then
        arg1:SwitchToController(any_SelectComputerMovementModule_result1)
    end
end
function module_upvr_3.OnTouchMovementModeChange(arg1) -- Line 555
    local any_SelectTouchModule_result1, any_SelectTouchModule_result2 = arg1:SelectTouchModule()
    if any_SelectTouchModule_result2 then
        while not arg1.touchControlFrame do
            wait()
        end
        arg1:SwitchToController(any_SelectTouchModule_result1)
    end
end
function module_upvr_3.CreateTouchGuiContainer(arg1) -- Line 565
    if arg1.touchGui then
        arg1.touchGui:Destroy()
    end
    arg1.touchGui = Instance.new("ScreenGui")
    arg1.touchGui.Name = "TouchGui"
    arg1.touchGui.ResetOnSpawn = false
    local Sibling = Enum.ZIndexBehavior.Sibling
    arg1.touchGui.ZIndexBehavior = Sibling
    if arg1.humanoid == nil then
        Sibling = false
    else
        Sibling = true
    end
    arg1.touchGui.Enabled = Sibling
    arg1.touchControlFrame = Instance.new("Frame")
    arg1.touchControlFrame.Name = "TouchControlFrame"
    arg1.touchControlFrame.Size = UDim2.new(1, 0, 1, 0)
    arg1.touchControlFrame.BackgroundTransparency = 1
    arg1.touchControlFrame.Parent = arg1.touchGui
    arg1.touchGui.Parent = arg1.playerGui
end
function module_upvr_3.GetClickToMoveController(arg1) -- Line 584
    --[[ Upvalues[2]:
        [1]: module_upvr_6 (readonly)
        [2]: Value_upvr (readonly)
    ]]
    if not arg1.controllers[module_upvr_6] then
        arg1.controllers[module_upvr_6] = module_upvr_6.new(Value_upvr)
    end
    return arg1.controllers[module_upvr_6]
end
return module_upvr_3.new()
ModuleScript VRNavigation VRNavigation
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:19
-- Luau version 6, Types version 3
-- Time taken: 0.036925 seconds

local VRService_upvr = game:GetService("VRService")
local UserInputService_upvr = game:GetService("UserInputService")
local ContextActionService_upvr = game:GetService("ContextActionService")
local var4_upvw
local function _(arg1) -- Line 30, Named "IsFinite"
    local var6 = false
    if arg1 == arg1 then
        var6 = false
        if arg1 ~= math.huge then
            if arg1 == (-math.huge) then
                var6 = false
            else
                var6 = true
            end
        end
    end
    return var6
end
local function _(arg1) -- Line 34, Named "IsFiniteVector3"
    local x_4 = arg1.x
    local var16
    if x_4 == x_4 then
        var16 = false
        if x_4 ~= math.huge then
            if x_4 == (-math.huge) then
                var16 = false
            else
                var16 = true
            end
        end
    end
    if var16 then
        local y_3 = arg1.y
        var16 = false
        if y_3 == y_3 then
            var16 = false
            if y_3 ~= math.huge then
                if y_3 == (-math.huge) then
                    var16 = false
                else
                    var16 = true
                end
            end
        end
        if var16 then
            local z_2 = arg1.z
            var16 = false
            if z_2 == z_2 then
                var16 = false
                if z_2 ~= math.huge then
                    if z_2 == (-math.huge) then
                        var16 = false
                    else
                        var16 = true
                    end
                end
            end
        end
    end
    return var16
end
local BindableEvent_upvr = Instance.new("BindableEvent")
BindableEvent_upvr.Name = "MovementUpdate"
BindableEvent_upvr.Parent = script
coroutine.wrap(function() -- Line 42
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    local PathDisplay = script.Parent:WaitForChild("PathDisplay")
    if PathDisplay then
        var4_upvw = require(PathDisplay)
    end
end)()
local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new(arg1) -- Line 55
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.CONTROL_ACTION_PRIORITY = arg1
    setmetatable_result1.navigationRequestedConn = nil
    setmetatable_result1.heartbeatConn = nil
    setmetatable_result1.currentDestination = nil
    setmetatable_result1.currentPath = nil
    setmetatable_result1.currentPoints = nil
    setmetatable_result1.currentPointIdx = 0
    setmetatable_result1.expectedTimeToNextPoint = 0
    setmetatable_result1.timeReachedLastPoint = tick()
    setmetatable_result1.moving = false
    setmetatable_result1.isJumpBound = false
    setmetatable_result1.moveLatch = false
    setmetatable_result1.userCFrameEnabledConn = nil
    return setmetatable_result1
end
local StarterGui_upvr = game:GetService("StarterGui")
function setmetatable_result1_upvr.SetLaserPointerMode(arg1, arg2) -- Line 80
    --[[ Upvalues[1]:
        [1]: StarterGui_upvr (readonly)
    ]]
    pcall(function() -- Line 81
        --[[ Upvalues[2]:
            [1]: StarterGui_upvr (copied, readonly)
            [2]: arg2 (readonly)
        ]]
        StarterGui_upvr:SetCore("VRLaserPointerMode", arg2)
    end)
end
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
function setmetatable_result1_upvr.GetLocalHumanoid(arg1) -- Line 86
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local Character = LocalPlayer_upvr.Character
    if not Character then return end
    for _, v in pairs(Character:GetChildren()) do
        if v:IsA("Humanoid") then
            return v
        end
    end
    return nil
end
function setmetatable_result1_upvr.HasBothHandControllers(arg1) -- Line 100
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    local any_GetUserCFrameEnabled_result1_2 = VRService_upvr:GetUserCFrameEnabled(Enum.UserCFrame.RightHand)
    if any_GetUserCFrameEnabled_result1_2 then
        any_GetUserCFrameEnabled_result1_2 = VRService_upvr:GetUserCFrameEnabled(Enum.UserCFrame.LeftHand)
    end
    return any_GetUserCFrameEnabled_result1_2
end
function setmetatable_result1_upvr.HasAnyHandControllers(arg1) -- Line 104
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    local any_GetUserCFrameEnabled_result1 = VRService_upvr:GetUserCFrameEnabled(Enum.UserCFrame.RightHand)
    if not any_GetUserCFrameEnabled_result1 then
        any_GetUserCFrameEnabled_result1 = VRService_upvr:GetUserCFrameEnabled(Enum.UserCFrame.LeftHand)
    end
    return any_GetUserCFrameEnabled_result1
end
function setmetatable_result1_upvr.IsMobileVR(arg1) -- Line 108
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    return UserInputService_upvr.TouchEnabled
end
function setmetatable_result1_upvr.HasGamepad(arg1) -- Line 112
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    return UserInputService_upvr.GamepadEnabled
end
function setmetatable_result1_upvr.ShouldUseNavigationLaser(arg1) -- Line 116
    if arg1:IsMobileVR() then
        return true
    end
    if arg1:HasBothHandControllers() then
        return false
    end
    if not arg1:HasAnyHandControllers() then
        return not arg1:HasGamepad()
    end
    return true
end
function setmetatable_result1_upvr.StartFollowingPath(arg1, arg2) -- Line 138
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    currentPath = arg2 -- Setting global
    currentPoints = currentPath:GetPointCoordinates() -- Setting global
    currentPointIdx = 1 -- Setting global
    moving = true -- Setting global
    timeReachedLastPoint = tick() -- Setting global
    local any_GetLocalHumanoid_result1_2 = arg1:GetLocalHumanoid()
    if any_GetLocalHumanoid_result1_2 and any_GetLocalHumanoid_result1_2.Torso and 1 <= #currentPoints then
        expectedTimeToNextPoint = (currentPoints[1] - any_GetLocalHumanoid_result1_2.Torso.Position).magnitude / any_GetLocalHumanoid_result1_2.WalkSpeed -- Setting global
    end
    BindableEvent_upvr:Fire("targetPoint", arg1.currentDestination)
end
function setmetatable_result1_upvr.GoToPoint(arg1, arg2) -- Line 155
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    currentPath = true -- Setting global
    local tbl_2 = {}
    tbl_2[1] = arg2
    currentPoints = tbl_2 -- Setting global
    currentPointIdx = 1 -- Setting global
    moving = true -- Setting global
    local any_GetLocalHumanoid_result1_4 = arg1:GetLocalHumanoid()
    timeReachedLastPoint = tick() -- Setting global
    expectedTimeToNextPoint = (any_GetLocalHumanoid_result1_4.Torso.Position - arg2).magnitude / any_GetLocalHumanoid_result1_4.WalkSpeed -- Setting global
    BindableEvent_upvr:Fire("targetPoint", arg2)
end
function setmetatable_result1_upvr.StopFollowingPath(arg1) -- Line 171
    currentPath = nil -- Setting global
    currentPoints = nil -- Setting global
    currentPointIdx = 0 -- Setting global
    moving = false -- Setting global
    arg1.moveVector = Vector3.new(0, 0, 0)
end
local PathfindingService_upvr = game:GetService("PathfindingService")
function setmetatable_result1_upvr.TryComputePath(arg1, arg2, arg3) -- Line 179
    --[[ Upvalues[1]:
        [1]: PathfindingService_upvr (readonly)
    ]]
    local var41
    while not var41 and 0 < 5 do
        var41 = PathfindingService_upvr:ComputeSmoothPathAsync(arg2, arg3, 200)
        local var42 = var41
        if var42.Status == Enum.PathStatus.ClosestNoPath or var42.Status == Enum.PathStatus.ClosestOutOfRange then
            var42 = nil
            do
                return var42
            end
            local var43
        end
        if var43 and var43.Status == Enum.PathStatus.FailStartNotEmpty then
            var43 = nil
        end
        if var43 and var43.Status == Enum.PathStatus.FailFinishNotEmpty then
            var43 = nil
        end
    end
    return var43
end
function setmetatable_result1_upvr.OnNavigationRequest(arg1, arg2, arg3) -- Line 206
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local x = arg2.p.x
    local var45
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 6. Error Block 2 start (CF ANALYSIS FAILED)
    var45 = false
    -- KONSTANTERROR: [9] 6. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 8. Error Block 47 start (CF ANALYSIS FAILED)
    if x == (-math.huge) then
        var45 = false
    else
        var45 = true
    end
    -- KONSTANTERROR: [12] 8. Error Block 47 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [16] 11. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [16] 11. Error Block 6 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_upvr.OnJumpAction(arg1, arg2, arg3, arg4) -- Line 252
    if arg3 == Enum.UserInputState.Begin then
        arg1.isJumping = true
    end
    return Enum.ContextActionResult.Sink
end
function setmetatable_result1_upvr.BindJumpAction(arg1, arg2) -- Line 258
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 4. Error Block 3 start (CF ANALYSIS FAILED)
    arg1.isJumpBound = true
    ContextActionService_upvr:BindActionAtPriority("VRJumpAction", function() -- Line 262
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:OnJumpAction()
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.ButtonA)
    do
        return
    end
    -- KONSTANTERROR: [4] 4. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [20] 16. Error Block 7 start (CF ANALYSIS FAILED)
    if arg1.isJumpBound then
        arg1.isJumpBound = false
        ContextActionService_upvr:UnbindAction("VRJumpAction")
    end
    -- KONSTANTERROR: [20] 16. Error Block 7 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_upvr.ControlCharacterGamepad(arg1, arg2, arg3, arg4) -- Line 273
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: BindableEvent_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 33 start (CF ANALYSIS FAILED)
    if arg4.KeyCode ~= Enum.KeyCode.Thumbstick1 then return end
    if arg3 == Enum.UserInputState.Cancel then
        arg1.moveVector = Vector3.new(0, 0, 0)
        return
    end
    if arg3 ~= Enum.UserInputState.End then
        arg1:StopFollowingPath()
        if var4_upvw then
            var4_upvw.clearRenderedPath()
        end
        if arg1:ShouldUseNavigationLaser() then
            arg1:BindJumpAction(true)
            arg1:SetLaserPointerMode("Hidden")
        end
        if 0.22 < arg4.Position.magnitude then
            arg1.moveVector = Vector3.new(arg4.Position.X, 0, -arg4.Position.Y)
            if 0 < arg1.moveVector.magnitude then
                arg1.moveVector = arg1.moveVector.unit * math.min(1, arg4.Position.magnitude)
            end
            arg1.moveLatch = true
            -- KONSTANTWARNING: GOTO [117] #78
        end
    else
        arg1.moveVector = Vector3.new(0, 0, 0)
        if arg1:ShouldUseNavigationLaser() then
            arg1:BindJumpAction(false)
            arg1:SetLaserPointerMode("Navigation")
        end
        if arg1.moveLatch then
            arg1.moveLatch = false
            BindableEvent_upvr:Fire("offtrack")
        end
    end
    -- KONSTANTERROR: [0] 1. Error Block 33 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [117] 78. Error Block 19 start (CF ANALYSIS FAILED)
    do
        return Enum.ContextActionResult.Sink
    end
    -- KONSTANTERROR: [117] 78. Error Block 19 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_upvr.OnHeartbeat(arg1, arg2) -- Line 316
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: BindableEvent_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local any_GetLocalHumanoid_result1_3 = arg1:GetLocalHumanoid()
    local var82
    if not any_GetLocalHumanoid_result1_3 or not any_GetLocalHumanoid_result1_3.Torso then
    else
        if arg1.moving and arg1.currentPoints then
            local Position_2 = any_GetLocalHumanoid_result1_3.Torso.Position
            local var84 = (currentPoints[1] - Position_2) * Vector3.new(1, 0, 1)
            local magnitude_2 = var84.magnitude
            local var86 = var84 / magnitude_2
            if magnitude_2 < 1 then
                for i_2, _ in pairs(currentPoints) do
                    if i_2 ~= 1 then
                    end
                end
                table.remove(currentPoints, 1)
                currentPointIdx = currentPointIdx + 1 -- Setting global
                if #currentPoints == 0 then
                    arg1:StopFollowingPath()
                    if var4_upvw then
                        var4_upvw.clearRenderedPath()
                    end
                    return
                end
                if var4_upvw then
                    var4_upvw.setCurrentPoints(currentPoints)
                    var4_upvw.renderPath()
                end
                expectedTimeToNextPoint = (currentPoints[1] - Position_2).magnitude / any_GetLocalHumanoid_result1_3.WalkSpeed -- Setting global
                timeReachedLastPoint = tick() -- Setting global
            else
                local tbl_3 = {game.Players.LocalPlayer.Character, workspace.CurrentCamera}
                local workspace_FindPartOnRayWithIgnoreList_result1_2, workspace_FindPartOnRayWithIgnoreList_result2_4, _ = workspace:FindPartOnRayWithIgnoreList(Ray.new(Position_2 - Vector3.new(0, 1, 0), var86 * 3), tbl_3)
                if workspace_FindPartOnRayWithIgnoreList_result1_2 then
                    local _, workspace_FindPartOnRayWithIgnoreList_result2_3, _ = workspace:FindPartOnRayWithIgnoreList(Ray.new(workspace_FindPartOnRayWithIgnoreList_result2_4 + var86 * 0.5 + Vector3.new(0, 100, 0), Vector3.new(-0, -100, -0)), tbl_3)
                    local var97 = workspace_FindPartOnRayWithIgnoreList_result2_3.Y - Position_2.Y
                    if var97 < 6 and -2 < var97 then
                        any_GetLocalHumanoid_result1_3.Jump = true
                    end
                end
                if expectedTimeToNextPoint + 2 < tick() - timeReachedLastPoint then
                    arg1:StopFollowingPath()
                    if var4_upvw then
                        var4_upvw.clearRenderedPath()
                    end
                    BindableEvent_upvr:Fire("offtrack")
                end
                var82 = arg1.moveVector:Lerp(var86, arg2 * 10)
            end
        end
        local var98 = var82
        local x_5 = var98.x
        if x_5 == x_5 then
            if x_5 ~= math.huge then
                if x_5 == (-math.huge) then
                else
                end
            end
        end
        if true then
            local y = var98.y
            if y == y and y ~= math.huge then
                if y == (-math.huge) then
                else
                end
            end
            if true then
                local z_5 = var98.z
                if z_5 == z_5 and z_5 ~= math.huge then
                    if z_5 == (-math.huge) then
                    else
                    end
                end
            end
        end
        if true then
            arg1.moveVector = var82
        end
    end
end
function setmetatable_result1_upvr.OnUserCFrameEnabled(arg1) -- Line 400
    if arg1:ShouldUseNavigationLaser() then
        arg1:BindJumpAction(false)
        arg1:SetLaserPointerMode("Navigation")
    else
        arg1:BindJumpAction(true)
        arg1:SetLaserPointerMode("Hidden")
    end
end
local RunService_upvr = game:GetService("RunService")
function setmetatable_result1_upvr.Enable(arg1, arg2) -- Line 410
    --[[ Upvalues[3]:
        [1]: VRService_upvr (readonly)
        [2]: RunService_upvr (readonly)
        [3]: ContextActionService_upvr (readonly)
    ]]
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1.isJumping = false
    if arg2 then
        arg1.navigationRequestedConn = VRService_upvr.NavigationRequested:Connect(function(arg1_2, arg2_2) -- Line 416
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:OnNavigationRequest(arg1_2, arg2_2)
        end)
        arg1.heartbeatConn = RunService_upvr.Heartbeat:Connect(function(arg1_3) -- Line 417
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:OnHeartbeat(arg1_3)
        end)
        ContextActionService_upvr:BindAction("MoveThumbstick", function(arg1_4, arg2_3, arg3) -- Line 419
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            return arg1:ControlCharacterGamepad(arg1_4, arg2_3, arg3)
        end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.Thumbstick1)
        ContextActionService_upvr:BindActivate(Enum.UserInputType.Gamepad1, Enum.KeyCode.ButtonR2)
        arg1.userCFrameEnabledConn = VRService_upvr.UserCFrameEnabled:Connect(function() -- Line 423
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:OnUserCFrameEnabled()
        end)
        arg1:OnUserCFrameEnabled()
        VRService_upvr:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.VirtualThumbstick)
        VRService_upvr:SetTouchpadMode(Enum.VRTouchpad.Right, Enum.VRTouchpadMode.ABXY)
        arg1.enabled = true
    else
        arg1:StopFollowingPath()
        ContextActionService_upvr:UnbindAction("MoveThumbstick")
        ContextActionService_upvr:UnbindActivate(Enum.UserInputType.Gamepad1, Enum.KeyCode.ButtonR2)
        arg1:BindJumpAction(false)
        arg1:SetLaserPointerMode("Disabled")
        if arg1.navigationRequestedConn then
            arg1.navigationRequestedConn:Disconnect()
            arg1.navigationRequestedConn = nil
        end
        if arg1.heartbeatConn then
            arg1.heartbeatConn:Disconnect()
            arg1.heartbeatConn = nil
        end
        if arg1.userCFrameEnabledConn then
            arg1.userCFrameEnabledConn:Disconnect()
            arg1.userCFrameEnabledConn = nil
        end
        arg1.enabled = false
    end
end
return setmetatable_result1_upvr
ModuleScript TouchThumbstick TouchThumbstick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:21
-- Luau version 6, Types version 3
-- Time taken: 0.011916 seconds

local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new() -- Line 16
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.isFollowStick = false
    setmetatable_result1.thumbstickFrame = nil
    setmetatable_result1.moveTouchObject = nil
    setmetatable_result1.onTouchMovedConn = nil
    setmetatable_result1.onTouchEndedConn = nil
    setmetatable_result1.screenPos = nil
    setmetatable_result1.stickImage = nil
    setmetatable_result1.thumbstickSize = nil
    return setmetatable_result1
end
function setmetatable_result1_upvr.Enable(arg1, arg2, arg3) -- Line 31
    if arg2 == nil then
        return false
    end
    if arg2 then
    else
    end
    local var4 = false
    if arg1.enabled == var4 then
        return true
    end
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1.isJumping = false
    if var4 then
        if not arg1.thumbstickFrame then
            arg1:Create(arg3)
        end
        arg1.thumbstickFrame.Visible = true
    else
        arg1.thumbstickFrame.Visible = false
        arg1:OnInputEnded()
    end
    arg1.enabled = var4
end
function setmetatable_result1_upvr.OnInputEnded(arg1) -- Line 52
    arg1.thumbstickFrame.Position = arg1.screenPos
    arg1.stickImage.Position = UDim2.new(0, arg1.thumbstickFrame.Size.X.Offset / 2 - arg1.thumbstickSize / 4, 0, arg1.thumbstickFrame.Size.Y.Offset / 2 - arg1.thumbstickSize / 4)
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1.isJumping = false
    arg1.thumbstickFrame.Position = arg1.screenPos
    arg1.moveTouchObject = nil
end
local UserInputService_upvr = game:GetService("UserInputService")
local GuiService_upvr = game:GetService("GuiService")
function setmetatable_result1_upvr.Create(arg1, arg2) -- Line 61
    --[[ Upvalues[2]:
        [1]: UserInputService_upvr (readonly)
        [2]: GuiService_upvr (readonly)
    ]]
    local var7
    if arg1.thumbstickFrame then
        arg1.thumbstickFrame:Destroy()
        arg1.thumbstickFrame = nil
        if arg1.onTouchMovedConn then
            arg1.onTouchMovedConn:Disconnect()
            arg1.onTouchMovedConn = nil
        end
        if arg1.onTouchEndedConn then
            arg1.onTouchEndedConn:Disconnect()
            arg1.onTouchEndedConn = nil
        end
    end
    var7 = arg2.AbsoluteSize
    local x = var7.x
    var7 = arg2.AbsoluteSize.y
    var7 = 500
    if math.min(x, var7) > var7 then
        x = false
    else
        x = true
    end
    if x then
        var7 = 70
    else
        var7 = 120
    end
    arg1.thumbstickSize = var7
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var7 = UDim2.new(0, arg1.thumbstickSize / 2 - 10, 1, -arg1.thumbstickSize - 20)
        return var7
    end
    if not x or not INLINED() then
        var7 = UDim2.new(0, arg1.thumbstickSize / 2, 1, -arg1.thumbstickSize * 1.75)
    end
    arg1.screenPos = var7
    var7 = Instance.new("Frame")
    arg1.thumbstickFrame = var7
    var7 = arg1.thumbstickFrame
    var7.Name = "ThumbstickFrame"
    var7 = arg1.thumbstickFrame
    var7.Active = true
    var7 = arg1.thumbstickFrame
    var7.Visible = false
    var7 = arg1.thumbstickFrame
    var7.Size = UDim2.new(0, arg1.thumbstickSize, 0, arg1.thumbstickSize)
    var7 = arg1.thumbstickFrame
    var7.Position = arg1.screenPos
    var7 = arg1.thumbstickFrame
    var7.BackgroundTransparency = 1
    var7 = Instance.new("ImageLabel")
    var7.Name = "OuterImage"
    var7.Image = "rbxasset://textures/ui/TouchControlsSheet.png"
    var7.ImageRectOffset = Vector2.new()
    var7.ImageRectSize = Vector2.new(220, 220)
    var7.BackgroundTransparency = 1
    var7.Size = UDim2.new(0, arg1.thumbstickSize, 0, arg1.thumbstickSize)
    var7.Position = UDim2.new(0, 0, 0, 0)
    var7.Parent = arg1.thumbstickFrame
    arg1.stickImage = Instance.new("ImageLabel")
    arg1.stickImage.Name = "StickImage"
    arg1.stickImage.Image = "rbxasset://textures/ui/TouchControlsSheet.png"
    arg1.stickImage.ImageRectOffset = Vector2.new(220, 0)
    arg1.stickImage.ImageRectSize = Vector2.new(111, 111)
    arg1.stickImage.BackgroundTransparency = 1
    arg1.stickImage.Size = UDim2.new(0, arg1.thumbstickSize / 2, 0, arg1.thumbstickSize / 2)
    arg1.stickImage.Position = UDim2.new(0, arg1.thumbstickSize / 2 - arg1.thumbstickSize / 4, 0, arg1.thumbstickSize / 2 - arg1.thumbstickSize / 4)
    arg1.stickImage.ZIndex = 2
    arg1.stickImage.Parent = arg1.thumbstickFrame
    local var9_upvw
    local function _(arg1_2) -- Line 114, Named "DoMove"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var10 = (arg1_2) / (arg1.thumbstickSize / 2)
        if var10.magnitude < 0.05 then
            var10 = Vector3.new()
        else
            var10 = (var10.unit) * ((var10.magnitude - 0.05) / 0.95)
            var10 = Vector3.new(var10.x, 0, var10.y)
        end
        arg1.moveVector = var10
    end
    local function MoveStick_upvr(arg1_3) -- Line 132, Named "MoveStick"
        --[[ Upvalues[2]:
            [1]: var9_upvw (read and write)
            [2]: arg1 (readonly)
        ]]
        local magnitude = Vector2.new(arg1_3.x - var9_upvw.x, arg1_3.y - var9_upvw.y).magnitude
        local var13 = arg1.thumbstickFrame.AbsoluteSize.x / 2
        local var14
        if arg1.isFollowStick and var13 < magnitude then
            local var15 = var14.unit * var13
            arg1.thumbstickFrame.Position = UDim2.new(0, arg1_3.x - arg1.thumbstickFrame.AbsoluteSize.x / 2 - var15.x, 0, arg1_3.y - arg1.thumbstickFrame.AbsoluteSize.y / 2 - var15.y)
        else
            var14 = var14.unit * math.min(magnitude, var13)
        end
        arg1.stickImage.Position = UDim2.new(0, var14.x + arg1.stickImage.AbsoluteSize.x / 2, 0, var14.y + arg1.stickImage.AbsoluteSize.y / 2)
    end
    arg1.thumbstickFrame.InputBegan:Connect(function(arg1_4) -- Line 149
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var9_upvw (read and write)
        ]]
        if arg1.moveTouchObject or arg1_4.UserInputType ~= Enum.UserInputType.Touch or arg1_4.UserInputState ~= Enum.UserInputState.Begin then
        else
            arg1.moveTouchObject = arg1_4
            arg1.thumbstickFrame.Position = UDim2.new(0, arg1_4.Position.x - arg1.thumbstickFrame.Size.X.Offset / 2, 0, arg1_4.Position.y - arg1.thumbstickFrame.Size.Y.Offset / 2)
            var9_upvw = Vector2.new(arg1.thumbstickFrame.AbsolutePosition.x + arg1.thumbstickFrame.AbsoluteSize.x / 2, arg1.thumbstickFrame.AbsolutePosition.y + arg1.thumbstickFrame.AbsoluteSize.y / 2)
        end
    end)
    arg1.onTouchMovedConn = UserInputService_upvr.TouchMoved:Connect(function(arg1_5, arg2_2) -- Line 164
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: var9_upvw (read and write)
            [3]: MoveStick_upvr (readonly)
        ]]
        if arg1_5 == arg1.moveTouchObject then
            var9_upvw = Vector2.new(arg1.thumbstickFrame.AbsolutePosition.x + arg1.thumbstickFrame.AbsoluteSize.x / 2, arg1.thumbstickFrame.AbsolutePosition.y + arg1.thumbstickFrame.AbsoluteSize.y / 2)
            local var18 = (Vector2.new(arg1_5.Position.x - var9_upvw.x, arg1_5.Position.y - var9_upvw.y)) / (arg1.thumbstickSize / 2)
            if var18.magnitude < 0.05 then
                var18 = Vector3.new()
            else
                var18 = (var18.unit) * ((var18.magnitude - 0.05) / 0.95)
                var18 = Vector3.new(var18.x, 0, var18.y)
            end
            arg1.moveVector = var18
            MoveStick_upvr(arg1_5.Position)
        end
    end)
    arg1.onTouchEndedConn = UserInputService_upvr.TouchEnded:Connect(function(arg1_6, arg2_3) -- Line 174
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 == arg1.moveTouchObject then
            arg1:OnInputEnded()
        end
    end)
    GuiService_upvr.MenuOpened:Connect(function() -- Line 180
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.moveTouchObject then
            arg1:OnInputEnded()
        end
    end)
    arg1.thumbstickFrame.Parent = arg2
end
return setmetatable_result1_upvr
ModuleScript Keyboard Keyboard
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:22
-- Luau version 6, Types version 3
-- Time taken: 0.006342 seconds

local UserInputService_upvr = game:GetService("UserInputService")
local ContextActionService_upvr = game:GetService("ContextActionService")
local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new(arg1) -- Line 19
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.CONTROL_ACTION_PRIORITY = arg1
    setmetatable_result1.textFocusReleasedConn = nil
    setmetatable_result1.textFocusGainedConn = nil
    setmetatable_result1.windowFocusReleasedConn = nil
    setmetatable_result1.forwardValue = 0
    setmetatable_result1.backwardValue = 0
    setmetatable_result1.leftValue = 0
    setmetatable_result1.rightValue = 0
    setmetatable_result1.jumpEnabled = true
    return setmetatable_result1
end
function setmetatable_result1_upvr.Enable(arg1, arg2) -- Line 38
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    if not UserInputService_upvr.KeyboardEnabled then
        return false
    end
    if arg2 == arg1.enabled then
        return true
    end
    arg1.forwardValue = 0
    arg1.backwardValue = 0
    arg1.leftValue = 0
    arg1.rightValue = 0
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1.jumpRequested = false
    arg1:UpdateJump()
    if arg2 then
        arg1:BindContextActions()
        arg1:ConnectFocusEventListeners()
    else
        arg1:UnbindContextActions()
        arg1:DisconnectFocusEventListeners()
    end
    arg1.enabled = arg2
    return true
end
function setmetatable_result1_upvr.UpdateMovement(arg1, arg2) -- Line 70
    if arg2 == Enum.UserInputState.Cancel then
        arg1.moveVector = Vector3.new(0, 0, 0)
    else
        arg1.moveVector = Vector3.new(arg1.leftValue + arg1.rightValue, 0, arg1.forwardValue + arg1.backwardValue)
    end
end
function setmetatable_result1_upvr.UpdateJump(arg1) -- Line 78
    arg1.isJumping = arg1.jumpRequested
end
function setmetatable_result1_upvr.BindContextActions(arg1) -- Line 82
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    ContextActionService_upvr:BindActionAtPriority("moveForwardAction", function(arg1_2, arg2, arg3) -- Line 88
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var7
        if arg2 == Enum.UserInputState.Begin then
            var7 = -1
        else
            var7 = 0
        end
        arg1.forwardValue = var7
        arg1:UpdateMovement(arg2)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.PlayerActions.CharacterForward)
    ContextActionService_upvr:BindActionAtPriority("moveBackwardAction", function(arg1_3, arg2, arg3) -- Line 94
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var9
        if arg2 == Enum.UserInputState.Begin then
            var9 = 1
        else
            var9 = 0
        end
        arg1.backwardValue = var9
        arg1:UpdateMovement(arg2)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.PlayerActions.CharacterBackward)
    ContextActionService_upvr:BindActionAtPriority("moveLeftAction", function(arg1_4, arg2, arg3) -- Line 100
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var11
        if arg2 == Enum.UserInputState.Begin then
            var11 = -1
        else
            var11 = 0
        end
        arg1.leftValue = var11
        arg1:UpdateMovement(arg2)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.PlayerActions.CharacterLeft)
    ContextActionService_upvr:BindActionAtPriority("moveRightAction", function(arg1_5, arg2, arg3) -- Line 106
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var13
        if arg2 == Enum.UserInputState.Begin then
            var13 = 1
        else
            var13 = 0
        end
        arg1.rightValue = var13
        arg1:UpdateMovement(arg2)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.PlayerActions.CharacterRight)
    ContextActionService_upvr:BindActionAtPriority("jumpAction", function(arg1_6, arg2, arg3) -- Line 112
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local jumpEnabled = arg1.jumpEnabled
        if jumpEnabled then
            if arg2 ~= Enum.UserInputState.Begin then
                jumpEnabled = false
            else
                jumpEnabled = true
            end
        end
        arg1.jumpRequested = jumpEnabled
        arg1:UpdateJump()
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.PlayerActions.CharacterJump)
end
function setmetatable_result1_upvr.UnbindContextActions(arg1) -- Line 132
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    ContextActionService_upvr:UnbindAction("moveForwardAction")
    ContextActionService_upvr:UnbindAction("moveBackwardAction")
    ContextActionService_upvr:UnbindAction("moveLeftAction")
    ContextActionService_upvr:UnbindAction("moveRightAction")
    ContextActionService_upvr:UnbindAction("jumpAction")
end
function setmetatable_result1_upvr.ConnectFocusEventListeners(arg1) -- Line 140
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    local function onFocusReleased() -- Line 141
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.moveVector = Vector3.new(0, 0, 0)
        arg1.forwardValue = 0
        arg1.backwardValue = 0
        arg1.leftValue = 0
        arg1.rightValue = 0
        arg1.jumpRequested = false
        arg1:UpdateJump()
    end
    arg1.textFocusReleasedConn = UserInputService_upvr.TextBoxFocusReleased:Connect(onFocusReleased)
    arg1.textFocusGainedConn = UserInputService_upvr.TextBoxFocused:Connect(function(arg1_7) -- Line 151, Named "onTextFocusGained"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.jumpRequested = false
        arg1:UpdateJump()
    end)
    arg1.windowFocusReleasedConn = UserInputService_upvr.WindowFocused:Connect(onFocusReleased)
end
function setmetatable_result1_upvr.DisconnectFocusEventListeners(arg1) -- Line 161
    if arg1.textFocusReleasedCon then
        arg1.textFocusReleasedCon:Disconnect()
        arg1.textFocusReleasedCon = nil
    end
    if arg1.textFocusGainedConn then
        arg1.textFocusGainedConn:Disconnect()
        arg1.textFocusGainedConn = nil
    end
    if arg1.windowFocusReleasedConn then
        arg1.windowFocusReleasedConn:Disconnect()
        arg1.windowFocusReleasedConn = nil
    end
end
return setmetatable_result1_upvr
ModuleScript BaseCharacterController BaseCharacterController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:24
-- Luau version 6, Types version 3
-- Time taken: 0.001335 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 14
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.enabled = false
    setmetatable_result1.moveVector = Vector3.new(0, 0, 0)
    setmetatable_result1.moveVectorIsCameraRelative = true
    setmetatable_result1.isJumping = false
    return setmetatable_result1
end
function module_upvr.OnRenderStepped(arg1, arg2) -- Line 23
end
function module_upvr.GetMoveVector(arg1) -- Line 27
    return arg1.moveVector
end
function module_upvr.IsMoveVectorCameraRelative(arg1) -- Line 31
    return arg1.moveVectorIsCameraRelative
end
function module_upvr.GetIsJumping(arg1) -- Line 35
    return arg1.isJumping
end
function module_upvr.Enable(arg1, arg2) -- Line 41
    error("BaseCharacterController:Enable must be overridden in derived classes and should not be called.")
    return false
end
return module_upvr
ModuleScript TouchJump TouchJump
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:25
-- Luau version 6, Types version 3
-- Time taken: 0.009462 seconds

local Players_upvr = game:GetService("Players")
local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 19
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_2_upvr)
    setmetatable_result1.parentUIFrame = nil
    setmetatable_result1.jumpButton = nil
    setmetatable_result1.characterAddedConn = nil
    setmetatable_result1.humanoidStateEnabledChangedConn = nil
    setmetatable_result1.humanoidJumpPowerConn = nil
    setmetatable_result1.humanoidParentConn = nil
    setmetatable_result1.externallyEnabled = false
    setmetatable_result1.jumpPower = 0
    setmetatable_result1.jumpStateEnabled = true
    setmetatable_result1.isJumping = false
    setmetatable_result1.humanoid = nil
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.EnableButton(arg1, arg2) -- Line 37
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [34] 24. Error Block 10 start (CF ANALYSIS FAILED)
    arg1.jumpButton.Visible = true
    do
        return
    end
    -- KONSTANTERROR: [34] 24. Error Block 10 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [40] 28. Error Block 11 start (CF ANALYSIS FAILED)
    arg1.jumpButton.Visible = false
    arg1.isJumping = false
    arg1.jumpButton.ImageRectOffset = Vector2.new(1, 146)
    -- KONSTANTERROR: [40] 28. Error Block 11 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_2_upvr.UpdateEnabled(arg1) -- Line 57
    if 0 < arg1.jumpPower and arg1.jumpStateEnabled then
        arg1:EnableButton(true)
    else
        arg1:EnableButton(false)
    end
end
function setmetatable_result1_2_upvr.HumanoidChanged(arg1, arg2) -- Line 65
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    local Character = Players_upvr.LocalPlayer.Character
    if Character then
        Character = Players_upvr.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
    end
    if Character then
        if arg2 == "JumpPower" then
            arg1.jumpPower = Character.JumpPower
            arg1:UpdateEnabled()
            return
        end
        if arg2 == "Parent" and not Character.Parent then
            arg1.humanoidChangeConn:Disconnect()
        end
    end
end
function setmetatable_result1_2_upvr.HumanoidStateEnabledChanged(arg1, arg2, arg3) -- Line 79
    if arg2 == Enum.HumanoidStateType.Jumping then
        arg1.jumpStateEnabled = arg3
        arg1:UpdateEnabled()
    end
end
function setmetatable_result1_2_upvr.CharacterAdded(arg1, arg2) -- Line 86
    if arg1.humanoidChangeConn then
        arg1.humanoidChangeConn:Disconnect()
        arg1.humanoidChangeConn = nil
    end
    arg1.humanoid = arg2:FindFirstChildOfClass("Humanoid")
    while not arg1.humanoid do
        arg2.ChildAdded:wait()
        arg1.humanoid = arg2:FindFirstChildOfClass("Humanoid")
    end
    arg1.humanoidJumpPowerConn = arg1.humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function() -- Line 98
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.jumpPower = arg1.humanoid.JumpPower
        arg1:UpdateEnabled()
    end)
    arg1.humanoidParentConn = arg1.humanoid:GetPropertyChangedSignal("Parent"):Connect(function() -- Line 103
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1.humanoid.Parent then
            arg1.humanoidJumpPowerConn:Disconnect()
            arg1.humanoidJumpPowerConn = nil
            arg1.humanoidParentConn:Disconnect()
            arg1.humanoidParentConn = nil
        end
    end)
    arg1.humanoidStateEnabledChangedConn = arg1.humanoid.StateEnabledChanged:Connect(function(arg1_2, arg2_2) -- Line 112
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:HumanoidStateEnabledChanged(arg1_2, arg2_2)
    end)
    arg1.jumpPower = arg1.humanoid.JumpPower
    arg1.jumpStateEnabled = arg1.humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)
    arg1:UpdateEnabled()
end
function setmetatable_result1_2_upvr.SetupCharacterAddedFunction(arg1) -- Line 121
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    arg1.characterAddedConn = Players_upvr.LocalPlayer.CharacterAdded:Connect(function(arg1_3) -- Line 122
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:CharacterAdded(arg1_3)
    end)
    if Players_upvr.LocalPlayer.Character then
        arg1:CharacterAdded(Players_upvr.LocalPlayer.Character)
    end
end
function setmetatable_result1_2_upvr.Enable(arg1, arg2, arg3) -- Line 130
    if arg3 then
        arg1.parentUIFrame = arg3
    end
    arg1.externallyEnabled = arg2
    arg1:EnableButton(arg2)
end
local GuiService_upvr = game:GetService("GuiService")
function setmetatable_result1_2_upvr.Create(arg1) -- Line 138
    --[[ Upvalues[1]:
        [1]: GuiService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var11
    if not arg1.parentUIFrame then
    else
        if arg1.jumpButton then
            arg1.jumpButton:Destroy()
            arg1.jumpButton = nil
        end
        var11 = arg1.parentUIFrame.AbsoluteSize
        local x = var11.x
        var11 = arg1.parentUIFrame.AbsoluteSize.y
        var11 = 500
        if math.min(x, var11) > var11 then
            x = false
        else
            x = true
        end
        if x then
            var11 = 70
        else
            var11 = 120
        end
        arg1.jumpButton = Instance.new("ImageButton")
        arg1.jumpButton.Name = "JumpButton"
        arg1.jumpButton.Visible = false
        arg1.jumpButton.BackgroundTransparency = 1
        arg1.jumpButton.Image = "rbxasset://textures/ui/Input/TouchControlsSheetV2.png"
        arg1.jumpButton.ImageRectOffset = Vector2.new(1, 146)
        arg1.jumpButton.ImageRectSize = Vector2.new(144, 144)
        arg1.jumpButton.Size = UDim2.new(0, var11, 0, var11)
        if not x or not UDim2.new(1, -(var11 * 1.5 - 10), 1, -var11 - 20) then
        end
        arg1.jumpButton.Position = UDim2.new(1, -(var11 * 1.5 - 10), 1, -var11 * 1.75)
        local var13_upvw
        arg1.jumpButton.InputBegan:connect(function(arg1_4) -- Line 165
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: arg1 (readonly)
            ]]
            if var13_upvw or arg1_4.UserInputType ~= Enum.UserInputType.Touch or arg1_4.UserInputState ~= Enum.UserInputState.Begin then
            else
                var13_upvw = arg1_4
                arg1.jumpButton.ImageRectOffset = Vector2.new(146, 146)
                arg1.isJumping = true
            end
        end)
        local function _() -- Line 178
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: arg1 (readonly)
            ]]
            var13_upvw = nil
            arg1.isJumping = false
            arg1.jumpButton.ImageRectOffset = Vector2.new(1, 146)
        end
        arg1.jumpButton.InputEnded:connect(function(arg1_5) -- Line 184
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: arg1 (readonly)
            ]]
            if arg1_5 == var13_upvw then
                var13_upvw = nil
                arg1.isJumping = false
                arg1.jumpButton.ImageRectOffset = Vector2.new(1, 146)
            end
        end)
        GuiService_upvr.MenuOpened:connect(function() -- Line 190
            --[[ Upvalues[2]:
                [1]: var13_upvw (read and write)
                [2]: arg1 (readonly)
            ]]
            if var13_upvw then
                var13_upvw = nil
                arg1.isJumping = false
                arg1.jumpButton.ImageRectOffset = Vector2.new(1, 146)
            end
        end)
        if not arg1.characterAddedConn then
            arg1:SetupCharacterAddedFunction()
        end
        arg1.jumpButton.Parent = arg1.parentUIFrame
    end
end
return setmetatable_result1_2_upvr
ModuleScript PathDisplay PathDisplay
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:26
-- Luau version 6, Types version 3
-- Time taken: 0.005700 seconds

local module_upvr = {
    spacing = 8;
    image = "rbxasset://textures/Cursors/Gamepad/Pointer.png";
    imageSize = Vector2.new(2, 2);
}
local tbl_upvw_2 = {}
local tbl_upvw = {}
local Model_upvr = Instance.new("Model")
Model_upvr.Name = "PathDisplayPoints"
local Part = Instance.new("Part")
Part.Anchored = true
Part.CanCollide = false
Part.Transparency = 1
Part.Name = "PathDisplayAdornee"
Part.CFrame = CFrame.new(0, 0, 0)
Part.Parent = Model_upvr
local tbl_upvr = {}
local var9_upvw = 30
for i = 1, var9_upvw do
    local ImageHandleAdornment = Instance.new("ImageHandleAdornment")
    ImageHandleAdornment.Archivable = false
    ImageHandleAdornment.Adornee = Part
    ImageHandleAdornment.Image = module_upvr.image
    ImageHandleAdornment.Size = module_upvr.imageSize
    tbl_upvr[i] = ImageHandleAdornment
end
local function _() -- Line 33, Named "retrieveFromPool"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: var9_upvw (read and write)
    ]]
    local _1 = tbl_upvr[1]
    if not _1 then return end
    tbl_upvr[1] = tbl_upvr[var9_upvw]
    tbl_upvr[var9_upvw] = nil
    var9_upvw -= 1
    return _1
end
local function _(arg1) -- Line 44, Named "returnToPool"
    --[[ Upvalues[2]:
        [1]: var9_upvw (read and write)
        [2]: tbl_upvr (readonly)
    ]]
    var9_upvw += 1
    tbl_upvr[var9_upvw] = arg1
end
local function renderPoint_upvr(arg1, arg2) -- Line 49, Named "renderPoint"
    --[[ Upvalues[3]:
        [1]: var9_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: Model_upvr (readonly)
    ]]
    if var9_upvw == 0 then return end
    local workspace_FindPartOnRayWithIgnoreList_result1, workspace_FindPartOnRayWithIgnoreList_result2, workspace_FindPartOnRayWithIgnoreList_result3 = workspace:FindPartOnRayWithIgnoreList(Ray.new(arg1 + Vector3.new(0, 2, 0), Vector3.new(0, -8, 0)), {game.Players.LocalPlayer.Character, workspace.CurrentCamera})
    if not workspace_FindPartOnRayWithIgnoreList_result1 then return end
    local var16 = workspace_FindPartOnRayWithIgnoreList_result2
    local _1_2 = tbl_upvr[1]
    if not _1_2 then
        var16 = nil
    else
        tbl_upvr[1] = tbl_upvr[var9_upvw]
        tbl_upvr[var9_upvw] = nil
        var9_upvw -= 1
        var16 = _1_2
    end
    var16.CFrame = CFrame.new(var16, workspace_FindPartOnRayWithIgnoreList_result2 + workspace_FindPartOnRayWithIgnoreList_result3)
    var16.Parent = Model_upvr
    return var16
end
function module_upvr.setCurrentPoints(arg1) -- Line 68
    --[[ Upvalues[1]:
        [1]: tbl_upvw_2 (read and write)
    ]]
    if typeof(arg1) == "table" then
        tbl_upvw_2 = arg1
    else
        tbl_upvw_2 = {}
    end
end
function module_upvr.clearRenderedPath() -- Line 76
    --[[ Upvalues[4]:
        [1]: tbl_upvw (read and write)
        [2]: var9_upvw (read and write)
        [3]: tbl_upvr (readonly)
        [4]: Model_upvr (readonly)
    ]]
    for _, v in ipairs(tbl_upvw) do
        v.Parent = nil
        var9_upvw += 1
        tbl_upvr[var9_upvw] = v
    end
    tbl_upvw = {}
    Model_upvr.Parent = nil
end
function module_upvr.renderPath() -- Line 85
    --[[ Upvalues[5]:
        [1]: module_upvr (readonly)
        [2]: tbl_upvw_2 (read and write)
        [3]: tbl_upvw (read and write)
        [4]: renderPoint_upvr (readonly)
        [5]: Model_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 21 start (CF ANALYSIS FAILED)
    module_upvr.clearRenderedPath()
    local var23
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var23 = #tbl_upvw_2
        return var23 == 0
    end
    if not var23 or INLINED() then return end
    var23 = #tbl_upvw_2
    local const_number = 0
    tbl_upvw[1] = renderPoint_upvr(tbl_upvw_2[var23], true)
    local var25 = tbl_upvw
    local _1_3 = var25[1]
    -- KONSTANTERROR: [0] 1. Error Block 21 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [25] 24. Error Block 6 start (CF ANALYSIS FAILED)
    do
        return
    end
    -- KONSTANTERROR: [25] 24. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [35] 33. Error Block 28 start (CF ANALYSIS FAILED)
    local var27 = var25 - _1_3
    local magnitude = var27.magnitude
    if magnitude < const_number then
        var23 -= 1
    else
        local renderPoint_result1 = renderPoint_upvr(_1_3 + var27.unit * (const_number - magnitude), false)
        if renderPoint_result1 then
            tbl_upvw[#tbl_upvw + 1] = renderPoint_result1
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    end
    -- KONSTANTERROR: [35] 33. Error Block 28 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [26] 25. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [61.263163]
    -- KONSTANTERROR: [26] 25. Error Block 7 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript DynamicThumbstick DynamicThumbstick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:28
-- Luau version 6, Types version 3
-- Time taken: 0.051759 seconds

local tbl_upvr = {0.10999999999999999, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.75}
local len_upvr = #tbl_upvr
local Players = game:GetService("Players")
local ContextActionService_upvr = game:GetService("ContextActionService")
local TweenService_upvr = game:GetService("TweenService")
local LocalPlayer_upvw = Players.LocalPlayer
if not LocalPlayer_upvw then
    Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
    LocalPlayer_upvw = Players.LocalPlayer
end
local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 44
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_2_upvr)
    setmetatable_result1.moveTouchObject = nil
    setmetatable_result1.moveTouchLockedIn = false
    setmetatable_result1.moveTouchFirstChanged = false
    setmetatable_result1.moveTouchStartPosition = nil
    setmetatable_result1.startImage = nil
    setmetatable_result1.endImage = nil
    setmetatable_result1.middleImages = {}
    setmetatable_result1.startImageFadeTween = nil
    setmetatable_result1.endImageFadeTween = nil
    setmetatable_result1.middleImageFadeTweens = {}
    setmetatable_result1.isFirstTouch = true
    setmetatable_result1.thumbstickFrame = nil
    setmetatable_result1.onRenderSteppedConn = nil
    setmetatable_result1.fadeInAndOutBalance = 0.5
    setmetatable_result1.fadeInAndOutHalfDuration = 0.3
    setmetatable_result1.hasFadedBackgroundInPortrait = false
    setmetatable_result1.hasFadedBackgroundInLandscape = false
    setmetatable_result1.tweenInAlphaStart = nil
    setmetatable_result1.tweenOutAlphaStart = nil
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.GetIsJumping(arg1) -- Line 79
    arg1.isJumping = false
    return arg1.isJumping
end
function setmetatable_result1_2_upvr.Enable(arg1, arg2, arg3) -- Line 85
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    if arg2 == nil then
        return false
    end
    if arg2 then
    else
    end
    local var10 = false
    if arg1.enabled == var10 then
        return true
    end
    if var10 then
        if not arg1.thumbstickFrame then
            arg1:Create(arg3)
        end
        arg1:BindContextActions()
    else
        ContextActionService_upvr:UnbindAction("DynamicThumbstickAction")
        arg1:OnInputEnded()
    end
    arg1.enabled = var10
    arg1.thumbstickFrame.Visible = var10
end
function setmetatable_result1_2_upvr.OnInputEnded(arg1) -- Line 108
    arg1.moveTouchObject = nil
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1:FadeThumbstick(false)
end
local TweenInfo_new_result1_upvr = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut)
function setmetatable_result1_2_upvr.FadeThumbstick(arg1, arg2) -- Line 114
    --[[ Upvalues[3]:
        [1]: TweenService_upvr (readonly)
        [2]: TweenInfo_new_result1_upvr (readonly)
        [3]: tbl_upvr (readonly)
    ]]
    if not arg2 and arg1.moveTouchObject then
    else
        if arg1.isFirstTouch then return end
        if arg1.startImageFadeTween then
            arg1.startImageFadeTween:Cancel()
        end
        if arg1.endImageFadeTween then
            arg1.endImageFadeTween:Cancel()
        end
        for i_3 = 1, #arg1.middleImages do
            if arg1.middleImageFadeTweens[i_3] then
                arg1.middleImageFadeTweens[i_3]:Cancel()
            end
        end
        if arg2 then
            i_3 = arg1.startImage
            arg1.startImageFadeTween = TweenService_upvr:Create(i_3, TweenInfo_new_result1_upvr, {
                ImageTransparency = 0;
            })
            arg1.startImageFadeTween:Play()
            i_3 = arg1.endImage
            arg1.endImageFadeTween = TweenService_upvr:Create(i_3, TweenInfo_new_result1_upvr, {
                ImageTransparency = 0.2;
            })
            arg1.endImageFadeTween:Play()
            i_3 = 1
            for i_4 = i_3, #arg1.middleImages do
                arg1.middleImageFadeTweens[i_4] = TweenService_upvr:Create(arg1.middleImages[i_4], TweenInfo_new_result1_upvr, {
                    ImageTransparency = tbl_upvr[i_4];
                })
                arg1.middleImageFadeTweens[i_4]:Play()
            end
            return
        end
        arg1.startImageFadeTween = TweenService_upvr:Create(arg1.startImage, TweenInfo_new_result1_upvr, {
            ImageTransparency = 1;
        })
        arg1.startImageFadeTween:Play()
        arg1.endImageFadeTween = TweenService_upvr:Create(arg1.endImage, TweenInfo_new_result1_upvr, {
            ImageTransparency = 1;
        })
        arg1.endImageFadeTween:Play()
        for i_5 = 1, #arg1.middleImages do
            arg1.middleImageFadeTweens[i_5] = TweenService_upvr:Create(arg1.middleImages[i_5], TweenInfo_new_result1_upvr, {
                ImageTransparency = 1;
            })
            arg1.middleImageFadeTweens[i_5]:Play()
        end
    end
end
function setmetatable_result1_2_upvr.FadeThumbstickFrame(arg1, arg2, arg3) -- Line 157
    arg1.fadeInAndOutHalfDuration = arg2 * 0.5
    arg1.fadeInAndOutBalance = arg3
    arg1.tweenInAlphaStart = tick()
end
function setmetatable_result1_2_upvr.InputInFrame(arg1, arg2) -- Line 163
    local AbsolutePosition = arg1.thumbstickFrame.AbsolutePosition
    local var22 = AbsolutePosition + arg1.thumbstickFrame.AbsoluteSize
    local Position = arg2.Position
    if AbsolutePosition.X <= Position.X and AbsolutePosition.Y <= Position.Y and Position.X <= var22.X and Position.Y <= var22.Y then
        return true
    end
    return false
end
function setmetatable_result1_2_upvr.DoFadeInBackground(arg1) -- Line 175
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvw (read and write)
    ]]
    local class_PlayerGui = LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui")
    local var25 = false
    if class_PlayerGui then
        if class_PlayerGui.CurrentScreenOrientation == Enum.ScreenOrientation.LandscapeLeft or class_PlayerGui.CurrentScreenOrientation == Enum.ScreenOrientation.LandscapeRight then
            var25 = arg1.hasFadedBackgroundInLandscape
            arg1.hasFadedBackgroundInLandscape = true
        elseif class_PlayerGui.CurrentScreenOrientation == Enum.ScreenOrientation.Portrait then
            var25 = arg1.hasFadedBackgroundInPortrait
            arg1.hasFadedBackgroundInPortrait = true
        end
    end
    if not var25 then
        arg1.fadeInAndOutHalfDuration = 0.3
        arg1.fadeInAndOutBalance = 0.5
        arg1.tweenInAlphaStart = tick()
    end
end
function setmetatable_result1_2_upvr.DoMove(arg1, arg2) -- Line 198
    local var26 = arg2
    if var26.magnitude < arg1.radiusOfDeadZone then
        var26 = Vector3.new(0, 0, 0)
    else
        var26 = var26.unit * (1 - math.max(0, (arg1.radiusOfMaxSpeed - var26.magnitude) / arg1.radiusOfMaxSpeed))
        var26 = Vector3.new(var26.x, 0, var26.y)
    end
    arg1.moveVector = var26
end
function setmetatable_result1_2_upvr.LayoutMiddleImages(arg1, arg2, arg3) -- Line 216
    --[[ Upvalues[1]:
        [1]: len_upvr (readonly)
    ]]
    local var29 = arg1.thumbstickSize / 2 + arg1.middleSize
    local var30 = arg3 - arg2
    local var31 = var30.magnitude - arg1.thumbstickRingSize / 2 - arg1.middleSize
    local var32
    if arg1.middleSpacing * len_upvr < var31 then
        var32 = var31 / len_upvr
    end
    for i = 1, len_upvr do
        local var33 = arg1.middleImages[i]
        local var34 = var29 + var32 * (i - 1)
        if var29 + var32 * (i - 2) < var31 then
            local var35 = arg3 - var30.unit * var34
            local clamped = math.clamp(1 - (var34 - var31) / var32, 0, 1)
            var33.Visible = true
            var33.Position = UDim2.new(0, var35.X, 0, var35.Y)
            var33.Size = UDim2.new(0, arg1.middleSize * clamped, 0, arg1.middleSize * clamped)
        else
            var33.Visible = false
        end
    end
end
function setmetatable_result1_2_upvr.MoveStick(arg1, arg2) -- Line 247
    local var37 = Vector2.new(arg2.X, arg2.Y) - arg1.thumbstickFrame.AbsolutePosition
    arg1.endImage.Position = UDim2.new(0, var37.X, 0, var37.Y)
    arg1:LayoutMiddleImages(Vector2.new(arg1.moveTouchStartPosition.X, arg1.moveTouchStartPosition.Y) - arg1.thumbstickFrame.AbsolutePosition, var37)
end
local Value_upvr = Enum.ContextActionPriority.High.Value
function setmetatable_result1_2_upvr.BindContextActions(arg1) -- Line 255
    --[[ Upvalues[3]:
        [1]: TweenService_upvr (readonly)
        [2]: ContextActionService_upvr (readonly)
        [3]: Value_upvr (readonly)
    ]]
    local function inputBegan_upvr(arg1_2) -- Line 256, Named "inputBegan"
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: TweenService_upvr (copied, readonly)
        ]]
        if arg1.moveTouchObject then
            return Enum.ContextActionResult.Pass
        end
        if not arg1:InputInFrame(arg1_2) then
            return Enum.ContextActionResult.Pass
        end
        if arg1.isFirstTouch then
            arg1.isFirstTouch = false
            local TweenInfo_new_result1 = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0)
            TweenService_upvr:Create(arg1.startImage, TweenInfo_new_result1, {
                Size = UDim2.new(0, 0, 0, 0);
            }):Play()
            TweenService_upvr:Create(arg1.endImage, TweenInfo_new_result1, {
                Size = UDim2.new(0, arg1.thumbstickSize, 0, arg1.thumbstickSize);
                ImageColor3 = Color3.new(0, 0, 0);
            }):Play()
        end
        arg1.moveTouchLockedIn = false
        arg1.moveTouchObject = arg1_2
        arg1.moveTouchStartPosition = arg1_2.Position
        arg1.moveTouchFirstChanged = true
        arg1:DoFadeInBackground()
        return Enum.ContextActionResult.Pass
    end
    local function inputChanged_upvr(arg1_3) -- Line 288, Named "inputChanged"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_3 == arg1.moveTouchObject then
            if arg1.moveTouchFirstChanged then
                arg1.moveTouchFirstChanged = false
                local vector2 = Vector2.new(arg1_3.Position.X - arg1.thumbstickFrame.AbsolutePosition.X, arg1_3.Position.Y - arg1.thumbstickFrame.AbsolutePosition.Y)
                arg1.startImage.Visible = true
                arg1.startImage.Position = UDim2.new(0, vector2.X, 0, vector2.Y)
                arg1.endImage.Visible = true
                arg1.endImage.Position = arg1.startImage.Position
                arg1:FadeThumbstick(true)
                arg1:MoveStick(arg1_3.Position)
            end
            arg1.moveTouchLockedIn = true
            local vector2_2 = Vector2.new(arg1_3.Position.x - arg1.moveTouchStartPosition.x, arg1_3.Position.y - arg1.moveTouchStartPosition.y)
            if 0 < math.abs(vector2_2.x) or 0 < math.abs(vector2_2.y) then
                arg1:DoMove(vector2_2)
                arg1:MoveStick(arg1_3.Position)
            end
            return Enum.ContextActionResult.Sink
        end
        return Enum.ContextActionResult.Pass
    end
    local function _(arg1_4) -- Line 321, Named "inputEnded"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 == arg1.moveTouchObject then
            arg1:OnInputEnded()
            if arg1.moveTouchLockedIn then
                return Enum.ContextActionResult.Sink
            end
        end
        return Enum.ContextActionResult.Pass
    end
    ContextActionService_upvr:BindActionAtPriority("DynamicThumbstickAction", function(arg1_5, arg2, arg3) -- Line 331, Named "handleInput"
        --[[ Upvalues[3]:
            [1]: inputBegan_upvr (readonly)
            [2]: inputChanged_upvr (readonly)
            [3]: arg1 (readonly)
        ]]
        if arg2 == Enum.UserInputState.Begin then
            return inputBegan_upvr(arg3)
        end
        if arg2 == Enum.UserInputState.Change then
            return inputChanged_upvr(arg3)
        end
        if arg2 == Enum.UserInputState.End then
            if arg3 == arg1.moveTouchObject then
                arg1:OnInputEnded()
                if arg1.moveTouchLockedIn then
                    return Enum.ContextActionResult.Sink
                end
            end
            return Enum.ContextActionResult.Pass
        end
        if arg2 == Enum.UserInputState.Cancel then
            arg1:OnInputEnded()
        end
    end, false, Value_upvr, Enum.UserInputType.Touch)
end
local RunService_upvr = game:GetService("RunService")
local UserInputService_upvr = game:GetService("UserInputService")
local GuiService_upvr = game:GetService("GuiService")
function setmetatable_result1_2_upvr.Create(arg1, arg2) -- Line 351
    --[[ Upvalues[6]:
        [1]: len_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: RunService_upvr (readonly)
        [4]: UserInputService_upvr (readonly)
        [5]: GuiService_upvr (readonly)
        [6]: LocalPlayer_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var76
    if arg1.thumbstickFrame then
        arg1.thumbstickFrame:Destroy()
        arg1.thumbstickFrame = nil
        if arg1.onRenderSteppedConn then
            arg1.onRenderSteppedConn:Disconnect()
            arg1.onRenderSteppedConn = nil
        end
    end
    arg1.thumbstickSize = 45
    arg1.thumbstickRingSize = 20
    arg1.middleSize = 10
    local middleSize = arg1.middleSize
    arg1.middleSpacing = middleSize + 4
    arg1.radiusOfDeadZone = 2
    arg1.radiusOfMaxSpeed = 20
    local AbsoluteSize_2 = arg2.AbsoluteSize
    if 500 >= math.min(AbsoluteSize_2.x, AbsoluteSize_2.y) then
        middleSize = false
    else
        middleSize = true
    end
    if middleSize then
        arg1.thumbstickSize *= 2
        arg1.thumbstickRingSize *= 2
        arg1.middleSize *= 2
        arg1.middleSpacing *= 2
        arg1.radiusOfDeadZone *= 2
        arg1.radiusOfMaxSpeed *= 2
    end
    local function layoutThumbstickFrame_upvr(arg1_8) -- Line 379, Named "layoutThumbstickFrame"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_8 then
            arg1.thumbstickFrame.Size = UDim2.new(1, 0, 0.4, 0)
            arg1.thumbstickFrame.Position = UDim2.new(0, 0, 0.6, 0)
        else
            arg1.thumbstickFrame.Size = UDim2.new(0.4, 0, 0.6666666666666666, 0)
            arg1.thumbstickFrame.Position = UDim2.new(0, 0, 0.3333333333333333, 0)
        end
    end
    arg1.thumbstickFrame = Instance.new("Frame")
    arg1.thumbstickFrame.BorderSizePixel = 0
    arg1.thumbstickFrame.Name = "DynamicThumbstickFrame"
    arg1.thumbstickFrame.Visible = false
    arg1.thumbstickFrame.BackgroundTransparency = 1
    var76 = 0
    arg1.thumbstickFrame.BackgroundColor3 = Color3.fromRGB(var76, 0, 0)
    arg1.thumbstickFrame.Active = false
    var76 = 0.4
    arg1.thumbstickFrame.Size = UDim2.new(var76, 0, 0.6666666666666666, 0)
    var76 = 0
    arg1.thumbstickFrame.Position = UDim2.new(var76, 0, 0.3333333333333333, 0)
    arg1.startImage = Instance.new("ImageLabel")
    arg1.startImage.Name = "ThumbstickStart"
    arg1.startImage.Visible = true
    arg1.startImage.BackgroundTransparency = 1
    arg1.startImage.Image = "rbxasset://textures/ui/Input/TouchControlsSheetV2.png"
    var76 = 1
    arg1.startImage.ImageRectOffset = Vector2.new(var76, 1)
    var76 = 144
    arg1.startImage.ImageRectSize = Vector2.new(var76, 144)
    var76 = 0
    arg1.startImage.ImageColor3 = Color3.new(var76, 0, 0)
    var76 = 0.5
    arg1.startImage.AnchorPoint = Vector2.new(var76, 0.5)
    var76 = 0
    arg1.startImage.Position = UDim2.new(var76, arg1.thumbstickRingSize * 3.3, 1, -arg1.thumbstickRingSize * 2.8)
    var76 = 0
    arg1.startImage.Size = UDim2.new(var76, arg1.thumbstickRingSize * 3.7, 0, arg1.thumbstickRingSize * 3.7)
    arg1.startImage.ZIndex = 10
    arg1.startImage.Parent = arg1.thumbstickFrame
    arg1.endImage = Instance.new("ImageLabel")
    arg1.endImage.Name = "ThumbstickEnd"
    arg1.endImage.Visible = true
    arg1.endImage.BackgroundTransparency = 1
    arg1.endImage.Image = "rbxasset://textures/ui/Input/TouchControlsSheetV2.png"
    var76 = 1
    arg1.endImage.ImageRectOffset = Vector2.new(var76, 1)
    var76 = 144
    arg1.endImage.ImageRectSize = Vector2.new(var76, 144)
    var76 = 0.5
    arg1.endImage.AnchorPoint = Vector2.new(var76, 0.5)
    var76 = arg1.startImage
    arg1.endImage.Position = var76.Position
    var76 = 0
    arg1.endImage.Size = UDim2.new(var76, arg1.thumbstickSize * 0.8, 0, arg1.thumbstickSize * 0.8)
    arg1.endImage.ZIndex = 10
    arg1.endImage.Parent = arg1.thumbstickFrame
    var76 = 1
    for i_2 = var76, len_upvr do
        arg1.middleImages[i_2] = Instance.new("ImageLabel")
        arg1.middleImages[i_2].Name = "ThumbstickMiddle"
        arg1.middleImages[i_2].Visible = false
        arg1.middleImages[i_2].BackgroundTransparency = 1
        arg1.middleImages[i_2].Image = "rbxasset://textures/ui/Input/TouchControlsSheetV2.png"
        arg1.middleImages[i_2].ImageRectOffset = Vector2.new(1, 1)
        arg1.middleImages[i_2].ImageRectSize = Vector2.new(144, 144)
        arg1.middleImages[i_2].ImageTransparency = tbl_upvr[i_2]
        arg1.middleImages[i_2].AnchorPoint = Vector2.new(0.5, 0.5)
        arg1.middleImages[i_2].ZIndex = 9
        arg1.middleImages[i_2].Parent = arg1.thumbstickFrame
    end
    local var79_upvw
    local function onCurrentCameraChanged() -- Line 440
        --[[ Upvalues[2]:
            [1]: var79_upvw (read and write)
            [2]: layoutThumbstickFrame_upvr (readonly)
        ]]
        if var79_upvw then
            var79_upvw:Disconnect()
            var79_upvw = nil
        end
        local CurrentCamera_upvr = workspace.CurrentCamera
        local var81
        if CurrentCamera_upvr then
            var79_upvw = CurrentCamera_upvr:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 447, Named "onViewportSizeChanged"
                --[[ Upvalues[2]:
                    [1]: CurrentCamera_upvr (readonly)
                    [2]: layoutThumbstickFrame_upvr (copied, readonly)
                ]]
                local var82 = CurrentCamera_upvr
                local ViewportSize_4 = var82.ViewportSize
                if ViewportSize_4.X >= ViewportSize_4.Y then
                    var82 = false
                else
                    var82 = true
                end
                layoutThumbstickFrame_upvr(var82)
            end)
            local ViewportSize_3 = CurrentCamera_upvr.ViewportSize
            if ViewportSize_3.X >= ViewportSize_3.Y then
                var81 = false
            else
                var81 = true
            end
            layoutThumbstickFrame_upvr(var81)
        end
    end
    workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(onCurrentCameraChanged)
    if workspace.CurrentCamera then
        onCurrentCameraChanged()
    end
    arg1.moveTouchStartPosition = nil
    arg1.startImageFadeTween = nil
    arg1.endImageFadeTween = nil
    arg1.middleImageFadeTweens = {}
    arg1.onRenderSteppedConn = RunService_upvr.RenderStepped:Connect(function() -- Line 467
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [36] 26. Error Block 3 start (CF ANALYSIS FAILED)
        arg1.tweenOutAlphaStart = tick()
        arg1.tweenInAlphaStart = nil
        do
            return
        end
        -- KONSTANTERROR: [36] 26. Error Block 3 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [47] 34. Error Block 9 start (CF ANALYSIS FAILED)
        if arg1.tweenOutAlphaStart ~= nil then
            local var86 = tick() - arg1.tweenOutAlphaStart
            local var87 = arg1.fadeInAndOutHalfDuration * 2 - arg1.fadeInAndOutHalfDuration * 2 * arg1.fadeInAndOutBalance
            arg1.thumbstickFrame.BackgroundTransparency = math.min(var86 / var87, 1) * 0.35 + 0.65
            if var87 < var86 then
                arg1.tweenOutAlphaStart = nil
            end
        end
        -- KONSTANTERROR: [47] 34. Error Block 9 end (CF ANALYSIS FAILED)
    end)
    arg1.onTouchEndedConn = UserInputService_upvr.TouchEnded:connect(function(arg1_9) -- Line 486
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_9 == arg1.moveTouchObject then
            arg1:OnInputEnded()
        end
    end)
    GuiService_upvr.MenuOpened:connect(function() -- Line 492
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.moveTouchObject then
            arg1:OnInputEnded()
        end
    end)
    while not LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui") do
        LocalPlayer_upvw.ChildAdded:wait()
    end
    if LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui").CurrentScreenOrientation ~= Enum.ScreenOrientation.LandscapeLeft then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui").CurrentScreenOrientation ~= Enum.ScreenOrientation.LandscapeRight then
        else
        end
    end
    local function _() -- Line 508, Named "longShowBackground"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.fadeInAndOutHalfDuration = 2.5
        arg1.fadeInAndOutBalance = 0.05
        arg1.tweenInAlphaStart = tick()
    end
    local var91_upvr = true
    local class_PlayerGui_2_upvw = LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui")
    local var93_upvw
    var93_upvw = LocalPlayer_upvw:FindFirstChildOfClass("PlayerGui"):GetPropertyChangedSignal("CurrentScreenOrientation"):Connect(function() -- Line 514
        --[[ Upvalues[4]:
            [1]: var91_upvr (readonly)
            [2]: class_PlayerGui_2_upvw (read and write)
            [3]: var93_upvw (read and write)
            [4]: arg1 (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 16 start (CF ANALYSIS FAILED)
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: [9] 7. Error Block 14 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [9] 7. Error Block 14 start (CF ANALYSIS FAILED)
            return var91_upvr
        end
        if class_PlayerGui_2_upvw.CurrentScreenOrientation == Enum.ScreenOrientation.Portrait or not INLINED_2() and class_PlayerGui_2_upvw.CurrentScreenOrientation ~= Enum.ScreenOrientation.Portrait then
            var93_upvw:disconnect()
            arg1.fadeInAndOutHalfDuration = 2.5
            arg1.fadeInAndOutBalance = 0.05
            arg1.tweenInAlphaStart = tick()
            if var91_upvr then
                arg1.hasFadedBackgroundInPortrait = true
                return
            end
            arg1.hasFadedBackgroundInLandscape = true
        end
        -- KONSTANTERROR: [2] 3. Error Block 16 end (CF ANALYSIS FAILED)
    end)
    arg1.thumbstickFrame.Parent = arg2
    if game:IsLoaded() then
        arg1.fadeInAndOutHalfDuration = 2.5
        arg1.fadeInAndOutBalance = 0.05
        arg1.tweenInAlphaStart = tick()
    else
        coroutine.wrap(function() -- Line 534
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            game.Loaded:Wait()
            arg1.fadeInAndOutHalfDuration = 2.5
            arg1.fadeInAndOutBalance = 0.05
            arg1.tweenInAlphaStart = tick()
        end)()
    end
end
return setmetatable_result1_2_upvr
ModuleScript ClickToMoveController ClickToMoveController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:30
-- Luau version 6, Types version 3
-- Time taken: 0.053882 seconds

local UserInputService_upvr = game:GetService("UserInputService")
local Players_upvr = game:GetService("Players")
local Workspace_upvr = game:GetService("Workspace")
local var4_upvw = true
local var5_upvw = true
local var6_upvw = false
local var7_upvw = 1
local var8_upvw = 8
local tbl_2_upvr = {
    [Enum.KeyCode.W] = true;
    [Enum.KeyCode.A] = true;
    [Enum.KeyCode.S] = true;
    [Enum.KeyCode.D] = true;
    [Enum.KeyCode.Up] = true;
    [Enum.KeyCode.Down] = true;
}
local LocalPlayer_upvr = Players_upvr.LocalPlayer
local module_upvr_2 = require(script.Parent:WaitForChild("ClickToMoveDisplay"))
local tbl_4_upvr = {}
local function FindCharacterAncestor_upvr(arg1) -- Line 46, Named "FindCharacterAncestor"
    --[[ Upvalues[1]:
        [1]: FindCharacterAncestor_upvr (readonly)
    ]]
    if arg1 then
        local class_Humanoid_5 = arg1:FindFirstChildOfClass("Humanoid")
        if class_Humanoid_5 then
            return arg1, class_Humanoid_5
        end
        return FindCharacterAncestor_upvr(arg1.Parent)
    end
end
tbl_4_upvr.FindCharacterAncestor = FindCharacterAncestor_upvr
local function findPlayerHumanoid_upvr(arg1, arg2, arg3) -- Line 58, Named "Raycast"
    --[[ Upvalues[3]:
        [1]: Workspace_upvr (readonly)
        [2]: FindCharacterAncestor_upvr (readonly)
        [3]: findPlayerHumanoid_upvr (readonly)
    ]]
    local var24 = arg3
    if not var24 then
        var24 = {}
    end
    local var25 = var24
    local any_FindPartOnRayWithIgnoreList_result1, any_FindPartOnRayWithIgnoreList_result2_2, any_FindPartOnRayWithIgnoreList_result3_2, any_FindPartOnRayWithIgnoreList_result4_2 = Workspace_upvr:FindPartOnRayWithIgnoreList(arg1, var25)
    if any_FindPartOnRayWithIgnoreList_result1 then
        if arg2 then
            local var30
            if any_FindPartOnRayWithIgnoreList_result1.CanCollide == false then
                if any_FindPartOnRayWithIgnoreList_result1 then
                    local class_Humanoid_4 = any_FindPartOnRayWithIgnoreList_result1:FindFirstChildOfClass("Humanoid")
                    if class_Humanoid_4 then
                        var30 = class_Humanoid_4
                    else
                        local _, FindCharacterAncestor_result2_2 = FindCharacterAncestor_upvr(any_FindPartOnRayWithIgnoreList_result1.Parent)
                        var30 = FindCharacterAncestor_result2_2
                    end
                else
                    var30 = nil
                end
                if var30 == nil then
                    table.insert(var25, any_FindPartOnRayWithIgnoreList_result1)
                    return findPlayerHumanoid_upvr(arg1, arg2, var25)
                end
            end
        end
        return any_FindPartOnRayWithIgnoreList_result1, any_FindPartOnRayWithIgnoreList_result2_2, any_FindPartOnRayWithIgnoreList_result3_2, any_FindPartOnRayWithIgnoreList_result4_2
    end
    return nil, nil
end
tbl_4_upvr.Raycast = findPlayerHumanoid_upvr
FindCharacterAncestor_upvr = {}
local var34_upvr = FindCharacterAncestor_upvr
function findPlayerHumanoid_upvr(arg1) -- Line 79, Named "findPlayerHumanoid"
    --[[ Upvalues[1]:
        [1]: var34_upvr (readonly)
    ]]
    local var35 = arg1
    if var35 then
        var35 = arg1.Character
    end
    if var35 then
        local var36 = var34_upvr[arg1]
        if var36 and var36.Parent == var35 then
            return var36
        end
        var34_upvr[arg1] = nil
        local class_Humanoid = var35:FindFirstChildOfClass("Humanoid")
        if class_Humanoid then
            var34_upvr[arg1] = class_Humanoid
        end
        return class_Humanoid
    end
end
local var38_upvw
local var39_upvw
local function _() -- Line 103, Named "GetCharacter"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local var40 = LocalPlayer_upvr
    if var40 then
        var40 = LocalPlayer_upvr.Character
    end
    return var40
end
local var41_upvw
local var42_upvw
local CollectionService_upvr = game:GetService("CollectionService")
local function UpdateIgnoreTag_upvr(arg1) -- Line 107, Named "UpdateIgnoreTag"
    --[[ Upvalues[6]:
        [1]: var39_upvw (read and write)
        [2]: var41_upvw (read and write)
        [3]: var42_upvw (read and write)
        [4]: var38_upvw (read and write)
        [5]: LocalPlayer_upvr (readonly)
        [6]: CollectionService_upvr (readonly)
    ]]
    if arg1 == var39_upvw then
    else
        if var41_upvw then
            var41_upvw:Disconnect()
            var41_upvw = nil
        end
        if var42_upvw then
            var42_upvw:Disconnect()
            var42_upvw = nil
        end
        var39_upvw = arg1
        local tbl = {}
        local var49 = LocalPlayer_upvr
        if var49 then
            var49 = LocalPlayer_upvr.Character
        end
        tbl[1] = var49
        var38_upvw = tbl
        if var39_upvw ~= nil then
            for _, v_4 in ipairs(CollectionService_upvr:GetTagged(var39_upvw)) do
                table.insert(var38_upvw, v_4)
            end
            var41_upvw = CollectionService_upvr:GetInstanceAddedSignal(var39_upvw):Connect(function(arg1_2) -- Line 127
                --[[ Upvalues[1]:
                    [1]: var38_upvw (copied, read and write)
                ]]
                table.insert(var38_upvw, arg1_2)
            end)
            var42_upvw = CollectionService_upvr:GetInstanceRemovedSignal(var39_upvw):Connect(function(arg1_3) -- Line 131
                --[[ Upvalues[1]:
                    [1]: var38_upvw (copied, read and write)
                ]]
                for i_5 = 1, #var38_upvw do
                    if var38_upvw[i_5] == arg1_3 then
                        var38_upvw[i_5] = var38_upvw[#var38_upvw]
                        table.remove(var38_upvw)
                        return
                    end
                end
            end)
        end
    end
end
local function _() -- Line 143, Named "getIgnoreList"
    --[[ Upvalues[2]:
        [1]: var38_upvw (read and write)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if var38_upvw then
        return var38_upvw
    end
    var38_upvw = {}
    local var56 = LocalPlayer_upvr
    if var56 then
        var56 = LocalPlayer_upvr.Character
    end
    table.insert(var38_upvw, var56)
    return var38_upvw
end
local PathfindingService_upvr = game:GetService("PathfindingService")
local function Pather_upvr(arg1, arg2, arg3) -- Line 154, Named "Pather"
    --[[ Upvalues[10]:
        [1]: var6_upvw (read and write)
        [2]: LocalPlayer_upvr (readonly)
        [3]: var34_upvr (readonly)
        [4]: var7_upvw (read and write)
        [5]: PathfindingService_upvr (readonly)
        [6]: var4_upvw (read and write)
        [7]: module_upvr_2 (readonly)
        [8]: var8_upvw (read and write)
        [9]: Workspace_upvr (readonly)
        [10]: var38_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 63 start (CF ANALYSIS FAILED)
    local tbl_3 = {}
    local var59
    if arg3 ~= nil then
    else
    end
    var59 = false
    tbl_3.Cancelled = var59
    var59 = false
    tbl_3.Started = var59
    var59 = Instance.new("BindableEvent")
    tbl_3.Finished = var59
    var59 = Instance.new("BindableEvent")
    tbl_3.PathFailed = var59
    var59 = false
    tbl_3.PathComputing = var59
    var59 = false
    tbl_3.PathComputed = var59
    tbl_3.OriginalTargetPoint = arg1
    tbl_3.TargetPoint = arg1
    tbl_3.TargetSurfaceNormal = arg2
    var59 = nil
    tbl_3.DiedConn = var59
    var59 = nil
    tbl_3.SeatedConn = var59
    var59 = nil
    tbl_3.BlockedConn = var59
    var59 = nil
    tbl_3.TeleportedConn = var59
    var59 = 0
    tbl_3.CurrentPoint = var59
    var59 = Vector3.new(0, 0, 0)
    tbl_3.HumanoidOffsetFromPath = var59
    var59 = nil
    tbl_3.CurrentWaypointPosition = var59
    var59 = Vector3.new(0, 0, 0)
    tbl_3.CurrentWaypointPlaneNormal = var59
    var59 = 0
    tbl_3.CurrentWaypointPlaneDistance = var59
    var59 = false
    tbl_3.CurrentWaypointNeedsJump = var59
    var59 = Vector3.new(0, 0, 0)
    tbl_3.CurrentHumanoidPosition = var59
    var59 = 0
    tbl_3.CurrentHumanoidVelocity = var59
    var59 = Vector3.new(0, 0, 0)
    tbl_3.NextActionMoveDirection = var59
    var59 = false
    tbl_3.NextActionJump = var59
    var59 = 0
    tbl_3.Timeout = var59
    local var60 = LocalPlayer_upvr
    -- KONSTANTERROR: [0] 1. Error Block 63 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [89] 62. Error Block 6 start (CF ANALYSIS FAILED)
    local Character_2 = var60.Character
    -- KONSTANTERROR: [89] 62. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [91] 63. Error Block 70 start (CF ANALYSIS FAILED)
    if Character_2 then
        local var62 = var34_upvr[var60]
        if var62 and var62.Parent == Character_2 then
            var59 = var62
        else
            var34_upvr[var60] = nil
            local class_Humanoid_3 = Character_2:FindFirstChildOfClass("Humanoid")
            if class_Humanoid_3 then
                var34_upvr[var60] = class_Humanoid_3
            end
            var59 = class_Humanoid_3
        end
    else
        var59 = nil
    end
    tbl_3.Humanoid = var59
    var59 = nil
    tbl_3.OriginPoint = var59
    var59 = false
    tbl_3.AgentCanFollowPath = var59
    var59 = false
    tbl_3.DirectPath = var59
    var59 = false
    tbl_3.DirectPathRiseFirst = var59
    var59 = tbl_3.Humanoid
    -- KONSTANTERROR: [91] 63. Error Block 70 end (CF ANALYSIS FAILED)
end
local function _() -- Line 578, Named "CheckAlive"
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: var34_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var64 = LocalPlayer_upvr
    local var65 = var64
    if var65 then
        var65 = var64.Character
    end
    if var65 then
        local var66 = var34_upvr[var64]
        if var66 and var66.Parent == var65 then
            local _ = var66
        else
            var34_upvr[var64] = nil
            local class_Humanoid_7 = var65:FindFirstChildOfClass("Humanoid")
            if class_Humanoid_7 then
                var34_upvr[var64] = class_Humanoid_7
            end
        end
    else
    end
    var64 = false
    local var69 = var64
    if nil ~= nil then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if 0 >= nil.Health then
            var69 = false
        else
            var69 = true
        end
    end
    return var69
end
local function GetEquippedTool_upvr(arg1) -- Line 583, Named "GetEquippedTool"
    if arg1 ~= nil then
        for _, v in pairs(arg1:GetChildren()) do
            if v:IsA("Tool") then
                return v
            end
        end
    end
end
local var75_upvw
local var76_upvw
local var77_upvw
local function CleanupPath() -- Line 598
    --[[ Upvalues[3]:
        [1]: var75_upvw (read and write)
        [2]: var76_upvw (read and write)
        [3]: var77_upvw (read and write)
    ]]
    if var75_upvw then
        var75_upvw:Cancel()
        var75_upvw = nil
    end
    if var76_upvw then
        var76_upvw:Disconnect()
        var76_upvw = nil
    end
    if var77_upvw then
        var77_upvw:Disconnect()
        var77_upvw = nil
    end
end
local function HandleMoveTo_upvr(arg1, arg2, arg3, arg4, arg5) -- Line 616, Named "HandleMoveTo"
    --[[ Upvalues[6]:
        [1]: var75_upvw (read and write)
        [2]: var76_upvw (read and write)
        [3]: var77_upvw (read and write)
        [4]: GetEquippedTool_upvr (readonly)
        [5]: var5_upvw (read and write)
        [6]: module_upvr_2 (readonly)
    ]]
    if var75_upvw then
        if var75_upvw then
            var75_upvw:Cancel()
            var75_upvw = nil
        end
        if var76_upvw then
            var76_upvw:Disconnect()
            var76_upvw = nil
        end
        if var77_upvw then
            var77_upvw:Disconnect()
            var77_upvw = nil
        end
    end
    var75_upvw = arg1
    arg1:Start(arg5)
    var76_upvw = arg1.Finished.Event:Connect(function() -- Line 623
        --[[ Upvalues[6]:
            [1]: var75_upvw (copied, read and write)
            [2]: var76_upvw (copied, read and write)
            [3]: var77_upvw (copied, read and write)
            [4]: arg3 (readonly)
            [5]: GetEquippedTool_upvr (copied, readonly)
            [6]: arg4 (readonly)
        ]]
        if var75_upvw then
            var75_upvw:Cancel()
            var75_upvw = nil
        end
        if var76_upvw then
            var76_upvw:Disconnect()
            var76_upvw = nil
        end
        if var77_upvw then
            var77_upvw:Disconnect()
            var77_upvw = nil
        end
        if arg3 then
            local GetEquippedTool_result1_2 = GetEquippedTool_upvr(arg4)
            if GetEquippedTool_result1_2 then
                GetEquippedTool_result1_2:Activate()
            end
        end
    end)
    var77_upvw = arg1.PathFailed.Event:Connect(function() -- Line 632
        --[[ Upvalues[7]:
            [1]: var75_upvw (copied, read and write)
            [2]: var76_upvw (copied, read and write)
            [3]: var77_upvw (copied, read and write)
            [4]: arg5 (readonly)
            [5]: var5_upvw (copied, read and write)
            [6]: module_upvr_2 (copied, readonly)
            [7]: arg2 (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [2] 3. Error Block 2 start (CF ANALYSIS FAILED)
        var75_upvw:Cancel()
        var75_upvw = nil
        -- KONSTANTERROR: [2] 3. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 8. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 8. Error Block 3 end (CF ANALYSIS FAILED)
    end)
end
local function _(arg1) -- Line 644, Named "ShowPathFailedFeedback"
    --[[ Upvalues[3]:
        [1]: var75_upvw (read and write)
        [2]: var5_upvw (read and write)
        [3]: module_upvr_2 (readonly)
    ]]
    if var75_upvw and var75_upvw:IsActive() then
        var75_upvw:Cancel()
    end
    if var5_upvw then
        module_upvr_2.PlayFailureAnimation()
    end
    module_upvr_2.DisplayFailureWaypoint(arg1)
end
local StarterGui_upvr = game:GetService("StarterGui")
function OnTap(arg1, arg2, arg3) -- Line 654
    --[[ Upvalues[15]:
        [1]: Workspace_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: var34_upvr (readonly)
        [4]: tbl_4_upvr (readonly)
        [5]: var38_upvw (read and write)
        [6]: StarterGui_upvr (readonly)
        [7]: Players_upvr (readonly)
        [8]: var75_upvw (read and write)
        [9]: var76_upvw (read and write)
        [10]: var77_upvw (read and write)
        [11]: Pather_upvr (readonly)
        [12]: HandleMoveTo_upvr (readonly)
        [13]: var5_upvw (read and write)
        [14]: module_upvr_2 (readonly)
        [15]: GetEquippedTool_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 109 start (CF ANALYSIS FAILED)
    local var83 = LocalPlayer_upvr
    local var84 = var83
    if var84 then
        var84 = var83.Character
    end
    if var84 then
        local var85 = var34_upvr[var83]
        if var85 and var85.Parent == var84 then
            local _ = var85
        else
            var34_upvr[var83] = nil
            local class_Humanoid_2 = var84:FindFirstChildOfClass("Humanoid")
            if class_Humanoid_2 then
                var34_upvr[var83] = class_Humanoid_2
            end
        end
    else
    end
    -- KONSTANTERROR: [0] 1. Error Block 109 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [37] 31. Error Block 102 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    if 0 >= nil.Health then
    else
    end
    -- KONSTANTERROR: [37] 31. Error Block 102 end (CF ANALYSIS FAILED)
end
local function _(arg1) -- Line 707, Named "DisconnectEvent"
    if arg1 then
        arg1:Disconnect()
    end
end
local module_upvr = require(script.Parent:WaitForChild("Keyboard"))
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new(arg1) -- Line 718
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(arg1), setmetatable_result1_2_upvr)
    setmetatable_result1.fingerTouches = {}
    setmetatable_result1.numUnsunkTouches = 0
    setmetatable_result1.mouse1Down = tick()
    setmetatable_result1.mouse1DownPos = Vector2.new()
    setmetatable_result1.mouse2DownTime = tick()
    setmetatable_result1.mouse2DownPos = Vector2.new()
    setmetatable_result1.mouse2UpTime = tick()
    setmetatable_result1.keyboardMoveVector = Vector3.new(0, 0, 0)
    setmetatable_result1.tapConn = nil
    setmetatable_result1.inputBeganConn = nil
    setmetatable_result1.inputChangedConn = nil
    setmetatable_result1.inputEndedConn = nil
    setmetatable_result1.humanoidDiedConn = nil
    setmetatable_result1.characterChildAddedConn = nil
    setmetatable_result1.onCharacterAddedConn = nil
    setmetatable_result1.characterChildRemovedConn = nil
    setmetatable_result1.renderSteppedConn = nil
    setmetatable_result1.menuOpenedConnection = nil
    setmetatable_result1.running = false
    setmetatable_result1.wasdEnabled = false
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.DisconnectEvents(arg1) -- Line 750
    local tapConn = arg1.tapConn
    if tapConn then
        tapConn:Disconnect()
    end
    local inputBeganConn = arg1.inputBeganConn
    if inputBeganConn then
        inputBeganConn:Disconnect()
    end
    local inputChangedConn = arg1.inputChangedConn
    if inputChangedConn then
        inputChangedConn:Disconnect()
    end
    local inputEndedConn = arg1.inputEndedConn
    if inputEndedConn then
        inputEndedConn:Disconnect()
    end
    local humanoidDiedConn = arg1.humanoidDiedConn
    if humanoidDiedConn then
        humanoidDiedConn:Disconnect()
    end
    local characterChildAddedConn = arg1.characterChildAddedConn
    if characterChildAddedConn then
        characterChildAddedConn:Disconnect()
    end
    local onCharacterAddedConn = arg1.onCharacterAddedConn
    if onCharacterAddedConn then
        onCharacterAddedConn:Disconnect()
    end
    local renderSteppedConn = arg1.renderSteppedConn
    if renderSteppedConn then
        renderSteppedConn:Disconnect()
    end
    local characterChildRemovedConn = arg1.characterChildRemovedConn
    if characterChildRemovedConn then
        characterChildRemovedConn:Disconnect()
    end
    local menuOpenedConnection = arg1.menuOpenedConnection
    if menuOpenedConnection then
        menuOpenedConnection:Disconnect()
    end
end
function setmetatable_result1_2_upvr.OnTouchBegan(arg1, arg2, arg3) -- Line 763
    if arg1.fingerTouches[arg2] == nil and not arg3 then
        arg1.numUnsunkTouches += 1
    end
    arg1.fingerTouches[arg2] = arg3
end
function setmetatable_result1_2_upvr.OnTouchChanged(arg1, arg2, arg3) -- Line 770
    if arg1.fingerTouches[arg2] == nil then
        arg1.fingerTouches[arg2] = arg3
        if not arg3 then
            arg1.numUnsunkTouches += 1
        end
    end
end
function setmetatable_result1_2_upvr.OnTouchEnded(arg1, arg2, arg3) -- Line 779
    if arg1.fingerTouches[arg2] ~= nil then
        if arg1.fingerTouches[arg2] == false then
            arg1.numUnsunkTouches -= 1
        end
    end
    arg1.fingerTouches[arg2] = nil
end
local GuiService_upvr = game:GetService("GuiService")
function setmetatable_result1_2_upvr.OnCharacterAdded(arg1, arg2) -- Line 787
    --[[ Upvalues[7]:
        [1]: UserInputService_upvr (readonly)
        [2]: tbl_2_upvr (readonly)
        [3]: var75_upvw (read and write)
        [4]: var76_upvw (read and write)
        [5]: var77_upvw (read and write)
        [6]: module_upvr_2 (readonly)
        [7]: GuiService_upvr (readonly)
    ]]
    arg1:DisconnectEvents()
    arg1.inputBeganConn = UserInputService_upvr.InputBegan:Connect(function(arg1_4, arg2_2) -- Line 790
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: tbl_2_upvr (copied, readonly)
            [3]: var75_upvw (copied, read and write)
            [4]: var76_upvw (copied, read and write)
            [5]: var77_upvw (copied, read and write)
            [6]: module_upvr_2 (copied, readonly)
        ]]
        if arg1_4.UserInputType == Enum.UserInputType.Touch then
            arg1:OnTouchBegan(arg1_4, arg2_2)
        end
        if arg1.wasdEnabled then
            if arg2_2 == false and arg1_4.UserInputType == Enum.UserInputType.Keyboard and tbl_2_upvr[arg1_4.KeyCode] then
                if var75_upvw then
                    var75_upvw:Cancel()
                    var75_upvw = nil
                end
                if var76_upvw then
                    var76_upvw:Disconnect()
                    var76_upvw = nil
                end
                if var77_upvw then
                    var77_upvw:Disconnect()
                    var77_upvw = nil
                end
                module_upvr_2.CancelFailureAnimation()
            end
        end
        if arg1_4.UserInputType == Enum.UserInputType.MouseButton1 then
            arg1.mouse1DownTime = tick()
            arg1.mouse1DownPos = arg1_4.Position
        end
        if arg1_4.UserInputType == Enum.UserInputType.MouseButton2 then
            arg1.mouse2DownTime = tick()
            arg1.mouse2DownPos = arg1_4.Position
        end
    end)
    arg1.inputChangedConn = UserInputService_upvr.InputChanged:Connect(function(arg1_5, arg2_3) -- Line 811
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5.UserInputType == Enum.UserInputType.Touch then
            arg1:OnTouchChanged(arg1_5, arg2_3)
        end
    end)
    arg1.inputEndedConn = UserInputService_upvr.InputEnded:Connect(function(arg1_6, arg2_4) -- Line 817
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: var75_upvw (copied, read and write)
        ]]
        if arg1_6.UserInputType == Enum.UserInputType.Touch then
            arg1:OnTouchEnded(arg1_6, arg2_4)
        end
        local var109
        if arg1_6.UserInputType == var109 then
            var109 = tick()
            arg1.mouse2UpTime = var109
            local Position = arg1_6.Position
            var109 = var75_upvw
            if not var109 then
                if arg1.keyboardMoveVector.Magnitude > 0 then
                    var109 = false
                else
                    var109 = true
                end
            end
            if arg1.mouse2UpTime - arg1.mouse2DownTime < 0.25 and (Position - arg1.mouse2DownPos).magnitude < 5 and var109 then
                OnTap({Position})
            end
        end
    end)
    arg1.tapConn = UserInputService_upvr.TouchTap:Connect(function(arg1_7, arg2_5) -- Line 834
        if not arg2_5 then
            OnTap(arg1_7, nil, true)
        end
    end)
    arg1.menuOpenedConnection = GuiService_upvr.MenuOpened:Connect(function() -- Line 840
        --[[ Upvalues[3]:
            [1]: var75_upvw (copied, read and write)
            [2]: var76_upvw (copied, read and write)
            [3]: var77_upvw (copied, read and write)
        ]]
        if var75_upvw then
            var75_upvw:Cancel()
            var75_upvw = nil
        end
        if var76_upvw then
            var76_upvw:Disconnect()
            var76_upvw = nil
        end
        if var77_upvw then
            var77_upvw:Disconnect()
            var77_upvw = nil
        end
    end)
    local function OnCharacterChildAdded_upvr(arg1_8) -- Line 844, Named "OnCharacterChildAdded"
        --[[ Upvalues[2]:
            [1]: UserInputService_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        if UserInputService_upvr.TouchEnabled then
            if arg1_8:IsA("Tool") then
                arg1_8.ManualActivationOnly = true
            end
        end
        if arg1_8:IsA("Humanoid") then
            local humanoidDiedConn_2 = arg1.humanoidDiedConn
            if humanoidDiedConn_2 then
                humanoidDiedConn_2:Disconnect()
            end
            arg1.humanoidDiedConn = arg1_8.Died:Connect(function() -- Line 852
            end)
        end
    end
    arg1.characterChildAddedConn = arg2.ChildAdded:Connect(function(arg1_9) -- Line 860
        --[[ Upvalues[1]:
            [1]: OnCharacterChildAdded_upvr (readonly)
        ]]
        OnCharacterChildAdded_upvr(arg1_9)
    end)
    arg1.characterChildRemovedConn = arg2.ChildRemoved:Connect(function(arg1_10) -- Line 863
        --[[ Upvalues[1]:
            [1]: UserInputService_upvr (copied, readonly)
        ]]
        if UserInputService_upvr.TouchEnabled then
            if arg1_10:IsA("Tool") then
                arg1_10.ManualActivationOnly = false
            end
        end
    end)
    for _, v_2 in pairs(arg2:GetChildren()) do
        OnCharacterChildAdded_upvr(v_2)
    end
end
function setmetatable_result1_2_upvr.Start(arg1) -- Line 875
    arg1:Enable(true)
end
function setmetatable_result1_2_upvr.Stop(arg1) -- Line 879
    arg1:Enable(false)
end
function setmetatable_result1_2_upvr.CleanupPath(arg1) -- Line 883
    --[[ Upvalues[3]:
        [1]: var75_upvw (read and write)
        [2]: var76_upvw (read and write)
        [3]: var77_upvw (read and write)
    ]]
    if var75_upvw then
        var75_upvw:Cancel()
        var75_upvw = nil
    end
    if var76_upvw then
        var76_upvw:Disconnect()
        var76_upvw = nil
    end
    if var77_upvw then
        var77_upvw:Disconnect()
        var77_upvw = nil
    end
end
function setmetatable_result1_2_upvr.Enable(arg1, arg2, arg3, arg4) -- Line 887
    --[[ Upvalues[5]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: var75_upvw (read and write)
        [3]: var76_upvw (read and write)
        [4]: var77_upvw (read and write)
        [5]: UserInputService_upvr (readonly)
    ]]
    if arg2 then
        if not arg1.running then
            if LocalPlayer_upvr.Character then
                arg1:OnCharacterAdded(LocalPlayer_upvr.Character)
            end
            arg1.onCharacterAddedConn = LocalPlayer_upvr.CharacterAdded:Connect(function(arg1_12) -- Line 893
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:OnCharacterAdded(arg1_12)
            end)
            arg1.running = true
        end
        arg1.touchJumpController = arg4
        if arg1.touchJumpController then
            arg1.touchJumpController:Enable(arg1.jumpEnabled)
            -- KONSTANTWARNING: GOTO [113] #83
        end
    else
        if arg1.running then
            arg1:DisconnectEvents()
            if var75_upvw then
                var75_upvw:Cancel()
                var75_upvw = nil
            end
            if var76_upvw then
                var76_upvw:Disconnect()
                var76_upvw = nil
            end
            if var77_upvw then
                var77_upvw:Disconnect()
                var77_upvw = nil
            end
            if UserInputService_upvr.TouchEnabled then
                local Character_4 = LocalPlayer_upvr.Character
                if Character_4 then
                    for _, v_3 in pairs(Character_4:GetChildren()) do
                        if v_3:IsA("Tool") then
                            v_3.ManualActivationOnly = false
                        end
                    end
                end
            end
            arg1.running = false
        end
        if arg1.touchJumpController and not arg1.jumpEnabled then
            arg1.touchJumpController:Enable(true)
        end
        arg1.touchJumpController = nil
    end
    if UserInputService_upvr.KeyboardEnabled then
        if arg2 ~= arg1.enabled then
            arg1.forwardValue = 0
            arg1.backwardValue = 0
            arg1.leftValue = 0
            arg1.rightValue = 0
            arg1.moveVector = Vector3.new(0, 0, 0)
            if arg2 then
                arg1:BindContextActions()
                arg1:ConnectFocusEventListeners()
            else
                arg1:UnbindContextActions()
                arg1:DisconnectFocusEventListeners()
            end
        end
    end
    if not arg2 or not arg3 then
    end
    arg1.wasdEnabled = false
    arg1.enabled = arg2
end
function setmetatable_result1_2_upvr.OnRenderStepped(arg1, arg2) -- Line 948
    --[[ Upvalues[1]:
        [1]: var75_upvw (read and write)
    ]]
    arg1.isJumping = false
    if var75_upvw then
        var75_upvw:OnRenderStepped(arg2)
        if var75_upvw then
            arg1.moveVector = var75_upvw.NextActionMoveDirection
            arg1.moveVectorIsCameraRelative = false
            if var75_upvw.NextActionJump then
                arg1.isJumping = true
                -- KONSTANTWARNING: GOTO [43] #31
            end
        else
            arg1.moveVector = arg1.keyboardMoveVector
            arg1.moveVectorIsCameraRelative = true
        end
    else
        arg1.moveVector = arg1.keyboardMoveVector
        arg1.moveVectorIsCameraRelative = true
    end
    if arg1.jumpRequested then
        arg1.isJumping = true
    end
end
function setmetatable_result1_2_upvr.UpdateMovement(arg1, arg2) -- Line 983
    if arg2 == Enum.UserInputState.Cancel then
        arg1.keyboardMoveVector = Vector3.new(0, 0, 0)
    elseif arg1.wasdEnabled then
        arg1.keyboardMoveVector = Vector3.new(arg1.leftValue + arg1.rightValue, 0, arg1.forwardValue + arg1.backwardValue)
    end
end
function setmetatable_result1_2_upvr.UpdateJump(arg1) -- Line 992
end
function setmetatable_result1_2_upvr.SetShowPath(arg1, arg2) -- Line 997
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    var4_upvw = arg2
end
function setmetatable_result1_2_upvr.GetShowPath(arg1) -- Line 1001
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    return var4_upvw
end
function setmetatable_result1_2_upvr.SetWaypointTexture(arg1, arg2) -- Line 1005
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    module_upvr_2.SetWaypointTexture(arg2)
end
function setmetatable_result1_2_upvr.GetWaypointTexture(arg1) -- Line 1009
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    return module_upvr_2.GetWaypointTexture()
end
function setmetatable_result1_2_upvr.SetWaypointRadius(arg1, arg2) -- Line 1013
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    module_upvr_2.SetWaypointRadius(arg2)
end
function setmetatable_result1_2_upvr.GetWaypointRadius(arg1) -- Line 1017
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    return module_upvr_2.GetWaypointRadius()
end
function setmetatable_result1_2_upvr.SetEndWaypointTexture(arg1, arg2) -- Line 1021
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    module_upvr_2.SetEndWaypointTexture(arg2)
end
function setmetatable_result1_2_upvr.GetEndWaypointTexture(arg1) -- Line 1025
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    return module_upvr_2.GetEndWaypointTexture()
end
function setmetatable_result1_2_upvr.SetWaypointsAlwaysOnTop(arg1, arg2) -- Line 1029
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    module_upvr_2.SetWaypointsAlwaysOnTop(arg2)
end
function setmetatable_result1_2_upvr.GetWaypointsAlwaysOnTop(arg1) -- Line 1033
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    return module_upvr_2.GetWaypointsAlwaysOnTop()
end
function setmetatable_result1_2_upvr.SetFailureAnimationEnabled(arg1, arg2) -- Line 1037
    --[[ Upvalues[1]:
        [1]: var5_upvw (read and write)
    ]]
    var5_upvw = arg2
end
function setmetatable_result1_2_upvr.GetFailureAnimationEnabled(arg1) -- Line 1041
    --[[ Upvalues[1]:
        [1]: var5_upvw (read and write)
    ]]
    return var5_upvw
end
function setmetatable_result1_2_upvr.SetIgnoredPartsTag(arg1, arg2) -- Line 1045
    --[[ Upvalues[1]:
        [1]: UpdateIgnoreTag_upvr (readonly)
    ]]
    UpdateIgnoreTag_upvr(arg2)
end
function setmetatable_result1_2_upvr.GetIgnoredPartsTag(arg1) -- Line 1049
    --[[ Upvalues[1]:
        [1]: var39_upvw (read and write)
    ]]
    return var39_upvw
end
function setmetatable_result1_2_upvr.SetUseDirectPath(arg1, arg2) -- Line 1053
    --[[ Upvalues[1]:
        [1]: var6_upvw (read and write)
    ]]
    var6_upvw = arg2
end
function setmetatable_result1_2_upvr.GetUseDirectPath(arg1) -- Line 1057
    --[[ Upvalues[1]:
        [1]: var6_upvw (read and write)
    ]]
    return var6_upvw
end
function setmetatable_result1_2_upvr.SetAgentSizeIncreaseFactor(arg1, arg2) -- Line 1061
    --[[ Upvalues[1]:
        [1]: var7_upvw (read and write)
    ]]
    var7_upvw = 1 + arg2 / 100
end
function setmetatable_result1_2_upvr.GetAgentSizeIncreaseFactor(arg1) -- Line 1065
    --[[ Upvalues[1]:
        [1]: var7_upvw (read and write)
    ]]
    return (var7_upvw - 1) * 100
end
function setmetatable_result1_2_upvr.SetUnreachableWaypointTimeout(arg1, arg2) -- Line 1069
    --[[ Upvalues[1]:
        [1]: var8_upvw (read and write)
    ]]
    var8_upvw = arg2
end
function setmetatable_result1_2_upvr.GetUnreachableWaypointTimeout(arg1) -- Line 1073
    --[[ Upvalues[1]:
        [1]: var8_upvw (read and write)
    ]]
    return var8_upvw
end
function setmetatable_result1_2_upvr.SetUserJumpEnabled(arg1, arg2) -- Line 1077
    arg1.jumpEnabled = arg2
    if arg1.touchJumpController then
        arg1.touchJumpController:Enable(arg2)
    end
end
function setmetatable_result1_2_upvr.GetUserJumpEnabled(arg1) -- Line 1084
    return arg1.jumpEnabled
end
function setmetatable_result1_2_upvr.MoveTo(arg1, arg2, arg3, arg4) -- Line 1088
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Pather_upvr (readonly)
        [3]: HandleMoveTo_upvr (readonly)
    ]]
    local Character = LocalPlayer_upvr.Character
    if Character == nil then
        return false
    end
    local Pather_result1 = Pather_upvr(arg2, Vector3.new(0, 1, 0), arg4)
    if Pather_result1 then
        if Pather_result1:IsValidPath() then
            HandleMoveTo_upvr(Pather_result1, arg2, nil, Character, arg3)
            return true
        end
    end
    return false
end
return setmetatable_result1_2_upvr
ModuleScript VehicleController VehicleController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:32
-- Luau version 6, Types version 3
-- Time taken: 0.007219 seconds

local ContextActionService_upvr = game:GetService("ContextActionService")
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new(arg1) -- Line 26
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.CONTROL_ACTION_PRIORITY = arg1
    setmetatable_result1.enabled = false
    setmetatable_result1.vehicleSeat = nil
    setmetatable_result1.throttle = 0
    setmetatable_result1.steer = 0
    setmetatable_result1.acceleration = 0
    setmetatable_result1.decceleration = 0
    setmetatable_result1.turningRight = 0
    setmetatable_result1.turningLeft = 0
    setmetatable_result1.vehicleMoveVector = Vector3.new(0, 0, 0)
    setmetatable_result1.autoPilot = {}
    setmetatable_result1.autoPilot.MaxSpeed = 0
    setmetatable_result1.autoPilot.MaxSteeringAngle = 0
    return setmetatable_result1
end
function module_upvr.BindContextActions(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    ContextActionService_upvr:BindActionAtPriority("throttleAccel", function(arg1_2, arg2, arg3) -- Line 52
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnThrottleAccel(arg1_2, arg2, arg3)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.ButtonR2)
    ContextActionService_upvr:BindActionAtPriority("throttleDeccel", function(arg1_3, arg2, arg3) -- Line 56
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnThrottleDeccel(arg1_3, arg2, arg3)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.ButtonL2)
    ContextActionService_upvr:BindActionAtPriority("arrowSteerRight", function(arg1_4, arg2, arg3) -- Line 61
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnSteerRight(arg1_4, arg2, arg3)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.Right)
    ContextActionService_upvr:BindActionAtPriority("arrowSteerLeft", function(arg1_5, arg2, arg3) -- Line 65
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnSteerLeft(arg1_5, arg2, arg3)
        return Enum.ContextActionResult.Pass
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.Left)
end
function module_upvr.Enable(arg1, arg2, arg3) -- Line 71
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 3. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [4] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [8] 5. Error Block 3 start (CF ANALYSIS FAILED)
    do
        return
    end
    -- KONSTANTERROR: [8] 5. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 6. Error Block 4 start (CF ANALYSIS FAILED)
    arg1.enabled = arg2
    arg1.vehicleMoveVector = Vector3.new(0, 0, 0)
    -- KONSTANTERROR: [9] 6. Error Block 4 end (CF ANALYSIS FAILED)
end
function module_upvr.OnThrottleAccel(arg1, arg2, arg3, arg4) -- Line 97
    if arg3 == Enum.UserInputState.End or arg3 == Enum.UserInputState.Cancel then
        arg1.acceleration = 0
    else
        arg1.acceleration = -1
    end
    arg1.throttle = arg1.acceleration + arg1.decceleration
end
function module_upvr.OnThrottleDeccel(arg1, arg2, arg3, arg4) -- Line 106
    if arg3 == Enum.UserInputState.End or arg3 == Enum.UserInputState.Cancel then
        arg1.decceleration = 0
    else
        arg1.decceleration = 1
    end
    arg1.throttle = arg1.acceleration + arg1.decceleration
end
function module_upvr.OnSteerRight(arg1, arg2, arg3, arg4) -- Line 115
    if arg3 == Enum.UserInputState.End or arg3 == Enum.UserInputState.Cancel then
        arg1.turningRight = 0
    else
        arg1.turningRight = 1
    end
    arg1.steer = arg1.turningRight + arg1.turningLeft
end
function module_upvr.OnSteerLeft(arg1, arg2, arg3, arg4) -- Line 124
    if arg3 == Enum.UserInputState.End or arg3 == Enum.UserInputState.Cancel then
        arg1.turningLeft = 0
    else
        arg1.turningLeft = -1
    end
    arg1.steer = arg1.turningRight + arg1.turningLeft
end
function module_upvr.Update(arg1, arg2, arg3, arg4) -- Line 134
    -- KONSTANTERROR: Failed to generate AST for function `Update`:
K:0: attempt to index nil with 'reads'
Traceback:
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K

end
function module_upvr.ComputeThrottle(arg1, arg2) -- Line 160
    if arg2 ~= Vector3.new(0, 0, 0) then
        return -arg2.Z
    end
    return 0
end
function module_upvr.ComputeSteer(arg1, arg2) -- Line 169
    if arg2 ~= Vector3.new(0, 0, 0) then
        return -math.atan2(-arg2.x, -arg2.z) * 57.29577951308232 / arg1.autoPilot.MaxSteeringAngle
    end
    return 0
end
function module_upvr.SetupAutoPilot(arg1) -- Line 178
    arg1.autoPilot.MaxSpeed = arg1.vehicleSeat.MaxSpeed
    arg1.autoPilot.MaxSteeringAngle = 35
end
return module_upvr
ModuleScript ClickToMoveDisplay ClickToMoveDisplay
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:33
-- Luau version 6, Types version 3
-- Time taken: 0.021077 seconds

local module = {}
local var2_upvw = "rbxasset://textures/ui/traildot.png"
local var3_upvw = "rbxasset://textures/ui/waypoint.png"
local var4_upvw = false
local vector2_upvr_2 = Vector2.new(0, 0.5)
local vector2_upvw = Vector2.new(1.5, 1.5)
local TweenService_upvr = game:GetService("TweenService")
local Workspace_upvr = game:GetService("Workspace")
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local udim2_upvr = UDim2.new(0, 42, 0, 50)
local vector2_upvr_3 = Vector2.new(0, 0.5)
local function CreateWaypointTemplates_upvr() -- Line 43, Named "CreateWaypointTemplates"
    --[[ Upvalues[7]:
        [1]: vector2_upvw (read and write)
        [2]: var4_upvw (read and write)
        [3]: var2_upvw (read and write)
        [4]: udim2_upvr (readonly)
        [5]: vector2_upvr_3 (readonly)
        [6]: var3_upvw (read and write)
        [7]: vector2_upvr_2 (readonly)
    ]]
    local Part_3 = Instance.new("Part")
    Part_3.Size = Vector3.new(1, 1, 1)
    Part_3.Anchored = true
    Part_3.CanCollide = false
    Part_3.Name = "TrailDot"
    Part_3.Transparency = 1
    local ImageHandleAdornment_2 = Instance.new("ImageHandleAdornment")
    ImageHandleAdornment_2.Name = "TrailDotImage"
    ImageHandleAdornment_2.Size = vector2_upvw
    ImageHandleAdornment_2.SizeRelativeOffset = Vector3.new(0, 0, -0.1000)
    ImageHandleAdornment_2.AlwaysOnTop = var4_upvw
    ImageHandleAdornment_2.Image = var2_upvw
    ImageHandleAdornment_2.Adornee = Part_3
    ImageHandleAdornment_2.Parent = Part_3
    local Part_2 = Instance.new("Part")
    Part_2.Size = Vector3.new(2, 2, 2)
    Part_2.Anchored = true
    Part_2.CanCollide = false
    Part_2.Name = "EndWaypoint"
    Part_2.Transparency = 1
    local ImageHandleAdornment_3 = Instance.new("ImageHandleAdornment")
    ImageHandleAdornment_3.Name = "TrailDotImage"
    ImageHandleAdornment_3.Size = vector2_upvw
    ImageHandleAdornment_3.SizeRelativeOffset = Vector3.new(0, 0, -0.1000)
    ImageHandleAdornment_3.AlwaysOnTop = var4_upvw
    ImageHandleAdornment_3.Image = var2_upvw
    ImageHandleAdornment_3.Adornee = Part_2
    ImageHandleAdornment_3.Parent = Part_2
    local BillboardGui = Instance.new("BillboardGui")
    BillboardGui.Name = "EndWaypointBillboard"
    BillboardGui.Size = udim2_upvr
    BillboardGui.LightInfluence = 0
    BillboardGui.SizeOffset = vector2_upvr_3
    BillboardGui.AlwaysOnTop = true
    BillboardGui.Adornee = Part_2
    BillboardGui.Parent = Part_2
    local ImageLabel_2 = Instance.new("ImageLabel")
    ImageLabel_2.Image = var3_upvw
    ImageLabel_2.BackgroundTransparency = 1
    ImageLabel_2.Size = UDim2.new(1, 0, 1, 0)
    ImageLabel_2.Parent = BillboardGui
    local Part = Instance.new("Part")
    Part.Size = Vector3.new(2, 2, 2)
    Part.Anchored = true
    Part.CanCollide = false
    Part.Name = "FailureWaypoint"
    Part.Transparency = 1
    local ImageHandleAdornment = Instance.new("ImageHandleAdornment")
    ImageHandleAdornment.Name = "TrailDotImage"
    ImageHandleAdornment.Size = vector2_upvw
    ImageHandleAdornment.SizeRelativeOffset = Vector3.new(0, 0, -0.1000)
    ImageHandleAdornment.AlwaysOnTop = var4_upvw
    ImageHandleAdornment.Image = var2_upvw
    ImageHandleAdornment.Adornee = Part
    ImageHandleAdornment.Parent = Part
    local BillboardGui_2 = Instance.new("BillboardGui")
    BillboardGui_2.Name = "FailureWaypointBillboard"
    BillboardGui_2.Size = udim2_upvr
    BillboardGui_2.LightInfluence = 0
    BillboardGui_2.SizeOffset = vector2_upvr_2
    BillboardGui_2.AlwaysOnTop = true
    BillboardGui_2.Adornee = Part
    BillboardGui_2.Parent = Part
    local Frame = Instance.new("Frame")
    Frame.BackgroundTransparency = 1
    Frame.Size = UDim2.new(0, 0, 0, 0)
    Frame.Position = UDim2.new(0.5, 0, 1, 0)
    Frame.Parent = BillboardGui_2
    local ImageLabel = Instance.new("ImageLabel")
    ImageLabel.Image = var3_upvw
    ImageLabel.BackgroundTransparency = 1
    ImageLabel.Position = UDim2.new(0, -udim2_upvr.X.Offset / 2, 0, -udim2_upvr.Y.Offset)
    ImageLabel.Size = udim2_upvr
    ImageLabel.Parent = Frame
    return Part_3, Part_2, Part
end
local CreateWaypointTemplates_result1_2_upvw, CreateWaypointTemplates_result2_5_upvw, CreateWaypointTemplates_result3_2_upvw = CreateWaypointTemplates_upvr()
local function _() -- Line 129, Named "getTrailDotParent"
    --[[ Upvalues[1]:
        [1]: Workspace_upvr (readonly)
    ]]
    local CurrentCamera = Workspace_upvr.CurrentCamera
    if not CurrentCamera:FindFirstChild("ClickToMoveDisplay") then
        local Model_3 = Instance.new("Model")
        Model_3.Name = "ClickToMoveDisplay"
        Model_3.Parent = CurrentCamera
    end
    return Model_3
end
local function placePathWaypoint_upvr(arg1, arg2) -- Line 140, Named "placePathWaypoint"
    --[[ Upvalues[2]:
        [1]: Workspace_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    local any_FindPartOnRayWithIgnoreList_result1_2, any_FindPartOnRayWithIgnoreList_result2_2, any_FindPartOnRayWithIgnoreList_result3_2 = Workspace_upvr:FindPartOnRayWithIgnoreList(Ray.new(arg2 + Vector3.new(0, 2.5, 0), Vector3.new(0, -10, 0)), {Workspace_upvr.CurrentCamera, LocalPlayer_upvr.Character})
    if any_FindPartOnRayWithIgnoreList_result1_2 then
        arg1.CFrame = CFrame.new(any_FindPartOnRayWithIgnoreList_result2_2, any_FindPartOnRayWithIgnoreList_result2_2 + any_FindPartOnRayWithIgnoreList_result3_2)
        local CurrentCamera_3 = Workspace_upvr.CurrentCamera
        if not CurrentCamera_3:FindFirstChild("ClickToMoveDisplay") then
            local Model_2 = Instance.new("Model")
            Model_2.Name = "ClickToMoveDisplay"
            Model_2.Parent = CurrentCamera_3
        end
        arg1.Parent = Model_2
    end
end
local tbl_upvr_2 = {}
tbl_upvr_2.__index = tbl_upvr_2
local function Destroy(arg1) -- Line 155
    arg1.DisplayModel:Destroy()
end
tbl_upvr_2.Destroy = Destroy
local function NewDisplayModel(arg1, arg2) -- Line 159
    --[[ Upvalues[2]:
        [1]: CreateWaypointTemplates_result1_2_upvw (read and write)
        [2]: placePathWaypoint_upvr (readonly)
    ]]
    local clone_2 = CreateWaypointTemplates_result1_2_upvw:Clone()
    placePathWaypoint_upvr(clone_2, arg2)
    return clone_2
end
tbl_upvr_2.NewDisplayModel = NewDisplayModel
local function new(arg1, arg2) -- Line 165
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, tbl_upvr_2)
    setmetatable_result1.DisplayModel = setmetatable_result1:NewDisplayModel(arg1)
    setmetatable_result1.ClosestWayPoint = arg2
    return setmetatable_result1
end
tbl_upvr_2.new = new
local module_3_upvr = {}
module_3_upvr.__index = module_3_upvr
local function Destroy(arg1) -- Line 177
    arg1.Destroyed = true
    arg1.Tween:Cancel()
    arg1.DisplayModel:Destroy()
end
module_3_upvr.Destroy = Destroy
local function NewDisplayModel(arg1, arg2) -- Line 183
    --[[ Upvalues[2]:
        [1]: CreateWaypointTemplates_result2_5_upvw (read and write)
        [2]: placePathWaypoint_upvr (readonly)
    ]]
    local clone_3 = CreateWaypointTemplates_result2_5_upvw:Clone()
    placePathWaypoint_upvr(clone_3, arg2)
    return clone_3
end
module_3_upvr.NewDisplayModel = NewDisplayModel
local vector2_upvr_5 = Vector2.new(0, 1)
function module_3_upvr.CreateTween(arg1) -- Line 189
    --[[ Upvalues[2]:
        [1]: TweenService_upvr (readonly)
        [2]: vector2_upvr_5 (readonly)
    ]]
    local any_Create_result1_3 = TweenService_upvr:Create(arg1.DisplayModel.EndWaypointBillboard, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, -1, true), {
        SizeOffset = vector2_upvr_5;
    })
    any_Create_result1_3:Play()
    return any_Create_result1_3
end
function module_3_upvr.TweenInFrom(arg1, arg2) -- Line 200
    --[[ Upvalues[1]:
        [1]: TweenService_upvr (readonly)
    ]]
    arg1.DisplayModel.EndWaypointBillboard.StudsOffset = Vector3.new(0, (arg2 - arg1.DisplayModel.Position).Y, 0)
    local any_Create_result1_5 = TweenService_upvr:Create(arg1.DisplayModel.EndWaypointBillboard, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
        StudsOffset = Vector3.new(0, 0, 0);
    })
    any_Create_result1_5:Play()
    return any_Create_result1_5
end
local function new(arg1, arg2, arg3) -- Line 214
    --[[ Upvalues[1]:
        [1]: module_3_upvr (readonly)
    ]]
    local setmetatable_result1_3_upvr = setmetatable({}, module_3_upvr)
    setmetatable_result1_3_upvr.DisplayModel = setmetatable_result1_3_upvr:NewDisplayModel(arg1)
    setmetatable_result1_3_upvr.Destroyed = false
    if arg3 and 5 < (arg3 - arg1).magnitude then
        setmetatable_result1_3_upvr.Tween = setmetatable_result1_3_upvr:TweenInFrom(arg3)
        coroutine.wrap(function() -- Line 221
            --[[ Upvalues[1]:
                [1]: setmetatable_result1_3_upvr (readonly)
            ]]
            setmetatable_result1_3_upvr.Tween.Completed:Wait()
            if not setmetatable_result1_3_upvr.Destroyed then
                setmetatable_result1_3_upvr.Tween = setmetatable_result1_3_upvr:CreateTween()
            end
        end)()
    else
        setmetatable_result1_3_upvr.Tween = setmetatable_result1_3_upvr:CreateTween()
    end
    setmetatable_result1_3_upvr.ClosestWayPoint = arg2
    return setmetatable_result1_3_upvr
end
module_3_upvr.new = new
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
function tbl_upvr.Hide(arg1) -- Line 238
    arg1.DisplayModel.Parent = nil
end
function tbl_upvr.Destroy(arg1) -- Line 242
    arg1.DisplayModel:Destroy()
end
function tbl_upvr.NewDisplayModel(arg1, arg2) -- Line 246
    --[[ Upvalues[4]:
        [1]: CreateWaypointTemplates_result3_2_upvw (read and write)
        [2]: placePathWaypoint_upvr (readonly)
        [3]: Workspace_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
    ]]
    local clone = CreateWaypointTemplates_result3_2_upvw:Clone()
    placePathWaypoint_upvr(clone, arg2)
    local any_FindPartOnRayWithIgnoreList_result1, any_FindPartOnRayWithIgnoreList_result2, any_FindPartOnRayWithIgnoreList_result3 = Workspace_upvr:FindPartOnRayWithIgnoreList(Ray.new(arg2 + Vector3.new(0, 2.5, 0), Vector3.new(0, -10, 0)), {Workspace_upvr.CurrentCamera, LocalPlayer_upvr.Character})
    if any_FindPartOnRayWithIgnoreList_result1 then
        clone.CFrame = CFrame.new(any_FindPartOnRayWithIgnoreList_result2, any_FindPartOnRayWithIgnoreList_result2 + any_FindPartOnRayWithIgnoreList_result3)
        local CurrentCamera_2 = Workspace_upvr.CurrentCamera
        if not CurrentCamera_2:FindFirstChild("ClickToMoveDisplay") then
            local Model = Instance.new("Model")
            Model.Name = "ClickToMoveDisplay"
            Model.Parent = CurrentCamera_2
        end
        clone.Parent = Model
    end
    return clone
end
local vector2_upvr_4 = Vector2.new(0.1, 0.5)
local vector2_upvr = Vector2.new(-0.1, 0.5)
function tbl_upvr.RunFailureTween(arg1) -- Line 260
    --[[ Upvalues[4]:
        [1]: TweenService_upvr (readonly)
        [2]: vector2_upvr_4 (readonly)
        [3]: vector2_upvr (readonly)
        [4]: vector2_upvr_2 (readonly)
    ]]
    wait(0.125)
    local TweenInfo_new_result1_3 = TweenInfo.new(0.0625, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
    local any_Create_result1_4 = TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard, TweenInfo_new_result1_3, {
        SizeOffset = vector2_upvr_4;
    })
    any_Create_result1_4:Play()
    TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard.Frame, TweenInfo_new_result1_3, {
        Rotation = 10;
    }):Play()
    any_Create_result1_4.Completed:wait()
    local any_Create_result1_2 = TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard, TweenInfo.new(0.125, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 3, true), {
        SizeOffset = vector2_upvr;
    })
    any_Create_result1_2:Play()
    local TweenInfo_new_result1 = TweenInfo.new(0.125, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 3, true)
    TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard.Frame.ImageLabel, TweenInfo_new_result1, {
        ImageColor3 = Color3.new(0.75, 0.75, 0.75);
    }):Play()
    TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard.Frame, TweenInfo_new_result1, {
        Rotation = -10;
    }):Play()
    any_Create_result1_2.Completed:wait()
    local TweenInfo_new_result1_2 = TweenInfo.new(0.0625, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
    local any_Create_result1 = TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard, TweenInfo_new_result1_2, {
        SizeOffset = vector2_upvr_2;
    })
    any_Create_result1:Play()
    TweenService_upvr:Create(arg1.DisplayModel.FailureWaypointBillboard.Frame, TweenInfo_new_result1_2, {
        Rotation = 0;
    }):Play()
    any_Create_result1.Completed:wait()
    wait(0.125)
end
function tbl_upvr.new(arg1) -- Line 309
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local setmetatable_result1_2 = setmetatable({}, tbl_upvr)
    setmetatable_result1_2.DisplayModel = setmetatable_result1_2:NewDisplayModel(arg1)
    return setmetatable_result1_2
end
local Animation_upvr = Instance.new("Animation")
Animation_upvr.AnimationId = "rbxassetid://2874840706"
local var71_upvw
local function _(arg1) -- Line 323, Named "getFailureAnimationTrack"
    --[[ Upvalues[2]:
        [1]: var71_upvw (read and write)
        [2]: Animation_upvr (readonly)
    ]]
    if arg1 == nil then
        return var71_upvw
    end
    var71_upvw = arg1:LoadAnimation(Animation_upvr)
    var71_upvw.Priority = Enum.AnimationPriority.Action
    var71_upvw.Looped = false
    return var71_upvw
end
local function _() -- Line 333, Named "findPlayerHumanoid"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local Character = LocalPlayer_upvr.Character
    if Character then
        return Character:FindFirstChildOfClass("Humanoid")
    end
end
local function createTrailDots_upvr(arg1, arg2) -- Line 340, Named "createTrailDots"
    --[[ Upvalues[2]:
        [1]: tbl_upvr_2 (readonly)
        [2]: module_3_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tbl = {}
    for i = 1, #arg1 - 1 do
        local var83
        if (arg1[i].Position - arg1[#arg1].Position).magnitude >= 3 then
            var83 = false
        else
            var83 = true
        end
        if i % 2 == 0 then
        end
        if not var83 then
            tbl[1] = tbl_upvr_2.new(arg1[i].Position, i)
        end
    end
    table.insert(tbl, module_3_upvr.new(arg1[#arg1].Position, #arg1, arg2))
    local module_2 = {}
    for i_2 = #tbl, 1, -1 do
        module_2[1] = tbl[i_2]
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local var85
    end
    return module_2
end
local function _(arg1, arg2) -- Line 365, Named "getTrailDotScale"
    return arg2 * (math.clamp(arg1 - 10, 0, 90) / 90 * 1.5 + 1)
end
local var86_upvw = 0
local RunService_upvr = game:GetService("RunService")
function module.CreatePathDisplay(arg1, arg2) -- Line 374
    --[[ Upvalues[5]:
        [1]: var86_upvw (read and write)
        [2]: createTrailDots_upvr (readonly)
        [3]: RunService_upvr (readonly)
        [4]: Workspace_upvr (readonly)
        [5]: vector2_upvw (read and write)
    ]]
    var86_upvw += 1
    local createTrailDots_upvr_result1_upvr = createTrailDots_upvr(arg1, arg2)
    local function removePathBeforePoint_upvr(arg1_2) -- Line 378, Named "removePathBeforePoint"
        --[[ Upvalues[1]:
            [1]: createTrailDots_upvr_result1_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        local _ = #createTrailDots_upvr_result1_upvr
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [19] 17. Error Block 5 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [19] 17. Error Block 5 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 6. Error Block 7 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [19.5]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [19.65666]
        if nil <= arg1_2 then
            -- KONSTANTWARNING: GOTO [19] #17
        end
        -- KONSTANTERROR: [5] 6. Error Block 7 end (CF ANALYSIS FAILED)
    end
    local var90_upvr = "ClickToMoveResizeTrail"..var86_upvw
    RunService_upvr:BindToRenderStep(var90_upvr, Enum.RenderPriority.Camera.Value - 1, function() -- Line 392, Named "resizeTrailDots"
        --[[ Upvalues[5]:
            [1]: createTrailDots_upvr_result1_upvr (readonly)
            [2]: RunService_upvr (copied, readonly)
            [3]: var90_upvr (readonly)
            [4]: Workspace_upvr (copied, readonly)
            [5]: vector2_upvw (copied, read and write)
        ]]
        if #createTrailDots_upvr_result1_upvr == 0 then
            RunService_upvr:UnbindFromRenderStep(var90_upvr)
        else
            for var91 = 1, #createTrailDots_upvr_result1_upvr do
                local TrailDotImage = createTrailDots_upvr_result1_upvr[var91].DisplayModel:FindFirstChild("TrailDotImage")
                if TrailDotImage then
                    TrailDotImage.Size = vector2_upvw * (math.clamp((createTrailDots_upvr_result1_upvr[var91].DisplayModel.Position - Workspace_upvr.CurrentCamera.CFrame.p).magnitude - 10, 0, 90) / 90 * 1.5 + 1)
                end
            end
        end
    end)
    return function() -- Line 408, Named "removePath"
        --[[ Upvalues[2]:
            [1]: removePathBeforePoint_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        removePathBeforePoint_upvr(#arg1)
    end, removePathBeforePoint_upvr
end
local var93_upvw
function module.DisplayFailureWaypoint(arg1) -- Line 416
    --[[ Upvalues[2]:
        [1]: var93_upvw (read and write)
        [2]: tbl_upvr (readonly)
    ]]
    if var93_upvw then
        var93_upvw:Hide()
    end
    local any_new_result1_upvw = tbl_upvr.new(arg1)
    var93_upvw = any_new_result1_upvw
    coroutine.wrap(function() -- Line 422
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvw (read and write)
        ]]
        any_new_result1_upvw:RunFailureTween()
        any_new_result1_upvw:Destroy()
        any_new_result1_upvw = nil
    end)()
end
function module.CreateEndWaypoint(arg1) -- Line 429
    --[[ Upvalues[1]:
        [1]: module_3_upvr (readonly)
    ]]
    return module_3_upvr.new(arg1)
end
function module.PlayFailureAnimation() -- Line 433
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: var71_upvw (read and write)
        [3]: Animation_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local Character_2 = LocalPlayer_upvr.Character
    local var97
    if Character_2 then
        var97 = Character_2:FindFirstChildOfClass("Humanoid")
    else
        var97 = nil
    end
    if var97 then
        if var97 == nil then
        else
            var71_upvw = var97:LoadAnimation(Animation_upvr)
            var71_upvw.Priority = Enum.AnimationPriority.Action
            var71_upvw.Looped = false
        end
        var71_upvw:Play()
    end
end
function module.CancelFailureAnimation() -- Line 441
    --[[ Upvalues[1]:
        [1]: var71_upvw (read and write)
    ]]
    if var71_upvw ~= nil and var71_upvw.IsPlaying then
        var71_upvw:Stop()
    end
end
function module.SetWaypointTexture(arg1) -- Line 447
    --[[ Upvalues[5]:
        [1]: var2_upvw (read and write)
        [2]: CreateWaypointTemplates_result1_2_upvw (read and write)
        [3]: CreateWaypointTemplates_result2_5_upvw (read and write)
        [4]: CreateWaypointTemplates_result3_2_upvw (read and write)
        [5]: CreateWaypointTemplates_upvr (readonly)
    ]]
    var2_upvw = arg1
    local CreateWaypointTemplates_result1, CreateWaypointTemplates_result2_4, CreateWaypointTemplates_result3 = CreateWaypointTemplates_upvr()
    CreateWaypointTemplates_result1_2_upvw = CreateWaypointTemplates_result1
    CreateWaypointTemplates_result2_5_upvw = CreateWaypointTemplates_result2_4
    CreateWaypointTemplates_result3_2_upvw = CreateWaypointTemplates_result3
end
function module.GetWaypointTexture() -- Line 452
    --[[ Upvalues[1]:
        [1]: var2_upvw (read and write)
    ]]
    return var2_upvw
end
function module.SetWaypointRadius(arg1) -- Line 456
    --[[ Upvalues[5]:
        [1]: vector2_upvw (read and write)
        [2]: CreateWaypointTemplates_result1_2_upvw (read and write)
        [3]: CreateWaypointTemplates_result2_5_upvw (read and write)
        [4]: CreateWaypointTemplates_result3_2_upvw (read and write)
        [5]: CreateWaypointTemplates_upvr (readonly)
    ]]
    vector2_upvw = Vector2.new(arg1, arg1)
    local CreateWaypointTemplates_result1_5, CreateWaypointTemplates_result2_3, CreateWaypointTemplates_result3_4 = CreateWaypointTemplates_upvr()
    CreateWaypointTemplates_result1_2_upvw = CreateWaypointTemplates_result1_5
    CreateWaypointTemplates_result2_5_upvw = CreateWaypointTemplates_result2_3
    CreateWaypointTemplates_result3_2_upvw = CreateWaypointTemplates_result3_4
end
function module.GetWaypointRadius() -- Line 461
    --[[ Upvalues[1]:
        [1]: vector2_upvw (read and write)
    ]]
    return vector2_upvw.X
end
function module.SetEndWaypointTexture(arg1) -- Line 465
    --[[ Upvalues[5]:
        [1]: var3_upvw (read and write)
        [2]: CreateWaypointTemplates_result1_2_upvw (read and write)
        [3]: CreateWaypointTemplates_result2_5_upvw (read and write)
        [4]: CreateWaypointTemplates_result3_2_upvw (read and write)
        [5]: CreateWaypointTemplates_upvr (readonly)
    ]]
    var3_upvw = arg1
    local CreateWaypointTemplates_result1_4, CreateWaypointTemplates_result2_2, CreateWaypointTemplates_result3_3 = CreateWaypointTemplates_upvr()
    CreateWaypointTemplates_result1_2_upvw = CreateWaypointTemplates_result1_4
    CreateWaypointTemplates_result2_5_upvw = CreateWaypointTemplates_result2_2
    CreateWaypointTemplates_result3_2_upvw = CreateWaypointTemplates_result3_3
end
function module.GetEndWaypointTexture() -- Line 470
    --[[ Upvalues[1]:
        [1]: var3_upvw (read and write)
    ]]
    return var3_upvw
end
function module.SetWaypointsAlwaysOnTop(arg1) -- Line 474
    --[[ Upvalues[5]:
        [1]: var4_upvw (read and write)
        [2]: CreateWaypointTemplates_result1_2_upvw (read and write)
        [3]: CreateWaypointTemplates_result2_5_upvw (read and write)
        [4]: CreateWaypointTemplates_result3_2_upvw (read and write)
        [5]: CreateWaypointTemplates_upvr (readonly)
    ]]
    var4_upvw = arg1
    local CreateWaypointTemplates_result1_3, CreateWaypointTemplates_result2, CreateWaypointTemplates_result3_5 = CreateWaypointTemplates_upvr()
    CreateWaypointTemplates_result1_2_upvw = CreateWaypointTemplates_result1_3
    CreateWaypointTemplates_result2_5_upvw = CreateWaypointTemplates_result2
    CreateWaypointTemplates_result3_2_upvw = CreateWaypointTemplates_result3_5
end
function module.GetWaypointsAlwaysOnTop() -- Line 479
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    return var4_upvw
end
return module
ModuleScript Gamepad Gamepad
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:35
-- Luau version 6, Types version 3
-- Time taken: 0.006680 seconds

local UserInputService_upvr = game:GetService("UserInputService")
local ContextActionService_upvr = game:GetService("ContextActionService")
local None_upvr = Enum.UserInputType.None
local module_upvr = require(script.Parent:WaitForChild("BaseCharacterController"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new(arg1) -- Line 20
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
        [3]: None_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.CONTROL_ACTION_PRIORITY = arg1
    setmetatable_result1.forwardValue = 0
    setmetatable_result1.backwardValue = 0
    setmetatable_result1.leftValue = 0
    setmetatable_result1.rightValue = 0
    setmetatable_result1.activeGamepad = None_upvr
    setmetatable_result1.gamepadConnectedConn = nil
    setmetatable_result1.gamepadDisconnectedConn = nil
    return setmetatable_result1
end
function setmetatable_result1_upvr.Enable(arg1, arg2) -- Line 36
    --[[ Upvalues[2]:
        [1]: UserInputService_upvr (readonly)
        [2]: None_upvr (readonly)
    ]]
    if not UserInputService_upvr.GamepadEnabled then
        return false
    end
    if arg2 == arg1.enabled then
        return true
    end
    arg1.forwardValue = 0
    arg1.backwardValue = 0
    arg1.leftValue = 0
    arg1.rightValue = 0
    arg1.moveVector = Vector3.new(0, 0, 0)
    arg1.isJumping = false
    if arg2 then
        arg1.activeGamepad = arg1:GetHighestPriorityGamepad()
        if arg1.activeGamepad ~= None_upvr then
            arg1:BindContextActions()
            arg1:ConnectGamepadConnectionListeners()
        else
            return false
        end
    else
        arg1:UnbindContextActions()
        arg1:DisconnectGamepadConnectionListeners()
        arg1.activeGamepad = None_upvr
    end
    arg1.enabled = arg2
    return true
end
function setmetatable_result1_upvr.GetHighestPriorityGamepad(arg1) -- Line 76
    --[[ Upvalues[2]:
        [1]: UserInputService_upvr (readonly)
        [2]: None_upvr (readonly)
    ]]
    local var14
    for _, v in pairs(UserInputService_upvr:GetConnectedGamepads()) do
        if v.Value < var14.Value then
            var14 = v
        end
    end
    return var14
end
function setmetatable_result1_upvr.BindContextActions(arg1) -- Line 87
    --[[ Upvalues[2]:
        [1]: None_upvr (readonly)
        [2]: ContextActionService_upvr (readonly)
    ]]
    if arg1.activeGamepad == None_upvr then
        return false
    end
    ContextActionService_upvr:BindActivate(arg1.activeGamepad, Enum.KeyCode.ButtonR2)
    ContextActionService_upvr:BindActionAtPriority("jumpAction", function(arg1_2, arg2, arg3) -- Line 94
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local var16
        if arg2 ~= Enum.UserInputState.Begin then
            var16 = false
        else
            var16 = true
        end
        arg1.isJumping = var16
        return Enum.ContextActionResult.Sink
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.ButtonA)
    ContextActionService_upvr:BindActionAtPriority("moveThumbstick", function(arg1_3, arg2, arg3) -- Line 99
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg2 == Enum.UserInputState.Cancel then
            arg1.moveVector = Vector3.new(0, 0, 0)
            return Enum.ContextActionResult.Sink
        end
        if arg1.activeGamepad ~= arg3.UserInputType then
            return Enum.ContextActionResult.Pass
        end
        if arg3.KeyCode ~= Enum.KeyCode.Thumbstick1 then return end
        if 0.2 < arg3.Position.magnitude then
            arg1.moveVector = Vector3.new(arg3.Position.X, 0, -arg3.Position.Y)
        else
            arg1.moveVector = Vector3.new(0, 0, 0)
        end
        return Enum.ContextActionResult.Sink
    end, false, arg1.CONTROL_ACTION_PRIORITY, Enum.KeyCode.Thumbstick1)
    return true
end
function setmetatable_result1_upvr.UnbindContextActions(arg1) -- Line 128
    --[[ Upvalues[2]:
        [1]: None_upvr (readonly)
        [2]: ContextActionService_upvr (readonly)
    ]]
    if arg1.activeGamepad ~= None_upvr then
        ContextActionService_upvr:UnbindActivate(arg1.activeGamepad, Enum.KeyCode.ButtonR2)
    end
    ContextActionService_upvr:UnbindAction("moveThumbstick")
    ContextActionService_upvr:UnbindAction("jumpAction")
end
function setmetatable_result1_upvr.OnNewGamepadConnected(arg1) -- Line 136
    --[[ Upvalues[1]:
        [1]: None_upvr (readonly)
    ]]
    local any_GetHighestPriorityGamepad_result1_2 = arg1:GetHighestPriorityGamepad()
    if any_GetHighestPriorityGamepad_result1_2 == arg1.activeGamepad then
    else
        if any_GetHighestPriorityGamepad_result1_2 == None_upvr then
            warn("Gamepad:OnNewGamepadConnected found no connected gamepads")
            arg1:UnbindContextActions()
            return
        end
        if arg1.activeGamepad ~= None_upvr then
            arg1:UnbindContextActions()
        end
        arg1.activeGamepad = any_GetHighestPriorityGamepad_result1_2
        arg1:BindContextActions()
    end
end
function setmetatable_result1_upvr.OnCurrentGamepadDisconnected(arg1) -- Line 163
    --[[ Upvalues[2]:
        [1]: None_upvr (readonly)
        [2]: ContextActionService_upvr (readonly)
    ]]
    if arg1.activeGamepad ~= None_upvr then
        ContextActionService_upvr:UnbindActivate(arg1.activeGamepad, Enum.KeyCode.ButtonR2)
    end
    local any_GetHighestPriorityGamepad_result1 = arg1:GetHighestPriorityGamepad()
    if arg1.activeGamepad ~= None_upvr and any_GetHighestPriorityGamepad_result1 == arg1.activeGamepad then
        warn("Gamepad:OnCurrentGamepadDisconnected found the supposedly disconnected gamepad in connectedGamepads.")
        arg1:UnbindContextActions()
        arg1.activeGamepad = None_upvr
    else
        if any_GetHighestPriorityGamepad_result1 == None_upvr then
            arg1:UnbindContextActions()
            arg1.activeGamepad = None_upvr
            return
        end
        arg1.activeGamepad = any_GetHighestPriorityGamepad_result1
        ContextActionService_upvr:BindActivate(arg1.activeGamepad, Enum.KeyCode.ButtonR2)
    end
end
function setmetatable_result1_upvr.ConnectGamepadConnectionListeners(arg1) -- Line 188
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    arg1.gamepadConnectedConn = UserInputService_upvr.GamepadConnected:Connect(function(arg1_4) -- Line 189
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnNewGamepadConnected()
    end)
    arg1.gamepadDisconnectedConn = UserInputService_upvr.GamepadDisconnected:Connect(function(arg1_5) -- Line 193
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.activeGamepad == arg1_5 then
            arg1:OnCurrentGamepadDisconnected()
        end
    end)
end
function setmetatable_result1_upvr.DisconnectGamepadConnectionListeners(arg1) -- Line 201
    if arg1.gamepadConnectedConn then
        arg1.gamepadConnectedConn:Disconnect()
        arg1.gamepadConnectedConn = nil
    end
    if arg1.gamepadDisconnectedConn then
        arg1.gamepadDisconnectedConn:Disconnect()
        arg1.gamepadDisconnectedConn = nil
    end
end
return setmetatable_result1_upvr
ModuleScript CameraModule CameraModule
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:36
-- Luau version 6, Types version 3
-- Time taken: 0.029203 seconds

local module_upvr_4 = {}
module_upvr_4.__index = module_upvr_4
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 19
    return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
end)
local var5_upvw = pcall_result1_2 and pcall_result2_2
local pcall_result1, pcall_result2 = pcall(function() -- Line 26
    return UserSettings():IsUserFeatureEnabled("UserRemoveTheCameraApi")
end)
local pcall_result1_3, pcall_result2_3 = pcall(function() -- Line 33
    return UserSettings():IsUserFeatureEnabled("UserCameraInputRefactor2")
end)
local pcall_result1_4, pcall_result2_4 = pcall(function() -- Line 40
    return UserSettings():IsUserFeatureEnabled("UserCarCam")
end)
local var15_upvw = pcall_result1_4 and pcall_result2_4
local tbl_upvr = {"CameraMinZoomDistance", "CameraMaxZoomDistance", "CameraMode", "DevCameraOcclusionMode", "DevComputerCameraMode", "DevTouchCameraMode", "DevComputerMovementMode", "DevTouchMovementMode", "DevEnableMouseLock"}
local tbl_upvr_2 = {"ComputerCameraMovementMode", "ComputerMovementMode", "ControlMode", "GamepadCameraSensitivity", "MouseSensitivity", "RotationType", "TouchCameraMovementMode", "TouchMovementMode"}
local Players_upvr = game:GetService("Players")
local UserInputService_upvr = game:GetService("UserInputService")
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
local module_upvr_6 = require(script:WaitForChild("CameraUtils"))
local PlayerScripts = Players_upvr.LocalPlayer:WaitForChild("PlayerScripts")
PlayerScripts:RegisterTouchCameraMovementMode(Enum.TouchCameraMovementMode.Default)
PlayerScripts:RegisterTouchCameraMovementMode(Enum.TouchCameraMovementMode.Follow)
PlayerScripts:RegisterTouchCameraMovementMode(Enum.TouchCameraMovementMode.Classic)
PlayerScripts:RegisterComputerCameraMovementMode(Enum.ComputerCameraMovementMode.Default)
PlayerScripts:RegisterComputerCameraMovementMode(Enum.ComputerCameraMovementMode.Follow)
PlayerScripts:RegisterComputerCameraMovementMode(Enum.ComputerCameraMovementMode.Classic)
if var5_upvw then
    PlayerScripts:RegisterComputerCameraMovementMode(Enum.ComputerCameraMovementMode.CameraToggle)
end
local module_upvr_3 = require(script:WaitForChild("TransparencyController"))
local module_upvr_10 = require(script:WaitForChild("MouseLockController"))
local RunService_upvr = game:GetService("RunService")
function module_upvr_4.new() -- Line 120
    --[[ Upvalues[9]:
        [1]: module_upvr_4 (readonly)
        [2]: Players_upvr (readonly)
        [3]: module_upvr_3 (readonly)
        [4]: UserInputService_upvr (readonly)
        [5]: module_upvr_10 (readonly)
        [6]: RunService_upvr (readonly)
        [7]: tbl_upvr (readonly)
        [8]: tbl_upvr_2 (readonly)
        [9]: UserGameSettings_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local setmetatable_result1_upvr = setmetatable({}, module_upvr_4)
    setmetatable_result1_upvr.activeCameraController = nil
    setmetatable_result1_upvr.activeOcclusionModule = nil
    setmetatable_result1_upvr.activeTransparencyController = nil
    setmetatable_result1_upvr.activeMouseLockController = nil
    setmetatable_result1_upvr.currentComputerCameraMovementMode = nil
    setmetatable_result1_upvr.cameraSubjectChangedConn = nil
    setmetatable_result1_upvr.cameraTypeChangedConn = nil
    for var86, v in pairs(Players_upvr:GetPlayers()) do
        setmetatable_result1_upvr:OnPlayerAdded(v)
    end
    Players_upvr.PlayerAdded:Connect(function(arg1) -- Line 141
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnPlayerAdded(arg1)
    end)
    setmetatable_result1_upvr.activeTransparencyController = module_upvr_3.new()
    setmetatable_result1_upvr.activeTransparencyController:Enable(true)
    if not UserInputService_upvr.TouchEnabled then
        setmetatable_result1_upvr.activeMouseLockController = module_upvr_10.new()
        local any_GetBindableToggleEvent_result1 = setmetatable_result1_upvr.activeMouseLockController:GetBindableToggleEvent()
        if any_GetBindableToggleEvent_result1 then
            function var86() -- Line 152
                --[[ Upvalues[1]:
                    [1]: setmetatable_result1_upvr (readonly)
                ]]
                setmetatable_result1_upvr:OnMouseLockToggled()
            end
            any_GetBindableToggleEvent_result1:Connect(var86)
        end
    end
    setmetatable_result1_upvr:ActivateCameraController(setmetatable_result1_upvr:GetCameraControlChoice())
    setmetatable_result1_upvr:ActivateOcclusionModule(Players_upvr.LocalPlayer.DevCameraOcclusionMode)
    setmetatable_result1_upvr:OnCurrentCameraChanged()
    RunService_upvr:BindToRenderStep("cameraRenderUpdate", Enum.RenderPriority.Camera.Value, function(arg1) -- Line 161
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:Update(arg1)
    end)
    for _, v_2_upvr in pairs(tbl_upvr) do
        Players_upvr.LocalPlayer:GetPropertyChangedSignal(v_2_upvr):Connect(function() -- Line 165
            --[[ Upvalues[2]:
                [1]: setmetatable_result1_upvr (readonly)
                [2]: v_2_upvr (readonly)
            ]]
            setmetatable_result1_upvr:OnLocalPlayerCameraPropertyChanged(v_2_upvr)
        end)
    end
    for _, v_3_upvr in pairs(tbl_upvr_2) do
        UserGameSettings_upvr:GetPropertyChangedSignal(v_3_upvr):Connect(function() -- Line 171
            --[[ Upvalues[2]:
                [1]: setmetatable_result1_upvr (readonly)
                [2]: v_3_upvr (readonly)
            ]]
            setmetatable_result1_upvr:OnUserGameSettingsPropertyChanged(v_3_upvr)
        end)
    end
    game.Workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() -- Line 175
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnCurrentCameraChanged()
    end)
    setmetatable_result1_upvr.lastInputType = UserInputService_upvr:GetLastInputType()
    UserInputService_upvr.LastInputTypeChanged:Connect(function(arg1) -- Line 180
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr.lastInputType = arg1
    end)
    return setmetatable_result1_upvr
end
function module_upvr_4.GetCameraMovementModeFromSettings(arg1) -- Line 187
    --[[ Upvalues[4]:
        [1]: Players_upvr (readonly)
        [2]: module_upvr_6 (readonly)
        [3]: UserInputService_upvr (readonly)
        [4]: UserGameSettings_upvr (readonly)
    ]]
    local var98
    if Players_upvr.LocalPlayer.CameraMode == Enum.CameraMode.LockFirstPerson then
        var98 = module_upvr_6
        var98 = Enum.ComputerCameraMovementMode.Classic
        return var98.ConvertCameraModeEnumToStandard(var98)
    end
    local var99
    var98 = nil
    if UserInputService_upvr.TouchEnabled then
        var99 = module_upvr_6.ConvertCameraModeEnumToStandard(Players_upvr.LocalPlayer.DevTouchCameraMode)
        var98 = module_upvr_6.ConvertCameraModeEnumToStandard(UserGameSettings_upvr.TouchCameraMovementMode)
    else
        var99 = module_upvr_6.ConvertCameraModeEnumToStandard(Players_upvr.LocalPlayer.DevComputerCameraMode)
        var98 = module_upvr_6.ConvertCameraModeEnumToStandard(UserGameSettings_upvr.ComputerCameraMovementMode)
    end
    if var99 == Enum.DevComputerCameraMovementMode.UserChoice then
        return var98
    end
    return var99
end
local module_upvr = require(script:WaitForChild("Poppercam"))
local module_upvr_9 = require(script:WaitForChild("Invisicam"))
local tbl_upvr_3 = {}
function module_upvr_4.ActivateOcclusionModule(arg1, arg2) -- Line 212
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: module_upvr_9 (readonly)
        [3]: tbl_upvr_3 (readonly)
        [4]: Players_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 51 start (CF ANALYSIS FAILED)
    local var103
    if arg2 == Enum.DevCameraOcclusionMode.Zoom then
        var103 = module_upvr
    elseif arg2 == Enum.DevCameraOcclusionMode.Invisicam then
        var103 = module_upvr_9
    else
        warn("CameraScript ActivateOcclusionModule called with unsupported mode")
        return
    end
    -- KONSTANTERROR: [0] 1. Error Block 51 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [21] 16. Error Block 9 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [21] 16. Error Block 9 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [28] 20. Error Block 38 start (CF ANALYSIS FAILED)
    if not arg1.activeOcclusionModule:GetEnabled() then
        arg1.activeOcclusionModule:Enable(true)
    end
    do
        return
    end
    -- KONSTANTERROR: [28] 20. Error Block 38 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 29. Error Block 13 start (CF ANALYSIS FAILED)
    arg1.activeOcclusionModule = tbl_upvr_3[var103]
    -- KONSTANTERROR: [41] 29. Error Block 13 end (CF ANALYSIS FAILED)
end
local function _() -- Line 289, Named "shouldUseVehicleCamera"
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    assert(var15_upvw)
    local CurrentCamera_3 = workspace.CurrentCamera
    local var105
    if not CurrentCamera_3 then
        return false
    end
    local CameraType = CurrentCamera_3.CameraType
    local var108 = true
    var105 = Enum.CameraType.Custom
    if CameraType ~= var105 then
        var105 = Enum.CameraType.Follow
        if CameraType ~= var105 then
            var108 = false
        else
            var108 = true
        end
    end
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var105 = CurrentCamera_3.CameraSubject:IsA("VehicleSeat")
        return var105
    end
    if not CurrentCamera_3.CameraSubject or not INLINED() then
        var105 = false
    end
    return var105 and var108
end
local module_upvr_8 = require(script:WaitForChild("LegacyCamera"))
local module_upvr_5 = require(script:WaitForChild("ClassicCamera"))
local module_upvr_11 = require(script:WaitForChild("OrbitalCamera"))
local module_upvr_7 = require(script:WaitForChild("VehicleCamera"))
local tbl_upvr_4 = {}
function module_upvr_4.ActivateCameraController(arg1, arg2, arg3) -- Line 308
    --[[ Upvalues[7]:
        [1]: module_upvr_8 (readonly)
        [2]: var5_upvw (read and write)
        [3]: module_upvr_5 (readonly)
        [4]: module_upvr_11 (readonly)
        [5]: var15_upvw (read and write)
        [6]: module_upvr_7 (readonly)
        [7]: tbl_upvr_4 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var114
    if arg3 ~= nil then
        if arg3 == Enum.CameraType.Scriptable then
            if arg1.activeCameraController then
                arg1.activeCameraController:Enable(false)
                arg1.activeCameraController = nil
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [70] #45
            end
        elseif arg3 == Enum.CameraType.Custom then
            local _ = arg1:GetCameraMovementModeFromSettings()
        elseif arg3 == Enum.CameraType.Track then
        elseif arg3 == Enum.CameraType.Follow then
        elseif arg3 == Enum.CameraType.Orbital then
        elseif arg3 == Enum.CameraType.Attach or arg3 == Enum.CameraType.Watch or arg3 == Enum.CameraType.Fixed then
            var114 = module_upvr_8
        else
            warn("CameraScript encountered an unhandled Camera.CameraType value: ", arg3)
        end
    end
    if not var114 then
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return Enum.ComputerCameraMovementMode.Orbital == Enum.ComputerCameraMovementMode.Follow
        end
        local function INLINED_3() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return Enum.ComputerCameraMovementMode.Orbital == Enum.ComputerCameraMovementMode.Default
        end
        local function INLINED_4() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return Enum.ComputerCameraMovementMode.Orbital == Enum.ComputerCameraMovementMode.CameraToggle
        end
        if Enum.ComputerCameraMovementMode.Orbital == Enum.ComputerCameraMovementMode.Classic or INLINED_2() or INLINED_3() or var5_upvw and INLINED_4() then
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if Enum.ComputerCameraMovementMode.Orbital == Enum.ComputerCameraMovementMode.Orbital then
            else
                warn("ActivateCameraController did not select a module.")
                return
            end
        end
    end
    local var116 = var15_upvw
    if var116 then
        assert(var15_upvw)
        local CurrentCamera_4 = workspace.CurrentCamera
        local var118
        if not CurrentCamera_4 then
            var116 = false
        else
            local CameraType_2 = CurrentCamera_4.CameraType
            var118 = Enum.CameraType.Custom
            if CameraType_2 ~= var118 then
                var118 = Enum.CameraType.Follow
                if CameraType_2 ~= var118 then
                else
                end
            end
            local function INLINED_5() -- Internal function, doesn't exist in bytecode
                var118 = CurrentCamera_4.CameraSubject:IsA("VehicleSeat")
                return var118
            end
            if not CurrentCamera_4.CameraSubject or not INLINED_5() then
                var118 = false
            end
            var116 = var118 and true
        end
    end
    if var116 then
    end
    if not tbl_upvr_4[module_upvr_7] then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        tbl_upvr_4[module_upvr_7] = module_upvr_7.new()
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local var122 = tbl_upvr_4[module_upvr_7]
        if var15_upvw and var122.Reset then
            var122:Reset()
        end
    end
    if arg1.activeCameraController then
        if arg1.activeCameraController ~= var122 then
            arg1.activeCameraController:Enable(false)
            arg1.activeCameraController = var122
            arg1.activeCameraController:Enable(true)
        elseif not arg1.activeCameraController:GetEnabled() then
            arg1.activeCameraController:Enable(true)
            -- KONSTANTWARNING: GOTO [207] #142
        end
    elseif var122 ~= nil then
        arg1.activeCameraController = var122
        arg1.activeCameraController:Enable(true)
    end
    if arg1.activeCameraController then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if Enum.ComputerCameraMovementMode.Orbital ~= nil then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            arg1.activeCameraController:SetCameraMovementMode(Enum.ComputerCameraMovementMode.Orbital)
            return
        end
        if arg3 ~= nil then
            arg1.activeCameraController:SetCameraType(arg3)
        end
    end
end
function module_upvr_4.OnCameraSubjectChanged(arg1) -- Line 406
    --[[ Upvalues[1]:
        [1]: var15_upvw (read and write)
    ]]
    local CurrentCamera = workspace.CurrentCamera
    local var124
    if var124 then
        var124 = CurrentCamera.CameraSubject
    end
    if arg1.activeTransparencyController then
        arg1.activeTransparencyController:SetSubject(var124)
    end
    if arg1.activeOcclusionModule then
        arg1.activeOcclusionModule:OnCameraSubjectChanged(var124)
    end
    if var15_upvw then
        arg1:ActivateCameraController(nil, CurrentCamera.CameraType)
    end
end
function module_upvr_4.OnCameraTypeChanged(arg1, arg2) -- Line 423
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    if arg2 == Enum.CameraType.Scriptable and UserInputService_upvr.MouseBehavior == Enum.MouseBehavior.LockCenter then
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
    end
    arg1:ActivateCameraController(nil, arg2)
end
function module_upvr_4.OnCurrentCameraChanged(arg1) -- Line 435
    local CurrentCamera_2_upvr = game.Workspace.CurrentCamera
    if not CurrentCamera_2_upvr then
    else
        if arg1.cameraSubjectChangedConn then
            arg1.cameraSubjectChangedConn:Disconnect()
        end
        if arg1.cameraTypeChangedConn then
            arg1.cameraTypeChangedConn:Disconnect()
        end
        arg1.cameraSubjectChangedConn = CurrentCamera_2_upvr:GetPropertyChangedSignal("CameraSubject"):Connect(function() -- Line 447
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: CurrentCamera_2_upvr (readonly)
            ]]
            arg1:OnCameraSubjectChanged(CurrentCamera_2_upvr.CameraSubject)
        end)
        arg1.cameraTypeChangedConn = CurrentCamera_2_upvr:GetPropertyChangedSignal("CameraType"):Connect(function() -- Line 451
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: CurrentCamera_2_upvr (readonly)
            ]]
            arg1:OnCameraTypeChanged(CurrentCamera_2_upvr.CameraType)
        end)
        arg1:OnCameraSubjectChanged(CurrentCamera_2_upvr.CameraSubject)
        arg1:OnCameraTypeChanged(CurrentCamera_2_upvr.CameraType)
    end
end
function module_upvr_4.OnLocalPlayerCameraPropertyChanged(arg1, arg2) -- Line 459
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: module_upvr_6 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [39] 25. Error Block 34 start (CF ANALYSIS FAILED)
    if Players_upvr.LocalPlayer.CameraMode == Enum.CameraMode.Classic then
        arg1:ActivateCameraController(module_upvr_6.ConvertCameraModeEnumToStandard(arg1:GetCameraMovementModeFromSettings()))
        return
    end
    warn("Unhandled value for property player.CameraMode: ", Players_upvr.LocalPlayer.CameraMode)
    do
        return
    end
    -- KONSTANTERROR: [39] 25. Error Block 34 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [70] 46. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [70] 46. Error Block 12 end (CF ANALYSIS FAILED)
end
function module_upvr_4.OnUserGameSettingsPropertyChanged(arg1, arg2) -- Line 503
    --[[ Upvalues[1]:
        [1]: module_upvr_6 (readonly)
    ]]
    if arg2 == "ComputerCameraMovementMode" then
        arg1:ActivateCameraController(module_upvr_6.ConvertCameraModeEnumToStandard(arg1:GetCameraMovementModeFromSettings()))
    end
end
local var128_upvw = pcall_result1_3 and pcall_result2_3
local module_upvr_2 = require(script:WaitForChild("CameraInput"))
function module_upvr_4.Update(arg1, arg2) -- Line 516
    --[[ Upvalues[3]:
        [1]: var5_upvw (read and write)
        [2]: var128_upvw (read and write)
        [3]: module_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg1.activeCameraController then
        if var5_upvw then
            arg1.activeCameraController:UpdateMouseBehavior()
        end
        local any_Update_result1_2, any_Update_result2_2 = arg1.activeCameraController:Update(arg2)
        arg1.activeCameraController:ApplyVRTransform()
        if arg1.activeOcclusionModule then
            local any_Update_result1, any_Update_result2 = arg1.activeOcclusionModule:Update(arg2, any_Update_result1_2, any_Update_result2_2)
            any_Update_result1_2 = any_Update_result1
        end
        game.Workspace.CurrentCamera.CFrame = any_Update_result1_2
        game.Workspace.CurrentCamera.Focus = any_Update_result2
        if arg1.activeTransparencyController then
            arg1.activeTransparencyController:Update()
        end
        if var128_upvw and module_upvr_2.getInputEnabled() then
            module_upvr_2.resetInputForFrameEnd()
        end
    end
end
function module_upvr_4.GetCameraControlChoice(arg1) -- Line 545
    --[[ Upvalues[4]:
        [1]: Players_upvr (readonly)
        [2]: UserInputService_upvr (readonly)
        [3]: module_upvr_6 (readonly)
        [4]: UserGameSettings_upvr (readonly)
    ]]
    local LocalPlayer = Players_upvr.LocalPlayer
    if LocalPlayer then
        if arg1.lastInputType == Enum.UserInputType.Touch or UserInputService_upvr.TouchEnabled then
            if LocalPlayer.DevTouchCameraMode == Enum.DevTouchCameraMovementMode.UserChoice then
                return module_upvr_6.ConvertCameraModeEnumToStandard(UserGameSettings_upvr.TouchCameraMovementMode)
            end
            return module_upvr_6.ConvertCameraModeEnumToStandard(LocalPlayer.DevTouchCameraMode)
        end
        if LocalPlayer.DevComputerCameraMode == Enum.DevComputerCameraMovementMode.UserChoice then
            return module_upvr_6.ConvertCameraModeEnumToStandard(module_upvr_6.ConvertCameraModeEnumToStandard(UserGameSettings_upvr.ComputerCameraMovementMode))
        end
        return module_upvr_6.ConvertCameraModeEnumToStandard(LocalPlayer.DevComputerCameraMode)
    end
end
function module_upvr_4.OnCharacterAdded(arg1, arg2, arg3) -- Line 568
    if arg1.activeOcclusionModule then
        arg1.activeOcclusionModule:CharacterAdded(arg2, arg3)
    end
end
function module_upvr_4.OnCharacterRemoving(arg1, arg2, arg3) -- Line 574
    if arg1.activeOcclusionModule then
        arg1.activeOcclusionModule:CharacterRemoving(arg2, arg3)
    end
end
function module_upvr_4.OnPlayerAdded(arg1, arg2) -- Line 580
    arg2.CharacterAdded:Connect(function(arg1_2) -- Line 581
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        arg1:OnCharacterAdded(arg1_2, arg2)
    end)
    arg2.CharacterRemoving:Connect(function(arg1_3) -- Line 584
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        arg1:OnCharacterRemoving(arg1_3, arg2)
    end)
end
function module_upvr_4.OnMouseLockToggled(arg1) -- Line 589
    if arg1.activeMouseLockController and arg1.activeCameraController then
        arg1.activeCameraController:SetIsMouseLocked(arg1.activeMouseLockController:GetIsMouseLocked())
        arg1.activeCameraController:SetMouseLockOffset(arg1.activeMouseLockController:GetMouseLockOffset())
    end
end
if pcall_result1 and pcall_result2 then
    return {}
end
return module_upvr_4.new()
ModuleScript VehicleCamera VehicleCamera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:38
-- Luau version 6, Types version 3
-- Time taken: 0.010419 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 2
    return UserSettings():IsUserFeatureEnabled("UserCarCam")
end)
local var4_upvw = pcall_result1 and pcall_result2
local module_upvr_4 = require(script.Parent:WaitForChild("BaseCamera"))
local module_upvr = require(script.Parent:WaitForChild("CameraInput"))
local module_upvr_6 = require(script.Parent:WaitForChild("CameraUtils"))
local module_upvr_5 = require(script.Parent:WaitForChild("ZoomController"))
local module_upvr_2 = require(script:WaitForChild("VehicleCameraConfig"))
local mapClamp_upvr = module_upvr_6.mapClamp
local function _(arg1, arg2) -- Line 32, Named "pitchVelocity"
    return math.abs(arg2.XVector:Dot(arg1))
end
local function _(arg1, arg2) -- Line 37, Named "yawVelocity"
    return math.abs(arg2.YVector:Dot(arg1))
end
local var11_upvw = (1/60)
if var4_upvw then
    game:GetService("RunService").Stepped:Connect(function(arg1, arg2) -- Line 44
        --[[ Upvalues[1]:
            [1]: var11_upvw (read and write)
        ]]
        var11_upvw = arg2
    end)
end
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr_4)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 52
    --[[ Upvalues[3]:
        [1]: var4_upvw (read and write)
        [2]: module_upvr_4 (readonly)
        [3]: setmetatable_result1_2_upvr (readonly)
    ]]
    assert(var4_upvw)
    local setmetatable_result1 = setmetatable(module_upvr_4.new(), setmetatable_result1_2_upvr)
    setmetatable_result1:Reset()
    return setmetatable_result1
end
local module_upvr_3 = require(script:WaitForChild("VehicleCameraCore"))
local Spring_upvr = module_upvr_6.Spring
function setmetatable_result1_2_upvr.Reset(arg1) -- Line 59
    --[[ Upvalues[5]:
        [1]: var4_upvw (read and write)
        [2]: module_upvr_3 (readonly)
        [3]: Spring_upvr (readonly)
        [4]: module_upvr_2 (readonly)
        [5]: module_upvr_6 (readonly)
    ]]
    assert(var4_upvw)
    arg1.vehicleCameraCore = module_upvr_3.new(arg1:GetSubjectCFrame())
    arg1.pitchSpring = Spring_upvr.new(0, -math.rad(module_upvr_2.pitchBaseAngle))
    arg1.yawSpring = Spring_upvr.new(0, 0)
    arg1.lastPanTick = 0
    local CurrentCamera_2 = workspace.CurrentCamera
    local var18 = CurrentCamera_2
    if var18 then
        var18 = CurrentCamera_2.CameraSubject
    end
    assert(CurrentCamera_2)
    assert(var18)
    assert(var18:IsA("VehicleSeat"))
    local any_getLooseBoundingSphere_result1, any_getLooseBoundingSphere_result2 = module_upvr_6.getLooseBoundingSphere(var18:GetConnectedParts(true))
    arg1.assemblyRadius = math.max(any_getLooseBoundingSphere_result2, 0.001)
    arg1.assemblyOffset = var18.CFrame:Inverse() * any_getLooseBoundingSphere_result1
    arg1:_StepInitialZoom()
end
function setmetatable_result1_2_upvr._StepInitialZoom(arg1) -- Line 84
    --[[ Upvalues[3]:
        [1]: var4_upvw (read and write)
        [2]: module_upvr_5 (readonly)
        [3]: module_upvr_2 (readonly)
    ]]
    assert(var4_upvw)
    arg1:SetCameraToSubjectDistance(math.max(module_upvr_5.GetZoomRadius(), arg1.assemblyRadius * module_upvr_2.initialZoomRadiusMul))
end
local sanitizeAngle_upvr = module_upvr_6.sanitizeAngle
function setmetatable_result1_2_upvr._StepRotation(arg1, arg2, arg3) -- Line 92
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: sanitizeAngle_upvr (readonly)
        [3]: module_upvr_2 (readonly)
        [4]: mapClamp_upvr (readonly)
    ]]
    local yawSpring = arg1.yawSpring
    local pitchSpring = arg1.pitchSpring
    local any_getRotation_result1 = module_upvr.getRotation()
    yawSpring.pos = sanitizeAngle_upvr(yawSpring.pos + -any_getRotation_result1.X)
    pitchSpring.pos = sanitizeAngle_upvr(math.clamp(pitchSpring.pos + -any_getRotation_result1.Y, -1.3962634015954636, 1.3962634015954636))
    if 0 < any_getRotation_result1.Magnitude then
        arg1.lastPanTick = os.clock()
    end
    local var25 = -math.rad(module_upvr_2.pitchBaseAngle)
    if module_upvr_2.autocorrectDelay < os.clock() - arg1.lastPanTick then
        local mapClamp_upvr_result1_2 = mapClamp_upvr(arg3, module_upvr_2.autocorrectMinCarSpeed, module_upvr_2.autocorrectMaxCarSpeed, 0, module_upvr_2.autocorrectResponse)
        yawSpring.freq = mapClamp_upvr_result1_2
        pitchSpring.freq = mapClamp_upvr_result1_2
        if yawSpring.freq < 0.001 then
            yawSpring.vel = 0
        end
        if pitchSpring.freq < 0.001 then
            pitchSpring.vel = 0
        end
        if math.abs(sanitizeAngle_upvr(var25 - pitchSpring.pos)) <= math.rad(module_upvr_2.pitchDeadzoneAngle) then
            pitchSpring.goal = pitchSpring.pos
        else
            pitchSpring.goal = var25
        end
    else
        yawSpring.freq = 0
        yawSpring.vel = 0
        pitchSpring.freq = 0
        pitchSpring.vel = 0
        pitchSpring.goal = var25
    end
    return CFrame.fromEulerAnglesYXZ(pitchSpring:step(arg2), yawSpring:step(arg2), 0)
end
function setmetatable_result1_2_upvr._StepZoom(arg1) -- Line 155
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: module_upvr_5 (readonly)
    ]]
    local currentSubjectDistance = arg1.currentSubjectDistance
    local any_getZoomDelta_result1 = module_upvr.getZoomDelta()
    if 0 < math.abs(any_getZoomDelta_result1) then
        local var29
        if arg1.inFirstPerson and any_getZoomDelta_result1 < 0 then
            var29 = 0.5
        elseif 0 < any_getZoomDelta_result1 then
            var29 = currentSubjectDistance + any_getZoomDelta_result1 * (1 + currentSubjectDistance * 0.5)
        else
            var29 = (currentSubjectDistance + any_getZoomDelta_result1) / (1 - any_getZoomDelta_result1 * 0.5)
        end
        var29 = math.max(var29, 0.5)
        arg1:SetCameraToSubjectDistance(var29)
    end
    return module_upvr_5.GetZoomRadius()
end
function setmetatable_result1_2_upvr._GetThirdPersonLocalOffset(arg1) -- Line 180
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    return arg1.assemblyOffset + Vector3.new(0, arg1.assemblyRadius * module_upvr_2.verticalCenterOffset, 0)
end
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
function setmetatable_result1_2_upvr._GetFirstPersonLocalOffset(arg1, arg2) -- Line 184
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local Character = LocalPlayer_upvr.Character
    if Character and Character.Parent then
        local Head = Character:FindFirstChild("Head")
        if Head and Head:IsA("BasePart") then
            return arg2:Inverse() * Head.Position
        end
    end
    return arg1:_GetThirdPersonLocalOffset()
end
function setmetatable_result1_2_upvr.Update(arg1) -- Line 198
    --[[ Upvalues[3]:
        [1]: var4_upvw (read and write)
        [2]: var11_upvw (read and write)
        [3]: mapClamp_upvr (readonly)
    ]]
    assert(var4_upvw)
    local CurrentCamera = workspace.CurrentCamera
    local var36 = CurrentCamera
    if var36 then
        var36 = CurrentCamera.CameraSubject
    end
    local vehicleCameraCore = arg1.vehicleCameraCore
    assert(CurrentCamera)
    assert(var36)
    assert(var36:IsA("VehicleSeat"))
    local var38 = var11_upvw
    var11_upvw = 0
    local any_GetSubjectCFrame_result1 = arg1:GetSubjectCFrame()
    local any_GetSubjectRotVelocity_result1 = arg1:GetSubjectRotVelocity()
    local any__StepZoom_result1 = arg1:_StepZoom()
    local mapClamp_upvr_result1 = mapClamp_upvr(any__StepZoom_result1, 0.5, arg1.assemblyRadius, 1, 0)
    vehicleCameraCore:setTransform(any_GetSubjectCFrame_result1)
    local var43 = CFrame.new(any_GetSubjectCFrame_result1 * arg1:_GetThirdPersonLocalOffset():Lerp(arg1:_GetFirstPersonLocalOffset(any_GetSubjectCFrame_result1), mapClamp_upvr_result1)) * vehicleCameraCore:step(var38, math.abs(any_GetSubjectCFrame_result1.XVector:Dot(any_GetSubjectRotVelocity_result1)), math.abs(any_GetSubjectCFrame_result1.YVector:Dot(any_GetSubjectRotVelocity_result1)), mapClamp_upvr_result1) * arg1:_StepRotation(var38, math.abs(arg1:GetSubjectVelocity():Dot(any_GetSubjectCFrame_result1.ZVector)))
    return var43 * CFrame.new(0, 0, any__StepZoom_result1), var43
end
function setmetatable_result1_2_upvr.ApplyVRTransform(arg1) -- Line 244
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(var4_upvw)
end
function setmetatable_result1_2_upvr.EnterFirstPerson(arg1) -- Line 249
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(var4_upvw)
    arg1.inFirstPerson = true
    arg1:UpdateMouseBehavior()
end
function setmetatable_result1_2_upvr.LeaveFirstPerson(arg1) -- Line 255
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(var4_upvw)
    arg1.inFirstPerson = false
    arg1:UpdateMouseBehavior()
end
return setmetatable_result1_2_upvr
ModuleScript VehicleCameraConfig VehicleCameraConfig
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:39
-- Luau version 6, Types version 3
-- Time taken: 0.000897 seconds

return {
    pitchStiffness = 0.5;
    yawStiffness = 2.5;
    autocorrectDelay = 1;
    autocorrectMinCarSpeed = 16;
    autocorrectMaxCarSpeed = 32;
    autocorrectResponse = 0.5;
    cutoffMinAngularVelYaw = 60;
    cutoffMaxAngularVelYaw = 180;
    cutoffMinAngularVelPitch = 15;
    cutoffMaxAngularVelPitch = 60;
    pitchBaseAngle = 18;
    pitchDeadzoneAngle = 12;
    firstPersonResponseMul = 10;
    yawReponseDampingRising = 1;
    yawResponseDampingFalling = 3;
    pitchReponseDampingRising = 1;
    pitchResponseDampingFalling = 3;
    initialZoomRadiusMul = 3;
    verticalCenterOffset = 0.33;
}
ModuleScript VehicleCameraCore VehicleCameraCore
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:41
-- Luau version 6, Types version 3
-- Time taken: 0.007192 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 2
    return UserSettings():IsUserFeatureEnabled("UserCarCam")
end)
local var4_upvw = pcall_result1 and pcall_result2
local CameraUtils = require(script.Parent.Parent.CameraUtils)
local VehicleCameraConfig_upvr = require(script.Parent.VehicleCameraConfig)
local sanitizeAngle_upvr = CameraUtils.sanitizeAngle
local function _(arg1) -- Line 16, Named "getYaw"
    --[[ Upvalues[1]:
        [1]: sanitizeAngle_upvr (readonly)
    ]]
    local _, any_toEulerAnglesYXZ_result2 = arg1:toEulerAnglesYXZ()
    return sanitizeAngle_upvr(any_toEulerAnglesYXZ_result2)
end
local function _(arg1) -- Line 22, Named "getPitch"
    --[[ Upvalues[1]:
        [1]: sanitizeAngle_upvr (readonly)
    ]]
    return sanitizeAngle_upvr(arg1:toEulerAnglesYXZ())
end
local function _(arg1, arg2, arg3, arg4, arg5) -- Line 28, Named "stepSpringAxis"
    --[[ Upvalues[1]:
        [1]: sanitizeAngle_upvr (readonly)
    ]]
    local sanitizeAngle_upvr_result1 = sanitizeAngle_upvr(arg4 - arg3)
    local exponentiated = math.exp(-arg2 * arg1)
    return sanitizeAngle_upvr((sanitizeAngle_upvr_result1 * (1 + arg2 * arg1) + arg5 * arg1) * exponentiated + arg3), (arg5 * (1 - arg2 * arg1) - (sanitizeAngle_upvr_result1) * (arg2 * arg2 * arg1)) * exponentiated
end
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local function new(arg1, arg2, arg3) -- Line 42
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local module = {}
    module.fRising = arg1
    module.fFalling = arg2
    module.g = arg3
    module.p = arg3
    module.v = arg3 * 0
    return setmetatable(module, tbl_upvr)
end
tbl_upvr.new = new
local function step(arg1, arg2) -- Line 52
    local g = arg1.g
    local v = arg1.v
    local var16
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var16 = arg1.fRising
        return var16
    end
    if 0 >= v or not INLINED() then
        var16 = arg1.fFalling
    end
    local var17 = (-math.pi*2) * var16
    local var18 = arg1.p - g
    var16 = math.exp(-var17 * arg2)
    local var19 = (var18 * (1 + var17 * arg2) + v * arg2) * var16 + g
    arg1.p = var19
    arg1.v = (v * (1 - var17 * arg2) - (var18) * (var17 * var17 * arg2)) * var16
    return var19
end
tbl_upvr.step = step
local tbl_upvr_2 = {}
tbl_upvr_2.__index = tbl_upvr_2
local function new(arg1) -- Line 78
    --[[ Upvalues[4]:
        [1]: sanitizeAngle_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: VehicleCameraConfig_upvr (readonly)
        [4]: tbl_upvr_2 (readonly)
    ]]
    local var21
    if typeof(arg1) ~= "CFrame" then
        var21 = false
    else
        var21 = true
    end
    assert(var21)
    var21 = {}
    local _, any_toEulerAnglesYXZ_result2_2 = arg1:toEulerAnglesYXZ()
    var21.yawG = sanitizeAngle_upvr(any_toEulerAnglesYXZ_result2_2)
    local _, any_toEulerAnglesYXZ_result2_4 = arg1:toEulerAnglesYXZ()
    var21.yawP = sanitizeAngle_upvr(any_toEulerAnglesYXZ_result2_4)
    var21.yawV = 0
    var21.pitchG = sanitizeAngle_upvr(arg1:toEulerAnglesYXZ())
    var21.pitchP = sanitizeAngle_upvr(arg1:toEulerAnglesYXZ())
    var21.pitchV = 0
    var21.fSpringYaw = tbl_upvr.new(VehicleCameraConfig_upvr.yawReponseDampingRising, VehicleCameraConfig_upvr.yawResponseDampingFalling, 0)
    var21.fSpringPitch = tbl_upvr.new(VehicleCameraConfig_upvr.pitchReponseDampingRising, VehicleCameraConfig_upvr.pitchResponseDampingFalling, 0)
    return setmetatable(var21, tbl_upvr_2)
end
tbl_upvr_2.new = new
function tbl_upvr_2.setGoal(arg1, arg2) -- Line 105
    --[[ Upvalues[1]:
        [1]: sanitizeAngle_upvr (readonly)
    ]]
    local var26
    if typeof(arg2) ~= "CFrame" then
        var26 = false
    else
        var26 = true
    end
    assert(var26)
    var26 = arg2:toEulerAnglesYXZ()
    local any_toEulerAnglesYXZ_result1, any_toEulerAnglesYXZ_result2_3 = arg2:toEulerAnglesYXZ()
    arg1.yawG = sanitizeAngle_upvr(any_toEulerAnglesYXZ_result2_3)
    any_toEulerAnglesYXZ_result1 = arg2:toEulerAnglesYXZ()
    arg1.pitchG = sanitizeAngle_upvr(any_toEulerAnglesYXZ_result1)
end
function tbl_upvr_2.getCFrame(arg1) -- Line 112
    return CFrame.fromEulerAnglesYXZ(arg1.pitchP, arg1.yawP, 0)
end
local mapClamp_upvr = CameraUtils.mapClamp
local map_upvr = CameraUtils.map
local function step(arg1, arg2, arg3, arg4, arg5) -- Line 116
    --[[ Upvalues[4]:
        [1]: mapClamp_upvr (readonly)
        [2]: map_upvr (readonly)
        [3]: VehicleCameraConfig_upvr (readonly)
        [4]: sanitizeAngle_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 26 start (CF ANALYSIS FAILED)
    local var31
    if typeof(arg2) ~= "number" then
        var31 = false
    else
        var31 = true
    end
    assert(var31)
    if typeof(arg4) ~= "number" then
        var31 = false
        -- KONSTANTWARNING: GOTO [22] #18
    end
    -- KONSTANTERROR: [0] 1. Error Block 26 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [21] 17. Error Block 29 start (CF ANALYSIS FAILED)
    var31 = true
    assert(var31)
    if typeof(arg3) ~= "number" then
        var31 = false
        -- KONSTANTWARNING: GOTO [35] #28
    end
    -- KONSTANTERROR: [21] 17. Error Block 29 end (CF ANALYSIS FAILED)
end
tbl_upvr_2.step = step
local module_2_upvr = {}
module_2_upvr.__index = module_2_upvr
function module_2_upvr.new(arg1) -- Line 173
    --[[ Upvalues[3]:
        [1]: var4_upvw (read and write)
        [2]: tbl_upvr_2 (readonly)
        [3]: module_2_upvr (readonly)
    ]]
    assert(var4_upvw)
    return setmetatable({
        vrs = tbl_upvr_2.new(arg1);
    }, module_2_upvr)
end
function module_2_upvr.step(arg1, arg2, arg3, arg4, arg5) -- Line 181
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(var4_upvw)
    return arg1.vrs:step(arg2, arg3, arg4, arg5)
end
function module_2_upvr.setTransform(arg1, arg2) -- Line 187
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(var4_upvw)
    arg1.vrs:setGoal(arg2)
end
return module_2_upvr
ModuleScript TransparencyController TransparencyController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:42
-- Luau version 6, Types version 3
-- Time taken: 0.011076 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 14
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable({}, module_upvr)
    setmetatable_result1.lastUpdate = tick()
    setmetatable_result1.transparencyDirty = false
    setmetatable_result1.enabled = false
    setmetatable_result1.lastTransparency = nil
    setmetatable_result1.descendantAddedConn = nil
    setmetatable_result1.descendantRemovingConn = nil
    setmetatable_result1.toolDescendantAddedConns = {}
    setmetatable_result1.toolDescendantRemovingConns = {}
    setmetatable_result1.cachedParts = {}
    return setmetatable_result1
end
function module_upvr.HasToolAncestor(arg1, arg2) -- Line 31
    if arg2.Parent == nil then
        return false
    end
    local children = arg2.Parent:IsA("Tool")
    if not children then
        children = arg1:HasToolAncestor(arg2.Parent)
    end
    return children
end
function module_upvr.IsValidPartToModify(arg1, arg2) -- Line 36
    if arg2:IsA("BasePart") or arg2:IsA("Decal") then
        return not arg1:HasToolAncestor(arg2)
    end
    return false
end
function module_upvr.CachePartsRecursive(arg1, arg2) -- Line 43
    if arg2 then
        if arg1:IsValidPartToModify(arg2) then
            arg1.cachedParts[arg2] = true
            arg1.transparencyDirty = true
        end
        for _, v in pairs(arg2:GetChildren()) do
            arg1:CachePartsRecursive(v)
        end
    end
end
function module_upvr.TeardownTransparency(arg1) -- Line 55
    for i_2, _ in pairs(arg1.cachedParts) do
        i_2.LocalTransparencyModifier = 0
    end
    arg1.cachedParts = {}
    arg1.transparencyDirty = true
    arg1.lastTransparency = nil
    if arg1.descendantAddedConn then
        arg1.descendantAddedConn:disconnect()
        arg1.descendantAddedConn = nil
    end
    if arg1.descendantRemovingConn then
        arg1.descendantRemovingConn:disconnect()
        arg1.descendantRemovingConn = nil
    end
    for i_3, v_3 in pairs(arg1.toolDescendantAddedConns) do
        v_3:Disconnect()
        arg1.toolDescendantAddedConns[i_3] = nil
    end
    for i_4, v_4 in pairs(arg1.toolDescendantRemovingConns) do
        v_4:Disconnect()
        arg1.toolDescendantRemovingConns[i_4] = nil
    end
end
function module_upvr.SetupTransparency(arg1, arg2) -- Line 81
    arg1:TeardownTransparency()
    if arg1.descendantAddedConn then
        arg1.descendantAddedConn:disconnect()
    end
    arg1.descendantAddedConn = arg2.DescendantAdded:Connect(function(arg1_2) -- Line 85
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        if arg1:IsValidPartToModify(arg1_2) then
            arg1.cachedParts[arg1_2] = true
            arg1.transparencyDirty = true
        elseif arg1_2:IsA("Tool") then
            if arg1.toolDescendantAddedConns[arg1_2] then
                arg1.toolDescendantAddedConns[arg1_2]:Disconnect()
            end
            arg1.toolDescendantAddedConns[arg1_2] = arg1_2.DescendantAdded:Connect(function(arg1_3) -- Line 93
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.cachedParts[arg1_3] = nil
                if arg1_3:IsA("BasePart") or arg1_3:IsA("Decal") then
                    arg1_3.LocalTransparencyModifier = 0
                end
            end)
            if arg1.toolDescendantRemovingConns[arg1_2] then
                arg1.toolDescendantRemovingConns[arg1_2]:disconnect()
            end
            arg1.toolDescendantRemovingConns[arg1_2] = arg1_2.DescendantRemoving:Connect(function(arg1_4) -- Line 101
                --[[ Upvalues[2]:
                    [1]: arg2 (copied, readonly)
                    [2]: arg1 (copied, readonly)
                ]]
                wait()
                if arg2 and arg1_4 and arg1_4:IsDescendantOf(arg2) and arg1:IsValidPartToModify(arg1_4) then
                    arg1.cachedParts[arg1_4] = true
                    arg1.transparencyDirty = true
                end
            end)
        end
    end)
    if arg1.descendantRemovingConn then
        arg1.descendantRemovingConn:disconnect()
    end
    arg1.descendantRemovingConn = arg2.DescendantRemoving:connect(function(arg1_5) -- Line 113
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.cachedParts[arg1_5] then
            arg1.cachedParts[arg1_5] = nil
            arg1_5.LocalTransparencyModifier = 0
        end
    end)
    arg1:CachePartsRecursive(arg2)
end
function module_upvr.Enable(arg1, arg2) -- Line 124
    if arg1.enabled ~= arg2 then
        arg1.enabled = arg2
        arg1:Update()
    end
end
function module_upvr.SetSubject(arg1, arg2) -- Line 131
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg2 and arg2:IsA("Humanoid") then
        local var28
    end
    if arg2 and arg2:IsA("VehicleSeat") and arg2.Occupant then
        var28 = arg2.Occupant.Parent
        local var29 = var28
    end
    if var29 then
        arg1:SetupTransparency(var29)
    else
        arg1:TeardownTransparency()
    end
end
local module_upvr_2 = require(script.Parent:WaitForChild("CameraUtils"))
function module_upvr.Update(arg1) -- Line 146
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    local CurrentCamera = workspace.CurrentCamera
    local var36
    if CurrentCamera then
        var36 = 0
        local var37
        if not arg1.enabled then
        else
            var37 = CurrentCamera.Focus.p - CurrentCamera.CoordinateFrame.p
            local magnitude = var37.magnitude
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var37 = 1 - (magnitude - 0.5) / 1.5
                return var37
            end
            if magnitude >= 2 or not INLINED() then
                var37 = 0
            end
            var36 = var37
            var37 = 0.5
            if var36 < var37 then
                var36 = 0
            end
            var37 = arg1.lastTransparency
            if var37 then
                var37 = var36 - arg1.lastTransparency
                if not true and var36 < 1 and arg1.lastTransparency < 0.95 then
                    local var39 = 2.8 * (tick() - arg1.lastUpdate)
                    var37 = math.clamp(var37, -var39, var39)
                end
                var36 = arg1.lastTransparency + var37
            else
                var37 = true
                arg1.transparencyDirty = var37
            end
            var36 = math.clamp(module_upvr_2.Round(var36, 2), 0, 1)
        end
        if arg1.transparencyDirty or arg1.lastTransparency ~= var36 then
            for i_5, _ in pairs(arg1.cachedParts) do
                i_5.LocalTransparencyModifier = var36
            end
            arg1.transparencyDirty = false
            arg1.lastTransparency = var36
        end
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    arg1.lastUpdate = tick()
end
return module_upvr
ModuleScript OrbitalCamera OrbitalCamera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:43
-- Luau version 6, Types version 3
-- Time taken: 0.041670 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 7
    return UserSettings():IsUserFeatureEnabled("UserCameraInputRefactor2")
end)
local var4_upvw = pcall_result1 and pcall_result2
local vector2_upvr = Vector2.new(0, 0)
local tbl = {
    InitialDistance = 25;
    MinDistance = 10;
    MaxDistance = 100;
    InitialElevation = 35;
    MinElevation = 35;
    MaxElevation = 35;
    ReferenceAzimuth = -45;
    CWAzimuthTravel = 90;
    CCWAzimuthTravel = 90;
    UseAzimuthLimits = false;
}
local Players_upvr = game:GetService("Players")
local module_upvr_3 = require(script.Parent:WaitForChild("BaseCamera"))
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr_3)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 53
    --[[ Upvalues[2]:
        [1]: module_upvr_3 (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr_3.new(), setmetatable_result1_2_upvr)
    setmetatable_result1.lastUpdate = tick()
    setmetatable_result1.changedSignalConnections = {}
    setmetatable_result1.refAzimuthRad = nil
    setmetatable_result1.curAzimuthRad = nil
    setmetatable_result1.minAzimuthAbsoluteRad = nil
    setmetatable_result1.maxAzimuthAbsoluteRad = nil
    setmetatable_result1.useAzimuthLimits = nil
    setmetatable_result1.curElevationRad = nil
    setmetatable_result1.minElevationRad = nil
    setmetatable_result1.maxElevationRad = nil
    setmetatable_result1.curDistance = nil
    setmetatable_result1.minDistance = nil
    setmetatable_result1.maxDistance = nil
    setmetatable_result1.r3ButtonDown = false
    setmetatable_result1.l3ButtonDown = false
    setmetatable_result1.gamepadDollySpeedMultiplier = 1
    setmetatable_result1.lastUserPanCamera = tick()
    setmetatable_result1.externalProperties = {}
    setmetatable_result1.externalProperties.InitialDistance = 25
    setmetatable_result1.externalProperties.MinDistance = 10
    setmetatable_result1.externalProperties.MaxDistance = 100
    setmetatable_result1.externalProperties.InitialElevation = 35
    setmetatable_result1.externalProperties.MinElevation = 35
    setmetatable_result1.externalProperties.MaxElevation = 35
    setmetatable_result1.externalProperties.ReferenceAzimuth = -45
    setmetatable_result1.externalProperties.CWAzimuthTravel = 90
    setmetatable_result1.externalProperties.CCWAzimuthTravel = 90
    setmetatable_result1.externalProperties.UseAzimuthLimits = false
    setmetatable_result1:LoadNumberValueParameters()
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.LoadOrCreateNumberValueParameter(arg1, arg2, arg3, arg4) -- Line 95
    -- KONSTANTERROR: [0] 1. Error Block 19 start (CF ANALYSIS FAILED)
    local SOME = script:FindFirstChild(arg2)
    if SOME and SOME:isA(arg3) then
        arg1.externalProperties[arg2] = SOME.Value
        -- KONSTANTWARNING: GOTO [41] #29
    end
    -- KONSTANTERROR: [0] 1. Error Block 19 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 14. Error Block 20 start (CF ANALYSIS FAILED)
    if arg1.externalProperties[arg2] ~= nil then
        local any = Instance.new(arg3)
        any.Name = arg2
        any.Parent = script
        any.Value = arg1.externalProperties[arg2]
    else
        return
    end
    if arg4 then
        if arg1.changedSignalConnections[arg2] then
            arg1.changedSignalConnections[arg2]:Disconnect()
        end
        arg1.changedSignalConnections[arg2] = any.Changed:Connect(function(arg1_2) -- Line 115
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: arg2 (readonly)
                [3]: arg4 (readonly)
            ]]
            arg1.externalProperties[arg2] = arg1_2
            arg4(arg1)
        end)
    end
    -- KONSTANTERROR: [18] 14. Error Block 20 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_2_upvr.SetAndBoundsCheckAzimuthValues(arg1) -- Line 122
    arg1.minAzimuthAbsoluteRad = math.rad(arg1.externalProperties.ReferenceAzimuth) - math.abs(math.rad(arg1.externalProperties.CWAzimuthTravel))
    arg1.maxAzimuthAbsoluteRad = math.rad(arg1.externalProperties.ReferenceAzimuth) + math.abs(math.rad(arg1.externalProperties.CCWAzimuthTravel))
    arg1.useAzimuthLimits = arg1.externalProperties.UseAzimuthLimits
    if arg1.useAzimuthLimits then
        arg1.curAzimuthRad = math.max(arg1.curAzimuthRad, arg1.minAzimuthAbsoluteRad)
        arg1.curAzimuthRad = math.min(arg1.curAzimuthRad, arg1.maxAzimuthAbsoluteRad)
    end
end
function setmetatable_result1_2_upvr.SetAndBoundsCheckElevationValues(arg1) -- Line 132
    local maximum = math.max(arg1.externalProperties.MinElevation, -80)
    local minimum = math.min(arg1.externalProperties.MaxElevation, 80)
    arg1.minElevationRad = math.rad(math.min(maximum, minimum))
    arg1.maxElevationRad = math.rad(math.max(maximum, minimum))
    arg1.curElevationRad = math.max(arg1.curElevationRad, arg1.minElevationRad)
    arg1.curElevationRad = math.min(arg1.curElevationRad, arg1.maxElevationRad)
end
function setmetatable_result1_2_upvr.SetAndBoundsCheckDistanceValues(arg1) -- Line 148
    arg1.minDistance = arg1.externalProperties.MinDistance
    arg1.maxDistance = arg1.externalProperties.MaxDistance
    arg1.curDistance = math.max(arg1.curDistance, arg1.minDistance)
    arg1.curDistance = math.min(arg1.curDistance, arg1.maxDistance)
end
function setmetatable_result1_2_upvr.LoadNumberValueParameters(arg1) -- Line 156
    arg1:LoadOrCreateNumberValueParameter("InitialElevation", "NumberValue", nil)
    arg1:LoadOrCreateNumberValueParameter("InitialDistance", "NumberValue", nil)
    arg1:LoadOrCreateNumberValueParameter("ReferenceAzimuth", "NumberValue", arg1.SetAndBoundsCheckAzimuthValue)
    arg1:LoadOrCreateNumberValueParameter("CWAzimuthTravel", "NumberValue", arg1.SetAndBoundsCheckAzimuthValues)
    arg1:LoadOrCreateNumberValueParameter("CCWAzimuthTravel", "NumberValue", arg1.SetAndBoundsCheckAzimuthValues)
    arg1:LoadOrCreateNumberValueParameter("MinElevation", "NumberValue", arg1.SetAndBoundsCheckElevationValues)
    arg1:LoadOrCreateNumberValueParameter("MaxElevation", "NumberValue", arg1.SetAndBoundsCheckElevationValues)
    arg1:LoadOrCreateNumberValueParameter("MinDistance", "NumberValue", arg1.SetAndBoundsCheckDistanceValues)
    arg1:LoadOrCreateNumberValueParameter("MaxDistance", "NumberValue", arg1.SetAndBoundsCheckDistanceValues)
    arg1:LoadOrCreateNumberValueParameter("UseAzimuthLimits", "BoolValue", arg1.SetAndBoundsCheckAzimuthValues)
    arg1.curAzimuthRad = math.rad(arg1.externalProperties.ReferenceAzimuth)
    arg1.curElevationRad = math.rad(arg1.externalProperties.InitialElevation)
    arg1.curDistance = arg1.externalProperties.InitialDistance
    arg1:SetAndBoundsCheckAzimuthValues()
    arg1:SetAndBoundsCheckElevationValues()
    arg1:SetAndBoundsCheckDistanceValues()
end
function setmetatable_result1_2_upvr.GetModuleName(arg1) -- Line 181
    return "OrbitalCamera"
end
local module_upvr_2 = require(script.Parent:WaitForChild("CameraUtils"))
function setmetatable_result1_2_upvr.SetInitialOrientation(arg1, arg2) -- Line 185
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    if not arg2 or not arg2.RootPart then
        warn("OrbitalCamera could not set initial orientation due to missing humanoid")
    else
        local unit = (arg2.RootPart.CFrame.lookVector - Vector3.new(0, 0.23000, 0)).unit
        local any_GetAngleBetweenXZVectors_result1 = module_upvr_2.GetAngleBetweenXZVectors(unit, arg1:GetCameraLookVector())
        if not module_upvr_2.IsFinite(any_GetAngleBetweenXZVectors_result1) then
            any_GetAngleBetweenXZVectors_result1 = 0
        end
        if not module_upvr_2.IsFinite(math.asin(arg1:GetCameraLookVector().y) - math.asin(unit.y)) then
        end
        arg1.rotateInput = Vector2.new(any_GetAngleBetweenXZVectors_result1, 0)
    end
end
function setmetatable_result1_2_upvr.GetCameraToSubjectDistance(arg1) -- Line 203
    return arg1.curDistance
end
function setmetatable_result1_2_upvr.SetCameraToSubjectDistance(arg1, arg2) -- Line 207
    --[[ Upvalues[1]:
        [1]: Players_upvr (readonly)
    ]]
    if Players_upvr.LocalPlayer then
        arg1.currentSubjectDistance = math.clamp(arg2, arg1.minDistance, arg1.maxDistance)
        arg1.currentSubjectDistance = math.max(arg1.currentSubjectDistance, arg1.FIRST_PERSON_DISTANCE_THRESHOLD)
    end
    arg1.inFirstPerson = false
    arg1:UpdateMouseBehavior()
    return arg1.currentSubjectDistance
end
function setmetatable_result1_2_upvr.CalculateNewLookVector(arg1, arg2, arg3) -- Line 220
    local var19 = arg2
    if not var19 then
        var19 = arg1:GetCameraLookVector()
    end
    local arcsine = math.asin(var19.y)
    local vector2 = Vector2.new(arg3.x, math.clamp(arg3.y, arcsine - 1.3962634015954636, arcsine - -1.3962634015954636))
    return (CFrame.Angles(0, -vector2.x, 0) * CFrame.new(Vector3.new(0, 0, 0), var19) * CFrame.Angles(-vector2.y, 0, 0)).lookVector
end
function setmetatable_result1_2_upvr.GetGamepadPan(arg1, arg2, arg3, arg4) -- Line 231
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: vector2_upvr (readonly)
    ]]
    assert(not var4_upvw)
    if arg4.UserInputType == arg1.activeGamepad and arg4.KeyCode == Enum.KeyCode.Thumbstick2 then
        if arg1.r3ButtonDown or arg1.l3ButtonDown then
            if 0.2 < arg4.Position.Y then
                arg1.gamepadDollySpeedMultiplier = 0.96
            elseif arg4.Position.Y < -0.2 then
                arg1.gamepadDollySpeedMultiplier = 1.04
            else
                arg1.gamepadDollySpeedMultiplier = 1
            end
        else
            if arg3 == Enum.UserInputState.Cancel then
                arg1.gamepadPanningCamera = vector2_upvr
                return
            end
            if 0.2 < Vector2.new(arg4.Position.X, -arg4.Position.Y).magnitude then
                arg1.gamepadPanningCamera = Vector2.new(arg4.Position.X, -arg4.Position.Y)
            else
                arg1.gamepadPanningCamera = vector2_upvr
            end
        end
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
function setmetatable_result1_2_upvr.DoGamepadZoom(arg1, arg2, arg3, arg4) -- Line 263
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    assert(not var4_upvw)
    if arg4.UserInputType == arg1.activeGamepad and (arg4.KeyCode == Enum.KeyCode.ButtonR3 or arg4.KeyCode == Enum.KeyCode.ButtonL3) then
        local var23
        if arg3 == var23 then
            if arg4.KeyCode ~= Enum.KeyCode.ButtonR3 then
                var23 = false
            else
                var23 = true
            end
            arg1.r3ButtonDown = var23
            if arg4.KeyCode ~= Enum.KeyCode.ButtonL3 then
                var23 = false
            else
                var23 = true
            end
            arg1.l3ButtonDown = var23
        else
            var23 = Enum.UserInputState.End
            if arg3 == var23 then
                var23 = arg4.KeyCode
                if var23 == Enum.KeyCode.ButtonR3 then
                    var23 = false
                    arg1.r3ButtonDown = var23
                else
                    var23 = arg4.KeyCode
                    if var23 == Enum.KeyCode.ButtonL3 then
                        var23 = false
                        arg1.l3ButtonDown = var23
                    end
                end
                var23 = arg1.r3ButtonDown
                if not var23 then
                    var23 = arg1.l3ButtonDown
                    if not var23 then
                        var23 = 1
                        arg1.gamepadDollySpeedMultiplier = var23
                    end
                end
            end
        end
        var23 = Enum.ContextActionResult.Sink
        return var23
    end
    var23 = Enum.ContextActionResult.Pass
    return var23
end
function setmetatable_result1_2_upvr.BindGamepadInputActions(arg1) -- Line 286
    --[[ Upvalues[1]:
        [1]: var4_upvw (read and write)
    ]]
    assert(not var4_upvw)
    arg1:BindAction("OrbitalCamGamepadPan", function(arg1_3, arg2, arg3) -- Line 289
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:GetGamepadPan(arg1_3, arg2, arg3)
    end, false, Enum.KeyCode.Thumbstick2)
    arg1:BindAction("OrbitalCamGamepadZoom", function(arg1_4, arg2, arg3) -- Line 291
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:DoGamepadZoom(arg1_4, arg2, arg3)
    end, false, Enum.KeyCode.ButtonR3, Enum.KeyCode.ButtonL3)
end
local module_upvr = require(script.Parent:WaitForChild("CameraInput"))
local VRService_upvr = game:GetService("VRService")
function setmetatable_result1_2_upvr.Update(arg1, arg2) -- Line 296
    --[[ Upvalues[5]:
        [1]: var4_upvw (read and write)
        [2]: module_upvr (readonly)
        [3]: Players_upvr (readonly)
        [4]: vector2_upvr (readonly)
        [5]: VRService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local tick_result1 = tick()
    local var48 = tick_result1 - arg1.lastUpdate
    local var49
    if var4_upvw then
        if module_upvr.getRotation() == Vector2.new() then
        else
        end
    elseif arg1.userPanningTheCamera ~= true then
    else
    end
    local CurrentCamera_2 = workspace.CurrentCamera
    var49 = Players_upvr
    var49 = CurrentCamera_2
    if var49 then
        var49 = CurrentCamera_2.CameraSubject
    end
    if var49 then
    end
    if var49 then
    end
    if arg1.lastUpdate == nil or 1 < var48 then
        arg1.lastCameraTransform = nil
    end
    local var51
    if arg1.lastUpdate and not var4_upvw then
        local any_UpdateGamepad_result1_2 = arg1:UpdateGamepad()
        if arg1:ShouldUseVRRotation() then
            arg1.rotateInput += arg1:GetVRRotationInput()
        else
            if any_UpdateGamepad_result1_2 ~= vector2_upvr then
                var51 = true
                arg1.rotateInput += any_UpdateGamepad_result1_2 * math.min(0.1, var48)
            end
            local var53
            local var54
            if not var49:IsA("VehicleSeat") and not var49:IsA("SkateboardPlatform") then
                if arg1.TurningLeft then
                    var54 = -120
                else
                    var54 = 0
                end
                var53 += var54
                if arg1.TurningRight then
                    var54 = 120
                else
                    var54 = 0
                end
                var53 += var54
            end
            if var53 ~= 0 then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                var54 = arg1.rotateInput + Vector2.new(math.rad(var53 * math.min(0.1, var48)), 0)
                arg1.rotateInput = var54
                var51 = true
            end
        end
    end
    if var51 then
        arg1.lastUserPanCamera = tick()
    end
    local any_GetSubjectPosition_result1_2 = arg1:GetSubjectPosition()
    if any_GetSubjectPosition_result1_2 then
        local var56
        if var49.LocalPlayer and CurrentCamera_2 then
            if arg1.gamepadDollySpeedMultiplier ~= 1 then
                var54 = arg1.currentSubjectDistance * arg1.gamepadDollySpeedMultiplier
                arg1:SetCameraToSubjectDistance(var54)
            end
            var56 = VRService_upvr
            local VREnabled = var56.VREnabled
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var56 = arg1:GetVRFocus(any_GetSubjectPosition_result1_2, var48)
                return var56
            end
            if not VREnabled or not INLINED_2() then
                var56 = CFrame.new
                var54 = any_GetSubjectPosition_result1_2
                var56 = var56(var54)
            end
            local var58 = var56
            var56 = nil
            var54 = var4_upvw
            if var54 then
                var54 = module_upvr.getRotation()
                var56 = var54
            else
                var56 = arg1.rotateInput
            end
            var54 = var58.p
            if VREnabled and not arg1:IsInFirstPerson() then
                local var59 = any_GetSubjectPosition_result1_2 - CurrentCamera_2.CFrame.p
                local magnitude = var59.magnitude
                if arg1.currentSubjectDistance < magnitude or var56.x ~= 0 then
                    local var61 = arg1:CalculateNewLookVector(var59.unit * Vector3.new(1, 0, 1), Vector2.new(var56.x, 0)) * math.min(magnitude, arg1.currentSubjectDistance)
                    local _ = var54 - var61
                    local lookVector = CurrentCamera_2.CFrame.lookVector
                    if var56.x ~= 0 then
                        lookVector = var61
                    end
                    if not var4_upvw then
                        arg1.rotateInput = vector2_upvr
                    end
                    -- KONSTANTWARNING: GOTO [365] #257
                end
                -- KONSTANTWARNING: GOTO [365] #257
            end
            local var64
            arg1.curAzimuthRad -= var56.x
            if arg1.useAzimuthLimits then
                arg1.curAzimuthRad = math.clamp(arg1.curAzimuthRad, arg1.minAzimuthAbsoluteRad, arg1.maxAzimuthAbsoluteRad)
            else
                if arg1.curAzimuthRad == 0 or not (math.sign(arg1.curAzimuthRad) * math.abs(arg1.curAzimuthRad) % (-math.pi*2)) then
                end
                arg1.curAzimuthRad = 0
            end
            arg1.curElevationRad = math.clamp(arg1.curElevationRad + var56.y, arg1.minElevationRad, arg1.maxElevationRad)
            if not var4_upvw then
                arg1.rotateInput = vector2_upvr
            end
            arg1.lastCameraTransform = CFrame.new(any_GetSubjectPosition_result1_2 + (arg1.currentSubjectDistance) * (CFrame.fromEulerAnglesYXZ(-arg1.curElevationRad, arg1.curAzimuthRad, 0) * Vector3.new(0, 0, 1)), any_GetSubjectPosition_result1_2)
            arg1.lastCameraFocus = var58
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
            if var49:IsA("VehicleSeat") or var49:IsA("SkateboardPlatform") or var49:IsA("BasePart") then
                arg1.lastSubjectCFrame = var49.CFrame
            else
                arg1.lastSubjectCFrame = nil
            end
        end
    end
    arg1.lastUpdate = tick_result1
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return CFrame.new(any_GetSubjectPosition_result1_2 + (arg1.currentSubjectDistance) * (CFrame.fromEulerAnglesYXZ(-arg1.curElevationRad, arg1.curAzimuthRad, 0) * Vector3.new(0, 0, 1)), any_GetSubjectPosition_result1_2), var58
end
return setmetatable_result1_2_upvr
ModuleScript MouseLockController MouseLockController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:45
-- Luau version 6, Types version 3
-- Time taken: 0.011612 seconds

local Players_upvr = game:GetService("Players")
local ContextActionService_upvr = game:GetService("ContextActionService")
local GameSettings_upvr = UserSettings().GameSettings
local mouse_upvr = Players_upvr.LocalPlayer:GetMouse()
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 23
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: GameSettings_upvr (readonly)
        [3]: Players_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr.isMouseLocked = false
    setmetatable_result1_upvr.savedMouseCursor = nil
    setmetatable_result1_upvr.boundKeys = {Enum.KeyCode.LeftShift, Enum.KeyCode.RightShift}
    setmetatable_result1_upvr.mouseLockToggledEvent = Instance.new("BindableEvent")
    local BoundKeys = script:FindFirstChild("BoundKeys")
    if not BoundKeys or not BoundKeys:IsA("StringValue") then
        if BoundKeys then
            BoundKeys:Destroy()
        end
        local StringValue = Instance.new("StringValue")
        StringValue.Name = "BoundKeys"
        StringValue.Value = "LeftShift,RightShift"
        StringValue.Parent = script
    end
    if StringValue then
        StringValue.Changed:Connect(function(arg1) -- Line 46
            --[[ Upvalues[1]:
                [1]: setmetatable_result1_upvr (readonly)
            ]]
            setmetatable_result1_upvr:OnBoundKeysObjectChanged(arg1)
        end)
        setmetatable_result1_upvr:OnBoundKeysObjectChanged(StringValue.Value)
    end
    GameSettings_upvr.Changed:Connect(function(arg1) -- Line 53
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        if arg1 == "ControlMode" or arg1 == "ComputerMovementMode" then
            setmetatable_result1_upvr:UpdateMouseLockAvailability()
        end
    end)
    Players_upvr.LocalPlayer:GetPropertyChangedSignal("DevEnableMouseLock"):Connect(function() -- Line 60
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:UpdateMouseLockAvailability()
    end)
    Players_upvr.LocalPlayer:GetPropertyChangedSignal("DevComputerMovementMode"):Connect(function() -- Line 65
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:UpdateMouseLockAvailability()
    end)
    script:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 69
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        if script:GetAttribute("forceDisable") then
            script:SetAttribute("forceDisable", false)
            if setmetatable_result1_upvr.isMouseLocked then
                setmetatable_result1_upvr:OnMouseLockToggled(false)
            end
            setmetatable_result1_upvr:EnableMouseLock(false)
        end
    end)
    script:GetAttributeChangedSignal("forceEnable"):Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        if script:GetAttribute("forceEnable") then
            script:SetAttribute("forceEnable", false)
            setmetatable_result1_upvr:EnableMouseLock(true)
        end
    end)
    setmetatable_result1_upvr:UpdateMouseLockAvailability()
    return setmetatable_result1_upvr
end
function module_upvr.GetIsMouseLocked(arg1) -- Line 93
    return arg1.isMouseLocked
end
function module_upvr.GetBindableToggleEvent(arg1) -- Line 97
    return arg1.mouseLockToggledEvent.Event
end
function module_upvr.GetMouseLockOffset(arg1) -- Line 101
    local CameraOffset = script:FindFirstChild("CameraOffset")
    if CameraOffset and CameraOffset:IsA("Vector3Value") then
        return CameraOffset.Value
    end
    if CameraOffset then
        CameraOffset:Destroy()
    end
    local Vector3Value = Instance.new("Vector3Value")
    Vector3Value.Name = "CameraOffset"
    Vector3Value.Value = Vector3.new(1.75, 0, 0)
    Vector3Value.Parent = script
    if Vector3Value and Vector3Value.Value then
        return Vector3Value.Value
    end
    return Vector3.new(1.75, 0, 0)
end
function module_upvr.UpdateMouseLockAvailability(arg1) -- Line 123
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: GameSettings_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 31 start (CF ANALYSIS FAILED)
    local var22
    if Players_upvr.LocalPlayer.DevComputerMovementMode ~= var22 then
    else
    end
    var22 = GameSettings_upvr.ControlMode
    if var22 ~= Enum.ControlMode.MouseLockSwitch then
        -- KONSTANTWARNING: GOTO [25] #17
    end
    -- KONSTANTERROR: [0] 1. Error Block 31 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [24] 16. Error Block 33 start (CF ANALYSIS FAILED)
    if GameSettings_upvr.ComputerMovementMode ~= Enum.ComputerMovementMode.ClickToMove then
        var22 = false
    else
        var22 = true
    end
    if Players_upvr.LocalPlayer.DevEnableMouseLock then
        if true then
            if not var22 then
                local var23 = not true
            end
        end
    end
    if var23 ~= arg1.enabled then
        arg1:EnableMouseLock(var23)
    end
    -- KONSTANTERROR: [24] 16. Error Block 33 end (CF ANALYSIS FAILED)
end
function module_upvr.OnBoundKeysObjectChanged(arg1, arg2) -- Line 135
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    arg1.boundKeys = {}
    local _, string_gmatch_result2, _ = string.gmatch(arg2, "[^%s,]+")
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 2 start (CF ANALYSIS FAILED)
    local _, _, _ = pairs(Enum.KeyCode:GetEnumItems())
    -- KONSTANTERROR: [10] 8. Error Block 2 end (CF ANALYSIS FAILED)
end
function module_upvr.OnMouseLockToggled(arg1) -- Line 150
    --[[ Upvalues[1]:
        [1]: mouse_upvr (readonly)
    ]]
    arg1.isMouseLocked = not arg1.isMouseLocked
    if arg1.isMouseLocked then
        local CursorImage = script:FindFirstChild("CursorImage")
        if CursorImage and CursorImage:IsA("StringValue") and CursorImage.Value then
            arg1.savedMouseCursor = mouse_upvr.Icon
            mouse_upvr.Icon = CursorImage.Value
        else
            if CursorImage then
                CursorImage:Destroy()
            end
            local StringValue_2 = Instance.new("StringValue")
            StringValue_2.Name = "CursorImage"
            StringValue_2.Value = "rbxasset://textures/MouseLockedCursor.png"
            StringValue_2.Parent = script
            arg1.savedMouseCursor = mouse_upvr.Icon
            mouse_upvr.Icon = "rbxasset://textures/MouseLockedCursor.png"
        end
    elseif arg1.savedMouseCursor then
        mouse_upvr.Icon = arg1.savedMouseCursor
        arg1.savedMouseCursor = nil
    end
    arg1.mouseLockToggledEvent:Fire()
end
function module_upvr.DoMouseLockSwitch(arg1, arg2, arg3, arg4) -- Line 179
    if arg3 == Enum.UserInputState.Begin then
        arg1:OnMouseLockToggled()
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
local Value_upvr = Enum.ContextActionPriority.Default.Value
function module_upvr.BindContextActions(arg1) -- Line 187
    --[[ Upvalues[2]:
        [1]: ContextActionService_upvr (readonly)
        [2]: Value_upvr (readonly)
    ]]
    ContextActionService_upvr:BindActionAtPriority("MouseLockSwitchAction", function(arg1_2, arg2, arg3) -- Line 188
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:DoMouseLockSwitch(arg1_2, arg2, arg3)
    end, false, Value_upvr, unpack(arg1.boundKeys))
end
function module_upvr.UnbindContextActions(arg1) -- Line 193
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    ContextActionService_upvr:UnbindAction("MouseLockSwitchAction")
end
function module_upvr.IsMouseLocked(arg1) -- Line 197
    local enabled = arg1.enabled
    if enabled then
        enabled = arg1.isMouseLocked
    end
    return enabled
end
function module_upvr.EnableMouseLock(arg1, arg2) -- Line 201
    --[[ Upvalues[1]:
        [1]: mouse_upvr (readonly)
    ]]
    if arg2 ~= arg1.enabled then
        arg1.enabled = arg2
        if arg1.enabled then
            arg1:BindContextActions()
            return
        end
        if mouse_upvr.Icon ~= "" then
            mouse_upvr.Icon = ""
        end
        arg1:UnbindContextActions()
        if arg1.isMouseLocked then
            arg1.mouseLockToggledEvent:Fire()
        end
        arg1.isMouseLocked = false
    end
end
return module_upvr
ModuleScript ClassicCamera ClassicCamera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:47
-- Luau version 6, Types version 3
-- Time taken: 0.007966 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 21
    return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
end)
local var4_upvw = pcall_result1 and pcall_result2
local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 28
    return UserSettings():IsUserFeatureEnabled("UserCameraInputRefactor2")
end)
local module_upvr_2 = require(script.Parent:WaitForChild("CameraInput"))
local module_upvr_3 = require(script.Parent:WaitForChild("CameraUtils"))
local module_upvr = require(script.Parent:WaitForChild("BaseCamera"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new() -- Line 46
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
        [3]: module_upvr_3 (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.isFollowCamera = false
    setmetatable_result1.isCameraToggle = false
    setmetatable_result1.lastUpdate = tick()
    setmetatable_result1.cameraToggleSpring = module_upvr_3.Spring.new(5, 0)
    return setmetatable_result1
end
function setmetatable_result1_upvr.GetCameraToggleOffset(arg1, arg2) -- Line 57
    --[[ Upvalues[3]:
        [1]: var4_upvw (read and write)
        [2]: module_upvr_2 (readonly)
        [3]: module_upvr_3 (readonly)
    ]]
    assert(var4_upvw)
    if arg1.isCameraToggle then
        if module_upvr_2.getTogglePan() then
            arg1.cameraToggleSpring.goal = math.clamp(module_upvr_3.map(arg1.currentSubjectDistance, 0.5, arg1.FIRST_PERSON_DISTANCE_THRESHOLD, 0, 1), 0, 1)
        else
            arg1.cameraToggleSpring.goal = 0
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return Vector3.new(0, arg1.cameraToggleSpring:step(arg2) * (math.clamp(module_upvr_3.map(arg1.currentSubjectDistance, 0.5, 64, 0, 1), 0, 1) + 1), 0)
    end
    return Vector3.new()
end
function setmetatable_result1_upvr.SetCameraMovementMode(arg1, arg2) -- Line 77
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local SetCameraMovementMode_2 = module_upvr.SetCameraMovementMode
    SetCameraMovementMode_2(arg1, arg2)
    if arg2 ~= Enum.ComputerCameraMovementMode.Follow then
        SetCameraMovementMode_2 = false
    else
        SetCameraMovementMode_2 = true
    end
    arg1.isFollowCamera = SetCameraMovementMode_2
    if arg2 ~= Enum.ComputerCameraMovementMode.CameraToggle then
        SetCameraMovementMode_2 = false
    else
        SetCameraMovementMode_2 = true
    end
    arg1.isCameraToggle = SetCameraMovementMode_2
end
local cframe_upvr = CFrame.fromOrientation(-0.2617993877991494, 0, 0)
local Players_upvr = game:GetService("Players")
local var16_upvw = pcall_result1_2 and pcall_result2_2
local vector2_upvr = Vector2.new(0, 0)
local const_number_upvw = 0
local VRService_upvr = game:GetService("VRService")
function setmetatable_result1_upvr.Update(arg1) -- Line 84
    --[[ Upvalues[9]:
        [1]: cframe_upvr (readonly)
        [2]: Players_upvr (readonly)
        [3]: var16_upvw (read and write)
        [4]: module_upvr_2 (readonly)
        [5]: vector2_upvr (readonly)
        [6]: const_number_upvw (read and write)
        [7]: module_upvr_3 (readonly)
        [8]: VRService_upvr (readonly)
        [9]: var4_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local CurrentCamera = workspace.CurrentCamera
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 12. Error Block 239 start (CF ANALYSIS FAILED)
    if arg1:GetHumanoidRootPart() then
    else
    end
    arg1.resetCameraAngle = false
    -- KONSTANTERROR: [18] 12. Error Block 239 end (CF ANALYSIS FAILED)
end
function setmetatable_result1_upvr.EnterFirstPerson(arg1) -- Line 361
    arg1.inFirstPerson = true
    arg1:UpdateMouseBehavior()
end
function setmetatable_result1_upvr.LeaveFirstPerson(arg1) -- Line 366
    arg1.inFirstPerson = false
    arg1:UpdateMouseBehavior()
end
return setmetatable_result1_upvr
ModuleScript CameraUtils CameraUtils
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:48
-- Luau version 6, Types version 3
-- Time taken: 0.016552 seconds

local module_upvr = {}
local pcall_result1, pcall_result2 = pcall(function() -- Line 9
    return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
end)
local function _(arg1) -- Line 15, Named "round"
    return math.floor(arg1 + 0.5)
end
local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
function tbl_upvr.new(arg1, arg2) -- Line 24
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    local module = {}
    module.freq = arg1
    module.goal = arg2
    module.pos = arg2
    module.vel = 0
    return setmetatable(module, tbl_upvr)
end
function tbl_upvr.step(arg1, arg2) -- Line 34
    local var7 = arg1.freq * 2 * math.pi
    local goal = arg1.goal
    local vel = arg1.vel
    local var10 = arg1.pos - goal
    local exponentiated = math.exp(-var7 * arg2)
    local var12 = (var10 * (1 + var7 * arg2) + vel * arg2) * exponentiated + goal
    arg1.pos = var12
    arg1.vel = (vel * (1 - var7 * arg2) - (var10) * (var7 * var7 * arg2)) * exponentiated
    return var12
end
module_upvr.Spring = tbl_upvr
function module_upvr.map(arg1, arg2, arg3, arg4, arg5) -- Line 56
    return (arg1 - arg2) * (arg5 - arg4) / (arg3 - arg2) + arg4
end
function module_upvr.mapClamp(arg1, arg2, arg3, arg4, arg5) -- Line 61
    return math.clamp((arg1 - arg2) * (arg5 - arg4) / (arg3 - arg2) + arg4, math.min(arg4, arg5), math.max(arg4, arg5))
end
function module_upvr.getLooseBoundingSphere(arg1) -- Line 70
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local table_create_result1 = table.create(#arg1)
    local pairs_result1, _, pairs_result3 = pairs(arg1)
    local var49
    for i, v in pairs_result1, var49, pairs_result3 do
        table_create_result1[i] = v.Position
    end
    local _1 = table_create_result1[1]
    var49 = _1
    for _, v_2 in ipairs(table_create_result1) do
        if 0 < (v_2 - _1).Magnitude then
            var49 = v_2
        end
    end
    for _, v_3 in ipairs(table_create_result1) do
        if 0 < (v_3 - var49).Magnitude then
            local var59 = v_3
        end
    end
    local var60 = (var49 + var59) * 0.5
    local var61 = (var49 - var59).Magnitude * 0.5
    for _, v_4 in ipairs(table_create_result1) do
        local Magnitude = (v_4 - var60).Magnitude
        if var61 < Magnitude then
        end
    end
    return var60 + (Magnitude - var61) * 0.5 * (v_4 - var60).Unit, (Magnitude + var61) * 0.5
end
function module_upvr.sanitizeAngle(arg1) -- Line 126
    return (arg1 + math.pi) % (-math.pi*2) - math.pi
end
function module_upvr.Round(arg1, arg2) -- Line 131
    local var66 = 10 ^ arg2
    return math.floor(arg1 * var66 + 0.5) / var66
end
function module_upvr.IsFinite(arg1) -- Line 136
    local var68 = false
    if arg1 == arg1 then
        var68 = false
        if arg1 ~= math.huge then
            if arg1 == (-math.huge) then
                var68 = false
            else
                var68 = true
            end
        end
    end
    return var68
end
function module_upvr.IsFiniteVector3(arg1) -- Line 140
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local any_IsFinite_result1 = module_upvr.IsFinite(arg1.X)
    if any_IsFinite_result1 then
        any_IsFinite_result1 = module_upvr.IsFinite(arg1.Y)
        if any_IsFinite_result1 then
            any_IsFinite_result1 = module_upvr.IsFinite(arg1.Z)
        end
    end
    return any_IsFinite_result1
end
function module_upvr.GetAngleBetweenXZVectors(arg1, arg2) -- Line 145
    return math.atan2(arg2.X * arg1.Z - arg2.Z * arg1.X, arg2.X * arg1.X + arg2.Z * arg1.Z)
end
function module_upvr.RotateVectorByAngleAndRound(arg1, arg2, arg3) -- Line 149
    if 0 < arg1.Magnitude then
        local unit = arg1.unit
        return math.floor((math.atan2(unit.z, unit.x) + arg2) / arg3 + 0.5) * arg3 - math.atan2(unit.z, unit.x)
    end
    return 0
end
local function _(arg1) -- Line 163, Named "SCurveTranform"
    local clamped_2 = math.clamp(arg1, -1, 1)
    if 0 <= clamped_2 then
        return 0.35 * clamped_2 / (0.35 - clamped_2 + 1)
    end
    return -(0.8 * -clamped_2 / (0.8 + clamped_2 + 1))
end
local function _(arg1) -- Line 172, Named "toSCurveSpace"
    return (math.abs(arg1) * 2 - 1) * 1.1 - 0.1
end
local function _(arg1) -- Line 176, Named "fromSCurveSpace"
    return arg1 / 2 + 0.5
end
function module_upvr.GamepadLinearToCurve(arg1) -- Line 180
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local function _(arg1_2) -- Line 181, Named "onAxis"
        local var73 = 1
        local var74
        if arg1_2 < 0 then
            var73 = -1
        end
        local clamped_3 = math.clamp((math.abs(math.abs(arg1_2)) * 2 - 1) * 1.1 - 0.1, -1, 1)
        if 0 <= clamped_3 then
            var74 = 0.35 * clamped_3 / (0.35 - clamped_3 + 1)
        else
            var74 = -(0.8 * -clamped_3 / (0.8 + clamped_3 + 1))
        end
        var74 = math.clamp((var74 / 2 + 0.5) * var73, -1, 1)
        return var74
    end
    local x = arg1.x
    local var77 = 1
    local var78
    if x < 0 then
        var77 = -1
    end
    local clamped = math.clamp((math.abs(math.abs(x)) * 2 - 1) * 1.1 - 0.1, -1, 1)
    if 0 <= clamped then
        var78 = 0.35 * clamped / (0.35 - clamped + 1)
    else
        var78 = -(0.8 * -clamped / (0.8 + clamped + 1))
    end
    var78 = math.clamp((var78 / 2 + 0.5) * var77, -1, 1)
    local y = arg1.y
    local var81 = 1
    var78 = 0
    if y < var78 then
        var81 = -1
    end
    if 0 <= math.clamp((math.abs(math.abs(y)) * 2 - 1) * 1.1 - 0.1, -1, 1) then
    else
    end
    var78 = -(0.8 * -math.clamp((math.abs(math.abs(y)) * 2 - 1) * 1.1 - 0.1, -1, 1) / (0.8 + math.clamp((math.abs(math.abs(y)) * 2 - 1) * 1.1 - 0.1, -1, 1) + 1)) / 2 + 0.5
    var78 *= var81
    return Vector2.new(var78, math.clamp(var78, -1, 1))
end
local var83_upvw = pcall_result1 and pcall_result2
function module_upvr.ConvertCameraModeEnumToStandard(arg1) -- Line 194
    --[[ Upvalues[1]:
        [1]: var83_upvw (read and write)
    ]]
    if arg1 == Enum.TouchCameraMovementMode.Default then
        return Enum.ComputerCameraMovementMode.Follow
    end
    if arg1 == Enum.ComputerCameraMovementMode.Default then
        return Enum.ComputerCameraMovementMode.Classic
    end
    if arg1 == Enum.TouchCameraMovementMode.Classic or arg1 == Enum.DevTouchCameraMovementMode.Classic or arg1 == Enum.DevComputerCameraMovementMode.Classic or arg1 == Enum.ComputerCameraMovementMode.Classic then
        return Enum.ComputerCameraMovementMode.Classic
    end
    if arg1 == Enum.TouchCameraMovementMode.Follow or arg1 == Enum.DevTouchCameraMovementMode.Follow or arg1 == Enum.DevComputerCameraMovementMode.Follow or arg1 == Enum.ComputerCameraMovementMode.Follow then
        return Enum.ComputerCameraMovementMode.Follow
    end
    if arg1 == Enum.TouchCameraMovementMode.Orbital or arg1 == Enum.DevTouchCameraMovementMode.Orbital or arg1 == Enum.DevComputerCameraMovementMode.Orbital or arg1 == Enum.ComputerCameraMovementMode.Orbital then
        return Enum.ComputerCameraMovementMode.Orbital
    end
    if var83_upvw and (arg1 == Enum.ComputerCameraMovementMode.CameraToggle or arg1 == Enum.DevComputerCameraMovementMode.CameraToggle) then
        return Enum.ComputerCameraMovementMode.CameraToggle
    end
    if arg1 == Enum.DevTouchCameraMovementMode.UserChoice or arg1 == Enum.DevComputerCameraMovementMode.UserChoice then
        return Enum.DevComputerCameraMovementMode.UserChoice
    end
    return Enum.ComputerCameraMovementMode.Classic
end
return module_upvr
ModuleScript Poppercam Poppercam
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:49
-- Luau version 6, Types version 3
-- Time taken: 0.004717 seconds

local tbl_upvr = {}
tbl_upvr.__index = tbl_upvr
local zero_cframe_upvr = CFrame.new()
local function _(arg1) -- Line 12, Named "cframeToAxis"
    local any_toAxisAngle_result1, any_toAxisAngle_result2 = arg1:toAxisAngle()
    return any_toAxisAngle_result1 * any_toAxisAngle_result2
end
local function _(arg1) -- Line 17, Named "axisToCFrame"
    --[[ Upvalues[1]:
        [1]: zero_cframe_upvr (readonly)
    ]]
    local magnitude = arg1.magnitude
    if 0.00001 < magnitude then
        return CFrame.fromAxisAngle(arg1, magnitude)
    end
    return zero_cframe_upvr
end
local function _(arg1) -- Line 25, Named "extractRotation"
    local _, _, _, any_components_result4, any_components_result5, any_components_result6, any_components_result7_3, any_components_result8, any_components_result9_3, any_components_result10_2, any_components_result11_2, any_components_result12_2 = arg1:components()
    return CFrame.new(0, 0, 0, any_components_result4, any_components_result5, any_components_result6, any_components_result7_3, any_components_result8, any_components_result9_3, any_components_result10_2, any_components_result11_2, any_components_result12_2)
end
local function new() -- Line 30
    --[[ Upvalues[1]:
        [1]: tbl_upvr (readonly)
    ]]
    return setmetatable({
        lastCFrame = nil;
    }, tbl_upvr)
end
tbl_upvr.new = new
function tbl_upvr.Step(arg1, arg2, arg3) -- Line 36
    --[[ Upvalues[1]:
        [1]: zero_cframe_upvr (readonly)
    ]]
    local var19 = arg1.lastCFrame or arg3
    arg1.lastCFrame = arg3
    local p_upvr = arg3.p
    local _, _, _, any_components_result4_3, any_components_result5_3, any_components_result6_2, any_components_result7_2, any_components_result8_2, any_components_result9, any_components_result10_3, any_components_result11, any_components_result12_3 = arg3:components()
    local cframe_upvr = CFrame.new(0, 0, 0, any_components_result4_3, any_components_result5_3, any_components_result6_2, any_components_result7_2, any_components_result8_2, any_components_result9, any_components_result10_3, any_components_result11, any_components_result12_3)
    local _, _, _, any_components_result4_2, any_components_result5_2, any_components_result6_3, any_components_result7, any_components_result8_3, any_components_result9_2, any_components_result10, any_components_result11_3, any_components_result12 = var19:components()
    local var46_upvr = (p_upvr - var19.p) / arg2
    local any_toAxisAngle_result1_2, any_toAxisAngle_result2_2 = cframe_upvr * CFrame.new(0, 0, 0, any_components_result4_2, any_components_result5_2, any_components_result6_3, any_components_result7, any_components_result8_3, any_components_result9_2, any_components_result10, any_components_result11_3, any_components_result12):inverse():toAxisAngle()
    local var49_upvr = any_toAxisAngle_result1_2 * any_toAxisAngle_result2_2 / arg2
    return {
        extrapolate = function(arg1_2) -- Line 51, Named "extrapolate"
            --[[ Upvalues[5]:
                [1]: var46_upvr (readonly)
                [2]: p_upvr (readonly)
                [3]: var49_upvr (readonly)
                [4]: zero_cframe_upvr (copied, readonly)
                [5]: cframe_upvr (readonly)
            ]]
            local var50 = p_upvr
            local var51 = var49_upvr * arg1_2
            local magnitude_2 = var51.magnitude
            if 0.00001 < magnitude_2 then
                var50 = CFrame.fromAxisAngle(var51, magnitude_2)
            else
                var50 = zero_cframe_upvr
            end
            return (var50 * cframe_upvr) + (var46_upvr * arg1_2 + var50)
        end;
        posVelocity = var46_upvr;
        rotVelocity = var49_upvr;
    }
end
function tbl_upvr.Reset(arg1) -- Line 64
    arg1.lastCFrame = nil
end
zero_cframe_upvr = require(script.Parent:WaitForChild("BaseOcclusion"))
local var54_upvr = zero_cframe_upvr
local setmetatable_result1_2_upvr = setmetatable({}, var54_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 74
    --[[ Upvalues[3]:
        [1]: var54_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
        [3]: tbl_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(var54_upvr.new(), setmetatable_result1_2_upvr)
    setmetatable_result1.focusExtrapolator = tbl_upvr.new()
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.GetOcclusionMode(arg1) -- Line 80
    return Enum.DevCameraOcclusionMode.Zoom
end
function setmetatable_result1_2_upvr.Enable(arg1, arg2) -- Line 84
    arg1.focusExtrapolator:Reset()
end
local module_upvr = require(script.Parent:WaitForChild("ZoomController"))
function setmetatable_result1_2_upvr.Update(arg1, arg2, arg3, arg4, arg5) -- Line 88
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    local var58 = CFrame.new(arg4.p, arg3.p) * CFrame.new(0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1)
    return var58 * CFrame.new(0, 0, module_upvr.Update(arg2, var58, arg1.focusExtrapolator:Step(arg2, var58))), arg4
end
function setmetatable_result1_2_upvr.CharacterAdded(arg1, arg2, arg3) -- Line 101
end
function setmetatable_result1_2_upvr.CharacterRemoving(arg1, arg2, arg3) -- Line 105
end
function setmetatable_result1_2_upvr.OnCameraSubjectChanged(arg1, arg2) -- Line 108
end
return setmetatable_result1_2_upvr
ModuleScript CameraToggleStateController CameraToggleStateController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:51
-- Luau version 6, Types version 3
-- Time taken: 0.004687 seconds

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
    Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
    LocalPlayer = Players.LocalPlayer
end
local module_upvr = require(script.Parent:WaitForChild("CameraUI"))
module_upvr.setCameraModeToastEnabled(false)
local module_upvr_2 = require(script.Parent:WaitForChild("CameraInput"))
local var6_upvw = false
local var7_upvw = false
local tick_result1_upvw = tick()
local var9_upvw = false
local var10_upvw = false
local mouse_upvr = LocalPlayer:GetMouse()
local UserInputService_upvr = game:GetService("UserInputService")
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
return function(arg1) -- Line 27
    --[[ Upvalues[10]:
        [1]: module_upvr_2 (readonly)
        [2]: var6_upvw (read and write)
        [3]: var7_upvw (read and write)
        [4]: tick_result1_upvw (read and write)
        [5]: module_upvr (readonly)
        [6]: var9_upvw (read and write)
        [7]: var10_upvw (read and write)
        [8]: mouse_upvr (readonly)
        [9]: UserInputService_upvr (readonly)
        [10]: UserGameSettings_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local any_getTogglePan_result1 = module_upvr_2.getTogglePan()
    if arg1 and any_getTogglePan_result1 ~= var6_upvw then
        var7_upvw = true
    end
    if var6_upvw ~= any_getTogglePan_result1 or 3 < tick() - tick_result1_upvw then
        local var15 = any_getTogglePan_result1
        if var15 then
            if tick() - tick_result1_upvw >= 3 then
            else
            end
        end
        module_upvr.setCameraModeToastOpen(true)
        if any_getTogglePan_result1 then
            var7_upvw = false
        end
        tick_result1_upvw = tick()
        var6_upvw = any_getTogglePan_result1
    end
    if arg1 ~= var9_upvw then
        if arg1 then
            var10_upvw = module_upvr_2.getTogglePan()
            module_upvr_2.setTogglePan(true)
        elseif not var7_upvw then
            module_upvr_2.setTogglePan(var10_upvw)
        end
    end
    if arg1 then
        if module_upvr_2.getTogglePan() then
            mouse_upvr.Icon = "rbxasset://textures/Cursors/CrossMouseIcon.png"
            UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.LockCenter
            UserGameSettings_upvr.RotationType = Enum.RotationType.CameraRelative
        else
            mouse_upvr.Icon = ""
            UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
            UserGameSettings_upvr.RotationType = Enum.RotationType.CameraRelative
        end
    elseif module_upvr_2.getTogglePan() then
        mouse_upvr.Icon = "rbxasset://textures/Cursors/CrossMouseIcon.png"
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.LockCenter
        UserGameSettings_upvr.RotationType = Enum.RotationType.MovementRelative
    elseif module_upvr_2.getHoldPan() then
        mouse_upvr.Icon = ""
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
        UserGameSettings_upvr.RotationType = Enum.RotationType.MovementRelative
    else
        mouse_upvr.Icon = ""
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
        UserGameSettings_upvr.RotationType = Enum.RotationType.MovementRelative
    end
    var9_upvw = arg1
end
ModuleScript CameraInput CameraInput
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:52
-- Luau version 6, Types version 3
-- Time taken: 0.023003 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 2
    return UserSettings():IsUserFeatureEnabled("UserCameraInputRefactor2")
end)
local UserInputService_upvr = game:GetService("UserInputService")
local BindableEvent_upvw = Instance.new("BindableEvent")
local BindableEvent_upvr_2 = Instance.new("BindableEvent")
UserInputService_upvr.InputBegan:Connect(function(arg1, arg2) -- Line 38
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvw (readonly)
    ]]
    if not arg2 and arg1.UserInputType == Enum.UserInputType.MouseButton2 then
        BindableEvent_upvw:Fire()
    end
end)
UserInputService_upvr.InputEnded:Connect(function(arg1, arg2) -- Line 44
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr_2 (readonly)
    ]]
    if arg1.UserInputType == Enum.UserInputType.MouseButton2 then
        BindableEvent_upvr_2:Fire()
    end
end)
BindableEvent_upvw = nil
function BindableEvent_upvw(arg1) -- Line 55, Named "thumbstickCurve"
    return math.sign(arg1) * math.clamp((math.exp((math.abs(arg1) - 0.1) / 0.9 * 2) - 1) / 6.38905609893065, 0, 1)
end
function BindableEvent_upvr_2(arg1) -- Line 69, Named "adjustTouchPitchSensitivity"
    local CurrentCamera = workspace.CurrentCamera
    if not CurrentCamera then
        return arg1
    end
    local any_ToEulerAnglesYXZ_result1 = CurrentCamera.CFrame:ToEulerAnglesYXZ()
    if 0 <= arg1.Y * any_ToEulerAnglesYXZ_result1 then
        return arg1
    end
    return Vector2.new(1, (1 - (math.abs(any_ToEulerAnglesYXZ_result1) * 2 / math.pi) ^ 0.75) * 0.75 + 0.25) * arg1
end
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local function isInDynamicThumbstickArea_upvr(arg1) -- Line 95, Named "isInDynamicThumbstickArea"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local var26 = LocalPlayer_upvr:FindFirstChildOfClass("PlayerGui")
    if var26 then
        var26 = LocalPlayer_upvr:FindFirstChildOfClass("PlayerGui"):FindFirstChild("TouchGui")
    end
    local var27 = var26
    if var27 then
        var27 = var26:FindFirstChild("TouchControlFrame")
    end
    local var28 = var27
    if var28 then
        var28 = var27:FindFirstChild("DynamicThumbstickFrame")
    end
    if not var28 then
        return false
    end
    if not var26.Enabled then
        return false
    end
    local AbsolutePosition_2 = var28.AbsolutePosition
    local var30 = AbsolutePosition_2 + var28.AbsoluteSize
    local var31 = false
    if AbsolutePosition_2.X <= arg1.X then
        var31 = false
        if AbsolutePosition_2.Y <= arg1.Y then
            var31 = false
            if arg1.X <= var30.X then
                if arg1.Y > var30.Y then
                    var31 = false
                else
                    var31 = true
                end
            end
        end
    end
    return var31
end
local module = {}
local tbl_upvr = {
    Thumbstick2 = Vector2.new();
}
local tbl_upvr_4 = {
    Left = 0;
    Right = 0;
    I = 0;
    O = 0;
}
local tbl_upvr_3 = {
    Movement = Vector2.new();
    Wheel = 0;
    Pan = Vector2.new();
    Pinch = 0;
}
local tbl_upvr_2 = {
    Move = Vector2.new();
    Pinch = 0;
}
local BindableEvent_upvr = Instance.new("BindableEvent")
module.gamepadZoomPress = BindableEvent_upvr.Event
local function getPanning() -- Line 148
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    for _, v in pairs(UserInputService_upvr:GetMouseButtonsPressed()) do
        if v.UserInputType == Enum.UserInputType.MouseButton2 then
            return true
        end
    end
    return false
end
module.getPanning = getPanning
local var43_upvr = Vector2.new(1, 0.77) * 0.06981317007977318
local var44_upvr = Vector2.new(1, 0.77) * 0.008726646259971648
local var45_upvr = Vector2.new(1, 0.77) * 0.12217304763960307
local var46_upvr = Vector2.new(1, 0.66) * 0.017453292519943295
function module.getRotation() -- Line 157
    --[[ Upvalues[9]:
        [1]: tbl_upvr_4 (readonly)
        [2]: tbl_upvr (readonly)
        [3]: tbl_upvr_3 (readonly)
        [4]: BindableEvent_upvr_2 (readonly)
        [5]: tbl_upvr_2 (readonly)
        [6]: var43_upvr (readonly)
        [7]: var44_upvr (readonly)
        [8]: var45_upvr (readonly)
        [9]: var46_upvr (readonly)
    ]]
    return Vector2.new(tbl_upvr_4.Right - tbl_upvr_4.Left, 0) * 0.03490658503988659 + tbl_upvr.Thumbstick2 * var43_upvr + tbl_upvr_3.Movement * var44_upvr + tbl_upvr_3.Pan * var45_upvr + BindableEvent_upvr_2(tbl_upvr_2.Move) * var46_upvr
end
function module.getZoomDelta() -- Line 174
    --[[ Upvalues[3]:
        [1]: tbl_upvr_4 (readonly)
        [2]: tbl_upvr_3 (readonly)
        [3]: tbl_upvr_2 (readonly)
    ]]
    return (tbl_upvr_4.O - tbl_upvr_4.I) * 0.1 + (-tbl_upvr_3.Wheel + tbl_upvr_3.Pinch) * 1 + -tbl_upvr_2.Pinch * 0.04
end
local function thumbstick_upvr(arg1, arg2, arg3) -- Line 182, Named "thumbstick"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: BindableEvent_upvw (read and write)
    ]]
    local Position = arg3.Position
    tbl_upvr[arg3.KeyCode.Name] = Vector2.new(BindableEvent_upvw(Position.X), -BindableEvent_upvw(Position.Y))
end
local function mouseMove_upvr(arg1, arg2, arg3) -- Line 187, Named "mouseMove"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_3 (readonly)
    ]]
    local Delta = arg3.Delta
    tbl_upvr_3.Movement = Vector2.new(Delta.X, Delta.Y)
    return Enum.ContextActionResult.Pass
end
local function _(arg1, arg2, arg3) -- Line 193, Named "mouseWheel"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_3 (readonly)
    ]]
    tbl_upvr_3.Wheel = arg3.Position.Z
    return Enum.ContextActionResult.Pass
end
local function keypress_upvr(arg1, arg2, arg3) -- Line 198, Named "keypress"
    --[[ Upvalues[1]:
        [1]: tbl_upvr_4 (readonly)
    ]]
    local KeyCode = arg3.KeyCode
    if arg2 == Enum.UserInputState.Begin then
        KeyCode = 1
    else
        KeyCode = 0
    end
    tbl_upvr_4[KeyCode.Name] = KeyCode
end
local function gamepadZoomPress_upvr(arg1, arg2, arg3) -- Line 202, Named "gamepadZoomPress"
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    if arg2 == Enum.UserInputState.Begin then
        BindableEvent_upvr:Fire()
    end
end
local function resetInputDevices_upvr() -- Line 208, Named "resetInputDevices"
    --[[ Upvalues[4]:
        [1]: tbl_upvr (readonly)
        [2]: tbl_upvr_4 (readonly)
        [3]: tbl_upvr_3 (readonly)
        [4]: tbl_upvr_2 (readonly)
    ]]
    for _, v_2 in pairs({tbl_upvr, tbl_upvr_4, tbl_upvr_3, tbl_upvr_2}) do
        for i_3, v_3 in pairs(v_2) do
            if type(v_3) == "boolean" then
                v_2[i_3] = false
            else
                v_2[i_3] *= 0
            end
        end
    end
end
local tbl_upvr_5 = {}
local var62_upvw
local var63_upvw
local function touchBegan_upvw(arg1, arg2) -- Line 232, Named "touchBegan"
    --[[ Upvalues[3]:
        [1]: var62_upvw (read and write)
        [2]: isInDynamicThumbstickArea_upvr (readonly)
        [3]: tbl_upvr_5 (readonly)
    ]]
    local var65
    if arg1.UserInputType ~= Enum.UserInputType.Touch then
        var65 = false
    else
        var65 = true
    end
    assert(var65)
    if arg1.UserInputState ~= Enum.UserInputState.Begin then
        var65 = false
    else
        var65 = true
    end
    assert(var65)
    if var62_upvw == nil then
        var65 = arg1.Position
        if isInDynamicThumbstickArea_upvr(var65) and not arg2 then
            var62_upvw = arg1
            return
        end
    end
    tbl_upvr_5[arg1] = arg2
end
local function touchEnded_upvw(arg1, arg2) -- Line 248, Named "touchEnded"
    --[[ Upvalues[3]:
        [1]: var62_upvw (read and write)
        [2]: tbl_upvr_5 (readonly)
        [3]: var63_upvw (read and write)
    ]]
    local var66
    if arg1.UserInputType ~= Enum.UserInputType.Touch then
        var66 = false
    else
        var66 = true
    end
    assert(var66)
    if arg1.UserInputState ~= Enum.UserInputState.End then
        var66 = false
    else
        var66 = true
    end
    assert(var66)
    if arg1 == var62_upvw then
        var62_upvw = nil
    end
    var66 = tbl_upvr_5
    if var66[arg1] == false then
        var63_upvw = nil
    end
    var66 = nil
    tbl_upvr_5[arg1] = var66
end
local function touchChanged_upvw(arg1, arg2) -- Line 266, Named "touchChanged"
    --[[ Upvalues[4]:
        [1]: var62_upvw (read and write)
        [2]: tbl_upvr_5 (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: var63_upvw (read and write)
    ]]
    local var80
    if arg1.UserInputType ~= Enum.UserInputType.Touch then
        var80 = false
    else
        var80 = true
    end
    assert(var80)
    if arg1.UserInputState ~= Enum.UserInputState.Change then
        var80 = false
    else
        var80 = true
    end
    assert(var80)
    if arg1 == var62_upvw then
    else
        var80 = tbl_upvr_5
        if var80[arg1] == nil then
            tbl_upvr_5[arg1] = arg2
        end
        local tbl_2 = {}
        var80 = pairs(tbl_upvr_5)
        local pairs_result1_2, pairs_result2_4, pairs_result3_2 = pairs(tbl_upvr_5)
        for i_4, v_4 in pairs_result1_2, pairs_result2_4, pairs_result3_2 do
            if not v_4 then
                table.insert(tbl_2, i_4)
            end
        end
        pairs_result1_2 = #tbl_2
        if pairs_result1_2 == 1 then
            pairs_result1_2 = tbl_upvr_5[arg1]
            if pairs_result1_2 == false then
                pairs_result1_2 = arg1.Delta
                i_4 = pairs_result1_2.X
                v_4 = pairs_result1_2.Y
                tbl_upvr_2.Move = Vector2.new(i_4, v_4)
            end
        end
        pairs_result1_2 = #tbl_2
        if pairs_result1_2 == 2 then
            i_4 = tbl_2[1]
            v_4 = tbl_2[2]
            i_4 = v_4.Position
            pairs_result1_2 = (i_4.Position - i_4).Magnitude
            if var63_upvw then
                i_4 = var63_upvw
                tbl_upvr_2.Pinch = pairs_result1_2 - i_4
            end
            var63_upvw = pairs_result1_2
            return
        end
        pairs_result1_2 = nil
        var63_upvw = pairs_result1_2
    end
end
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
function tbl_upvr_5(arg1, arg2, arg3, arg4) -- Line 311, Named "pointerAction"
    --[[ Upvalues[2]:
        [1]: UserGameSettings_upvr (readonly)
        [2]: tbl_upvr_3 (readonly)
    ]]
    if not arg4 then
        tbl_upvr_3.Wheel = arg1
        tbl_upvr_3.Pan = arg2 * Vector2.new(1, UserGameSettings_upvr:GetCameraYInvertValue())
        tbl_upvr_3.Pinch = -arg3
    end
end
local function inputBegan_upvr(arg1, arg2) -- Line 321, Named "inputBegan"
    --[[ Upvalues[1]:
        [1]: touchBegan_upvw (read and write)
    ]]
    if arg1.UserInputType == Enum.UserInputType.Touch then
        touchBegan_upvw(arg1, arg2)
    end
end
local function inputChanged_upvr(arg1, arg2) -- Line 327, Named "inputChanged"
    --[[ Upvalues[1]:
        [1]: touchChanged_upvw (read and write)
    ]]
    if arg1.UserInputType == Enum.UserInputType.Touch then
        touchChanged_upvw(arg1, arg2)
    end
end
local function inputEnded_upvr(arg1, arg2) -- Line 333, Named "inputEnded"
    --[[ Upvalues[1]:
        [1]: touchEnded_upvw (read and write)
    ]]
    if arg1.UserInputType == Enum.UserInputType.Touch then
        touchEnded_upvw(arg1, arg2)
    end
end
local var86_upvw = false
local var87_upvw = pcall_result1 and pcall_result2
local ContextActionService_upvr = game:GetService("ContextActionService")
local Value_upvr = Enum.ContextActionPriority.Default.Value
local tbl_upvw = {}
function module.setInputEnabled(arg1) -- Line 341
    --[[ Upvalues[15]:
        [1]: var87_upvw (read and write)
        [2]: var86_upvw (read and write)
        [3]: resetInputDevices_upvr (readonly)
        [4]: ContextActionService_upvr (readonly)
        [5]: thumbstick_upvr (readonly)
        [6]: Value_upvr (readonly)
        [7]: mouseMove_upvr (readonly)
        [8]: keypress_upvr (readonly)
        [9]: gamepadZoomPress_upvr (readonly)
        [10]: tbl_upvw (read and write)
        [11]: UserInputService_upvr (readonly)
        [12]: inputBegan_upvr (readonly)
        [13]: inputChanged_upvr (readonly)
        [14]: inputEnded_upvr (readonly)
        [15]: tbl_upvr_5 (readonly)
    ]]
    assert(var87_upvw)
    if var86_upvw == arg1 then
    else
        var86_upvw = arg1
        if var86_upvw then
            resetInputDevices_upvr()
            ContextActionService_upvr:BindActionAtPriority("RbxCameraThumbstick", thumbstick_upvr, false, Value_upvr, Enum.KeyCode.Thumbstick2)
            ContextActionService_upvr:BindActionAtPriority("RbxCameraMouseMove", mouseMove_upvr, false, Value_upvr, Enum.UserInputType.MouseMovement)
            ContextActionService_upvr:BindActionAtPriority("RbxCameraKeypress", keypress_upvr, false, Value_upvr, Enum.KeyCode.Left, Enum.KeyCode.Right, Enum.KeyCode.I, Enum.KeyCode.O)
            ContextActionService_upvr:BindAction("RbxCameraGamepadZoom", gamepadZoomPress_upvr, false, Enum.KeyCode.ButtonR3)
            table.insert(tbl_upvw, UserInputService_upvr.InputBegan:Connect(inputBegan_upvr))
            table.insert(tbl_upvw, UserInputService_upvr.InputChanged:Connect(inputChanged_upvr))
            table.insert(tbl_upvw, UserInputService_upvr.InputEnded:Connect(inputEnded_upvr))
            table.insert(tbl_upvw, UserInputService_upvr.PointerAction:Connect(tbl_upvr_5))
            return
        end
        ContextActionService_upvr:UnbindAction("RbxCameraThumbstick")
        ContextActionService_upvr:UnbindAction("RbxCameraMouseMove")
        ContextActionService_upvr:UnbindAction("RbxCameraMouseWheel")
        ContextActionService_upvr:UnbindAction("RbxCameraKeypress")
        resetInputDevices_upvr()
        for _, v_5 in pairs(tbl_upvw) do
            v_5:Disconnect()
        end
        tbl_upvw = {}
    end
end
function module.getInputEnabled() -- Line 406
    --[[ Upvalues[1]:
        [1]: var86_upvw (read and write)
    ]]
    return var86_upvw
end
function module.resetInputForFrameEnd() -- Line 410
    --[[ Upvalues[2]:
        [1]: tbl_upvr_3 (readonly)
        [2]: tbl_upvr_2 (readonly)
    ]]
    tbl_upvr_3.Movement = Vector2.new()
    tbl_upvr_2.Move = Vector2.new()
    tbl_upvr_2.Pinch = 0
    tbl_upvr_3.Wheel = 0
    tbl_upvr_3.Pan = Vector2.new()
    tbl_upvr_3.Pinch = 0
end
UserInputService_upvr.WindowFocused:Connect(resetInputDevices_upvr)
UserInputService_upvr.WindowFocusReleased:Connect(resetInputDevices_upvr)
local var96_upvw = false
local var97_upvw = false
function module.getHoldPan() -- Line 431
    --[[ Upvalues[1]:
        [1]: var96_upvw (read and write)
    ]]
    return var96_upvw
end
function module.getTogglePan() -- Line 435
    --[[ Upvalues[1]:
        [1]: var97_upvw (read and write)
    ]]
    return var97_upvw
end
function module.getPanning() -- Line 439
    --[[ Upvalues[2]:
        [1]: var97_upvw (read and write)
        [2]: var96_upvw (read and write)
    ]]
    local var98 = var97_upvw
    if not var98 then
        var98 = var96_upvw
    end
    return var98
end
function module.setTogglePan(arg1) -- Line 443
    --[[ Upvalues[1]:
        [1]: var97_upvw (read and write)
    ]]
    var97_upvw = arg1
end
local var99_upvw = false
local var100_upvw
local var101_upvw
local Event_upvw_2 = BindableEvent_upvw.Event
local var103_upvw = 0
local Event_upvw = BindableEvent_upvr_2.Event
function module.enableCameraToggleInput() -- Line 451
    --[[ Upvalues[9]:
        [1]: var99_upvw (read and write)
        [2]: var96_upvw (read and write)
        [3]: var97_upvw (read and write)
        [4]: var100_upvw (read and write)
        [5]: var101_upvw (read and write)
        [6]: Event_upvw_2 (read and write)
        [7]: var103_upvw (read and write)
        [8]: Event_upvw (read and write)
        [9]: UserInputService_upvr (readonly)
    ]]
    if var99_upvw then
    else
        var99_upvw = true
        var96_upvw = false
        var97_upvw = false
        if var100_upvw then
            var100_upvw:Disconnect()
        end
        if var101_upvw then
            var101_upvw:Disconnect()
        end
        var100_upvw = Event_upvw_2:Connect(function() -- Line 468
            --[[ Upvalues[2]:
                [1]: var96_upvw (copied, read and write)
                [2]: var103_upvw (copied, read and write)
            ]]
            var96_upvw = true
            var103_upvw = tick()
        end)
        var101_upvw = Event_upvw:Connect(function() -- Line 473
            --[[ Upvalues[4]:
                [1]: var96_upvw (copied, read and write)
                [2]: var103_upvw (copied, read and write)
                [3]: var97_upvw (copied, read and write)
                [4]: UserInputService_upvr (copied, readonly)
            ]]
            var96_upvw = false
            if tick() - var103_upvw < 0.3 and (var97_upvw or UserInputService_upvr:GetMouseDelta().Magnitude < 2) then
                var97_upvw = not var97_upvw
            end
        end)
    end
end
function module.disableCameraToggleInput() -- Line 481
    --[[ Upvalues[3]:
        [1]: var99_upvw (read and write)
        [2]: var100_upvw (read and write)
        [3]: var101_upvw (read and write)
    ]]
    if not var99_upvw then
    else
        var99_upvw = false
        if var100_upvw then
            var100_upvw:Disconnect()
            var100_upvw = nil
        end
        if var101_upvw then
            var101_upvw:Disconnect()
            var101_upvw = nil
        end
    end
end
return module
ModuleScript BaseOcclusion BaseOcclusion
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:54
-- Luau version 6, Types version 3
-- Time taken: 0.002278 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
setmetatable(module_upvr, {
    __call = function(arg1, ...) -- Line 10, Named "__call"
        --[[ Upvalues[1]:
            [1]: module_upvr (readonly)
        ]]
        return module_upvr.new(...)
    end;
})
function module_upvr.new() -- Line 15
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return setmetatable({}, module_upvr)
end
function module_upvr.CharacterAdded(arg1, arg2, arg3) -- Line 21
end
function module_upvr.CharacterRemoving(arg1, arg2, arg3) -- Line 25
end
function module_upvr.OnCameraSubjectChanged(arg1, arg2) -- Line 28
end
function module_upvr.GetOcclusionMode(arg1) -- Line 32
    warn("BaseOcclusion GetOcclusionMode must be overridden by derived classes")
    return nil
end
function module_upvr.Enable(arg1, arg2) -- Line 38
    warn("BaseOcclusion Enable must be overridden by derived classes")
end
function module_upvr.Update(arg1, arg2, arg3, arg4) -- Line 42
    warn("BaseOcclusion Update must be overridden by derived classes")
    return arg3, arg4
end
return module_upvr
ModuleScript ZoomController ZoomController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:55
-- Luau version 6, Types version 3
-- Time taken: 0.004614 seconds

local clamp_upvr = math.clamp
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local var3_upvw
local var4_upvw
local function updateBounds() -- Line 22
    --[[ Upvalues[3]:
        [1]: var3_upvw (read and write)
        [2]: LocalPlayer_upvr (readonly)
        [3]: var4_upvw (read and write)
    ]]
    var3_upvw = LocalPlayer_upvr.CameraMinZoomDistance
    var4_upvw = LocalPlayer_upvr.CameraMaxZoomDistance
end
var3_upvw = LocalPlayer_upvr.CameraMinZoomDistance
var4_upvw = LocalPlayer_upvr.CameraMaxZoomDistance
local var5_upvw = var4_upvw
LocalPlayer_upvr:GetPropertyChangedSignal("CameraMinZoomDistance"):Connect(updateBounds)
LocalPlayer_upvr:GetPropertyChangedSignal("CameraMaxZoomDistance"):Connect(updateBounds)
LocalPlayer_upvr = {}
local var6_upvr = LocalPlayer_upvr
var6_upvr.__index = var6_upvr
function var6_upvr.new(arg1, arg2, arg3, arg4) -- Line 36
    --[[ Upvalues[2]:
        [1]: clamp_upvr (readonly)
        [2]: var6_upvr (readonly)
    ]]
    local clamp_upvr_result1 = clamp_upvr(arg2, arg3, arg4)
    local module_2 = {}
    module_2.freq = arg1
    module_2.x = clamp_upvr_result1
    module_2.v = 0
    module_2.minValue = arg3
    module_2.maxValue = arg4
    module_2.goal = clamp_upvr_result1
    return setmetatable(module_2, var6_upvr)
end
local exp_upvr = math.exp
function var6_upvr.Step(arg1, arg2) -- Line 48
    --[[ Upvalues[1]:
        [1]: exp_upvr (readonly)
    ]]
    local var10 = arg1.freq * 2 * math.pi
    local v = arg1.v
    local minValue = arg1.minValue
    local maxValue = arg1.maxValue
    local goal_2 = arg1.goal
    local var15 = goal_2 - arg1.x
    local var16 = var10 * arg2
    local var9_result1 = exp_upvr(-var16)
    local var18 = goal_2 + (v * arg2 - var15 * (var16 + 1)) * var9_result1
    local var19 = ((var15 * var10 - v) * var16 + v) * var9_result1
    if var18 < minValue then
        var18 = minValue
        var19 = 0
    elseif maxValue < var18 then
        var18 = maxValue
        var19 = 0
    end
    arg1.x = var18
    arg1.v = var19
    return var18
end
local any_new_result1_upvr = var6_upvr.new(4.5, 12.5, 0.5, var5_upvw)
local function _(arg1, arg2, arg3, arg4) -- Line 86, Named "stepTargetZoom"
    --[[ Upvalues[1]:
        [1]: clamp_upvr (readonly)
    ]]
    arg1 = clamp_upvr(arg1 + arg2 * (1 + arg1 * 0.0375), arg3, arg4)
    local var21 = arg1
    local var22
    if var21 < var22 then
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var22 = arg3
            return var22
        end
        if arg2 > 0 or not INLINED() then
            var22 = 1
        end
        var21 = var22
    end
    return var21
end
local var23_upvw = 0
local module = {}
local max_upvr = math.max
local module_3_upvr = require(script:WaitForChild("Popper"))
local min_upvr = math.min
function module.Update(arg1, arg2, arg3) -- Line 97
    --[[ Upvalues[8]:
        [1]: any_new_result1_upvr (readonly)
        [2]: var23_upvw (read and write)
        [3]: var3_upvw (read and write)
        [4]: var5_upvw (read and write)
        [5]: clamp_upvr (readonly)
        [6]: max_upvr (readonly)
        [7]: module_3_upvr (readonly)
        [8]: min_upvr (readonly)
    ]]
    local var28 = math.huge
    if 1 < any_new_result1_upvr.goal then
        local goal = any_new_result1_upvr.goal
        local var30 = var23_upvw
        local var31 = var3_upvw
        goal = clamp_upvr(goal + var30 * (1 + goal * 0.0375), var31, var5_upvw)
        local var32 = goal
        local var33
        if var32 < var33 then
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                var33 = var31
                return var33
            end
            if var30 > 0 or not INLINED_2() then
                var33 = 1
            end
            var32 = var33
        end
        var28 = module_3_upvr(arg2 * CFrame.new(0, 0, 0.5), max_upvr(any_new_result1_upvr.x, var32) - 0.5, arg3) + 0.5
    end
    any_new_result1_upvr.minValue = 0.5
    any_new_result1_upvr.maxValue = min_upvr(var5_upvw, var28)
    return any_new_result1_upvr:Step(arg1)
end
function module.GetZoomRadius() -- Line 121
    --[[ Upvalues[1]:
        [1]: any_new_result1_upvr (readonly)
    ]]
    return any_new_result1_upvr.x
end
function module.SetZoomParameters(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: any_new_result1_upvr (readonly)
        [2]: var23_upvw (read and write)
    ]]
    any_new_result1_upvr.goal = arg1
    var23_upvw = arg2
end
return module
ModuleScript Popper Popper
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:56
-- Luau version 6, Types version 3
-- Time taken: 0.031639 seconds

-- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
local Players = game:GetService("Players")
local CurrentCamera_upvr = game.Workspace.CurrentCamera
local tan_upvr = math.tan
local rad_upvr = math.rad
local new_upvr = Ray.new
local function _(arg1) -- Line 31, Named "getTotalTransparency"
    return 1 - (1 - arg1.Transparency) * (1 - arg1.LocalTransparencyModifier)
end
local function _(arg1, arg2) -- Line 39, Named "eraseFromEnd"
    for i = #arg1, arg2 + 1, -1 do
        arg1[i] = nil
    end
end
local var23_upvw
local var24_upvw
local function updateProjection() -- Line 53
    --[[ Upvalues[5]:
        [1]: CurrentCamera_upvr (readonly)
        [2]: rad_upvr (readonly)
        [3]: var23_upvw (read and write)
        [4]: tan_upvr (readonly)
        [5]: var24_upvw (read and write)
    ]]
    local ViewportSize_2 = CurrentCamera_upvr.ViewportSize
    var23_upvw = tan_upvr(rad_upvr(CurrentCamera_upvr.FieldOfView) / 2) * 2
    var24_upvw = ViewportSize_2.X / ViewportSize_2.Y * var23_upvw
end
CurrentCamera_upvr:GetPropertyChangedSignal("FieldOfView"):Connect(updateProjection)
CurrentCamera_upvr:GetPropertyChangedSignal("ViewportSize"):Connect(updateProjection)
local ViewportSize = CurrentCamera_upvr.ViewportSize
var23_upvw = tan_upvr(rad_upvr(CurrentCamera_upvr.FieldOfView) / 2) * 2
local var27_upvw = var23_upvw
var24_upvw = ViewportSize.X / ViewportSize.Y * var27_upvw
local NearPlaneZ_upvw = CurrentCamera_upvr.NearPlaneZ
local function playerAdded() -- Line 83
    --[[ Upvalues[2]:
        [1]: NearPlaneZ_upvw (read and write)
        [2]: CurrentCamera_upvr (readonly)
    ]]
    NearPlaneZ_upvw = CurrentCamera_upvr.NearPlaneZ
end
CurrentCamera_upvr:GetPropertyChangedSignal("NearPlaneZ"):Connect(playerAdded)
local tbl_3_upvw = {}
local tbl_upvr = {}
local function _() -- Line 99, Named "refreshIgnoreList"
    --[[ Upvalues[2]:
        [1]: tbl_3_upvw (read and write)
        [2]: tbl_upvr (readonly)
    ]]
    local var36 = 1
    tbl_3_upvw = {}
    for _, v in pairs(tbl_upvr) do
        tbl_3_upvw[var36] = v
        var36 += 1
    end
end
function playerAdded(arg1) -- Line 117
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: tbl_3_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg1.CharacterAdded:Connect(function(arg1_2) -- Line 119, Named "characterAdded"
        --[[ Upvalues[3]:
            [1]: tbl_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: tbl_3_upvw (copied, read and write)
        ]]
        tbl_upvr[arg1] = arg1_2
        local var53 = 1
        tbl_3_upvw = {}
        for _, v_2 in pairs(tbl_upvr) do
            tbl_3_upvw[var53] = v_2
            var53 += 1
        end
    end)
    arg1.CharacterRemoving:Connect(function() -- Line 127, Named "characterRemoving"
        --[[ Upvalues[3]:
            [1]: tbl_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: tbl_3_upvw (copied, read and write)
        ]]
        tbl_upvr[arg1] = nil
        local var61 = 1
        tbl_3_upvw = {}
        for _, v_3 in pairs(tbl_upvr) do
            tbl_3_upvw[var61] = v_3
            var61 += 1
        end
    end)
    if arg1.Character then
        tbl_upvr[arg1] = arg1.Character
        tbl_3_upvw = {}
        for _, v_4 in pairs(tbl_upvr) do
            tbl_3_upvw[1] = v_4
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            local var68
        end
    end
end
local var40 = playerAdded
Players.PlayerAdded:Connect(var40)
Players.PlayerRemoving:Connect(function(arg1) -- Line 151, Named "playerRemoving"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: tbl_3_upvw (read and write)
    ]]
    tbl_upvr[arg1] = nil
    local var73 = 1
    tbl_3_upvw = {}
    for _, v_5 in pairs(tbl_upvr) do
        tbl_3_upvw[var73] = v_5
        var73 += 1
    end
end)
for _, v_6 in ipairs(Players:GetPlayers()) do
    var40(v_6)
end
tbl_3_upvw = {}
local var80_upvw = tbl_3_upvw
for _, v_7 in pairs(tbl_upvr) do
    var80_upvw[1] = v_7
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    local var84
end
tbl_upvr = nil
local var85_upvw = tbl_upvr
local var86_upvw
CurrentCamera_upvr:GetPropertyChangedSignal("CameraSubject"):Connect(function() -- Line 219
    --[[ Upvalues[2]:
        [1]: CurrentCamera_upvr (readonly)
        [2]: var86_upvw (read and write)
    ]]
    local CameraSubject = CurrentCamera_upvr.CameraSubject
    if CameraSubject:IsA("Humanoid") then
        var86_upvw = CameraSubject.RootPart
    else
        if CameraSubject:IsA("BasePart") then
            var86_upvw = CameraSubject
            return
        end
        var86_upvw = nil
    end
end)
local var89_upvw
local function _() -- Line 243, Named "getGrassObject"
    --[[ Upvalues[1]:
        [1]: var89_upvw (read and write)
    ]]
    if not var89_upvw or not var89_upvw.Parent then
        local pitch_3 = workspace:FindFirstChild("pitch")
        if pitch_3 then
            local main_2 = pitch_3:FindFirstChild("main")
            if main_2 then
                var89_upvw = main_2:FindFirstChild("Grass")
            end
        end
    end
    return var89_upvw
end
local function canOcclude_upvr(arg1) -- Line 258, Named "canOcclude"
    --[[ Upvalues[2]:
        [1]: var89_upvw (read and write)
        [2]: var85_upvw (read and write)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local function INLINED_3() -- Internal function, doesn't exist in bytecode
        local pitch = workspace:FindFirstChild("pitch")
        return pitch
    end
    if not var89_upvw or not var89_upvw.Parent or INLINED_3() then
        local main_4 = pitch:FindFirstChild("main")
        if main_4 then
            var89_upvw = main_4:FindFirstChild("Grass")
        end
    end
    local var100 = var89_upvw
    local var101
    local function INLINED_4() -- Internal function, doesn't exist in bytecode
        var101 = arg1:GetRootPart() or arg1
        return arg1:IsDescendantOf(var100)
    end
    if var100 and (INLINED_4() or var101 == var100) then
        if var85_upvw == var101 then
        else
        end
        return true
    end
    var101 = false
    if 1 - (1 - arg1.Transparency) * (1 - arg1.LocalTransparencyModifier) < 0.25 then
        var101 = arg1.CanCollide
        if var101 then
            var101 = false
            if var85_upvw ~= (arg1:GetRootPart() or arg1) then
                var101 = not arg1:IsA("TrussPart")
            end
        end
    end
    return var101
end
local tbl_2_upvr = {Vector2.new(0.4, 0), Vector2.new(-0.4, 0), Vector2.new(0, -0.4), Vector2.new(0, 0.4), Vector2.new(0, 0.2)}
local function getCollisionPoint_upvr(arg1, arg2) -- Line 306, Named "getCollisionPoint"
    --[[ Upvalues[2]:
        [1]: var80_upvw (read and write)
        [2]: new_upvr (readonly)
    ]]
    repeat
        local workspace_FindPartOnRayWithIgnoreList_result1, workspace_FindPartOnRayWithIgnoreList_result2_2 = workspace:FindPartOnRayWithIgnoreList(new_upvr(arg1, arg2), var80_upvw, false, true)
        if workspace_FindPartOnRayWithIgnoreList_result1 then
            if workspace_FindPartOnRayWithIgnoreList_result1.CanCollide then
                for i_9 = #var80_upvw, #var80_upvw + 1, -1 do
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    var80_upvw[i_9] = nil
                    local _
                end
                return workspace_FindPartOnRayWithIgnoreList_result2_2, true
            end
            var80_upvw[#var80_upvw + 1] = workspace_FindPartOnRayWithIgnoreList_result1
        end
    until not workspace_FindPartOnRayWithIgnoreList_result1
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    for i_10 = #var80_upvw, #var80_upvw + 1, -1 do
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var80_upvw[i_10] = nil
        local _
    end
    return arg1 + arg2, false
end
local function queryPoint_upvr(arg1, arg2, arg3, arg4) -- Line 350, Named "queryPoint"
    --[[ Upvalues[4]:
        [1]: var80_upvw (read and write)
        [2]: NearPlaneZ_upvw (read and write)
        [3]: new_upvr (readonly)
        [4]: canOcclude_upvr (readonly)
    ]]
    debug.profilebegin("queryPoint")
    local var113 = arg3 + NearPlaneZ_upvw
    local var114 = arg1 + arg2 * var113
    local var115 = arg1
    local var116
    repeat
        local workspace_FindPartOnRayWithIgnoreList_result1_2, workspace_FindPartOnRayWithIgnoreList_result2 = workspace:FindPartOnRayWithIgnoreList(new_upvr(var115, var114 - var115), var80_upvw, false, true)
        local var119
        if workspace_FindPartOnRayWithIgnoreList_result1_2 then
            if canOcclude_upvr(workspace_FindPartOnRayWithIgnoreList_result1_2) then
                local tbl = {workspace_FindPartOnRayWithIgnoreList_result1_2}
                if workspace:FindPartOnRayWithWhitelist(new_upvr(var114, workspace_FindPartOnRayWithIgnoreList_result2 - var114), tbl, true) then
                    local var121 = false
                    if arg4 then
                        local workspace_FindPartOnRayWithWhitelist_result1 = workspace:FindPartOnRayWithWhitelist(new_upvr(arg4, var114 - arg4), tbl, true)
                        if not workspace_FindPartOnRayWithWhitelist_result1 then
                            workspace_FindPartOnRayWithWhitelist_result1 = workspace:FindPartOnRayWithWhitelist(new_upvr(var114, arg4 - var114), tbl, true)
                        end
                        var121 = workspace_FindPartOnRayWithWhitelist_result1
                    end
                    if var121 then
                        var119 = (workspace_FindPartOnRayWithIgnoreList_result2 - arg1).Magnitude
                        local var123 = var119
                    elseif var113 < var116 then
                        var116 = (workspace_FindPartOnRayWithIgnoreList_result2 - arg1).Magnitude
                        -- KONSTANTWARNING: GOTO [84] #72
                    end
                else
                    var123 = (workspace_FindPartOnRayWithIgnoreList_result2 - arg1).Magnitude
                end
            end
            var80_upvw[#var80_upvw + 1] = workspace_FindPartOnRayWithIgnoreList_result1_2
        end
    until var123 < math.huge and not workspace_FindPartOnRayWithIgnoreList_result1_2
    for i_11 = #var80_upvw, #var80_upvw + 1, -1 do
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var80_upvw[i_11] = nil
        local _
    end
    debug.profileend()
    return var116 - NearPlaneZ_upvw, var123 - NearPlaneZ_upvw
end
local function queryViewport_upvr(arg1, arg2) -- Line 458, Named "queryViewport"
    --[[ Upvalues[5]:
        [1]: CurrentCamera_upvr (readonly)
        [2]: var24_upvw (read and write)
        [3]: var27_upvw (read and write)
        [4]: NearPlaneZ_upvw (read and write)
        [5]: queryPoint_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    debug.profilebegin("queryViewport")
    local ViewportSize_3 = CurrentCamera_upvr.ViewportSize
    local var134
    for i_12 = 0, 1 do
        for i_13 = 0, 1 do
            local queryPoint_upvr_result1, queryPoint_upvr_result2 = queryPoint_upvr(arg1.p + NearPlaneZ_upvw * ((arg1.rightVector) * ((i_12 - 0.5) * var24_upvw) + (arg1.upVector) * ((i_13 - 0.5) * var27_upvw)), -arg1.lookVector, arg2, CurrentCamera_upvr:ViewportPointToRay(ViewportSize_3.x * i_12, ViewportSize_3.y * i_13).Origin)
            if queryPoint_upvr_result2 < math.huge then
            end
            if queryPoint_upvr_result1 < var134 then
                var134 = queryPoint_upvr_result1
            end
        end
    end
    debug.profileend()
    return var134, queryPoint_upvr_result2
end
local min_upvr = math.min
local function testPromotion_upvr(arg1, arg2, arg3) -- Line 540, Named "testPromotion"
    --[[ Upvalues[4]:
        [1]: getCollisionPoint_upvr (readonly)
        [2]: min_upvr (readonly)
        [3]: queryPoint_upvr (readonly)
        [4]: tbl_2_upvr (readonly)
    ]]
    debug.profilebegin("testPromotion")
    local p = arg1.p
    debug.profilebegin("extrapolate")
    for i_14 = 0, min_upvr(1.25, arg3.rotVelocity.magnitude + (getCollisionPoint_upvr(p, arg3.posVelocity * 1.25) - p).Magnitude / arg3.posVelocity.magnitude), 0.0625 do
        local any_extrapolate_result1 = arg3.extrapolate(i_14)
        if arg2 <= queryPoint_upvr(any_extrapolate_result1.p, -any_extrapolate_result1.lookVector, arg2) then
            return false
        end
    end
    debug.profileend()
    debug.profilebegin("testOffsets")
    for _, v_8 in ipairs(tbl_2_upvr) do
        local getCollisionPoint_upvr_result1 = getCollisionPoint_upvr(p, arg1.rightVector * v_8.x + arg1.upVector * v_8.y)
        if queryPoint_upvr(getCollisionPoint_upvr_result1, (p + -arg1.lookVector * arg2 - getCollisionPoint_upvr_result1).Unit, arg2) == math.huge then
            return false
        end
    end
    debug.profileend()
    debug.profileend()
    return true
end
return function(arg1, arg2, arg3) -- Line 638, Named "Popper"
    --[[ Upvalues[4]:
        [1]: var85_upvw (read and write)
        [2]: var86_upvw (read and write)
        [3]: queryViewport_upvr (readonly)
        [4]: testPromotion_upvr (readonly)
    ]]
    debug.profilebegin("popper")
    local var147
    local function INLINED_5() -- Internal function, doesn't exist in bytecode
        var147 = var86_upvw:GetRootPart()
        return var147
    end
    if not var86_upvw or not INLINED_5() then
        var147 = var86_upvw
    end
    var85_upvw = var147
    var147 = arg2
    local queryViewport_result1, queryViewport_result2 = queryViewport_upvr(arg1, arg2)
    if queryViewport_result2 < var147 then
        var147 = queryViewport_result2
    end
    if queryViewport_result1 < var147 and testPromotion_upvr(arg1, arg2, arg3) then
        var147 = queryViewport_result1
    end
    var85_upvw = nil
    debug.profileend()
    return var147
end
ModuleScript CameraUI CameraUI
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:58
-- Luau version 6, Types version 3
-- Time taken: 0.012057 seconds

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
    Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
    LocalPlayer = Players.LocalPlayer
end
local udim2_upvr = UDim2.new(0, 80, 0, 58)
local function _(arg1) -- Line 28, Named "create"
    return function(arg1_2) -- Line 29
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        local any_8 = Instance.new(arg1)
        arg1_2.Parent = nil
        for i, v in pairs(arg1_2) do
            if type(i) == "string" then
                any_8[i] = v
            else
                v.Parent = any_8
            end
        end
        any_8.Parent = arg1_2.Parent
        return any_8
    end
end
local var12_upvw = false
local var13_upvw
local var14_upvw
local var15_upvw
local var16_upvw
local var17_upvw
local Color3_fromRGB_result1_upvr = Color3.fromRGB(32, 32, 32)
local Color3_fromRGB_result1_upvr_2 = Color3.fromRGB(200, 200, 200)
local waitForChildOfClass_result1_upvr = (function(arg1, arg2) -- Line 10, Named "waitForChildOfClass"
    local var3
    while not (not var3 or var3.ClassName == arg2) do
        var3 = arg1.ChildAdded:Wait()
    end
    return var3
end)(LocalPlayer, "PlayerGui")
local function initializeUI_upvr() -- Line 54, Named "initializeUI"
    --[[ Upvalues[10]:
        [1]: var12_upvw (read and write)
        [2]: var17_upvw (read and write)
        [3]: udim2_upvr (readonly)
        [4]: Color3_fromRGB_result1_upvr (readonly)
        [5]: Color3_fromRGB_result1_upvr_2 (readonly)
        [6]: waitForChildOfClass_result1_upvr (readonly)
        [7]: var13_upvw (read and write)
        [8]: var14_upvw (read and write)
        [9]: var15_upvw (read and write)
        [10]: var16_upvw (read and write)
    ]]
    assert(not var12_upvw)
    local var22_upvr = "ScreenGui"
    var22_upvr = {}
    local var29 = var22_upvr
    var29.Name = "RbxCameraUI"
    var29.AutoLocalize = false
    var29.Enabled = true
    var29.DisplayOrder = -1
    var29.IgnoreGuiInset = false
    var29.ResetOnSpawn = false
    var29.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    local var31_upvr = "ImageLabel"
    var31_upvr = {}
    local var38 = var31_upvr
    var38.Name = "Toast"
    var38.Visible = false
    var38.AnchorPoint = Vector2.new(0.5, 0)
    var38.BackgroundTransparency = 1
    var38.BorderSizePixel = 0
    var38.Position = UDim2.new(0.5, 0, 0, 8)
    var38.Size = udim2_upvr
    var38.Image = "rbxasset://textures/ui/Camera/CameraToast9Slice.png"
    var38.ImageColor3 = Color3_fromRGB_result1_upvr
    var38.ImageRectSize = Vector2.new(6, 6)
    var38.ImageTransparency = 1
    var38.ScaleType = Enum.ScaleType.Slice
    var38.SliceCenter = Rect.new(3, 3, 3, 3)
    var38.ClipsDescendants = true
    local var40_upvr = "Frame"
    var40_upvr = {}
    local var57 = var40_upvr
    var57.Name = "IconBuffer"
    var57.BackgroundTransparency = 1
    var57.BorderSizePixel = 0
    var57.Position = UDim2.new(0, 0, 0, 0)
    var57.Size = UDim2.new(0, 80, 1, 0)
    local var49_upvr = "ImageLabel"
    var49_upvr = {}
    local var66 = var49_upvr
    var66.Name = "Icon"
    var66.AnchorPoint = Vector2.new(0.5, 0.5)
    var66.BackgroundTransparency = 1
    var66.Position = UDim2.new(0.5, 0, 0.5, 0)
    var66.Size = UDim2.new(0, 48, 0, 48)
    var66.ZIndex = 2
    var66.Image = "rbxasset://textures/ui/Camera/CameraToastIcon.png"
    var66.ImageColor3 = Color3_fromRGB_result1_upvr_2
    var66.ImageTransparency = 1
    var57[1] = (function(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var49_upvr (readonly)
        ]]
        local any_6 = Instance.new(var49_upvr)
        arg1.Parent = nil
        for i_5, v_5 in pairs(arg1) do
            if type(i_5) == "string" then
                any_6[i_5] = v_5
            else
                v_5.Parent = any_6
            end
        end
        any_6.Parent = arg1.Parent
        return any_6
    end)(var66)
    local var58_upvr = "Frame"
    function var57(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var58_upvr (readonly)
        ]]
        local any_7 = Instance.new(var58_upvr)
        arg1.Parent = nil
        for i_6, v_6 in pairs(arg1) do
            if type(i_6) == "string" then
                any_7[i_6] = v_6
            else
                v_6.Parent = any_7
            end
        end
        any_7.Parent = arg1.Parent
        return any_7
    end
    var58_upvr = {}
    local var65 = var58_upvr
    var65.Name = "TextBuffer"
    var65.BackgroundTransparency = 1
    var65.BorderSizePixel = 0
    var65.Position = UDim2.new(0, 80, 0, 0)
    var65.Size = UDim2.new(1, -80, 1, 0)
    var65.ClipsDescendants = true
    local var67_upvr = "TextLabel"
    function var66(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var67_upvr (readonly)
        ]]
        local any_3 = Instance.new(var67_upvr)
        arg1.Parent = nil
        for i_7, v_7 in pairs(arg1) do
            if type(i_7) == "string" then
                any_3[i_7] = v_7
            else
                v_7.Parent = any_3
            end
        end
        any_3.Parent = arg1.Parent
        return any_3
    end
    var67_upvr = {}
    local var75 = var67_upvr
    var75.Name = "Upper"
    var75.AnchorPoint = Vector2.new(0, 1)
    var75.BackgroundTransparency = 1
    var75.Position = UDim2.new(0, 0, 0.5, 0)
    var75.Size = UDim2.new(1, 0, 0, 19)
    var75.Font = Enum.Font.GothamSemibold
    var75.Text = "Camera control enabled"
    var75.TextColor3 = Color3_fromRGB_result1_upvr_2
    var75.TextTransparency = 1
    var75.TextSize = 19
    var75.TextXAlignment = Enum.TextXAlignment.Left
    var75.TextYAlignment = Enum.TextYAlignment.Center
    var66 = var66(var75)
    local var76_upvr = "TextLabel"
    function var75(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var76_upvr (readonly)
        ]]
        local any_2 = Instance.new(var76_upvr)
        arg1.Parent = nil
        for i_8, v_8 in pairs(arg1) do
            if type(i_8) == "string" then
                any_2[i_8] = v_8
            else
                v_8.Parent = any_2
            end
        end
        any_2.Parent = arg1.Parent
        return any_2
    end
    var76_upvr = {}
    local var83 = var76_upvr
    var83.Name = "Lower"
    var83.AnchorPoint = Vector2.new(0, 0)
    var83.BackgroundTransparency = 1
    var83.Position = UDim2.new(0, 0, 0.5, 3)
    var83.Size = UDim2.new(1, 0, 0, 15)
    var83.Font = Enum.Font.Gotham
    var83.Text = "Right mouse button to toggle"
    var83.TextColor3 = Color3_fromRGB_result1_upvr_2
    var83.TextTransparency = 1
    var83.TextSize = 15
    var83.TextXAlignment = Enum.TextXAlignment.Left
    var83.TextYAlignment = Enum.TextYAlignment.Center
    var75 = var75(var83)
    var65[1] = var66
    var65[2] = var75
    var57 = var57(var65)
    var38[1] = (function(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var40_upvr (readonly)
        ]]
        local any_5 = Instance.new(var40_upvr)
        arg1.Parent = nil
        for i_4, v_4 in pairs(arg1) do
            if type(i_4) == "string" then
                any_5[i_4] = v_4
            else
                v_4.Parent = any_5
            end
        end
        any_5.Parent = arg1.Parent
        return any_5
    end)(var57)
    var38[2] = var57
    var29[1] = (function(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var31_upvr (readonly)
        ]]
        local any = Instance.new(var31_upvr)
        arg1.Parent = nil
        for i_3, v_3 in pairs(arg1) do
            if type(i_3) == "string" then
                any[i_3] = v_3
            else
                v_3.Parent = any
            end
        end
        any.Parent = arg1.Parent
        return any
    end)(var38)
    var38 = waitForChildOfClass_result1_upvr
    var29.Parent = var38
    var17_upvw = (function(arg1) -- Line 29
        --[[ Upvalues[1]:
            [1]: var22_upvr (readonly)
        ]]
        local any_4 = Instance.new(var22_upvr)
        arg1.Parent = nil
        for i_2, v_2 in pairs(arg1) do
            if type(i_2) == "string" then
                any_4[i_2] = v_2
            else
                v_2.Parent = any_4
            end
        end
        any_4.Parent = arg1.Parent
        return any_4
    end)(var29)
    var29 = var17_upvw
    var13_upvw = var29.Toast
    var29 = var13_upvw.IconBuffer
    var14_upvw = var29.Icon
    var29 = var13_upvw.TextBuffer
    var15_upvw = var29.Upper
    var29 = var13_upvw.TextBuffer
    var16_upvw = var29.Lower
    var12_upvw = true
end
local module_upvr = {}
function module_upvr.setCameraModeToastEnabled(arg1) -- Line 157
    --[[ Upvalues[4]:
        [1]: var12_upvw (read and write)
        [2]: initializeUI_upvr (readonly)
        [3]: var13_upvw (read and write)
        [4]: module_upvr (readonly)
    ]]
    if not arg1 and not var12_upvw then
    else
        if not var12_upvw then
            initializeUI_upvr()
        end
        var13_upvw.Visible = arg1
        if not arg1 then
            module_upvr.setCameraModeToastOpen(false)
        end
    end
end
local TweenService_upvr = game:GetService("TweenService")
local TweenInfo_new_result1_upvr = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local udim2_upvr_2 = UDim2.new(0, 326, 0, 58)
function module_upvr.setCameraModeToastOpen(arg1) -- Line 175
    --[[ Upvalues[9]:
        [1]: var12_upvw (read and write)
        [2]: TweenService_upvr (readonly)
        [3]: var13_upvw (read and write)
        [4]: TweenInfo_new_result1_upvr (readonly)
        [5]: udim2_upvr_2 (readonly)
        [6]: udim2_upvr (readonly)
        [7]: var14_upvw (read and write)
        [8]: var15_upvw (read and write)
        [9]: var16_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 32 start (CF ANALYSIS FAILED)
    assert(var12_upvw)
    local tbl_2 = {}
    local var89
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var89 = udim2_upvr_2
        return var89
    end
    if not arg1 or not INLINED() then
        var89 = udim2_upvr
    end
    tbl_2.Size = var89
    if arg1 then
        var89 = 0.4
    else
        var89 = 1
    end
    tbl_2.ImageTransparency = var89
    TweenService_upvr:Create(var13_upvw, TweenInfo_new_result1_upvr, tbl_2):Play()
    local tbl = {}
    if arg1 then
        var89 = 0
        -- KONSTANTWARNING: GOTO [35] #31
    end
    -- KONSTANTERROR: [0] 1. Error Block 32 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [34] 30. Error Block 35 start (CF ANALYSIS FAILED)
    var89 = 1
    tbl.ImageTransparency = var89
    TweenService_upvr:Create(var14_upvw, TweenInfo_new_result1_upvr, tbl):Play()
    if arg1 then
        var89 = 0
        -- KONSTANTWARNING: GOTO [51] #44
    end
    -- KONSTANTERROR: [34] 30. Error Block 35 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript LegacyCamera LegacyCamera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:08:59
-- Luau version 6, Types version 3
-- Time taken: 0.015580 seconds

local pcall_result1, pcall_result2 = pcall(function() -- Line 7
    return UserSettings():IsUserFeatureEnabled("UserCameraInputRefactor2")
end)
local module_upvr = require(script.Parent:WaitForChild("BaseCamera"))
local setmetatable_result1_2_upvr = setmetatable({}, module_upvr)
setmetatable_result1_2_upvr.__index = setmetatable_result1_2_upvr
function setmetatable_result1_2_upvr.new() -- Line 26
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_2_upvr (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_2_upvr)
    setmetatable_result1.cameraType = Enum.CameraType.Fixed
    setmetatable_result1.lastUpdate = tick()
    setmetatable_result1.lastDistanceToSubject = nil
    return setmetatable_result1
end
function setmetatable_result1_2_upvr.GetModuleName(arg1) -- Line 36
    return "LegacyCamera"
end
function setmetatable_result1_2_upvr.SetCameraToSubjectDistance(arg1, arg2) -- Line 41
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    return module_upvr.SetCameraToSubjectDistance(arg1, arg2)
end
local Players_upvr = game:GetService("Players")
local var8_upvw = pcall_result1 and pcall_result2
local module_upvr_2 = require(script.Parent:WaitForChild("CameraInput"))
local vector2_upvr = Vector2.new(0, 0)
local module_upvr_3 = require(script.Parent:WaitForChild("CameraUtils"))
function setmetatable_result1_2_upvr.Update(arg1, arg2) -- Line 45
    --[[ Upvalues[5]:
        [1]: Players_upvr (readonly)
        [2]: var8_upvw (read and write)
        [3]: module_upvr_2 (readonly)
        [4]: vector2_upvr (readonly)
        [5]: module_upvr_3 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 81 start (CF ANALYSIS FAILED)
    if not arg1.cameraType then return end
    local tick_result1 = tick()
    local CurrentCamera_2 = workspace.CurrentCamera
    if arg1.lastUpdate == nil or 1 < tick_result1 - arg1.lastUpdate then
        arg1.lastDistanceToSubject = nil
    end
    local any_GetSubjectPosition_result1_2 = arg1:GetSubjectPosition()
    if arg1.cameraType == Enum.CameraType.Fixed then
        if arg1.lastUpdate and not var8_upvw then
            arg1.rotateInput += arg1:UpdateGamepad() * math.min(0.1, tick_result1 - arg1.lastUpdate)
        end
        if any_GetSubjectPosition_result1_2 and Players_upvr.LocalPlayer and CurrentCamera_2 then
            local var26
            if var8_upvw then
                var26 = arg1:CalculateNewLookVectorFromArg(nil, module_upvr_2.getRotation())
            else
                var26 = arg1:CalculateNewLookVector()
                arg1.rotateInput = vector2_upvr
            end
            -- KONSTANTWARNING: GOTO [300] #213
        end
        -- KONSTANTWARNING: GOTO [300] #213
    end
    -- KONSTANTERROR: [0] 1. Error Block 81 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [106] 73. Error Block 77 start (CF ANALYSIS FAILED)
    if arg1.cameraType == Enum.CameraType.Attach then
        if any_GetSubjectPosition_result1_2 and CurrentCamera_2 then
            local any_GetHumanoid_result1 = arg1:GetHumanoid()
            if arg1.lastUpdate and any_GetHumanoid_result1 and any_GetHumanoid_result1.RootPart and not var8_upvw then
                arg1.rotateInput += arg1:UpdateGamepad() * math.min(0.1, tick_result1 - arg1.lastUpdate)
                local any_GetAngleBetweenXZVectors_result1 = module_upvr_3.GetAngleBetweenXZVectors(any_GetHumanoid_result1.RootPart.CFrame.lookVector, arg1:GetCameraLookVector())
                if module_upvr_3.IsFinite(any_GetAngleBetweenXZVectors_result1) then
                    arg1.rotateInput = Vector2.new(any_GetAngleBetweenXZVectors_result1, arg1.rotateInput.Y)
                end
            end
            local var29
            if var8_upvw then
                var29 = arg1:CalculateNewLookVectorFromArg(nil, module_upvr_2.getRotation() * Vector2.new(0, 1))
            else
                var29 = arg1:CalculateNewLookVector()
                arg1.rotateInput = vector2_upvr
            end
            -- KONSTANTWARNING: GOTO [300] #213
        end
    elseif arg1.cameraType == Enum.CameraType.Watch then
        if any_GetSubjectPosition_result1_2 then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if Players_upvr.LocalPlayer and CurrentCamera_2 then
                local var30
                local any_GetHumanoid_result1_4 = arg1:GetHumanoid()
                if any_GetHumanoid_result1_4 then
                    if any_GetHumanoid_result1_4.RootPart then
                        local var32 = any_GetSubjectPosition_result1_2 - CurrentCamera_2.CFrame.p
                        var30 = var32.unit
                        if arg1.lastDistanceToSubject and arg1.lastDistanceToSubject == arg1:GetCameraToSubjectDistance() then
                            arg1:SetCameraToSubjectDistance(var32.magnitude)
                        end
                    end
                end
                local var34
                if var8_upvw then
                    var34 = arg1:CalculateNewLookVectorFromArg(var30, module_upvr_2.getRotation())
                else
                    var34 = arg1:CalculateNewLookVector(var30)
                    arg1.rotateInput = vector2_upvr
                end
                arg1.lastDistanceToSubject = arg1:GetCameraToSubjectDistance()
                -- KONSTANTWARNING: GOTO [300] #213
            end
            -- KONSTANTWARNING: GOTO [300] #213
        end
    else
        var30 = CurrentCamera_2.CFrame
        return var30, CurrentCamera_2.Focus
    end
    -- KONSTANTERROR: [106] 73. Error Block 77 end (CF ANALYSIS FAILED)
end
return setmetatable_result1_2_upvr
ModuleScript Invisicam Invisicam
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:02
-- Luau version 6, Types version 3
-- Time taken: 0.028292 seconds

local tbl_upvr_2 = {
    LIMBS = 2;
    MOVEMENT = 3;
    CORNERS = 4;
    CIRCLE1 = 5;
    CIRCLE2 = 6;
    LIMBMOVE = 7;
    SMART_CIRCLE = 8;
    CHAR_OUTLINE = 9;
}
local tbl_upvr_3 = {
    Head = true;
    ["Left Arm"] = true;
    ["Right Arm"] = true;
    ["Left Leg"] = true;
    ["Right Leg"] = true;
    LeftLowerArm = true;
    RightLowerArm = true;
    LeftUpperLeg = true;
    RightUpperLeg = true;
}
local tbl_4_upvr = {Vector3.new(1, 1, -1), Vector3.new(1, -1, -1), Vector3.new(-1, -1, -1), Vector3.new(-1, 1, -1)}
local function AssertTypes_upvr(arg1, ...) -- Line 58, Named "AssertTypes"
    local tbl_2 = {}
    local var13
    for _, v in pairs({...}) do
        tbl_2[v] = true
        local var14
        if var13 == "" then
            var14 = ""
        else
            var14 = " or "
        end
        var13 = var13..var14..v
    end
    local type_result1 = type(arg1)
    assert(tbl_2[type_result1], var13.." type expected, got: "..type_result1)
end
local function _(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) -- Line 70, Named "Det3x3"
    return arg1 * (arg5 * arg9 - arg6 * arg8) - arg2 * (arg4 * arg9 - arg6 * arg7) + arg3 * (arg4 * arg8 - arg5 * arg7)
end
local function RayIntersection_upvr(arg1, arg2, arg3, arg4) -- Line 78, Named "RayIntersection"
    local any_Cross_result1 = arg2:Cross(arg4)
    local var17 = arg3.x - arg1.x
    local var18 = arg3.y - arg1.y
    local var19 = arg3.z - arg1.z
    local y_2 = arg2.y
    local var21 = -arg4.y
    local y = any_Cross_result1.y
    local z = arg2.z
    local var24 = -arg4.z
    local z_3 = any_Cross_result1.z
    local var26 = arg2.x * (var21 * z_3 - y * var24) - -arg4.x * (y_2 * z_3 - y * z) + any_Cross_result1.x * (y_2 * var24 - var21 * z)
    if var26 == 0 then
        return Vector3.new(0, 0, 0)
    end
    local var27 = -arg4.y
    local y_4 = any_Cross_result1.y
    local var29 = -arg4.z
    local z_5 = any_Cross_result1.z
    local y_3 = arg2.y
    local y_5 = any_Cross_result1.y
    local z_2 = arg2.z
    local z_4 = any_Cross_result1.z
    local var35 = arg1 + (var17 * (var27 * z_5 - y_4 * var29) - -arg4.x * (var18 * z_5 - y_4 * var19) + any_Cross_result1.x * (var18 * var29 - var27 * var19)) / var26 * arg2
    local var36 = arg3 + (arg2.x * (var18 * z_4 - y_5 * var19) - var17 * (y_3 * z_4 - y_5 * z_2) + any_Cross_result1.x * (y_3 * var19 - var18 * z_2)) / var26 * arg4
    if (var36 - var35).Magnitude < 0.25 then
        return var35 + 0.5 * (var36 - var35)
    end
    return Vector3.new(0, 0, 0)
end
local module_upvr = require(script.Parent:WaitForChild("BaseOcclusion"))
local setmetatable_result1_upvr = setmetatable({}, module_upvr)
setmetatable_result1_upvr.__index = setmetatable_result1_upvr
function setmetatable_result1_upvr.new() -- Line 111
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: setmetatable_result1_upvr (readonly)
        [3]: tbl_upvr_2 (readonly)
    ]]
    local setmetatable_result1 = setmetatable(module_upvr.new(), setmetatable_result1_upvr)
    setmetatable_result1.char = nil
    setmetatable_result1.humanoidRootPart = nil
    setmetatable_result1.torsoPart = nil
    setmetatable_result1.headPart = nil
    setmetatable_result1.childAddedConn = nil
    setmetatable_result1.childRemovedConn = nil
    setmetatable_result1.behaviors = {}
    setmetatable_result1.behaviors[tbl_upvr_2.LIMBS] = setmetatable_result1.LimbBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.MOVEMENT] = setmetatable_result1.MoveBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.CORNERS] = setmetatable_result1.CornerBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.CIRCLE1] = setmetatable_result1.CircleBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.CIRCLE2] = setmetatable_result1.CircleBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.LIMBMOVE] = setmetatable_result1.LimbMoveBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.SMART_CIRCLE] = setmetatable_result1.SmartCircleBehavior
    setmetatable_result1.behaviors[tbl_upvr_2.CHAR_OUTLINE] = setmetatable_result1.CharacterOutlineBehavior
    setmetatable_result1.mode = tbl_upvr_2.SMART_CIRCLE
    setmetatable_result1.behaviorFunction = setmetatable_result1.SmartCircleBehavior
    setmetatable_result1.savedHits = {}
    setmetatable_result1.trackedLimbs = {}
    setmetatable_result1.camera = game.Workspace.CurrentCamera
    setmetatable_result1.enabled = false
    return setmetatable_result1
end
function setmetatable_result1_upvr.Enable(arg1, arg2) -- Line 144
    arg1.enabled = arg2
    if not arg2 then
        arg1:Cleanup()
    end
end
function setmetatable_result1_upvr.GetOcclusionMode(arg1) -- Line 152
    return Enum.DevCameraOcclusionMode.Invisicam
end
function setmetatable_result1_upvr.LimbBehavior(arg1, arg2) -- Line 157
    for i_2, _ in pairs(arg1.trackedLimbs) do
        arg2[#arg2 + 1] = i_2.Position
    end
end
function setmetatable_result1_upvr.MoveBehavior(arg1, arg2) -- Line 163
    for i_3 = 1, 3 do
        local Velocity = arg1.humanoidRootPart.Velocity
        arg2[#arg2 + 1] = arg1.humanoidRootPart.Position + ((i_3 - 1) * arg1.humanoidRootPart.CFrame.lookVector) * (Vector3.new(Velocity.X, 0, Velocity.Z).Magnitude / 2)
    end
end
function setmetatable_result1_upvr.CornerBehavior(arg1, arg2) -- Line 172
    --[[ Upvalues[1]:
        [1]: tbl_4_upvr (readonly)
    ]]
    local CFrame = arg1.humanoidRootPart.CFrame
    local p = CFrame.p
    local var51 = CFrame - p
    local var52 = arg1.char:GetExtentsSize() / 2
    arg2[#arg2 + 1] = p
    for i_4 = 1, #tbl_4_upvr do
        arg2[#arg2 + 1] = p + (var51) * (var52 * tbl_4_upvr[i_4])
    end
end
function setmetatable_result1_upvr.CircleBehavior(arg1, arg2) -- Line 183
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    local var55
    if arg1.mode == tbl_upvr_2.CIRCLE1 then
        var55 = arg1.humanoidRootPart.CFrame
    else
        local CoordinateFrame = arg1.camera.CoordinateFrame
        var55 = CoordinateFrame - CoordinateFrame.p + arg1.humanoidRootPart.Position
    end
    arg2[#arg2 + 1] = var55.p
    for i_5 = 0, 9 do
        local var57 = 0.6283185307179586 * i_5
        arg2[#arg2 + 1] = (var55) * (3 * Vector3.new(math.cos(var57), math.sin(var57), 0))
    end
end
function setmetatable_result1_upvr.LimbMoveBehavior(arg1, arg2) -- Line 199
    arg1:LimbBehavior(arg2)
    arg1:MoveBehavior(arg2)
end
function setmetatable_result1_upvr.CharacterOutlineBehavior(arg1, arg2) -- Line 204
    local unit = arg1.torsoPart.CFrame.upVector.unit
    local unit_2 = arg1.torsoPart.CFrame.rightVector.unit
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p + unit
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p - unit
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p + unit_2
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p - unit_2
    local var62
    if arg1.headPart then
        var62 = #arg2
        var62 = arg1.headPart.CFrame.p
        arg2[var62 + 1] = var62
    end
    var62 = Vector3.new(0, 0, 0)
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var62 = arg1.torsoPart.Position
        return var62
    end
    if not arg1.torsoPart or not INLINED() then
        var62 = arg1.humanoidRootPart.Position
    end
    local tbl_3 = {arg1.torsoPart}
    if arg1.headPart then
        tbl_3[#tbl_3 + 1] = arg1.headPart
    end
    for i_6 = 1, 24 do
        local var64 = (-math.pi*2) * i_6 / 24
        local var65 = (CFrame.new(var62, Vector3.new(arg1.camera.CoordinateFrame.lookVector.X, 0, arg1.camera.CoordinateFrame.lookVector.Z))) * (3 * Vector3.new(math.cos(var64), math.sin(var64), 0))
        local vector3 = Vector3.new(var65.X, math.max(var65.Y, -2.25), var65.Z)
        local any_FindPartOnRayWithWhitelist_result1, any_FindPartOnRayWithWhitelist_result2 = game.Workspace:FindPartOnRayWithWhitelist(Ray.new(var62 + vector3, -3 * vector3), tbl_3, false, false)
        if any_FindPartOnRayWithWhitelist_result1 then
            arg2[#arg2 + 1] = any_FindPartOnRayWithWhitelist_result2 + 0.2 * (var62 - any_FindPartOnRayWithWhitelist_result2).unit
        end
    end
end
function setmetatable_result1_upvr.SmartCircleBehavior(arg1, arg2) -- Line 243
    --[[ Upvalues[1]:
        [1]: RayIntersection_upvr (readonly)
    ]]
    local unit_5 = arg1.torsoPart.CFrame.upVector.unit
    local unit_3 = arg1.torsoPart.CFrame.rightVector.unit
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p + unit_5
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p - unit_5
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p + unit_3
    arg2[#arg2 + 1] = arg1.torsoPart.CFrame.p - unit_3
    local var73
    if arg1.headPart then
        var73 = arg1.headPart
        arg2[#arg2 + 1] = var73.CFrame.p
    end
    var73 = arg1.camera.CFrame
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var73 = arg1.torsoPart.Position
        return var73
    end
    if not arg1.torsoPart or not INLINED_2() then
        var73 = arg1.humanoidRootPart.Position
    end
    local var74 = Vector3.new(0, 0.5, 0) + var73
    var73 = 1
    for i_7 = 1, 24, var73 do
        local var75 = 0.2617993877991494 * i_7 - (math.pi/2)
        local var76 = var74 + (arg1.camera.CFrame - var73.p) * (2.5 * Vector3.new(math.cos(var75), math.sin(var75), 0))
        local var77 = var76 - arg1.camera.CFrame.p
        local tbl_9 = {arg1.char}
        local any_FindPartOnRayWithIgnoreList_result1_3, any_FindPartOnRayWithIgnoreList_result2_2, any_FindPartOnRayWithIgnoreList_result3_2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(var74, var76 - var74), tbl_9, false, false)
        tbl_9 = var76
        local var82 = tbl_9
        if any_FindPartOnRayWithIgnoreList_result1_3 then
            local var83 = any_FindPartOnRayWithIgnoreList_result2_2 + 0.1 * any_FindPartOnRayWithIgnoreList_result3_2.unit
            local var84 = var83 - var74
            local unit_4 = var84:Cross(var77).unit:Cross(any_FindPartOnRayWithIgnoreList_result3_2).unit
            if var84.unit:Dot(-unit_4) < var84.unit:Dot((var83 - arg1.camera.CFrame.p).unit) then
                var82 = RayIntersection_upvr(var83, unit_4, var76, var77)
                if 0 < var82.Magnitude then
                    local any_FindPartOnRayWithIgnoreList_result1, any_FindPartOnRayWithIgnoreList_result2_3, any_FindPartOnRayWithIgnoreList_result3 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(var83, var82 - var83), {arg1.char}, false, false)
                    if any_FindPartOnRayWithIgnoreList_result1 then
                        var82 = any_FindPartOnRayWithIgnoreList_result2_3 + 0.1 * any_FindPartOnRayWithIgnoreList_result3.unit
                        -- KONSTANTWARNING: GOTO [243] #170
                    end
                else
                    var82 = var83
                end
            else
                var82 = var83
            end
            local any_FindPartOnRayWithIgnoreList_result1_2, any_FindPartOnRayWithIgnoreList_result2, _ = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(var74, var82 - var74), {arg1.char}, false, false)
            if any_FindPartOnRayWithIgnoreList_result1_2 then
                var82 = any_FindPartOnRayWithIgnoreList_result2 - 0.1 * (var82 - var74).unit
            end
        end
        arg2[#arg2 + 1] = var82
    end
end
function setmetatable_result1_upvr.CheckTorsoReference(arg1) -- Line 328
    if arg1.char then
        arg1.torsoPart = arg1.char:FindFirstChild("Torso")
        if not arg1.torsoPart then
            arg1.torsoPart = arg1.char:FindFirstChild("UpperTorso")
            if not arg1.torsoPart then
                arg1.torsoPart = arg1.char:FindFirstChild("HumanoidRootPart")
            end
        end
        arg1.headPart = arg1.char:FindFirstChild("Head")
    end
end
local Players_upvr = game:GetService("Players")
function setmetatable_result1_upvr.CharacterAdded(arg1, arg2, arg3) -- Line 342
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: tbl_upvr_3 (readonly)
    ]]
    if arg3 ~= Players_upvr.LocalPlayer then
    else
        if arg1.childAddedConn then
            arg1.childAddedConn:Disconnect()
            arg1.childAddedConn = nil
        end
        if arg1.childRemovedConn then
            arg1.childRemovedConn:Disconnect()
            arg1.childRemovedConn = nil
        end
        arg1.char = arg2
        arg1.trackedLimbs = {}
        arg1.childAddedConn = arg2.ChildAdded:Connect(function(arg1_2) -- Line 358, Named "childAdded"
            --[[ Upvalues[2]:
                [1]: tbl_upvr_3 (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            if arg1_2:IsA("BasePart") then
                if tbl_upvr_3[arg1_2.Name] then
                    arg1.trackedLimbs[arg1_2] = true
                end
                if arg1_2.Name == "Torso" or arg1_2.Name == "UpperTorso" then
                    arg1.torsoPart = arg1_2
                end
                if arg1_2.Name == "Head" then
                    arg1.headPart = arg1_2
                end
            end
        end)
        arg1.childRemovedConn = arg2.ChildRemoved:Connect(function(arg1_3) -- Line 374, Named "childRemoved"
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.trackedLimbs[arg1_3] = nil
            arg1:CheckTorsoReference()
        end)
        for _, v_5 in pairs(arg1.char:GetChildren()) do
            if v_5:IsA("BasePart") then
                if tbl_upvr_3[v_5.Name] then
                    arg1.trackedLimbs[v_5] = true
                end
                if v_5.Name == "Torso" or v_5.Name == "UpperTorso" then
                    arg1.torsoPart = v_5
                end
                if v_5.Name == "Head" then
                    arg1.headPart = v_5
                end
            end
        end
    end
end
function setmetatable_result1_upvr.SetMode(arg1, arg2) -- Line 388
    --[[ Upvalues[2]:
        [1]: AssertTypes_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
    ]]
    AssertTypes_upvr(arg2, "number")
    for _, v_3 in pairs(tbl_upvr_2) do
        if v_3 == arg2 then
            arg1.mode = arg2
            arg1.behaviorFunction = arg1.behaviors[arg1.mode]
            return
        end
    end
    error("Invalid mode number")
end
function setmetatable_result1_upvr.GetObscuredParts(arg1) -- Line 400
    return arg1.savedHits
end
function setmetatable_result1_upvr.Cleanup(arg1) -- Line 405
    for i_9, v_4 in pairs(arg1.savedHits) do
        i_9.LocalTransparencyModifier = v_4
    end
end
function setmetatable_result1_upvr.Update(arg1, arg2, arg3, arg4) -- Line 411
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 100 start (CF ANALYSIS FAILED)
    local var124
    if not arg1.enabled or not arg1.char then
        return arg3, arg4
    end
    arg1.camera = game.Workspace.CurrentCamera
    if not arg1.humanoidRootPart then
        local class_Humanoid = arg1.char:FindFirstChildOfClass("Humanoid")
        if class_Humanoid and class_Humanoid.RootPart then
            arg1.humanoidRootPart = class_Humanoid.RootPart
        else
            arg1.humanoidRootPart = arg1.char:FindFirstChild("HumanoidRootPart")
            if not arg1.humanoidRootPart then
                return arg3, arg4
            end
        end
        local var127_upvw
        var127_upvw = arg1.humanoidRootPart.AncestryChanged:Connect(function(arg1_6, arg2_3) -- Line 436
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: var127_upvw (read and write)
            ]]
            if arg1_6 == arg1.humanoidRootPart and not arg2_3 then
                arg1.humanoidRootPart = nil
                if var127_upvw then
                    if var127_upvw.Connected then
                        var127_upvw:Disconnect()
                        var127_upvw = nil
                    end
                end
            end
        end)
    end
    if not arg1.torsoPart then
        arg1:CheckTorsoReference()
        if not arg1.torsoPart then
            return arg3, arg4
        end
    end
    local tbl_5 = {}
    arg1.behaviorFunction(arg1, tbl_5)
    local tbl_8_upvr = {}
    local function _(arg1_7) -- Line 462, Named "add"
        --[[ Upvalues[2]:
            [1]: tbl_8_upvr (readonly)
            [2]: arg1 (readonly)
        ]]
        tbl_8_upvr[arg1_7] = true
        if not arg1.savedHits[arg1_7] then
            arg1.savedHits[arg1_7] = arg1_7.LocalTransparencyModifier
        end
    end
    local function INLINED_4() -- Internal function, doesn't exist in bytecode
        var124 = arg1.headPart.CFrame.p
        return var124
    end
    if not arg1.headPart or not INLINED_4() then
        var124 = tbl_5[1]
    end
    if not arg1.torsoPart or not arg1.torsoPart.CFrame.p then
    end
    -- KONSTANTERROR: [0] 1. Error Block 100 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [131] 91. Error Block 25 start (CF ANALYSIS FAILED)
    local var134 = arg1.camera:GetPartsObscuringTarget({var124, tbl_5[2]}, {arg1.char})[1]
    ;({})[var134] = true
    local _, _, _ = pairs(var134:GetChildren())
    -- KONSTANTERROR: [131] 91. Error Block 25 end (CF ANALYSIS FAILED)
end
return setmetatable_result1_upvr
ModuleScript BaseCamera BaseCamera
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:04
-- Luau version 6, Types version 3
-- Time taken: 0.113441 seconds

local vector2_3_upvr = Vector2.new(0, 0)
local vector2_5_upvr = Vector2.new(0.006283185307179587, 0.00471238898038469)
local pcall_result1_4, pcall_result2_6 = pcall(function() -- Line 58
    return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
end)
local var6_upvw = pcall_result1_4 and pcall_result2_6
local pcall_result1_3, pcall_result2_2 = pcall(function() -- Line 65
    return UserSettings():IsUserFeatureEnabled("UserDontAdjustSensitvityForPortrait")
end)
local module_upvr_2 = require(script.Parent:WaitForChild("CameraUtils"))
local module_upvr_6 = require(script.Parent:WaitForChild("CameraInput"))
local UserInputService_upvr = game:GetService("UserInputService")
local StarterGui_upvr = game:GetService("StarterGui")
local ContextActionService_upvr = game:GetService("ContextActionService")
local VRService_upvr = game:GetService("VRService")
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local module_upvr = {}
module_upvr.__index = module_upvr
function module_upvr.new() -- Line 92
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: vector2_3_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
        [4]: UserGameSettings_upvr (readonly)
    ]]
    local setmetatable_result1_upvr = setmetatable({}, module_upvr)
    setmetatable_result1_upvr.FIRST_PERSON_DISTANCE_THRESHOLD = 1
    setmetatable_result1_upvr.cameraType = nil
    setmetatable_result1_upvr.cameraMovementMode = nil
    setmetatable_result1_upvr.lastCameraTransform = nil
    setmetatable_result1_upvr.rotateInput = vector2_3_upvr
    setmetatable_result1_upvr.userPanningCamera = false
    setmetatable_result1_upvr.lastUserPanCamera = tick()
    setmetatable_result1_upvr.humanoidRootPart = nil
    setmetatable_result1_upvr.humanoidCache = {}
    setmetatable_result1_upvr.lastSubject = nil
    setmetatable_result1_upvr.lastSubjectPosition = Vector3.new(0, 5, 0)
    setmetatable_result1_upvr.defaultSubjectDistance = math.clamp(12.5, LocalPlayer_upvr.CameraMinZoomDistance, LocalPlayer_upvr.CameraMaxZoomDistance)
    setmetatable_result1_upvr.currentSubjectDistance = math.clamp(12.5, LocalPlayer_upvr.CameraMinZoomDistance, LocalPlayer_upvr.CameraMaxZoomDistance)
    setmetatable_result1_upvr.inFirstPerson = false
    setmetatable_result1_upvr.inMouseLockedMode = false
    setmetatable_result1_upvr.portraitMode = false
    setmetatable_result1_upvr.isSmallTouchScreen = false
    setmetatable_result1_upvr.resetCameraAngle = true
    setmetatable_result1_upvr.enabled = false
    setmetatable_result1_upvr.inputBeganConn = nil
    setmetatable_result1_upvr.inputChangedConn = nil
    setmetatable_result1_upvr.inputEndedConn = nil
    setmetatable_result1_upvr.startPos = nil
    setmetatable_result1_upvr.lastPos = nil
    setmetatable_result1_upvr.panBeginLook = nil
    setmetatable_result1_upvr.panEnabled = true
    setmetatable_result1_upvr.keyPanEnabled = true
    setmetatable_result1_upvr.distanceChangeEnabled = true
    setmetatable_result1_upvr.PlayerGui = nil
    setmetatable_result1_upvr.cameraChangedConn = nil
    setmetatable_result1_upvr.viewportSizeChangedConn = nil
    setmetatable_result1_upvr.boundContextActions = {}
    setmetatable_result1_upvr.shouldUseVRRotation = false
    setmetatable_result1_upvr.VRRotationIntensityAvailable = false
    setmetatable_result1_upvr.lastVRRotationIntensityCheckTime = 0
    setmetatable_result1_upvr.lastVRRotationTime = 0
    setmetatable_result1_upvr.vrRotateKeyCooldown = {}
    setmetatable_result1_upvr.cameraTranslationConstraints = Vector3.new(1, 1, 1)
    setmetatable_result1_upvr.humanoidJumpOrigin = nil
    setmetatable_result1_upvr.trackingHumanoid = nil
    setmetatable_result1_upvr.cameraFrozen = false
    setmetatable_result1_upvr.subjectStateChangedConn = nil
    setmetatable_result1_upvr.activeGamepad = nil
    setmetatable_result1_upvr.gamepadPanningCamera = false
    setmetatable_result1_upvr.lastThumbstickRotate = nil
    setmetatable_result1_upvr.numOfSeconds = 0.7
    setmetatable_result1_upvr.currentSpeed = 0
    setmetatable_result1_upvr.maxSpeed = 6
    setmetatable_result1_upvr.vrMaxSpeed = 4
    setmetatable_result1_upvr.lastThumbstickPos = Vector2.new(0, 0)
    setmetatable_result1_upvr.ySensitivity = 0.65
    setmetatable_result1_upvr.lastVelocity = nil
    setmetatable_result1_upvr.gamepadConnectedConn = nil
    setmetatable_result1_upvr.gamepadDisconnectedConn = nil
    setmetatable_result1_upvr.currentZoomSpeed = 1
    setmetatable_result1_upvr.L3ButtonDown = false
    setmetatable_result1_upvr.dpadLeftDown = false
    setmetatable_result1_upvr.dpadRightDown = false
    setmetatable_result1_upvr.isDynamicThumbstickEnabled = false
    setmetatable_result1_upvr.fingerTouches = {}
    setmetatable_result1_upvr.dynamicTouchInput = nil
    setmetatable_result1_upvr.numUnsunkTouches = 0
    setmetatable_result1_upvr.inputStartPositions = {}
    setmetatable_result1_upvr.inputStartTimes = {}
    setmetatable_result1_upvr.startingDiff = nil
    setmetatable_result1_upvr.pinchBeginZoom = nil
    setmetatable_result1_upvr.userPanningTheCamera = false
    setmetatable_result1_upvr.touchActivateConn = nil
    setmetatable_result1_upvr.mouseLockOffset = Vector3.new(0, 0, 0)
    if LocalPlayer_upvr.Character then
        setmetatable_result1_upvr:OnCharacterAdded(LocalPlayer_upvr.Character)
    end
    LocalPlayer_upvr.CharacterAdded:Connect(function(arg1) -- Line 203
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnCharacterAdded(arg1)
    end)
    if setmetatable_result1_upvr.cameraChangedConn then
        setmetatable_result1_upvr.cameraChangedConn:Disconnect()
    end
    setmetatable_result1_upvr.cameraChangedConn = workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() -- Line 208
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnCurrentCameraChanged()
    end)
    setmetatable_result1_upvr:OnCurrentCameraChanged()
    if setmetatable_result1_upvr.playerCameraModeChangeConn then
        setmetatable_result1_upvr.playerCameraModeChangeConn:Disconnect()
    end
    setmetatable_result1_upvr.playerCameraModeChangeConn = LocalPlayer_upvr:GetPropertyChangedSignal("CameraMode"):Connect(function() -- Line 214
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnPlayerCameraPropertyChange()
    end)
    if setmetatable_result1_upvr.minDistanceChangeConn then
        setmetatable_result1_upvr.minDistanceChangeConn:Disconnect()
    end
    setmetatable_result1_upvr.minDistanceChangeConn = LocalPlayer_upvr:GetPropertyChangedSignal("CameraMinZoomDistance"):Connect(function() -- Line 219
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnPlayerCameraPropertyChange()
    end)
    if setmetatable_result1_upvr.maxDistanceChangeConn then
        setmetatable_result1_upvr.maxDistanceChangeConn:Disconnect()
    end
    setmetatable_result1_upvr.maxDistanceChangeConn = LocalPlayer_upvr:GetPropertyChangedSignal("CameraMaxZoomDistance"):Connect(function() -- Line 224
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnPlayerCameraPropertyChange()
    end)
    if setmetatable_result1_upvr.playerDevTouchMoveModeChangeConn then
        setmetatable_result1_upvr.playerDevTouchMoveModeChangeConn:Disconnect()
    end
    setmetatable_result1_upvr.playerDevTouchMoveModeChangeConn = LocalPlayer_upvr:GetPropertyChangedSignal("DevTouchMovementMode"):Connect(function() -- Line 229
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnDevTouchMovementModeChanged()
    end)
    setmetatable_result1_upvr:OnDevTouchMovementModeChanged()
    if setmetatable_result1_upvr.gameSettingsTouchMoveMoveChangeConn then
        setmetatable_result1_upvr.gameSettingsTouchMoveMoveChangeConn:Disconnect()
    end
    setmetatable_result1_upvr.gameSettingsTouchMoveMoveChangeConn = UserGameSettings_upvr:GetPropertyChangedSignal("TouchMovementMode"):Connect(function() -- Line 235
        --[[ Upvalues[1]:
            [1]: setmetatable_result1_upvr (readonly)
        ]]
        setmetatable_result1_upvr:OnGameSettingsTouchMovementModeChanged()
    end)
    setmetatable_result1_upvr:OnGameSettingsTouchMovementModeChanged()
    UserGameSettings_upvr:SetCameraYInvertVisible()
    UserGameSettings_upvr:SetGamepadCameraSensitivityVisible()
    setmetatable_result1_upvr.hasGameLoaded = game:IsLoaded()
    if not setmetatable_result1_upvr.hasGameLoaded then
        setmetatable_result1_upvr.gameLoadedConn = game.Loaded:Connect(function() -- Line 245
            --[[ Upvalues[1]:
                [1]: setmetatable_result1_upvr (readonly)
            ]]
            setmetatable_result1_upvr.hasGameLoaded = true
            setmetatable_result1_upvr.gameLoadedConn:Disconnect()
            setmetatable_result1_upvr.gameLoadedConn = nil
        end)
    end
    setmetatable_result1_upvr:OnPlayerCameraPropertyChange()
    return setmetatable_result1_upvr
end
function module_upvr.GetModuleName(arg1) -- Line 257
    return "BaseCamera"
end
function module_upvr.OnCharacterAdded(arg1, arg2) -- Line 261
    --[[ Upvalues[2]:
        [1]: UserInputService_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    local resetCameraAngle = arg1.resetCameraAngle
    if not resetCameraAngle then
        resetCameraAngle = arg1:GetEnabled()
    end
    arg1.resetCameraAngle = resetCameraAngle
    arg1.humanoidRootPart = nil
    if UserInputService_upvr.TouchEnabled then
        arg1.PlayerGui = LocalPlayer_upvr:WaitForChild("PlayerGui")
        for _, v in ipairs(arg2:GetChildren()) do
            if v:IsA("Tool") then
                arg1.isAToolEquipped = true
            end
        end
        arg2.ChildAdded:Connect(function(arg1_2) -- Line 271
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1_2:IsA("Tool") then
                arg1.isAToolEquipped = true
            end
        end)
        arg2.ChildRemoved:Connect(function(arg1_3) -- Line 276
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1_3:IsA("Tool") then
                arg1.isAToolEquipped = false
            end
        end)
    end
end
function module_upvr.GetHumanoidRootPart(arg1) -- Line 284
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    if not arg1.humanoidRootPart then
        if LocalPlayer_upvr.Character then
            local class_Humanoid_2 = LocalPlayer_upvr.Character:FindFirstChildOfClass("Humanoid")
            if class_Humanoid_2 then
                arg1.humanoidRootPart = class_Humanoid_2.RootPart
            end
        end
    end
    return arg1.humanoidRootPart
end
function module_upvr.GetBodyPartToFollow(arg1, arg2, arg3) -- Line 296
    if arg2:GetState() == Enum.HumanoidStateType.Dead then
        local Parent = arg2.Parent
        if Parent and Parent:IsA("Model") then
            local Head_3 = Parent:FindFirstChild("Head")
            if not Head_3 then
                Head_3 = arg2.RootPart
            end
            return Head_3
        end
    end
    return arg2.RootPart
end
function module_upvr.GetSubjectPosition(arg1) -- Line 308
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local CurrentCamera_7 = game.Workspace.CurrentCamera
    local var53 = CurrentCamera_7
    if var53 then
        var53 = CurrentCamera_7.CameraSubject
    end
    if var53 then
        if var53:IsA("Humanoid") then
            local var54
            if var53:GetState() ~= Enum.HumanoidStateType.Dead then
                var54 = false
            else
                var54 = true
            end
            if VRService_upvr.VREnabled and var54 and var53 == arg1.lastSubject then
                local _ = arg1.lastSubjectPosition
            else
                local var56
                if var54 and var53.Parent and var53.Parent:IsA("Model") then
                    var56 = var53.Parent:FindFirstChild("Head") or var56
                    local var57 = var56
                end
                if var57 then
                    local var58
                    if var58 then
                        var58 = nil
                        if var53.RigType == Enum.HumanoidRigType.R15 then
                            if var53.AutomaticScalingEnabled then
                                var58 = Vector3.new(0, 1.5, 0)
                                if var57 == var53.RootPart then
                                    var58 += Vector3.new(0, var53.RootPart.Size.Y / 2 - 1, 0)
                                    -- KONSTANTWARNING: GOTO [101] #71
                                end
                            else
                                var58 = Vector3.new(0, 2, 0)
                            end
                        else
                            var58 = Vector3.new(0, 1.5, 0)
                        end
                        if var54 then
                            var58 = Vector3.new(0, 0, 0)
                        end
                        -- KONSTANTWARNING: GOTO [183] #130
                    end
                    -- KONSTANTWARNING: GOTO [183] #130
                end
            end
        else
            var58 = "VehicleSeat"
            var54 = var53:IsA(var58)
            if var54 then
                var54 = Vector3.new(0, 5, 0)
                local var59 = var54
                var58 = VRService_upvr
                var57 = var58.VREnabled
                if var57 then
                    var59 = Vector3.new(0, 4, 0)
                end
                var58 = var53.CFrame
                var57 = var58.p
                var58 = var53.CFrame:vectorToWorldSpace(var59)
            else
                var58 = "SkateboardPlatform"
                if var53:IsA(var58) then
                    var57 = var53.CFrame
                    var57 = Vector3.new(0, 5, 0)
                else
                    var58 = "BasePart"
                    if var53:IsA(var58) then
                    else
                        var58 = "Model"
                        if var53:IsA(var58) then
                            if var53.PrimaryPart then
                            else
                            end
                            -- KONSTANTWARNING: GOTO [183] #130
                        end
                    end
                end
            end
        end
    else
        return
    end
    arg1.lastSubject = var53
    arg1.lastSubjectPosition = var53:GetModelCFrame().p
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    return var53:GetModelCFrame().p
end
function module_upvr.UpdateDefaultSubjectDistance(arg1) -- Line 385
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    if arg1.portraitMode then
        arg1.defaultSubjectDistance = math.clamp(25, LocalPlayer_upvr.CameraMinZoomDistance, LocalPlayer_upvr.CameraMaxZoomDistance)
    else
        arg1.defaultSubjectDistance = math.clamp(12.5, LocalPlayer_upvr.CameraMinZoomDistance, LocalPlayer_upvr.CameraMaxZoomDistance)
    end
end
function module_upvr.OnViewportSizeChanged(arg1) -- Line 393
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    local game_2 = game
    local ViewportSize = game_2.Workspace.CurrentCamera.ViewportSize
    if ViewportSize.X >= ViewportSize.Y then
        game_2 = false
    else
        game_2 = true
    end
    arg1.portraitMode = game_2
    game_2 = UserInputService_upvr.TouchEnabled
    if game_2 then
        game_2 = true
        if ViewportSize.Y >= 500 then
            if ViewportSize.X >= 700 then
                game_2 = false
            else
                game_2 = true
            end
        end
    end
    arg1.isSmallTouchScreen = game_2
    game_2 = arg1:UpdateDefaultSubjectDistance
    game_2()
end
function module_upvr.OnCurrentCameraChanged(arg1) -- Line 403
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    if UserInputService_upvr.TouchEnabled then
        if arg1.viewportSizeChangedConn then
            arg1.viewportSizeChangedConn:Disconnect()
            arg1.viewportSizeChangedConn = nil
        end
        local CurrentCamera_3 = game.Workspace.CurrentCamera
        if CurrentCamera_3 then
            arg1:OnViewportSizeChanged()
            arg1.viewportSizeChangedConn = CurrentCamera_3:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 414
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1:OnViewportSizeChanged()
            end)
        end
    end
    if arg1.cameraSubjectChangedConn then
        arg1.cameraSubjectChangedConn:Disconnect()
        arg1.cameraSubjectChangedConn = nil
    end
    local CurrentCamera_4 = game.Workspace.CurrentCamera
    if CurrentCamera_4 then
        arg1.cameraSubjectChangedConn = CurrentCamera_4:GetPropertyChangedSignal("CameraSubject"):Connect(function() -- Line 428
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:OnNewCameraSubject()
        end)
        arg1:OnNewCameraSubject()
    end
end
function module_upvr.OnDynamicThumbstickEnabled(arg1) -- Line 435
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    if UserInputService_upvr.TouchEnabled then
        arg1.isDynamicThumbstickEnabled = true
    end
end
function module_upvr.OnDynamicThumbstickDisabled(arg1) -- Line 441
    arg1.isDynamicThumbstickEnabled = false
end
function module_upvr.OnGameSettingsTouchMovementModeChanged(arg1) -- Line 445
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: UserGameSettings_upvr (readonly)
    ]]
    if LocalPlayer_upvr.DevTouchMovementMode == Enum.DevTouchMovementMode.UserChoice then
        if UserGameSettings_upvr.TouchMovementMode == Enum.TouchMovementMode.DynamicThumbstick or UserGameSettings_upvr.TouchMovementMode == Enum.TouchMovementMode.Default then
            arg1:OnDynamicThumbstickEnabled()
            return
        end
        arg1:OnDynamicThumbstickDisabled()
    end
end
function module_upvr.OnDevTouchMovementModeChanged(arg1) -- Line 456
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    if LocalPlayer_upvr.DevTouchMovementMode.Name == "DynamicThumbstick" then
        arg1:OnDynamicThumbstickEnabled()
    else
        arg1:OnGameSettingsTouchMovementModeChanged()
    end
end
function module_upvr.OnPlayerCameraPropertyChange(arg1) -- Line 464
    arg1:SetCameraToSubjectDistance(arg1.currentSubjectDistance)
end
function module_upvr.GetCameraHeight(arg1) -- Line 469
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    if VRService_upvr.VREnabled and not arg1.inFirstPerson then
        return 0.25881904510252074 * arg1.currentSubjectDistance
    end
    return 0
end
local var69_upvw = pcall_result1_3 and pcall_result2_2
function module_upvr.InputTranslationToCameraAngleChange(arg1, arg2, arg3) -- Line 476
    --[[ Upvalues[1]:
        [1]: var69_upvw (read and write)
    ]]
    if not var69_upvw then
        local CurrentCamera_5 = game.Workspace.CurrentCamera
        if CurrentCamera_5 and 0 < CurrentCamera_5.ViewportSize.X and 0 < CurrentCamera_5.ViewportSize.Y then
            if CurrentCamera_5.ViewportSize.X < CurrentCamera_5.ViewportSize.Y then
                return arg2 * Vector2.new(arg3.Y, arg3.X)
            end
        end
    end
    return arg2 * arg3
end
function module_upvr.Enable(arg1, arg2) -- Line 487
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 6. Error Block 3 start (CF ANALYSIS FAILED)
    arg1:ConnectInputEvents()
    arg1:BindContextActions()
    -- KONSTANTERROR: [9] 6. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [22] 14. Error Block 4 start (CF ANALYSIS FAILED)
    arg1.currentSubjectDistance = 0.5
    -- KONSTANTERROR: [22] 14. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [32] 21. Error Block 6 start (CF ANALYSIS FAILED)
    arg1:DisconnectInputEvents()
    arg1:UnbindContextActions()
    arg1:Cleanup()
    -- KONSTANTERROR: [32] 21. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 27. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [41] 27. Error Block 7 end (CF ANALYSIS FAILED)
end
function module_upvr.GetEnabled(arg1) -- Line 509
    return arg1.enabled
end
function module_upvr.OnInputBegan(arg1, arg2, arg3) -- Line 513
    if arg2.UserInputType == Enum.UserInputType.Touch then
        arg1:OnTouchBegan(arg2, arg3)
    else
        if arg2.UserInputType == Enum.UserInputType.MouseButton2 then
            arg1:OnMouse2Down(arg2, arg3)
            return
        end
        if arg2.UserInputType == Enum.UserInputType.MouseButton3 then
            arg1:OnMouse3Down(arg2, arg3)
        end
    end
end
function module_upvr.OnInputChanged(arg1, arg2, arg3) -- Line 523
    if arg2.UserInputType == Enum.UserInputType.Touch then
        arg1:OnTouchChanged(arg2, arg3)
    elseif arg2.UserInputType == Enum.UserInputType.MouseMovement then
        arg1:OnMouseMoved(arg2, arg3)
    end
end
function module_upvr.OnInputEnded(arg1, arg2, arg3) -- Line 531
    if arg2.UserInputType == Enum.UserInputType.Touch then
        arg1:OnTouchEnded(arg2, arg3)
    else
        if arg2.UserInputType == Enum.UserInputType.MouseButton2 then
            arg1:OnMouse2Up(arg2, arg3)
            return
        end
        if arg2.UserInputType == Enum.UserInputType.MouseButton3 then
            arg1:OnMouse3Up(arg2, arg3)
        end
    end
end
local abs_upvr = math.abs
function module_upvr.OnPointerAction(arg1, arg2, arg3, arg4, arg5) -- Line 541
    --[[ Upvalues[3]:
        [1]: UserGameSettings_upvr (readonly)
        [2]: vector2_5_upvr (readonly)
        [3]: abs_upvr (readonly)
    ]]
    if arg5 then
    else
        if 0 < arg3.Magnitude then
            arg1:SetCameraToSubjectDistance(arg1.currentSubjectDistance - (arg1.rotateInput + arg1:InputTranslationToCameraAngleChange(0.5 * arg3, vector2_5_upvr) * Vector2.new(1, UserGameSettings_upvr:GetCameraYInvertValue())).Y * 2500)
        end
        local currentSubjectDistance = arg1.currentSubjectDistance
        local var73 = -(arg2 + arg4)
        if 0 < abs_upvr(var73) then
            local var74
            if arg1.inFirstPerson and 0 < var73 then
                var74 = 1
            else
                var74 = currentSubjectDistance + var73 * (1 + currentSubjectDistance * 0.5)
            end
            arg1:SetCameraToSubjectDistance(var74)
        end
    end
end
local GuiService_upvr = game:GetService("GuiService")
function module_upvr.ConnectInputEvents(arg1) -- Line 566
    --[[ Upvalues[3]:
        [1]: UserInputService_upvr (readonly)
        [2]: GuiService_upvr (readonly)
        [3]: var6_upvw (read and write)
    ]]
    arg1.pointerActionConn = UserInputService_upvr.PointerAction:Connect(function(arg1_4, arg2, arg3, arg4) -- Line 567
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnPointerAction(arg1_4, arg2, arg3, arg4)
    end)
    arg1.inputBeganConn = UserInputService_upvr.InputBegan:Connect(function(arg1_5, arg2) -- Line 571
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnInputBegan(arg1_5, arg2)
    end)
    arg1.inputChangedConn = UserInputService_upvr.InputChanged:Connect(function(arg1_6, arg2) -- Line 575
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnInputChanged(arg1_6, arg2)
    end)
    arg1.inputEndedConn = UserInputService_upvr.InputEnded:Connect(function(arg1_7, arg2) -- Line 579
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:OnInputEnded(arg1_7, arg2)
    end)
    arg1.menuOpenedConn = GuiService_upvr.MenuOpened:connect(function() -- Line 583
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:ResetInputStates()
    end)
    arg1.gamepadConnectedConn = UserInputService_upvr.GamepadDisconnected:connect(function(arg1_8) -- Line 587
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.activeGamepad ~= arg1_8 then
        else
            arg1.activeGamepad = nil
            arg1:AssignActivateGamepad()
        end
    end)
    arg1.gamepadDisconnectedConn = UserInputService_upvr.GamepadConnected:connect(function(arg1_9) -- Line 593
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.activeGamepad == nil then
            arg1:AssignActivateGamepad()
        end
    end)
    arg1:AssignActivateGamepad()
    if not var6_upvw then
        arg1:UpdateMouseBehavior()
    end
end
function module_upvr.BindContextActions(arg1) -- Line 605
    arg1:BindGamepadInputActions()
    arg1:BindKeyboardInputActions()
end
function module_upvr.AssignActivateGamepad(arg1) -- Line 610
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    local any_GetConnectedGamepads_result1 = UserInputService_upvr:GetConnectedGamepads()
    if 0 < #any_GetConnectedGamepads_result1 then
        for i_2 = 1, #any_GetConnectedGamepads_result1 do
            if arg1.activeGamepad == nil then
                arg1.activeGamepad = any_GetConnectedGamepads_result1[i_2]
            elseif any_GetConnectedGamepads_result1[i_2].Value < arg1.activeGamepad.Value then
                arg1.activeGamepad = any_GetConnectedGamepads_result1[i_2]
            end
        end
    end
    if arg1.activeGamepad == nil then
        arg1.activeGamepad = Enum.UserInputType.Gamepad1
    end
end
function module_upvr.DisconnectInputEvents(arg1) -- Line 627
    if arg1.inputBeganConn then
        arg1.inputBeganConn:Disconnect()
        arg1.inputBeganConn = nil
    end
    if arg1.inputChangedConn then
        arg1.inputChangedConn:Disconnect()
        arg1.inputChangedConn = nil
    end
    if arg1.inputEndedConn then
        arg1.inputEndedConn:Disconnect()
        arg1.inputEndedConn = nil
    end
end
function module_upvr.UnbindContextActions(arg1) -- Line 642
    --[[ Upvalues[1]:
        [1]: ContextActionService_upvr (readonly)
    ]]
    for i_3 = 1, #arg1.boundContextActions do
        ContextActionService_upvr:UnbindAction(arg1.boundContextActions[i_3])
    end
    arg1.boundContextActions = {}
end
function module_upvr.Cleanup(arg1) -- Line 649
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    if arg1.pointerActionConn then
        arg1.pointerActionConn:Disconnect()
        arg1.pointerActionConn = nil
    end
    if arg1.menuOpenedConn then
        arg1.menuOpenedConn:Disconnect()
        arg1.menuOpenedConn = nil
    end
    if arg1.mouseLockToggleConn then
        arg1.mouseLockToggleConn:Disconnect()
        arg1.mouseLockToggleConn = nil
    end
    if arg1.gamepadConnectedConn then
        arg1.gamepadConnectedConn:Disconnect()
        arg1.gamepadConnectedConn = nil
    end
    if arg1.gamepadDisconnectedConn then
        arg1.gamepadDisconnectedConn:Disconnect()
        arg1.gamepadDisconnectedConn = nil
    end
    if arg1.subjectStateChangedConn then
        arg1.subjectStateChangedConn:Disconnect()
        arg1.subjectStateChangedConn = nil
    end
    if arg1.viewportSizeChangedConn then
        arg1.viewportSizeChangedConn:Disconnect()
        arg1.viewportSizeChangedConn = nil
    end
    if arg1.touchActivateConn then
        arg1.touchActivateConn:Disconnect()
        arg1.touchActivateConn = nil
    end
    arg1.turningLeft = false
    arg1.turningRight = false
    arg1.lastCameraTransform = nil
    arg1.lastSubjectCFrame = nil
    arg1.userPanningTheCamera = false
    arg1.rotateInput = Vector2.new()
    arg1.gamepadPanningCamera = Vector2.new(0, 0)
    arg1.startPos = nil
    arg1.lastPos = nil
    arg1.panBeginLook = nil
    arg1.isRightMouseDown = false
    arg1.isMiddleMouseDown = false
    arg1.fingerTouches = {}
    arg1.dynamicTouchInput = nil
    arg1.numUnsunkTouches = 0
    arg1.startingDiff = nil
    arg1.pinchBeginZoom = nil
    if UserInputService_upvr.MouseBehavior ~= Enum.MouseBehavior.LockCenter then
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
    end
end
function module_upvr.ResetInputStates(arg1) -- Line 712
    --[[ Upvalues[1]:
        [1]: UserInputService_upvr (readonly)
    ]]
    arg1.isRightMouseDown = false
    arg1.isMiddleMouseDown = false
    arg1:OnMousePanButtonReleased()
    if UserInputService_upvr.TouchEnabled then
        for i_4 in pairs(arg1.fingerTouches) do
            arg1.fingerTouches[i_4] = nil
        end
        arg1.dynamicTouchInput = nil
        arg1.panBeginLook = nil
        arg1.startPos = nil
        arg1.lastPos = nil
        arg1.userPanningTheCamera = false
        arg1.startingDiff = nil
        arg1.pinchBeginZoom = nil
        arg1.numUnsunkTouches = 0
    end
end
function module_upvr.GetGamepadPan(arg1, arg2, arg3, arg4) -- Line 735
    --[[ Upvalues[1]:
        [1]: vector2_3_upvr (readonly)
    ]]
    if arg4.UserInputType == arg1.activeGamepad and arg4.KeyCode == Enum.KeyCode.Thumbstick2 then
        if arg3 == Enum.UserInputState.Cancel then
            arg1.gamepadPanningCamera = vector2_3_upvr
            return
        end
        if 0.2 < Vector2.new(arg4.Position.X, -arg4.Position.Y).magnitude then
            arg1.gamepadPanningCamera = Vector2.new(arg4.Position.X, -arg4.Position.Y)
        else
            arg1.gamepadPanningCamera = vector2_3_upvr
        end
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
function module_upvr.DoKeyboardPanTurn(arg1, arg2, arg3, arg4) -- Line 764
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    if not arg1.hasGameLoaded then
        if VRService_upvr.VREnabled then
            return Enum.ContextActionResult.Pass
        end
    end
    if arg3 == Enum.UserInputState.Cancel then
        arg1.turningLeft = false
        arg1.turningRight = false
        return Enum.ContextActionResult.Sink
    end
    if arg1.panBeginLook == nil and arg1.keyPanEnabled then
        local var90
        if var90 == Enum.KeyCode.Left then
            if arg3 ~= Enum.UserInputState.Begin then
                var90 = false
            else
                var90 = true
            end
            arg1.turningLeft = var90
        else
            var90 = arg4.KeyCode
            if var90 == Enum.KeyCode.Right then
                if arg3 ~= Enum.UserInputState.Begin then
                else
                end
                arg1.turningRight = true
            end
        end
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
function module_upvr.DoPanRotateCamera(arg1, arg2) -- Line 786
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    local any_RotateVectorByAngleAndRound_result1 = module_upvr_2.RotateVectorByAngleAndRound(arg1:GetCameraLookVector() * Vector3.new(1, 0, 1), arg2, 0.7853981633974483)
    if any_RotateVectorByAngleAndRound_result1 ~= 0 then
        arg1.rotateInput += Vector2.new(any_RotateVectorByAngleAndRound_result1, 0)
        arg1.lastUserPanCamera = tick()
        arg1.lastCameraTransform = nil
    end
end
function module_upvr.DoGamepadZoom(arg1, arg2, arg3, arg4) -- Line 795
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg4.UserInputType == arg1.activeGamepad then
        if arg4.KeyCode == Enum.KeyCode.ButtonR3 then
            if arg3 == Enum.UserInputState.Begin and arg1.distanceChangeEnabled then
                local any_GetCameraToSubjectDistance_result1 = arg1:GetCameraToSubjectDistance()
                if 15 < any_GetCameraToSubjectDistance_result1 then
                    arg1:SetCameraToSubjectDistance(10)
                elseif 5 < any_GetCameraToSubjectDistance_result1 then
                    arg1:SetCameraToSubjectDistance(0)
                else
                    arg1:SetCameraToSubjectDistance(20)
                end
                -- KONSTANTWARNING: GOTO [72] #46
            end
        else
            any_GetCameraToSubjectDistance_result1 = arg4.KeyCode
            local var93
            if var93 == Enum.KeyCode.DPadLeft then
                if arg3 ~= Enum.UserInputState.Begin then
                    var93 = false
                else
                    var93 = true
                end
                arg1.dpadLeftDown = var93
            else
                var93 = arg4.KeyCode
                local var94 = var93
                if var94 == Enum.KeyCode.DPadRight then
                    if arg3 ~= Enum.UserInputState.Begin then
                    else
                    end
                    arg1.dpadRightDown = true
                end
            end
        end
        if arg1.dpadLeftDown then
            arg1.currentZoomSpeed = 1.04
        elseif arg1.dpadRightDown then
            arg1.currentZoomSpeed = 0.96
        else
            arg1.currentZoomSpeed = 1
        end
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
function module_upvr.DoKeyboardZoom(arg1, arg2, arg3, arg4) -- Line 837
    --[[ Upvalues[2]:
        [1]: VRService_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not arg1.hasGameLoaded then
        if VRService_upvr.VREnabled then
            return Enum.ContextActionResult.Pass
        end
    end
    if arg3 ~= Enum.UserInputState.Begin then
        return Enum.ContextActionResult.Pass
    end
    if arg1.distanceChangeEnabled and LocalPlayer_upvr.CameraMode ~= Enum.CameraMode.LockFirstPerson then
        if arg4.KeyCode == Enum.KeyCode.I then
            arg1:SetCameraToSubjectDistance(arg1.currentSubjectDistance - 5)
        elseif arg4.KeyCode == Enum.KeyCode.O then
            arg1:SetCameraToSubjectDistance(arg1.currentSubjectDistance + 5)
        end
        return Enum.ContextActionResult.Sink
    end
    return Enum.ContextActionResult.Pass
end
local Value_upvr = Enum.ContextActionPriority.Default.Value
function module_upvr.BindAction(arg1, arg2, arg3, arg4, ...) -- Line 857
    --[[ Upvalues[2]:
        [1]: ContextActionService_upvr (readonly)
        [2]: Value_upvr (readonly)
    ]]
    table.insert(arg1.boundContextActions, arg2)
    ContextActionService_upvr:BindActionAtPriority(arg2, arg3, arg4, Value_upvr, ...)
end
function module_upvr.BindGamepadInputActions(arg1) -- Line 863
    arg1:BindAction("BaseCameraGamepadPan", function(arg1_10, arg2, arg3) -- Line 864
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:GetGamepadPan(arg1_10, arg2, arg3)
    end, false, Enum.KeyCode.Thumbstick2)
    arg1:BindAction("BaseCameraGamepadZoom", function(arg1_11, arg2, arg3) -- Line 866
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:DoGamepadZoom(arg1_11, arg2, arg3)
    end, false, Enum.KeyCode.DPadLeft, Enum.KeyCode.DPadRight, Enum.KeyCode.ButtonR3)
end
function module_upvr.BindKeyboardInputActions(arg1) -- Line 870
    arg1:BindAction("BaseCameraKeyboardPanArrowKeys", function(arg1_12, arg2, arg3) -- Line 871
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:DoKeyboardPanTurn(arg1_12, arg2, arg3)
    end, false, Enum.KeyCode.Left, Enum.KeyCode.Right)
    arg1:BindAction("BaseCameraKeyboardZoom", function(arg1_13, arg2, arg3) -- Line 873
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        return arg1:DoKeyboardZoom(arg1_13, arg2, arg3)
    end, false, Enum.KeyCode.I, Enum.KeyCode.O)
end
local function isInDynamicThumbstickArea_upvr(arg1) -- Line 877, Named "isInDynamicThumbstickArea"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local var101 = LocalPlayer_upvr:FindFirstChildOfClass("PlayerGui")
    if var101 then
        var101 = LocalPlayer_upvr:FindFirstChildOfClass("PlayerGui"):FindFirstChild("TouchGui")
    end
    local var102 = var101
    if var102 then
        var102 = var101:FindFirstChild("TouchControlFrame")
    end
    local var103 = var102
    if var103 then
        var103 = var102:FindFirstChild("DynamicThumbstickFrame")
    end
    if not var103 then
        return false
    end
    local AbsolutePosition = var103.AbsolutePosition
    local var105 = AbsolutePosition + var103.AbsoluteSize
    if AbsolutePosition.X <= arg1.Position.X and AbsolutePosition.Y <= arg1.Position.Y and arg1.Position.X <= var105.X and arg1.Position.Y <= var105.Y then
        return true
    end
    return false
end
function module_upvr.AdjustTouchSensitivity(arg1, arg2, arg3) -- Line 899
    local CurrentCamera_6 = game.Workspace.CurrentCamera
    if CurrentCamera_6 then
        CurrentCamera_6 = game.Workspace.CurrentCamera.CFrame
    end
    if not CurrentCamera_6 then
        return arg3
    end
    local any_ToEulerAnglesYXZ_result1 = CurrentCamera_6:ToEulerAnglesYXZ()
    local var108
    if 0.5235987755982988 < any_ToEulerAnglesYXZ_result1 and arg2.Y < 0 then
        var108 = 2.1 - (1 - (1 - (any_ToEulerAnglesYXZ_result1 - 0.5235987755982988) / 0.8726646259971648) ^ 3) * 1.6
    elseif any_ToEulerAnglesYXZ_result1 < -0.2617993877991494 and 0 < arg2.Y then
        var108 = 2.1 - (1 - (1 - (any_ToEulerAnglesYXZ_result1 - -0.2617993877991494) / -1.1344640137963142) ^ 3) * 1.6
    end
    return Vector2.new(arg3.X, arg3.Y * var108)
end
function module_upvr.OnTouchBegan(arg1, arg2, arg3) -- Line 925
    --[[ Upvalues[1]:
        [1]: isInDynamicThumbstickArea_upvr (readonly)
    ]]
    local isDynamicThumbstickEnabled = arg1.isDynamicThumbstickEnabled
    if isDynamicThumbstickEnabled then
        isDynamicThumbstickEnabled = not arg3
    end
    if isDynamicThumbstickEnabled then
        if arg1.dynamicTouchInput == nil and isInDynamicThumbstickArea_upvr(arg2) then
            arg1.dynamicTouchInput = arg2
            return
        end
        arg1.fingerTouches[arg2] = arg3
        arg1.inputStartPositions[arg2] = arg2.Position
        arg1.inputStartTimes[arg2] = tick()
        arg1.numUnsunkTouches += 1
    end
end
local vector2_4_upvr = Vector2.new(0.029688050576423545, 0.010602875205865551)
function module_upvr.OnTouchChanged(arg1, arg2, arg3) -- Line 941
    --[[ Upvalues[2]:
        [1]: UserGameSettings_upvr (readonly)
        [2]: vector2_4_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 4 start (CF ANALYSIS FAILED)
    arg1.fingerTouches[arg2] = arg3
    -- KONSTANTERROR: [9] 7. Error Block 4 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 10. Error Block 5 start (CF ANALYSIS FAILED)
    arg1.numUnsunkTouches += 1
    -- KONSTANTERROR: [13] 10. Error Block 5 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 13. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 13. Error Block 6 end (CF ANALYSIS FAILED)
end
function module_upvr.OnTouchEnded(arg1, arg2, arg3) -- Line 1002
    if arg2 == arg1.dynamicTouchInput then
        arg1.dynamicTouchInput = nil
    else
        if arg1.fingerTouches[arg2] == false then
            if arg1.numUnsunkTouches == 1 then
                arg1.panBeginLook = nil
                arg1.startPos = nil
                arg1.lastPos = nil
                arg1.userPanningTheCamera = false
            elseif arg1.numUnsunkTouches == 2 then
                arg1.startingDiff = nil
                arg1.pinchBeginZoom = nil
            end
        end
        if arg1.fingerTouches[arg2] ~= nil and arg1.fingerTouches[arg2] == false then
            arg1.numUnsunkTouches -= 1
        end
        arg1.fingerTouches[arg2] = nil
        arg1.inputStartPositions[arg2] = nil
        arg1.inputStartTimes[arg2] = nil
    end
end
function module_upvr.OnMouse2Down(arg1, arg2, arg3) -- Line 1028
    if arg3 then
    else
        arg1.isRightMouseDown = true
        arg1:OnMousePanButtonPressed(arg2, arg3)
    end
end
function module_upvr.OnMouse2Up(arg1, arg2, arg3) -- Line 1035
    arg1.isRightMouseDown = false
    arg1:OnMousePanButtonReleased(arg2, arg3)
end
function module_upvr.OnMouse3Down(arg1, arg2, arg3) -- Line 1040
    if arg3 then
    else
        arg1.isMiddleMouseDown = true
        arg1:OnMousePanButtonPressed(arg2, arg3)
    end
end
function module_upvr.OnMouse3Up(arg1, arg2, arg3) -- Line 1047
    arg1.isMiddleMouseDown = false
    arg1:OnMousePanButtonReleased(arg2, arg3)
end
function module_upvr.OnMouseMoved(arg1, arg2, arg3) -- Line 1052
    --[[ Upvalues[5]:
        [1]: VRService_upvr (readonly)
        [2]: UserGameSettings_upvr (readonly)
        [3]: var6_upvw (read and write)
        [4]: module_upvr_6 (readonly)
        [5]: vector2_5_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var115
    if not arg1.hasGameLoaded then
        var115 = VRService_upvr
        if var115.VREnabled then return end
    end
    local _ = arg2.Delta
    var115 = Vector2.new(_.X, _.Y * UserGameSettings_upvr:GetCameraYInvertValue())
    var115 = var6_upvw
    if var115 then
        var115 = module_upvr_6.getPanning()
    end
    local startPos = arg1.startPos
    if startPos then
        startPos = arg1.lastPos
        if startPos then
            startPos = arg1.panBeginLook
        end
    end
    if not startPos then
        if not arg1.inFirstPerson then
            if not arg1.inMouseLockedMode then
            end
        end
    end
    if arg1.panEnabled and var115 then
        arg1.rotateInput += arg1:InputTranslationToCameraAngleChange(var115, vector2_5_upvr)
    end
    if arg1.startPos and arg1.lastPos and arg1.panBeginLook then
        arg1.lastPos += arg2.Delta
    end
end
function module_upvr.OnMousePanButtonPressed(arg1, arg2, arg3) -- Line 1074
    --[[ Upvalues[1]:
        [1]: var6_upvw (read and write)
    ]]
    if arg3 then
    else
        if not var6_upvw then
            arg1:UpdateMouseBehavior()
        end
        local panBeginLook = arg1.panBeginLook
        if not panBeginLook then
            panBeginLook = arg1:GetCameraLookVector()
        end
        arg1.panBeginLook = panBeginLook
        panBeginLook = arg1.startPos
        local var119 = panBeginLook
        if not var119 then
            var119 = arg2.Position
        end
        arg1.startPos = var119
        var119 = arg1.lastPos
        local var120 = var119
        if not var120 then
            var120 = arg1.startPos
        end
        arg1.lastPos = var120
        arg1.userPanningTheCamera = true
    end
end
function module_upvr.OnMousePanButtonReleased(arg1, arg2, arg3) -- Line 1085
    --[[ Upvalues[1]:
        [1]: var6_upvw (read and write)
    ]]
    if not var6_upvw then
        arg1:UpdateMouseBehavior()
    end
    if not arg1.isRightMouseDown and not arg1.isMiddleMouseDown then
        arg1.panBeginLook = nil
        arg1.startPos = nil
        arg1.lastPos = nil
        arg1.userPanningTheCamera = false
    end
end
local module_upvr_5 = require(script.Parent:WaitForChild("CameraUI"))
local module_upvr_4 = require(script.Parent:WaitForChild("CameraToggleStateController"))
function module_upvr.UpdateMouseBehavior(arg1) -- Line 1097
    --[[ Upvalues[6]:
        [1]: var6_upvw (read and write)
        [2]: module_upvr_5 (readonly)
        [3]: module_upvr_6 (readonly)
        [4]: module_upvr_4 (readonly)
        [5]: UserGameSettings_upvr (readonly)
        [6]: UserInputService_upvr (readonly)
    ]]
    if var6_upvw then
        if arg1.isCameraToggle then
            module_upvr_5.setCameraModeToastEnabled(true)
            module_upvr_6.enableCameraToggleInput()
            module_upvr_4(arg1.inFirstPerson)
            return
        end
    end
    if var6_upvw then
        module_upvr_5.setCameraModeToastEnabled(false)
        module_upvr_6.disableCameraToggleInput()
    end
    if arg1.inFirstPerson or arg1.inMouseLockedMode then
        UserGameSettings_upvr.RotationType = Enum.RotationType.CameraRelative
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.LockCenter
    else
        UserGameSettings_upvr.RotationType = Enum.RotationType.MovementRelative
        if arg1.isRightMouseDown or arg1.isMiddleMouseDown then
            UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
            return
        end
        UserInputService_upvr.MouseBehavior = Enum.MouseBehavior.Default
    end
end
function module_upvr.UpdateForDistancePropertyChange(arg1) -- Line 1122
    arg1:SetCameraToSubjectDistance(arg1.currentSubjectDistance)
end
local module_upvr_3 = require(script.Parent:WaitForChild("ZoomController"))
function module_upvr.SetCameraToSubjectDistance(arg1, arg2) -- Line 1128
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: module_upvr_3 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 6. Error Block 16 start (CF ANALYSIS FAILED)
    arg1.currentSubjectDistance = 0.5
    if not arg1.inFirstPerson then
        arg1:EnterFirstPerson()
        -- KONSTANTWARNING: GOTO [52] #35
    end
    -- KONSTANTERROR: [9] 6. Error Block 16 end (CF ANALYSIS FAILED)
end
function module_upvr.SetCameraType(arg1, arg2) -- Line 1162
    arg1.cameraType = arg2
end
function module_upvr.GetCameraType(arg1) -- Line 1167
    return arg1.cameraType
end
function module_upvr.SetCameraMovementMode(arg1, arg2) -- Line 1172
    arg1.cameraMovementMode = arg2
end
function module_upvr.GetCameraMovementMode(arg1) -- Line 1176
    return arg1.cameraMovementMode
end
function module_upvr.SetIsMouseLocked(arg1, arg2) -- Line 1180
    --[[ Upvalues[1]:
        [1]: var6_upvw (read and write)
    ]]
    arg1.inMouseLockedMode = arg2
    if not var6_upvw then
        arg1:UpdateMouseBehavior()
    end
end
function module_upvr.GetIsMouseLocked(arg1) -- Line 1187
    return arg1.inMouseLockedMode
end
function module_upvr.SetMouseLockOffset(arg1, arg2) -- Line 1191
    arg1.mouseLockOffset = arg2
end
function module_upvr.GetMouseLockOffset(arg1) -- Line 1195
    return arg1.mouseLockOffset
end
function module_upvr.InFirstPerson(arg1) -- Line 1199
    return arg1.inFirstPerson
end
function module_upvr.EnterFirstPerson(arg1) -- Line 1203
end
function module_upvr.LeaveFirstPerson(arg1) -- Line 1207
end
function module_upvr.GetCameraToSubjectDistance(arg1) -- Line 1212
    return arg1.currentSubjectDistance
end
function module_upvr.GetMeasuredDistanceToFocus(arg1) -- Line 1219
    local CurrentCamera = game.Workspace.CurrentCamera
    if CurrentCamera then
        return (CurrentCamera.CoordinateFrame.p - CurrentCamera.Focus.p).magnitude
    end
    return nil
end
function module_upvr.GetCameraLookVector(arg1) -- Line 1227
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 5. Error Block 6 start (CF ANALYSIS FAILED)
    local lookVector = game.Workspace.CurrentCamera.CFrame.lookVector
    if not lookVector then
        -- KONSTANTERROR: [18] 11. Error Block 3 start (CF ANALYSIS FAILED)
        lookVector = Vector3.new(0, 0, 1)
        -- KONSTANTERROR: [18] 11. Error Block 3 end (CF ANALYSIS FAILED)
    end
    do
        return lookVector
    end
    -- KONSTANTERROR: [7] 5. Error Block 6 end (CF ANALYSIS FAILED)
end
function module_upvr.CalculateNewLookCFrame(arg1, arg2) -- Line 1233
    local var126 = arg2
    if not var126 then
        var126 = arg1:GetCameraLookVector()
    end
    local arcsine = math.asin(var126.y)
    local vector2_7 = Vector2.new(arg1.rotateInput.x, math.clamp(arg1.rotateInput.y, arcsine + -1.3962634015954636, arcsine + 1.3962634015954636))
    return CFrame.Angles(0, -vector2_7.x, 0) * CFrame.new(Vector3.new(0, 0, 0), var126) * CFrame.Angles(-vector2_7.y, 0, 0)
end
function module_upvr.CalculateNewLookVector(arg1, arg2) -- Line 1242
    return arg1:CalculateNewLookCFrame(arg2).lookVector
end
function module_upvr.CalculateNewLookVectorVR(arg1) -- Line 1247
    local vector2 = Vector2.new(arg1.rotateInput.x, 0)
    return ((CFrame.Angles(0, -vector2.x, 0) * CFrame.new(Vector3.new(0, 0, 0), ((arg1:GetSubjectPosition() - game.Workspace.CurrentCamera.CFrame.p) * Vector3.new(1, 0, 1)).unit) * CFrame.Angles(-vector2.y, 0, 0)).lookVector * Vector3.new(1, 0, 1)).unit
end
function module_upvr.GetHumanoid(arg1) -- Line 1257
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    local var130 = LocalPlayer_upvr
    if var130 then
        var130 = LocalPlayer_upvr.Character
    end
    if var130 then
        local var131 = arg1.humanoidCache[LocalPlayer_upvr]
        if var131 and var131.Parent == var130 then
            return var131
        end
        arg1.humanoidCache[LocalPlayer_upvr] = nil
        local class_Humanoid = var130:FindFirstChildOfClass("Humanoid")
        if class_Humanoid then
            arg1.humanoidCache[LocalPlayer_upvr] = class_Humanoid
        end
        return class_Humanoid
    end
    return nil
end
function module_upvr.GetHumanoidPartToFollow(arg1, arg2, arg3) -- Line 1275
    if arg3 == Enum.HumanoidStateType.Dead then
        local Parent_2 = arg2.Parent
        if Parent_2 then
            local Head = Parent_2:FindFirstChild("Head")
            if not Head then
                Head = arg2.Torso
            end
            return Head
        end
        return arg2.Torso
    end
    return arg2.Torso
end
function module_upvr.UpdateGamepad(arg1) -- Line 1288
    --[[ Upvalues[4]:
        [1]: VRService_upvr (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: vector2_3_upvr (readonly)
        [4]: UserGameSettings_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local gamepadPanningCamera = arg1.gamepadPanningCamera
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [6] 5. Error Block 43 start (CF ANALYSIS FAILED)
    if not VRService_upvr.VREnabled then
        -- KONSTANTERROR: [10] 8. Error Block 42 start (CF ANALYSIS FAILED)
        local any_GamepadLinearToCurve_result1_2 = module_upvr_2.GamepadLinearToCurve(gamepadPanningCamera)
        local tick_result1_2 = tick()
        if any_GamepadLinearToCurve_result1_2.X ~= 0 or any_GamepadLinearToCurve_result1_2.Y ~= 0 then
            arg1.userPanningTheCamera = true
        elseif any_GamepadLinearToCurve_result1_2 == vector2_3_upvr then
            arg1.lastThumbstickRotate = nil
            if arg1.lastThumbstickPos == vector2_3_upvr then
                arg1.currentSpeed = 0
            end
        end
        local var144 = 0
        if arg1.lastThumbstickRotate then
            if VRService_upvr.VREnabled then
                arg1.currentSpeed = arg1.vrMaxSpeed
            else
                local var145 = (tick_result1_2 - arg1.lastThumbstickRotate) * 10
                arg1.currentSpeed += (arg1.maxSpeed) * (var145 * var145 / arg1.numOfSeconds)
                if arg1.maxSpeed < arg1.currentSpeed then
                    arg1.currentSpeed = arg1.maxSpeed
                end
                if arg1.lastVelocity then
                    local magnitude_2 = ((any_GamepadLinearToCurve_result1_2 - arg1.lastThumbstickPos) / (tick_result1_2 - arg1.lastThumbstickRotate) - arg1.lastVelocity).magnitude
                    if 12 < magnitude_2 then
                        arg1.currentSpeed *= 20 / magnitude_2
                        if arg1.maxSpeed < arg1.currentSpeed then
                            arg1.currentSpeed = arg1.maxSpeed
                        end
                    end
                end
            end
            var144 = UserGameSettings_upvr.GamepadCameraSensitivity * arg1.currentSpeed
            arg1.lastVelocity = (any_GamepadLinearToCurve_result1_2 - arg1.lastThumbstickPos) / (tick_result1_2 - arg1.lastThumbstickRotate)
        end
        arg1.lastThumbstickPos = any_GamepadLinearToCurve_result1_2
        arg1.lastThumbstickRotate = tick_result1_2
        do
            return Vector2.new(any_GamepadLinearToCurve_result1_2.X * var144, any_GamepadLinearToCurve_result1_2.Y * var144 * arg1.ySensitivity * UserGameSettings_upvr:GetCameraYInvertValue())
        end
        -- KONSTANTERROR: [10] 8. Error Block 42 end (CF ANALYSIS FAILED)
    end
    -- KONSTANTERROR: [6] 5. Error Block 43 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [155] 102. Error Block 25 start (CF ANALYSIS FAILED)
    do
        return vector2_3_upvr
    end
    -- KONSTANTERROR: [155] 102. Error Block 25 end (CF ANALYSIS FAILED)
end
function module_upvr.ApplyVRTransform(arg1) -- Line 1339
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    local var147
    if not VRService_upvr.VREnabled then
    else
        local humanoidRootPart = arg1.humanoidRootPart
        if humanoidRootPart then
            humanoidRootPart = arg1.humanoidRootPart
            var147 = "RootJoint"
            humanoidRootPart = humanoidRootPart:FindFirstChild(var147)
        end
        if not humanoidRootPart then return end
        var147 = game.Workspace.CurrentCamera
        var147 = var147.CameraSubject
        if var147 then
            var147 = var147.CameraSubject:IsA("VehicleSeat")
        end
        if arg1.inFirstPerson then
            if not var147 then
                local any_GetUserCFrame_result1 = VRService_upvr:GetUserCFrame(Enum.UserCFrame.Head)
                humanoidRootPart.C0 = CFrame.new(any_GetUserCFrame_result1 - any_GetUserCFrame_result1.p:vectorToObjectSpace(any_GetUserCFrame_result1.p)) * CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
                return
            end
        end
        humanoidRootPart.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
    end
end
function module_upvr.IsInFirstPerson(arg1) -- Line 1362
    return arg1.inFirstPerson
end
function module_upvr.ShouldUseVRRotation(arg1) -- Line 1366
    --[[ Upvalues[2]:
        [1]: VRService_upvr (readonly)
        [2]: StarterGui_upvr (readonly)
    ]]
    local var159
    if not VRService_upvr.VREnabled then
        return false
    end
    if not arg1.VRRotationIntensityAvailable then
        var159 = arg1.lastVRRotationIntensityCheckTime
        if tick() - var159 < 1 then
            return false
        end
    end
    local pcall_result1, pcall_result2_4 = pcall(function() -- Line 1375
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("VRRotationIntensity")
    end)
    var159 = pcall_result1
    if var159 then
        if pcall_result2_4 == nil then
            var159 = false
        else
            var159 = true
        end
    end
    arg1.VRRotationIntensityAvailable = var159
    arg1.lastVRRotationIntensityCheckTime = tick()
    if pcall_result1 then
        if pcall_result2_4 ~= nil then
            if pcall_result2_4 == "Smooth" then
            else
            end
        end
    end
    arg1.shouldUseVRRotation = true
    return arg1.shouldUseVRRotation
end
function module_upvr.GetVRRotationInput(arg1) -- Line 1384
    --[[ Upvalues[2]:
        [1]: vector2_3_upvr (readonly)
        [2]: StarterGui_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local pcall_result1_6, pcall_result2_3 = pcall(function() -- Line 1386
        --[[ Upvalues[1]:
            [1]: StarterGui_upvr (copied, readonly)
        ]]
        return StarterGui_upvr:GetCore("VRRotationIntensity")
    end)
    local var166
    if not pcall_result1_6 then return end
    var166 = arg1.GamepadPanningCamera
    if not var166 then
        var166 = vector2_3_upvr
    end
    if arg1:GetRepeatDelayValue(pcall_result2_3) > tick() - arg1.lastVRRotationTime then
        local _ = false
        -- KONSTANTWARNING: Skipped task `defvar` above
    else
    end
    local var168
    if arg1:GetActivateValue() <= var168 then
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var168 = arg1.vrRotateKeyCooldown[Enum.KeyCode.Thumbstick2]
            return var168
        end
        if true or not INLINED() then
            var168 = 1
            if var166.x < 0 then
                var168 = -1
            end
            arg1.vrRotateKeyCooldown[Enum.KeyCode.Thumbstick2] = true
            -- KONSTANTWARNING: GOTO [82] #60
        end
    else
        var168 = math.abs(var166.x)
        if var168 < arg1:GetActivateValue() - 0.1 then
            var168 = arg1.vrRotateKeyCooldown
            var168[Enum.KeyCode.Thumbstick2] = nil
        end
    end
    var168 = arg1.turningLeft
    if var168 then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var168 = arg1.vrRotateKeyCooldown[Enum.KeyCode.Left]
            return var168
        end
        if true or not INLINED_2() then
            var168 = arg1:GetRotateAmountValue(pcall_result2_3)
            var168 = arg1.vrRotateKeyCooldown
            var168[Enum.KeyCode.Left] = true
            -- KONSTANTWARNING: GOTO [110] #80
        end
    else
        var168 = arg1.vrRotateKeyCooldown
        var168[Enum.KeyCode.Left] = nil
    end
    var168 = arg1.turningRight
    if var168 then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        local function INLINED_3() -- Internal function, doesn't exist in bytecode
            var168 = arg1.vrRotateKeyCooldown[Enum.KeyCode.Right]
            return var168
        end
        if true or not INLINED_3() then
            var168 = arg1:GetRotateAmountValue(pcall_result2_3)
            local var169 = vector2_3_upvr + arg1:GetRotateAmountValue(pcall_result2_3) * var168 - var168 + var168
            var168 = arg1.vrRotateKeyCooldown
            var168[Enum.KeyCode.Right] = true
            -- KONSTANTWARNING: GOTO [138] #100
        end
    else
        var168 = arg1.vrRotateKeyCooldown
        var168[Enum.KeyCode.Right] = nil
    end
    var168 = vector2_3_upvr
    if var169 ~= var168 then
        var168 = tick()
        arg1.lastVRRotationTime = var168
    end
    return var169
end
function module_upvr.CancelCameraFreeze(arg1, arg2) -- Line 1431
    if not arg2 then
        arg1.cameraTranslationConstraints = Vector3.new(arg1.cameraTranslationConstraints.x, 1, arg1.cameraTranslationConstraints.z)
    end
    if arg1.cameraFrozen then
        arg1.trackingHumanoid = nil
        arg1.cameraFrozen = false
    end
end
function module_upvr.StartCameraFreeze(arg1, arg2, arg3) -- Line 1441
    if not arg1.cameraFrozen then
        arg1.humanoidJumpOrigin = arg2
        arg1.trackingHumanoid = arg3
        arg1.cameraTranslationConstraints = Vector3.new(arg1.cameraTranslationConstraints.x, 0, arg1.cameraTranslationConstraints.z)
        arg1.cameraFrozen = true
    end
end
function module_upvr.OnNewCameraSubject(arg1) -- Line 1450
    --[[ Upvalues[1]:
        [1]: VRService_upvr (readonly)
    ]]
    local var170_upvr
    if var170_upvr then
        var170_upvr = arg1.subjectStateChangedConn:Disconnect
        var170_upvr()
        var170_upvr = nil
        arg1.subjectStateChangedConn = var170_upvr
    end
    var170_upvr = workspace.CurrentCamera
    if var170_upvr then
        var170_upvr = workspace.CurrentCamera.CameraSubject
    end
    if arg1.trackingHumanoid ~= var170_upvr then
        arg1:CancelCameraFreeze()
    end
    if var170_upvr and var170_upvr:IsA("Humanoid") then
        arg1.subjectStateChangedConn = var170_upvr.StateChanged:Connect(function(arg1_14, arg2) -- Line 1461
            --[[ Upvalues[3]:
                [1]: VRService_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: var170_upvr (readonly)
            ]]
            if VRService_upvr.VREnabled and arg2 == Enum.HumanoidStateType.Jumping then
                if not arg1.inFirstPerson then
                    arg1:StartCameraFreeze(arg1:GetSubjectPosition(), var170_upvr)
                    return
                end
            end
            if arg2 ~= Enum.HumanoidStateType.Jumping and arg2 ~= Enum.HumanoidStateType.Freefall then
                arg1:CancelCameraFreeze(true)
            end
        end)
    end
end
function module_upvr.GetVRFocus(arg1, arg2, arg3) -- Line 1471
    if not arg1.cameraFrozen then
        arg1.cameraTranslationConstraints = Vector3.new(arg1.cameraTranslationConstraints.x, math.min(1, arg1.cameraTranslationConstraints.y + 0.42 * arg3), arg1.cameraTranslationConstraints.z)
    end
    local var172
    if arg1.cameraFrozen and arg1.humanoidJumpOrigin and (arg1.LastCameraFocus or arg2).y < arg1.humanoidJumpOrigin.y then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var172 = CFrame.new(Vector3.new(arg2.x, math.min(arg1.humanoidJumpOrigin.y, (arg1.LastCameraFocus or arg2).y + 5 * arg3), arg2.z))
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        var172 = CFrame.new(Vector3.new(arg2.x, (arg1.LastCameraFocus or arg2).y, arg2.z):lerp(arg2, arg1.cameraTranslationConstraints.y))
    end
    if arg1.cameraFrozen then
        if arg1.inFirstPerson then
            arg1:CancelCameraFreeze()
        end
        if arg1.humanoidJumpOrigin and arg2.y < arg1.humanoidJumpOrigin.y - 0.5 then
            arg1:CancelCameraFreeze()
        end
    end
    return var172
end
local vector2_2_upvr = Vector2.new(0.2617993877991494, 0)
local vector2_6_upvr = Vector2.new(0.7853981633974483, 0)
function module_upvr.GetRotateAmountValue(arg1, arg2) -- Line 1499
    --[[ Upvalues[4]:
        [1]: StarterGui_upvr (readonly)
        [2]: vector2_2_upvr (readonly)
        [3]: vector2_6_upvr (readonly)
        [4]: vector2_3_upvr (readonly)
    ]]
    local var175 = arg2
    if not var175 then
        var175 = StarterGui_upvr:GetCore("VRRotationIntensity")
    end
    local var176 = var175
    if var176 then
        if var176 == "Low" then
            return vector2_2_upvr
        end
        if var176 == "High" then
            return vector2_6_upvr
        end
    end
    return vector2_3_upvr
end
function module_upvr.GetRepeatDelayValue(arg1, arg2) -- Line 1511
    --[[ Upvalues[1]:
        [1]: StarterGui_upvr (readonly)
    ]]
    local var177 = arg2
    if not var177 then
        var177 = StarterGui_upvr:GetCore("VRRotationIntensity")
    end
    local var178 = var177
    if var178 then
        if var178 == "Low" then
            return 0.1
        end
        if var178 == "High" then
            return 0.4
        end
    end
    return 0
end
function module_upvr.Update(arg1, arg2) -- Line 1523
    error("BaseCamera:Update() This is a virtual function that should never be getting called.", 2)
end
return module_upvr
LocalScript PlayerScriptsLoader PlayerScriptsLoader
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:06
-- Luau version 6, Types version 3
-- Time taken: 0.000410 seconds

require(script.Parent:WaitForChild("PlayerModule"))
ModuleScript scoreboard scoreboard
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:08
-- Luau version 6, Types version 3
-- Time taken: 0.069444 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local References_upvr = engine.References
local Services_upvr = engine.Services
local config_upvr = References_upvr.Main.config
local scoreboards_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("scoreboards", 100)
local module_upvr = {
    tween = {
        home = {};
        away = {};
    };
    lastScores = {
        home = {};
        away = {};
    };
}
function module_upvr.init(arg1) -- Line 28
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: config_upvr (readonly)
    ]]
    module_upvr:updateType()
    module_upvr:updateTeams()
    module_upvr:updateTimer()
    module_upvr:updatePenalties()
    config_upvr.Scoreboard:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateType)
    config_upvr.Timer.Added.Enabled:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateTimer)
    config_upvr.Penalties.Enabled:GetPropertyChangedSignal("Value"):Connect(module_upvr.updatePenalties)
    for _, v in next, {"Team", "Score", "Kit Type"} do
        config_upvr.Stats.Home[v]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateTeams)
        config_upvr.Stats.Away[v]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateTeams)
    end
    for _, v_2 in next, {"Minutes", "Seconds"} do
        config_upvr.Timer[v_2]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateTimer)
        config_upvr.Timer.Added[v_2]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updateTimer)
    end
    for _, v_3 in next, {'1', '2', '3', '4', '5'} do
        config_upvr.Penalties.Home[v_3]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updatePenalties)
        config_upvr.Penalties.Away[v_3]:GetPropertyChangedSignal("Value"):Connect(module_upvr.updatePenalties)
    end
end
function module_upvr.numberToString(arg1, arg2) -- Line 54
    if arg2 < 10 then
        return '0'..tostring(arg2)
    end
    return tostring(arg2)
end
function module_upvr.updateType(arg1) -- Line 62
    --[[ Upvalues[2]:
        [1]: scoreboards_upvr (readonly)
        [2]: config_upvr (readonly)
    ]]
    for _, v_4 in next, scoreboards_upvr:GetChildren() do
        if string.lower(v_4.Name) == string.lower(config_upvr.Scoreboard.Value) then
            v_4.Visible = true
        else
            v_4.Visible = false
        end
    end
end
function module_upvr.updatePenalties(arg1) -- Line 72
    --[[ Upvalues[3]:
        [1]: scoreboards_upvr (readonly)
        [2]: config_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local children_2, NONE = scoreboards_upvr:GetChildren()
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [724] 486. Error Block 66 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [724] 486. Error Block 66 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 403 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [724.6]
    if nil then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil == "rf" then
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if nil == "epl" then
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if nil == "laliga" then
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    if nil == "ucl" then
                    else
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        if nil == "seriea" then
                        else
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            if nil == "ligue1" then
                            else
                                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                if nil == "bundesliga" then
                                else
                                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                    if nil == "aleague" then
                                    else
                                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                                        if nil == "uel" or nil == "uecl" then
                                        else
                                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                            if nil == "wc" then
                                                -- KONSTANTWARNING: GOTO [724] #486
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if nil == "rf" then
        else
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if nil == "epl" then
            else
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if nil == "laliga" then
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    if nil == "ucl" then
                    else
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        if nil == "seriea" then
                        else
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            if nil == "ligue1" then
                            else
                                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                if nil == "bundesliga" then
                                else
                                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                    if nil == "aleague" then
                                    else
                                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
                                        if nil == "uel" or nil == "uecl" then
                                        else
                                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                            if nil == "wc" then
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
    -- KONSTANTERROR: [7] 6. Error Block 403 end (CF ANALYSIS FAILED)
end
function module_upvr.updateTimer(arg1) -- Line 290
    --[[ Upvalues[4]:
        [1]: scoreboards_upvr (readonly)
        [2]: config_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: module_upvr (readonly)
    ]]
    for _, v_5_upvr in next, scoreboards_upvr:GetChildren() do
        if v_5_upvr.Name == "rf" then
            if config_upvr.Timer.Added.Enabled.Value then
                task.spawn(function() -- Line 294
                    --[[ Upvalues[3]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: v_5_upvr (readonly)
                        [3]: config_upvr (copied, readonly)
                    ]]
                    Services_upvr.TweenService:Create(v_5_upvr.timer.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 1;
                    }):Play()
                    task.wait(0.2)
                    if config_upvr.Timer.Added.Enabled.Value then
                        Services_upvr.TweenService:Create(v_5_upvr.added.display.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextTransparency = 0;
                        }):Play()
                        Services_upvr.TweenService:Create(v_5_upvr.added.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextTransparency = 0;
                        }):Play()
                    end
                end)
            else
                task.spawn(function() -- Line 303
                    --[[ Upvalues[3]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: v_5_upvr (readonly)
                        [3]: config_upvr (copied, readonly)
                    ]]
                    Services_upvr.TweenService:Create(v_5_upvr.added.display.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 1;
                    }):Play()
                    Services_upvr.TweenService:Create(v_5_upvr.added.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 1;
                    }):Play()
                    task.wait(0.2)
                    if not config_upvr.Timer.Added.Enabled.Value then
                        Services_upvr.TweenService:Create(v_5_upvr.timer.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextTransparency = 0;
                        }):Play()
                    end
                end)
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "epl" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 80, 0, 20);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 20);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "laliga" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.main.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 65, 0.25, 0);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.main.timer, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 65, 0.25, 0);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.main.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 65, 0, 0);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.main.timer, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 65, 0.5, 0);
                }):Play()
            end
            v_5_upvr.main.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.main.added.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.main.added.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "ucl" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.timer, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 25);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.timer, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 95, 0, 25);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "seriea" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 85, 0, 25);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 25);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "ligue1" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 85, 0, 25);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 25);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "bundesliga" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 95, 0, 25);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 25);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "aleague" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 85, 0, 25);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, -25, 0.5, 0);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 0, 25);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, 0, 0.5, 0);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "uel" or v_5_upvr.Name == "uecl" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 95, 1, 0);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, -28, 0, 0);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Size = UDim2.new(0, 0, 1, 0);
                }):Play()
                Services_upvr.TweenService:Create(v_5_upvr.timer.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, -3, 0, 0);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        elseif v_5_upvr.Name == "wc" then
            if config_upvr.Timer.Added.Enabled.Value then
                Services_upvr.TweenService:Create(v_5_upvr.added.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, 0, 0, 0);
                }):Play()
            else
                Services_upvr.TweenService:Create(v_5_upvr.added.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0, 0, -1, 0);
                }):Play()
            end
            v_5_upvr.timer.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Seconds.Value))
            v_5_upvr.added.main.label.Text = string.format("%s:%s", module_upvr:numberToString(config_upvr.Timer.Added.Minutes.Value), module_upvr:numberToString(config_upvr.Timer.Added.Seconds.Value))
            v_5_upvr.added.main.display.label.Text = string.format("+%s", tostring(config_upvr.Timer.AddedTime.Value))
        end
    end
end
local any_load_result1_upvr = engine:load("TeamService", "utils")
function module_upvr.updateTeams(arg1) -- Line 420
    --[[ Upvalues[6]:
        [1]: scoreboards_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: config_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local children, NONE_2 = scoreboards_upvr:GetChildren()
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [1195] 718. Error Block 83 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [1197.5]
    local var68_upvr
    task.spawn(function() -- Line 519
        --[[ Upvalues[3]:
            [1]: module_upvr (copied, readonly)
            [2]: var68_upvr (readonly)
            [3]: config_upvr (copied, readonly)
        ]]
        while module_upvr.tween.home[var68_upvr.Name] do
            task.wait()
        end
        if not module_upvr.lastScores.home[var68_upvr.Name] or module_upvr.lastScores.home[var68_upvr.Name] ~= config_upvr.Stats.Home.Score.Value then
            task.spawn(function() -- Line 525
                --[[ Upvalues[3]:
                    [1]: module_upvr (copied, readonly)
                    [2]: var68_upvr (copied, readonly)
                    [3]: config_upvr (copied, readonly)
                ]]
                module_upvr.tween.home[var68_upvr.Name] = true
                module_upvr.lastScores.home[var68_upvr.Name] = config_upvr.Stats.Home.Score.Value
                if var68_upvr.Name == "rf" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.25, 0, 1.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.25, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "epl" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    var68_upvr.score.logo:TweenSize(UDim2.new(0, 50, 0, 50), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.logo:TweenSize(UDim2.new(0, 40, 0, 40), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.25, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "laliga" then
                    var68_upvr.main.score.home.score:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.main.score.home.score.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.main.score.home.score:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "ucl" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.5, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.5, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "seriea" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.5, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.5, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "ligue1" then
                    var68_upvr.score.home.score:TweenPosition(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.home.score.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.home.score:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "bundesliga" then
                    var68_upvr.score.home.score:TweenPosition(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.home.score.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.home.score:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "aleague" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "uel" or var68_upvr.Name == "uecl" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "wc" then
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, -5, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.home.Text = tostring(config_upvr.Stats.Home.Score.Value)
                    var68_upvr.score.scores.home:TweenPosition(UDim2.new(0.4, -5, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                end
                module_upvr.tween.home[var68_upvr.Name] = nil
            end)
        end
    end)
    task.spawn(function() -- Line 599
        --[[ Upvalues[3]:
            [1]: module_upvr (copied, readonly)
            [2]: var68_upvr (readonly)
            [3]: config_upvr (copied, readonly)
        ]]
        while module_upvr.tween.away[var68_upvr.Name] do
            task.wait()
        end
        if not module_upvr.lastScores.away[var68_upvr.Name] or module_upvr.lastScores.away[var68_upvr.Name] ~= config_upvr.Stats.Away.Score.Value then
            task.spawn(function() -- Line 605
                --[[ Upvalues[3]:
                    [1]: module_upvr (copied, readonly)
                    [2]: var68_upvr (copied, readonly)
                    [3]: config_upvr (copied, readonly)
                ]]
                module_upvr.tween.away[var68_upvr.Name] = true
                module_upvr.lastScores.away[var68_upvr.Name] = config_upvr.Stats.Away.Score.Value
                if var68_upvr.Name == "rf" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.75, 0, 1.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.75, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "epl" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    var68_upvr.score.logo:TweenSize(UDim2.new(0, 50, 0, 50), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.logo:TweenSize(UDim2.new(0, 40, 0, 40), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.75, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "laliga" then
                    var68_upvr.main.score.away.score:TweenPosition(UDim2.new(0.5, 0, -1.5, -4), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.main.score.away.score.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.main.score.away.score:TweenPosition(UDim2.new(0.5, 0, 0.5, -4), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "ucl" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.5, 1, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.5, 1, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "seriea" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.5, 1, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.5, 1, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "ligue1" then
                    var68_upvr.score.away.score:TweenPosition(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.away.score.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.away.score:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "bundesliga" then
                    var68_upvr.score.away.score:TweenPosition(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.away.score.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.away.score:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "aleague" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, -1, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, -1, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "uel" or var68_upvr.Name == "uecl" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, -1, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, -1, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                elseif var68_upvr.Name == "wc" then
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, 4, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                    task.wait(0.2)
                    var68_upvr.score.scores.away.Text = tostring(config_upvr.Stats.Away.Score.Value)
                    var68_upvr.score.scores.away:TweenPosition(UDim2.new(0.6, 4, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
                end
                module_upvr.tween.away[var68_upvr.Name] = nil
            end)
        end
    end)
    -- KONSTANTERROR: [1195] 718. Error Block 83 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 6. Error Block 2 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript draggableObject draggableObject
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:09
-- Luau version 6, Types version 3
-- Time taken: 0.002072 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local module = {}
local PlayerGui_upvr = engine.References.PlayerGui
local Services_upvr = engine.Services
local any_load_result1_upvr = engine:load("DraggableObject", "utils")
function module.init(arg1) -- Line 15
    --[[ Upvalues[3]:
        [1]: PlayerGui_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
    ]]
    for _, v in next, PlayerGui_upvr:GetDescendants() do
        if v and v:GetAttribute("draggable") and not Services_upvr.UserInputService.TouchEnabled and not Services_upvr.UserInputService.GamepadEnabled then
            if Services_upvr.UserInputService.TouchEnabled then
                v.Active = true
                v.Selectable = true
            end
            any_load_result1_upvr.new(v):Enable()
        end
    end
end
return module
ModuleScript ballSelection ballSelection
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:10
-- Luau version 6, Types version 3
-- Time taken: 0.009156 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local References_upvr = engine.References
while not engine.Classes.Sessions:GetAttribute("init") do
    task.wait()
end
local config_upvr = References_upvr.Main.config
local balls_upvr_2 = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("balls", 100)
local module = {
    toggled = false;
    init = function(arg1) -- Line 31, Named "init"
        --[[ Upvalues[2]:
            [1]: config_upvr (readonly)
            [2]: balls_upvr_2 (readonly)
        ]]
        config_upvr.Ball.Changed:Connect(function() -- Line 32
            --[[ Upvalues[2]:
                [1]: balls_upvr_2 (copied, readonly)
                [2]: config_upvr (copied, readonly)
            ]]
            for _, v in next, balls_upvr_2.scroll.main:GetChildren() do
                if v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name == config_upvr.Ball.Value then
                    v.main.selected.Visible = true
                elseif v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name ~= config_upvr.Ball.Value then
                    v.main.selected.Visible = false
                end
            end
        end)
        script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 42
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if script:GetAttribute("toggle") then
                script:SetAttribute("toggle", false)
                arg1:toggle(true)
            end
        end)
    end;
}
local any_new_result1_upvr_2 = engine:load("Maid").new()
local any_new_result1_upvr_3 = engine:load("Janitor").new()
local Services_upvr = engine.Services
local balls_upvr = References_upvr.Main:WaitForChild("balls", 100)
local any_load_result1_upvr = engine:load("Viewport")
local any_new_result1_upvr = engine:load("Network").new()
local any_load_result1_upvr_2 = engine:load("Sessions")
function module.toggle(arg1, arg2) -- Line 50
    --[[ Upvalues[10]:
        [1]: balls_upvr_2 (readonly)
        [2]: any_new_result1_upvr_2 (readonly)
        [3]: any_new_result1_upvr_3 (readonly)
        [4]: Services_upvr (readonly)
        [5]: balls_upvr (readonly)
        [6]: References_upvr (readonly)
        [7]: config_upvr (readonly)
        [8]: any_load_result1_upvr (readonly)
        [9]: any_new_result1_upvr (readonly)
        [10]: any_load_result1_upvr_2 (readonly)
    ]]
    if arg2 then
        arg1.toggled = true
        balls_upvr_2.Visible = true
        any_new_result1_upvr_2:DoCleaning()
        any_new_result1_upvr_3:clean(balls_upvr_2.scroll.main:GetChildren(), "UIGridLayout")
        Services_upvr.TweenService:Create(balls_upvr_2, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
            Position = UDim2.new(0.5, 0, 0.5, 0);
        }):Play()
        Services_upvr.TweenService:Create(balls_upvr_2.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Transparency = 0;
        }):Play()
        task.spawn(function() -- Line 61
            --[[ Upvalues[9]:
                [1]: balls_upvr (copied, readonly)
                [2]: References_upvr (copied, readonly)
                [3]: balls_upvr_2 (copied, readonly)
                [4]: Services_upvr (copied, readonly)
                [5]: config_upvr (copied, readonly)
                [6]: any_load_result1_upvr (copied, readonly)
                [7]: any_new_result1_upvr_2 (copied, readonly)
                [8]: any_new_result1_upvr (copied, readonly)
                [9]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            for _, v_2_upvr in next, balls_upvr:GetChildren() do
                local clone_upvr = References_upvr.Main.ui.ball:Clone()
                clone_upvr.Parent = balls_upvr_2.scroll.main
                clone_upvr.Name = v_2_upvr.Name
                balls_upvr_2.scroll.CanvasSize = UDim2.new(0, 0, 0, balls_upvr_2.scroll.main.AbsoluteSize.Y + 2)
                clone_upvr.main.UIScale.Scale = 0
                Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
                if v_2_upvr.Name == config_upvr.Ball.Value then
                    clone_upvr.main.selected.Visible = true
                end
                any_load_result1_upvr.new({
                    _viewport = clone_upvr.main.viewport;
                    _model = v_2_upvr;
                    _rotate = "Dynamic";
                    _viewportDistance = 0.8;
                    _cameraFOV = 60;
                })
                any_new_result1_upvr_2[v_2_upvr.Name.."_mouseEnter"] = clone_upvr.main.button.MouseEnter:Connect(function() -- Line 83
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: clone_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(177, 177, 177);
                    }):Play()
                end)
                any_new_result1_upvr_2[v_2_upvr.Name.."_mouseLeave"] = clone_upvr.main.button.MouseLeave:Connect(function() -- Line 88
                    --[[ Upvalues[2]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: clone_upvr (readonly)
                    ]]
                    Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                end)
                any_new_result1_upvr_2[v_2_upvr.Name.."_mouseButton1Click"] = clone_upvr.main.button.MouseButton1Click:Connect(function() -- Line 92
                    --[[ Upvalues[6]:
                        [1]: References_upvr (copied, readonly)
                        [2]: clone_upvr (readonly)
                        [3]: balls_upvr_2 (copied, readonly)
                        [4]: any_new_result1_upvr (copied, readonly)
                        [5]: any_load_result1_upvr_2 (copied, readonly)
                        [6]: v_2_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Click:Play()
                    clone_upvr.main.selected.Visible = true
                    for _, v_3 in next, balls_upvr_2.scroll.main:GetChildren() do
                        if v_3 and v_3:FindFirstChild("main") and v_3.main:FindFirstChild("selected") and v_3 ~= clone_upvr then
                            v_3.main.selected.Visible = false
                        end
                    end
                    any_new_result1_upvr:send("ballSelection", any_load_result1_upvr_2:getSession("ballSpawner"), v_2_upvr.Name)
                end)
                task.wait(0.05)
            end
        end)
        any_new_result1_upvr_2.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 109
            --[[ Upvalues[5]:
                [1]: Services_upvr (copied, readonly)
                [2]: any_new_result1_upvr_2 (copied, readonly)
                [3]: balls_upvr_2 (copied, readonly)
                [4]: any_new_result1_upvr_3 (copied, readonly)
                [5]: arg1 (readonly)
            ]]
            if arg2_2 or Services_upvr.UserInputService:GetFocusedTextBox() then
            elseif arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
                any_new_result1_upvr_2:DoCleaning()
                Services_upvr.TweenService:Create(balls_upvr_2, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    GroupTransparency = 1;
                    Position = UDim2.new(0.5, 0, 0.5, 20);
                }):Play()
                Services_upvr.TweenService:Create(balls_upvr_2.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 1;
                }):Play()
                task.wait(0.2)
                any_new_result1_upvr_3:clean(balls_upvr_2.scroll.main:GetChildren(), "UIGridLayout")
                arg1.toggled = false
                balls_upvr_2.Visible = false
            end
        end)
    else
        any_new_result1_upvr_2:DoCleaning()
        Services_upvr.TweenService:Create(balls_upvr_2, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            GroupTransparency = 1;
            Position = UDim2.new(0.5, 0, 0.5, 20);
        }):Play()
        Services_upvr.TweenService:Create(balls_upvr_2.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        task.wait(0.2)
        any_new_result1_upvr_3:clean(balls_upvr_2.scroll.main:GetChildren(), "UIGridLayout")
        arg1.toggled = false
        balls_upvr_2.Visible = false
    end
end
return module
ModuleScript region region
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:12
-- Luau version 6, Types version 3
-- Time taken: 0.012251 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Rain")
local References = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local PlayerGui_upvr = References.PlayerGui
local config_upvr = References.Main.config
local menu_upvr = script.Parent:WaitForChild("menu", 100)
local module_upvr = {
    region = false;
    indoor = false;
    tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut);
    ambience = {};
    lighting = {
        Ambient = Color3.fromRGB(50, 50, 50);
        OutdoorAmbient = Color3.fromRGB(150, 150, 150);
        ColorShift_Bottom = Color3.fromRGB(0, 0, 0);
        ColorShift_Top = Color3.fromRGB(255, 255, 255);
        EnvironmentDiffuseScale = 0.2;
        EnvironmentSpecularScale = 1;
        ExposureCompensation = 0.2;
        Brightness = 5;
    };
}
local function _() -- Line 36, Named "checkLightingChanged"
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    for i, v in next, module_upvr.lighting do
        if i and v and Services_upvr.Lighting[i] ~= v then
            return true
        end
    end
    return false
end
local any_new_result1_upvr = _engine:load("Network").new()
function module_upvr.check(arg1) -- Line 46
    --[[ Upvalues[8]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: PlayerGui_upvr (readonly)
        [6]: config_upvr (readonly)
        [7]: any_load_result1_upvr (readonly)
        [8]: any_new_result1_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 88 start (CF ANALYSIS FAILED)
    local OverlapParams_new_result1 = OverlapParams.new()
    OverlapParams_new_result1.FilterType = Enum.RaycastFilterType.Include
    OverlapParams_new_result1.FilterDescendantsInstances = {LocalPlayer_upvr.Character}
    local var42
    for i_2, v_2 in next, workspace.game.regions:GetChildren() do
        if v_2 and v_2.Name == "tunnel" then
            for i_3, v_3 in next, workspace:GetPartBoundsInBox(v_2.CFrame, v_2.Size, OverlapParams_new_result1) do
                if v_3 and v_3.Parent then
                    local var45 = true
                end
            end
        elseif v_2 and v_2.Name == "store" then
            i_3 = v_2.CFrame
            v_3 = v_2.Size
            for _, v_6 in next, workspace:GetPartBoundsInBox(i_3, v_3, OverlapParams_new_result1) do
                if v_6 and v_6.Parent then
                end
            end
        end
    end
    if nil then
        i_2 = true
        LocalPlayer_upvr.Character:SetAttribute("inStore", i_2)
    else
        i_2 = nil
        LocalPlayer_upvr.Character:SetAttribute("inStore", i_2)
    end
    -- KONSTANTERROR: [0] 1. Error Block 88 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [102] 68. Error Block 23 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [102] 68. Error Block 23 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [105] 70. Error Block 24 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [105] 70. Error Block 24 end (CF ANALYSIS FAILED)
end
function module_upvr.indoors(arg1) -- Line 111
    --[[ Upvalues[7]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: PlayerGui_upvr (readonly)
        [6]: config_upvr (readonly)
        [7]: any_load_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 79 start (CF ANALYSIS FAILED)
    local OverlapParams_new_result1_2 = OverlapParams.new()
    OverlapParams_new_result1_2.FilterType = Enum.RaycastFilterType.Include
    OverlapParams_new_result1_2.FilterDescendantsInstances = {LocalPlayer_upvr.Character}
    local var56
    for _, v_4 in next, workspace:GetPartBoundsInBox(workspace.game.regions.indoor.CFrame, workspace.game.regions.indoor.Size, OverlapParams_new_result1_2) do
        if v_4 and v_4.Parent then
            var56 = true
        end
    end
    -- KONSTANTERROR: [0] 1. Error Block 79 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [54] 33. Error Block 7 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [54] 33. Error Block 7 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [57] 35. Error Block 8 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [57] 35. Error Block 8 end (CF ANALYSIS FAILED)
end
function module_upvr.init(arg1) -- Line 178
    --[[ Upvalues[2]:
        [1]: config_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    for _, v_5 in next, _G._references.Main.sounds.Ambience:GetChildren() do
        if v_5 and v_5:IsA("Sound") then
            arg1.ambience[v_5.Name] = {
                _sound = v_5;
                _volume = v_5.Volume;
            }
            v_5.Volume = 0
            v_5:Play()
        end
    end
    arg1:check()
    _G._services.TweenService:Create(arg1.ambience["Indoor Ambience"]._sound, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Volume = arg1.ambience["Indoor Ambience"]._volume;
    }):Play()
    _G._services.TweenService:Create(arg1.ambience["Outdoor Ambience"]._sound, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Volume = 0;
    }):Play()
    config_upvr.Weather.Changed:Connect(function() -- Line 196
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    config_upvr.Intensity.Changed:Connect(function() -- Line 201
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    config_upvr.Thunder.Changed:Connect(function() -- Line 206
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    config_upvr.Wind.Changed:Connect(function() -- Line 211
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    config_upvr.Time.Changed:Connect(function() -- Line 216
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    config_upvr.Stadium.Changed:Connect(function() -- Line 221
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
        arg1:indoors()
    end)
    workspace.pitch.stadium.ChildAdded:Connect(function() -- Line 226
        --[[ Upvalues[2]:
            [1]: module_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        module_upvr:check()
        arg1:indoors()
    end)
    workspace.pitch.stadium.ChildRemoved:Connect(function() -- Line 231
        --[[ Upvalues[2]:
            [1]: module_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        module_upvr:check()
        arg1:indoors()
    end)
    while true do
        module_upvr:check()
        module_upvr:indoors()
        task.wait(1)
    end
end
return module_upvr
ModuleScript cardStatus cardStatus
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:13
-- Luau version 6, Types version 3
-- Time taken: 0.009971 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local module = {
    debounce = false;
}
local PlayerGui_upvr = engine.References.PlayerGui
function module.start(arg1, arg2, arg3) -- Line 17
    --[[ Upvalues[1]:
        [1]: PlayerGui_upvr (readonly)
    ]]
    if arg1.debounce then
    else
        arg1.debounce = true
        PlayerGui_upvr.main.card.Visible = true
        PlayerGui_upvr.main.card.status.Size = UDim2.new(PlayerGui_upvr.main.card.status.Size.X.Scale, 0, 0, 0)
        PlayerGui_upvr.main.card.status.label.TextTransparency = 1
        PlayerGui_upvr.main.card.status.UIStroke.Transparency = 1
        PlayerGui_upvr.main.card.background.Visible = false
        PlayerGui_upvr.main.card.player.Visible = false
        PlayerGui_upvr.main.card.card.Visible = false
        PlayerGui_upvr.main.card.fill.layer1:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.075)
        PlayerGui_upvr.main.card.fill.layer2:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        PlayerGui_upvr.main.card.status.label.Text = string.format("%s CARD", string.upper(arg2))
        PlayerGui_upvr.main.card.player.Text = string.upper(arg3)
        PlayerGui_upvr.main.card.background.Visible = true
        PlayerGui_upvr.main.card.player.Visible = true
        PlayerGui_upvr.main.card.card.Visible = true
        for _, v in next, PlayerGui_upvr.main.card.card:GetChildren() do
            if v.Name == arg2 then
                v.Visible = true
            else
                v.Visible = false
            end
        end
        PlayerGui_upvr.main.card.fill.layer1.AnchorPoint = Vector2.new(1, 0)
        PlayerGui_upvr.main.card.fill.layer1.Position = UDim2.new(1, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2.AnchorPoint = Vector2.new(1, 0)
        PlayerGui_upvr.main.card.fill.layer2.Position = UDim2.new(1, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.075)
        PlayerGui_upvr.main.card.fill.layer1:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        PlayerGui_upvr.main.card.fill.layer1.AnchorPoint = Vector2.new(0, 0)
        PlayerGui_upvr.main.card.fill.layer1.Position = UDim2.new(0, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2.AnchorPoint = Vector2.new(0, 0)
        PlayerGui_upvr.main.card.fill.layer2.Position = UDim2.new(0, 0, 0, 0)
        PlayerGui_upvr.main.card.status:TweenSize(UDim2.new(PlayerGui_upvr.main.card.status.Size.X.Scale, 0, 0, 25), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        PlayerGui_upvr.main.card.status.UIStroke.Transparency = 0
        task.wait(0.15)
        _G._services.TweenService:Create(PlayerGui_upvr.main.card.status.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 0;
        }):Play()
        task.wait(3)
        _G._services.TweenService:Create(PlayerGui_upvr.main.card.status.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.1)
        PlayerGui_upvr.main.card.status:TweenSize(UDim2.new(PlayerGui_upvr.main.card.status.Size.X.Scale, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        PlayerGui_upvr.main.card.fill.layer1:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.075)
        PlayerGui_upvr.main.card.fill.layer2:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        PlayerGui_upvr.main.card.background.Visible = false
        PlayerGui_upvr.main.card.player.Visible = false
        PlayerGui_upvr.main.card.card.Visible = false
        PlayerGui_upvr.main.card.status.UIStroke.Transparency = 1
        PlayerGui_upvr.main.card.fill.layer1.AnchorPoint = Vector2.new(1, 0)
        PlayerGui_upvr.main.card.fill.layer1.Position = UDim2.new(1, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2.AnchorPoint = Vector2.new(1, 0)
        PlayerGui_upvr.main.card.fill.layer2.Position = UDim2.new(1, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.075)
        PlayerGui_upvr.main.card.fill.layer1:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        PlayerGui_upvr.main.card.fill.layer1.AnchorPoint = Vector2.new(0, 0)
        PlayerGui_upvr.main.card.fill.layer1.Position = UDim2.new(0, 0, 0, 0)
        PlayerGui_upvr.main.card.fill.layer2.AnchorPoint = Vector2.new(0, 0)
        PlayerGui_upvr.main.card.fill.layer2.Position = UDim2.new(0, 0, 0, 0)
        PlayerGui_upvr.main.card.background.Visible = true
        PlayerGui_upvr.main.card.player.Visible = true
        PlayerGui_upvr.main.card.card.Visible = true
        PlayerGui_upvr.main.card.status.UIStroke.Transparency = 0
        PlayerGui_upvr.main.card.Visible = false
        arg1.debounce = false
    end
end
local LocalPlayer_upvr = engine.Services.Players.LocalPlayer
function module.init(arg1) -- Line 110
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    _G._references.Main.cards.yellow.ChildAdded:Connect(function(arg1_2) -- Line 111
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:start("yellow", arg1_2.Name)
    end)
    _G._references.Main.cards.red.ChildAdded:Connect(function(arg1_3) -- Line 115
        --[[ Upvalues[2]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        if arg1_3.Name == LocalPlayer_upvr.Name and LocalPlayer_upvr.Character and LocalPlayer_upvr.Character.Parent and LocalPlayer_upvr.Character.PrimaryPart then
            LocalPlayer_upvr.Character:SetPrimaryPartCFrame(workspace.game.positions.redCard.CFrame)
        end
        arg1:start("red", arg1_3.Name)
    end)
end
return module
ModuleScript adboards adboards
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:14
-- Luau version 6, Types version 3
-- Time taken: 0.008832 seconds

local _engine = _G._engine
local module = {
    usedAds = {};
    debounce = {};
    registeredAdboards = {};
}
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local any_load_result1_upvr = _engine:load("Sounds")
local module_2_upvr = require(script.Parent.Parent:WaitForChild("mechanics", 100):WaitForChild("ragdoll", 100))
function module.registerTouchEvents(arg1, arg2) -- Line 26
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: module_2_upvr (readonly)
    ]]
    local function onTouched(arg1_2) -- Line 27
        --[[ Upvalues[4]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
            [4]: module_2_upvr (copied, readonly)
        ]]
        if arg1_2 and arg1_2.Parent and arg1_2.Parent:FindFirstChild("Humanoid") and arg1_2.Parent == LocalPlayer_upvr.Character and not arg1_2:FindFirstAncestor("referee") and not arg1_2:FindFirstAncestor("manager") and _G._services.Players:GetPlayerFromCharacter(arg1_2.Parent) and not arg1.debounce[arg1_2.Parent] and 20 <= (arg1_2.Parent.PrimaryPart.AssemblyLinearVelocity * Vector3.new(1, 0, 1)).Magnitude then
            arg1.debounce[arg1_2.Parent] = true
            task.spawn(function() -- Line 31
                --[[ Upvalues[2]:
                    [1]: any_load_result1_upvr (copied, readonly)
                    [2]: arg1_2 (readonly)
                ]]
                any_load_result1_upvr:load({
                    directory = arg1_2.Parent.HumanoidRootPart;
                    soundId = _G._references.Main.sounds.Player.Adboard.SoundId;
                    rollOffMaxDistance = 200;
                    rollOffMinDistance = 30;
                    volume = 0.2;
                    play = true;
                    replicate = true;
                })
            end)
            arg1_2.Parent.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
            arg1_2.Parent.PrimaryPart.AssemblyLinearVelocity = Vector3.new()
            arg1_2.Parent.PrimaryPart.AssemblyAngularVelocity = Vector3.new()
            local BodyVelocity = Instance.new("BodyVelocity", arg1_2.Parent.PrimaryPart)
            BodyVelocity.Velocity = arg1_2.Parent.PrimaryPart.CFrame.LookVector * 25 + Vector3.new(0, 15, 0)
            BodyVelocity.MaxForce = Vector3.new(0, math.huge, 0)
            local BodyAngularVelocity = Instance.new("BodyAngularVelocity", arg1_2.Parent.PrimaryPart)
            BodyAngularVelocity.AngularVelocity = arg1_2.Parent.PrimaryPart.CFrame.RightVector * -10
            BodyAngularVelocity.MaxTorque = Vector3.new(1, 1, 1) * math.huge
            _G._services.Debris:AddItem(BodyVelocity, 0.15)
            _G._services.Debris:AddItem(BodyAngularVelocity, 0.25)
            module_2_upvr:toggle(true)
            task.wait(math.random(1.5, 3))
            module_2_upvr:toggle(false)
            arg1.debounce[arg1_2.Parent] = nil
        end
    end
    arg2.Touched:Connect(onTouched)
    arg2.TouchEnded:Connect(onTouched)
end
local adboards_upvr = workspace.pitch.adboards
local ads_upvr = _G._references.Main.ads
function module.init(arg1) -- Line 70
    --[[ Upvalues[2]:
        [1]: adboards_upvr (readonly)
        [2]: ads_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    for i, v in next, adboards_upvr.boards:GetChildren() do
        arg1.usedAds[v.Name] = {}
        arg1.registeredAdboards[v.Name] = {}
        for _, v_2 in next, v:GetChildren() do
            if v_2 and v_2:IsA("BasePart") then
                local clone = _G._references.Main.ui.ad:Clone()
                clone.Parent = v_2
                table.insert(arg1.registeredAdboards[v.Name], clone)
                arg1:registerTouchEvents(v_2)
            end
        end
    end
    local function selectRandomAd_upvr(arg1_3) -- Line 86, Named "selectRandomAd"
        --[[ Upvalues[2]:
            [1]: ads_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        local randint = math.random(1, #ads_upvr:GetChildren())
        local var42 = ads_upvr:GetChildren()[randint]
        if not table.find(arg1.usedAds[arg1_3], var42) then
            table.insert(arg1.usedAds[arg1_3], var42)
            return var42
        end
        if randint == #ads_upvr:GetChildren() then
            return ads_upvr:GetChildren()[1]
        end
        return ads_upvr:GetChildren()[randint + 1]
    end
    while true do
        i = nil
        for i_3_upvr, v_3_upvr in next, arg1.registeredAdboards, i do
            task.spawn(function() -- Line 105
                --[[ Upvalues[5]:
                    [1]: selectRandomAd_upvr (readonly)
                    [2]: i_3_upvr (readonly)
                    [3]: v_3_upvr (readonly)
                    [4]: arg1 (readonly)
                    [5]: ads_upvr (copied, readonly)
                ]]
                for _, v_4_upvr in next, v_3_upvr do
                    if v_4_upvr.current.Image == "" then
                        v_4_upvr.current.Image = selectRandomAd_upvr(i_3_upvr).Value
                    else
                        if #ads_upvr:GetChildren() <= #arg1.usedAds[i_3_upvr] then
                            table.clear(arg1.usedAds[i_3_upvr])
                        end
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        v_4_upvr.next.Image = selectRandomAd_upvr(i_3_upvr).Value
                        v_4_upvr.current:TweenPosition(UDim2.new(0, 0, -1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 1, true)
                        v_4_upvr.next:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 1, true)
                        task.delay(1.15, function() -- Line 121
                            --[[ Upvalues[1]:
                                [1]: v_4_upvr (readonly)
                            ]]
                            v_4_upvr.current.Image = v_4_upvr.next.Image
                            v_4_upvr.current.Position = UDim2.new(0, 0, 0, 0)
                            v_4_upvr.next.Position = UDim2.new(0, 0, 1, 0)
                        end)
                    end
                end
            end)
            local _
        end
        task.wait(7)
    end
end
return module
ModuleScript stadiumSelection stadiumSelection
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:16
-- Luau version 6, Types version 3
-- Time taken: 0.012473 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local References_upvr = engine.References
while not engine.Classes.Sessions:GetAttribute("init") do
    task.wait()
end
local config_upvr = References_upvr.Main.config
local stadiums_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("stadiums", 100)
local module = {
    toggled = false;
    init = function(arg1) -- Line 30, Named "init"
        --[[ Upvalues[2]:
            [1]: config_upvr (readonly)
            [2]: stadiums_upvr (readonly)
        ]]
        config_upvr.Stadium.Changed:Connect(function() -- Line 31
            --[[ Upvalues[2]:
                [1]: stadiums_upvr (copied, readonly)
                [2]: config_upvr (copied, readonly)
            ]]
            for _, v in next, stadiums_upvr.scroll.main:GetChildren() do
                if v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name == config_upvr.Stadium.Value then
                    v.main.selected.Visible = true
                elseif v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name ~= config_upvr.Stadium.Value then
                    v.main.selected.Visible = false
                end
            end
        end)
        script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 41
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if script:GetAttribute("toggle") then
                script:SetAttribute("toggle", false)
                arg1:toggle(true)
            end
        end)
    end;
}
local any_new_result1_upvr = engine:load("Maid").new()
local any_new_result1_upvr_3 = engine:load("Janitor").new()
local Services_upvr = engine.Services
local any_new_result1_upvr_2 = engine:load("Network").new()
local any_load_result1_upvr = engine:load("Viewport")
local any_load_result1_upvr_2 = engine:load("Sessions")
function module.toggle(arg1, arg2) -- Line 49
    --[[ Upvalues[9]:
        [1]: stadiums_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: any_new_result1_upvr_3 (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_new_result1_upvr_2 (readonly)
        [6]: References_upvr (readonly)
        [7]: config_upvr (readonly)
        [8]: any_load_result1_upvr (readonly)
        [9]: any_load_result1_upvr_2 (readonly)
    ]]
    if arg2 then
        arg1.toggled = true
        stadiums_upvr.Visible = true
        any_new_result1_upvr:DoCleaning()
        any_new_result1_upvr_3:clean(stadiums_upvr.scroll.main:GetChildren(), "UIGridLayout")
        Services_upvr.TweenService:Create(stadiums_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
            Position = UDim2.new(0.5, 0, 0.5, 0);
        }):Play()
        Services_upvr.TweenService:Create(stadiums_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Transparency = 0;
        }):Play()
        task.spawn(function() -- Line 60
            --[[ Upvalues[8]:
                [1]: any_new_result1_upvr_2 (copied, readonly)
                [2]: References_upvr (copied, readonly)
                [3]: stadiums_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
                [5]: config_upvr (copied, readonly)
                [6]: any_load_result1_upvr (copied, readonly)
                [7]: any_new_result1_upvr (copied, readonly)
                [8]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            for _, v_2_upvr in next, any_new_result1_upvr_2:fetch("getStadiums"), nil do
                local clone_upvr = References_upvr.Main.ui.stadium:Clone()
                clone_upvr.Parent = stadiums_upvr.scroll.main
                clone_upvr.Name = v_2_upvr.Name
                stadiums_upvr.scroll.CanvasSize = UDim2.new(0, 0, 0, stadiums_upvr.scroll.main.AbsoluteSize.Y + 2)
                clone_upvr.main.UIScale.Scale = 0
                Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
                if v_2_upvr.Name == config_upvr.Stadium.Value then
                    clone_upvr.main.selected.Visible = true
                end
                any_load_result1_upvr.new({
                    _viewport = clone_upvr.main.viewport;
                    _model = v_2_upvr;
                    _cameraFOV = 60;
                    _usePrimaryPart = true;
                })
                any_new_result1_upvr[v_2_upvr.Name.."_mouseEnter"] = clone_upvr.main.button.MouseEnter:Connect(function() -- Line 83
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: clone_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(177, 177, 177);
                    }):Play()
                end)
                any_new_result1_upvr[v_2_upvr.Name.."_mouseLeave"] = clone_upvr.main.button.MouseLeave:Connect(function() -- Line 88
                    --[[ Upvalues[2]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: clone_upvr (readonly)
                    ]]
                    Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                end)
                any_new_result1_upvr[v_2_upvr.Name.."_mouseButton1Click"] = clone_upvr.main.button.MouseButton1Click:Connect(function() -- Line 92
                    --[[ Upvalues[6]:
                        [1]: References_upvr (copied, readonly)
                        [2]: clone_upvr (readonly)
                        [3]: stadiums_upvr (copied, readonly)
                        [4]: any_new_result1_upvr_2 (copied, readonly)
                        [5]: any_load_result1_upvr_2 (copied, readonly)
                        [6]: v_2_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Click:Play()
                    clone_upvr.main.selected.Visible = true
                    for _, v_3 in next, stadiums_upvr.scroll.main:GetChildren() do
                        if v_3 and v_3:FindFirstChild("main") and v_3.main:FindFirstChild("selected") and v_3 ~= clone_upvr then
                            v_3.main.selected.Visible = false
                        end
                    end
                    any_new_result1_upvr_2:send("stadiumSelection", any_load_result1_upvr_2:getSession("stadiumSelector"), v_2_upvr.Name)
                end)
                task.wait(0.05)
            end
        end)
        any_new_result1_upvr.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 109
            --[[ Upvalues[6]:
                [1]: Services_upvr (copied, readonly)
                [2]: any_new_result1_upvr (copied, readonly)
                [3]: stadiums_upvr (copied, readonly)
                [4]: any_new_result1_upvr_2 (copied, readonly)
                [5]: any_new_result1_upvr_3 (copied, readonly)
                [6]: arg1 (readonly)
            ]]
            if arg2_2 or Services_upvr.UserInputService:GetFocusedTextBox() then
            elseif arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
                any_new_result1_upvr:DoCleaning()
                Services_upvr.TweenService:Create(stadiums_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    GroupTransparency = 1;
                    Position = UDim2.new(0.5, 0, 0.5, 20);
                }):Play()
                Services_upvr.TweenService:Create(stadiums_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 1;
                }):Play()
                task.wait(0.2)
                any_new_result1_upvr_2:send("clearStadiums")
                any_new_result1_upvr_3:clean(stadiums_upvr.scroll.main:GetChildren(), "UIGridLayout")
                arg1.toggled = false
                stadiums_upvr.Visible = false
            end
        end)
    else
        any_new_result1_upvr:DoCleaning()
        Services_upvr.TweenService:Create(stadiums_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            GroupTransparency = 1;
            Position = UDim2.new(0.5, 0, 0.5, 20);
        }):Play()
        Services_upvr.TweenService:Create(stadiums_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        task.wait(0.2)
        any_new_result1_upvr_2:send("clearStadiums")
        any_new_result1_upvr_3:clean(stadiums_upvr.scroll.main:GetChildren(), "UIGridLayout")
        arg1.toggled = false
        stadiums_upvr.Visible = false
    end
end
return module
ModuleScript matchSettings matchSettings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:17
-- Luau version 6, Types version 3
-- Time taken: 0.011641 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Theme", "utils")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local settings_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("settings", 100)
local tbl_upvr = {
    ball = script.Parent:WaitForChild("ballSelection", 100);
    stadium = script.Parent:WaitForChild("stadiumSelection", 100);
}
local module = {
    toggled = false;
    init = function(arg1) -- Line 29, Named "init"
        --[[ Upvalues[5]:
            [1]: settings_upvr (readonly)
            [2]: References_upvr (readonly)
            [3]: Services_upvr (readonly)
            [4]: any_load_result1_upvr (readonly)
            [5]: tbl_upvr (readonly)
        ]]
        for _, v_upvr in next, settings_upvr.container:GetChildren() do
            if v_upvr and v_upvr:IsA("Frame") and v_upvr:FindFirstChild("buttons") then
                for _, v_2 in next, v_upvr.buttons:GetChildren() do
                    if v_2 and v_2:FindFirstChild("button") and v_2:FindFirstChild("label") then
                        arg1:create(v_upvr, v_2)
                    elseif v_2 and v_2.Name == "custom" then
                        for _, v_3 in next, v_2:GetChildren() do
                            if v_3 and v_3:FindFirstChild("button") and v_3:FindFirstChild("label") then
                                arg1:create(v_upvr, v_3)
                            end
                        end
                    end
                end
            elseif v_upvr and v_upvr:IsA("Frame") and v_upvr:FindFirstChild("edit") then
                v_upvr.edit.button.MouseEnter:Connect(function() -- Line 44
                    --[[ Upvalues[4]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: v_upvr (readonly)
                        [4]: any_load_result1_upvr (copied, readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_upvr.edit, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Accent;
                    }):Play()
                    Services_upvr.TweenService:Create(v_upvr.edit.label.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = any_load_result1_upvr.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(v_upvr.edit.label.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = any_load_result1_upvr.Text;
                    }):Play()
                end)
                v_upvr.edit.button.MouseLeave:Connect(function() -- Line 51
                    --[[ Upvalues[3]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: v_upvr (readonly)
                        [3]: any_load_result1_upvr (copied, readonly)
                    ]]
                    Services_upvr.TweenService:Create(v_upvr.edit, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(v_upvr.edit.label.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                    Services_upvr.TweenService:Create(v_upvr.edit.label.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                end)
                v_upvr.edit.button.MouseButton1Click:Connect(function() -- Line 57
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: tbl_upvr (copied, readonly)
                        [3]: v_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Click:Play()
                    if tbl_upvr[string.lower(v_upvr.Name)] then
                        tbl_upvr[string.lower(v_upvr.Name)]:SetAttribute("toggle", true)
                    end
                end)
            end
        end
        arg1:registerButton(settings_upvr.header.confirm)
        settings_upvr.header.confirm.button.MouseButton1Click:Connect(function() -- Line 67
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: References_upvr (copied, readonly)
            ]]
            if arg1.toggled then
                References_upvr.Main.sounds.UI.Click:Play()
                arg1:toggle(false)
            end
        end)
        script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 74
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if script:GetAttribute("toggle") then
                script:SetAttribute("toggle", false)
                arg1:toggle(true)
            end
        end)
    end;
}
local any_new_result1_upvr = _engine:load("Network").new()
local any_load_result1_upvr_2 = _engine:load("Sessions")
function module.create(arg1, arg2, arg3) -- Line 82
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
    ]]
    arg1:registerButton(arg3)
    arg3.button.MouseButton1Click:Connect(function() -- Line 84
        --[[ Upvalues[6]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg3 (readonly)
            [4]: any_new_result1_upvr (copied, readonly)
            [5]: any_load_result1_upvr_2 (copied, readonly)
            [6]: arg2 (readonly)
        ]]
        if arg1.toggled then
            References_upvr.Main.sounds.UI.Click:Play()
            if arg3.Name == "On" then
                any_new_result1_upvr:send("editMatchSettings", any_load_result1_upvr_2:getSession("editMatchSettings"), arg2.Name, true)
                return
            end
            if arg3.Name == "Off" then
                any_new_result1_upvr:send("editMatchSettings", any_load_result1_upvr_2:getSession("editMatchSettings"), arg2.Name, false)
                return
            end
            any_new_result1_upvr:send("editMatchSettings", any_load_result1_upvr_2:getSession("editMatchSettings"), arg2.Name, arg3.Name)
        end
    end)
end
function module.registerButton(arg1, arg2) -- Line 98
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
    ]]
    arg2.button.MouseEnter:Connect(function() -- Line 99
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: arg2 (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(arg2, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(arg2.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
        if arg2:FindFirstChild("countdown") then
            Services_upvr.TweenService:Create(arg2.countdown, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
        end
    end)
    arg2.button.MouseLeave:Connect(function() -- Line 109
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(arg2, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(arg2.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        if arg2:FindFirstChild("countdown") then
            Services_upvr.TweenService:Create(arg2.countdown, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Accent;
            }):Play()
        end
    end)
end
function module.toggle(arg1, arg2) -- Line 119
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: settings_upvr (readonly)
    ]]
    if arg2 then
        local any_GenerateGUID_result1_upvr = Services_upvr.HttpService:GenerateGUID(false)
        arg1.toggled = true
        arg1.session = any_GenerateGUID_result1_upvr
        settings_upvr.Visible = true
        Services_upvr.TweenService:Create(settings_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
            Position = UDim2.new(0.5, 0, 0.5, 0);
        }):Play()
        Services_upvr.TweenService:Create(settings_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Transparency = 0;
        }):Play()
        task.spawn(function() -- Line 130
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: settings_upvr (copied, readonly)
            ]]
            for i_3 = 60, 0, -1 do
                if not arg1.session then break end
                if arg1.session ~= any_GenerateGUID_result1_upvr then break end
                settings_upvr.header.confirm.countdown.Text = tostring(i_3)
                task.wait(1)
            end
            if arg1.session and arg1.session == any_GenerateGUID_result1_upvr then
                i_3 = false
                arg1:toggle(i_3)
            end
        end)
    else
        any_GenerateGUID_result1_upvr = nil
        arg1.session = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            GroupTransparency = 1;
            Position = UDim2.new(0.5, 0, 0.5, 20);
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(settings_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            Transparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(settings_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = task.wait
        any_GenerateGUID_result1_upvr(0.2)
        any_GenerateGUID_result1_upvr = false
        arg1.toggled = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = settings_upvr
        any_GenerateGUID_result1_upvr.Visible = false
        any_GenerateGUID_result1_upvr = script.Parent:FindFirstChild("teamSelection")
        if any_GenerateGUID_result1_upvr then
            any_GenerateGUID_result1_upvr = script.Parent.teamSelection:SetAttribute
            any_GenerateGUID_result1_upvr("toggle", true)
        end
    end
end
return module
ModuleScript teamSelection teamSelection
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:19
-- Luau version 6, Types version 3
-- Time taken: 0.041870 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_load_result1_upvr_2 = _engine:load("TeamService", "utils")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local Profile_upvr = References_upvr.Profile
local main_upvr = References_upvr.PlayerGui:WaitForChild("main", 100)
local teams_upvr = main_upvr:WaitForChild("teams", 100)
local rig = teams_upvr.main.viewport:WaitForChild("rig", 100)
local tbl_upvw = {
    leagues = {};
    teams = {};
}
local tbl_upvw_2 = {}
local tbl_upvw_3 = {}
local clone_upvr = rig:Clone()
rig:Destroy()
local pcall_result1, pcall_result2 = pcall(function() -- Line 35
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
end)
if pcall_result1 and pcall_result2 then
    for _, v in next, pcall_result2:GetChildren() do
        if v:IsA("BodyColors") then
            v.Parent = clone_upvr
        elseif v:IsA("Decal") and v.Name == "face" then
            clone_upvr.Head.face.Texture = v.Texture
        end
    end
end
task.delay(5, function() -- Line 49
    --[[ Upvalues[2]:
        [1]: clone_upvr (readonly)
        [2]: teams_upvr (readonly)
    ]]
    clone_upvr.Parent = teams_upvr.main.viewport
end)
local module = {
    toggled = false;
    current = "Rest Of The World";
    index = {
        team = 1;
        league = 1;
    };
    update = function(arg1) -- Line 64, Named "update"
        --[[ Upvalues[5]:
            [1]: tbl_upvw (read and write)
            [2]: tbl_upvw_2 (read and write)
            [3]: tbl_upvw_3 (read and write)
            [4]: References_upvr (readonly)
            [5]: Profile_upvr (readonly)
        ]]
        tbl_upvw = {
            leagues = {};
            teams = {};
        }
        tbl_upvw_2 = {}
        tbl_upvw_3 = {}
        for _, v_2 in next, References_upvr.Main.kits:GetChildren() do
            if v_2 and v_2.Name ~= "Template" and v_2:FindFirstChildWhichIsA("Folder") then
                tbl_upvw.teams[v_2.Name] = {}
                tbl_upvw_3[v_2.Name] = {}
                table.insert(tbl_upvw.leagues, v_2.Name)
                for _, v_3 in next, v_2:GetChildren() do
                    if v_3 then
                        if v_3:FindFirstChild("Custom") and string.lower(v_3.Name) == string.lower(Profile_upvr.team.TeamName.Value) or not v_3:FindFirstChild("Custom") then
                            table.insert(tbl_upvw.teams[v_2.Name], v_3.Name)
                        end
                    end
                end
            end
        end
        table.sort(tbl_upvw.leagues)
        for _, v_4 in next, tbl_upvw.leagues do
            if v_4 and References_upvr.Main.kits:FindFirstChild(v_4) then
                table.insert(tbl_upvw_2, References_upvr.Main.kits[v_4])
            end
        end
        for i_5, v_5 in next, tbl_upvw.teams do
            table.sort(v_5)
            for _, v_6 in next, v_5 do
                if v_6 and References_upvr.Main.kits:FindFirstChild(i_5) and References_upvr.Main.kits[i_5]:FindFirstChild(v_6) then
                    table.insert(tbl_upvw_3[i_5], References_upvr.Main.kits[i_5][v_6])
                end
            end
        end
    end;
    init = function(arg1) -- Line 103, Named "init"
        --[[ Upvalues[6]:
            [1]: References_upvr (readonly)
            [2]: teams_upvr (readonly)
            [3]: Services_upvr (readonly)
            [4]: any_load_result1_upvr (readonly)
            [5]: tbl_upvw_2 (read and write)
            [6]: tbl_upvw_3 (read and write)
        ]]
        arg1:update()
        References_upvr.Main.kits:GetAttributeChangedSignal("update"):Connect(function() -- Line 106
            --[[ Upvalues[2]:
                [1]: References_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            if References_upvr.Main.kits:GetAttribute("update") then
                arg1:update()
            end
        end)
        for _, v_7_upvr in next, {"league", "team"} do
            for _, v_8_upvr in next, {"next", "prev"} do
                local var49 = teams_upvr[v_7_upvr][v_8_upvr]
                var49.button.MouseEnter:Connect(function() -- Line 116
                    --[[ Upvalues[4]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: teams_upvr (copied, readonly)
                        [4]: v_7_upvr (readonly)
                    ]]
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 1;
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].next.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].prev.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                end)
                var49.button.MouseLeave:Connect(function() -- Line 124
                    --[[ Upvalues[4]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: teams_upvr (copied, readonly)
                        [3]: v_7_upvr (readonly)
                        [4]: any_load_result1_upvr (copied, readonly)
                    ]]
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 0;
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = any_load_result1_upvr.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].next.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = any_load_result1_upvr.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(teams_upvr[v_7_upvr].prev.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = any_load_result1_upvr.Text;
                    }):Play()
                end)
                var49.button.MouseButton1Click:Connect(function() -- Line 131
                    --[[ Upvalues[6]:
                        [1]: arg1 (readonly)
                        [2]: tbl_upvw_2 (copied, read and write)
                        [3]: v_7_upvr (readonly)
                        [4]: tbl_upvw_3 (copied, read and write)
                        [5]: References_upvr (copied, readonly)
                        [6]: v_8_upvr (readonly)
                    ]]
                    local var61
                    if var61 then
                        var61 = tbl_upvw_2
                        if v_7_upvr == "team" then
                            var61 = tbl_upvw_3[arg1.current]
                        end
                        References_upvr.Main.sounds.UI.Click:Play()
                        if v_8_upvr == "next" then
                            if arg1.index[v_7_upvr] == #var61 then
                                arg1.index[v_7_upvr] = 1
                            else
                                local index = arg1.index
                                local var63 = v_7_upvr
                                index[var63] += 1
                            end
                        elseif v_8_upvr == "prev" then
                            if arg1.index[v_7_upvr] == 1 then
                                arg1.index[v_7_upvr] = #var61
                            else
                                local index_2 = arg1.index
                                local var65 = v_7_upvr
                                index_2[var65] -= 1
                            end
                        end
                        if v_7_upvr == "team" then
                            References_upvr.Main.config.Stats[arg1.side].Team.Value = string.upper(tbl_upvw_3[arg1.current][arg1.index[v_7_upvr]].Name)
                            References_upvr.Main.config.Stats[arg1.side]["Kit Type"].Value = "Home"
                            arg1:updateTeam()
                            return
                        end
                        if v_7_upvr == "league" then
                            arg1:updateLeague(tbl_upvw_2[arg1.index[v_7_upvr]].Name)
                        end
                    end
                end)
            end
        end
        for _, v_9_upvr in next, teams_upvr.buttons.kits:GetChildren() do
            if v_9_upvr and v_9_upvr:IsA("Frame") then
                arg1:registerButton(v_9_upvr)
                v_9_upvr.button.MouseButton1Click:Connect(function() -- Line 170
                    --[[ Upvalues[3]:
                        [1]: arg1 (readonly)
                        [2]: References_upvr (copied, readonly)
                        [3]: v_9_upvr (readonly)
                    ]]
                    if arg1.toggled then
                        References_upvr.Main.sounds.UI.Click:Play()
                        References_upvr.Main.config.Stats[arg1.side]["Kit Type"].Value = v_9_upvr.Name
                        arg1:updateTeam()
                    end
                end)
            end
        end
        arg1:registerButton(teams_upvr.buttons.confirm)
        teams_upvr.buttons.confirm.button.MouseButton1Click:Connect(function() -- Line 181
            --[[ Upvalues[2]:
                [1]: arg1 (readonly)
                [2]: References_upvr (copied, readonly)
            ]]
            if arg1.toggled then
                References_upvr.Main.sounds.UI.Click:Play()
                arg1:toggle(false)
            end
        end)
        script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 188
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if script:GetAttribute("toggle") then
                script:SetAttribute("toggle", false)
                arg1:toggle(true)
            end
        end)
    end;
    registerButton = function(arg1, arg2) -- Line 196, Named "registerButton"
        --[[ Upvalues[3]:
            [1]: References_upvr (readonly)
            [2]: Services_upvr (readonly)
            [3]: any_load_result1_upvr (readonly)
        ]]
        arg2.button.MouseEnter:Connect(function() -- Line 197
            --[[ Upvalues[4]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: arg2 (readonly)
                [4]: any_load_result1_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(arg2, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr.Accent;
            }):Play()
            Services_upvr.TweenService:Create(arg2.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
            if arg2:FindFirstChild("countdown") then
                Services_upvr.TweenService:Create(arg2.countdown, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = any_load_result1_upvr.Text;
                }):Play()
            end
        end)
        arg2.button.MouseLeave:Connect(function() -- Line 207
            --[[ Upvalues[3]:
                [1]: Services_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: any_load_result1_upvr (copied, readonly)
            ]]
            Services_upvr.TweenService:Create(arg2, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr.Text;
            }):Play()
            Services_upvr.TweenService:Create(arg2.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
            if arg2:FindFirstChild("countdown") then
                Services_upvr.TweenService:Create(arg2.countdown, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = any_load_result1_upvr.Accent;
                }):Play()
            end
        end)
    end;
    updateTeam = function(arg1) -- Line 217, Named "updateTeam"
        --[[ Upvalues[4]:
            [1]: any_load_result1_upvr_2 (readonly)
            [2]: clone_upvr (readonly)
            [3]: References_upvr (readonly)
            [4]: teams_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 106 start (CF ANALYSIS FAILED)
        local any_getTeamFolderFromTeam_result1 = any_load_result1_upvr_2:getTeamFolderFromTeam(arg1.side)
        local tbl = {"Home"}
        local Home = any_getTeamFolderFromTeam_result1.Home
        if any_getTeamFolderFromTeam_result1:FindFirstChild(_G._references.Main.config.Stats[arg1.side]["Kit Type"].Value) then
            Home = any_getTeamFolderFromTeam_result1[_G._references.Main.config.Stats[arg1.side]["Kit Type"].Value]
        end
        for _, v_10 in next, any_getTeamFolderFromTeam_result1:GetChildren() do
            if v_10 and (v_10.Name == "Away" or v_10.Name == "Third") then
                table.insert(tbl, v_10.Name)
            end
        end
        for i_11, v_11 in next, clone_upvr:GetChildren() do
            if v_11 and (v_11:IsA("Shirt") or v_11:IsA("Pants")) then
                v_11:Destroy()
            end
        end
        if Home:FindFirstChild("Shirt") and Home.Shirt:IsA("Shirt") then
            clone_upvr.LayeredShirt.Handle.Transparency = 1
            i_11 = clone_upvr
            i_11.LayeredShirt.Handle.AccessoryWrapLayer.Enabled = false
            Home.Shirt:Clone().Parent = clone_upvr
        elseif Home:FindFirstChild("Shirt") and Home.Shirt:IsA("SurfaceAppearance") then
            i_11 = References_upvr
            local clone = i_11.Main.storage.ClassicPants:Clone()
            i_11 = clone_upvr
            i_11 = "SurfaceAppearance"
            if i_11.LayeredShirt.Handle:FindFirstChildWhichIsA(i_11) then
                i_11 = clone_upvr
                i_11 = "SurfaceAppearance"
                i_11.LayeredShirt.Handle:FindFirstChildWhichIsA(i_11):Destroy()
                v_11 = clone_upvr
                i_11 = v_11.LayeredShirt
                Home.Shirt:Clone().Parent = i_11.Handle
            end
            i_11 = clone_upvr
            i_11.LayeredShirt.Handle.Transparency = 0
            v_11 = clone_upvr
            i_11 = v_11.LayeredShirt
            i_11.Handle.AccessoryWrapLayer.Enabled = true
            i_11 = clone_upvr
            i_11.LayeredPants.Handle.Transparency = 0
            v_11 = clone_upvr
            i_11 = v_11.LayeredPants
            i_11.Handle.AccessoryWrapLayer.Enabled = true
            i_11 = clone_upvr
            i_11 = Home.TeamColour
            i_11.LayeredPants.Handle.Color = i_11.Value
            v_11 = References_upvr
            i_11 = v_11.Main
            i_11.storage.ClassicShirt:Clone().Parent = clone_upvr
            clone.Parent = clone_upvr
            clone.Color3 = Home.TeamColour.Value
        end
        if Home:FindFirstChild("Pants") and Home.Pants:IsA("Pants") then
            clone_upvr.LayeredPants.Handle.Transparency = 1
            i_11 = clone_upvr
            i_11.LayeredPants.Handle.AccessoryWrapLayer.Enabled = false
            Home.Pants:Clone().Parent = clone_upvr
        end
        if #tbl == 3 then
            i_11 = teams_upvr
            for _, v_12 in next, i_11.buttons.kits:GetChildren() do
                if v_12 and v_12:IsA("Frame") then
                    v_12.Visible = false
                end
            end
            for _, v_13 in next, tbl do
                teams_upvr.buttons.kits[v_13].Visible = true
                teams_upvr.buttons.kits[v_13].Size = UDim2.new(0.3, 0, 1, -10)
            end
            -- KONSTANTWARNING: GOTO [476] #313
        end
        -- KONSTANTERROR: [0] 1. Error Block 106 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [363] 234. Error Block 107 start (CF ANALYSIS FAILED)
        if #tbl == 2 then
            for _, v_14 in next, teams_upvr.buttons.kits:GetChildren() do
                if v_14 and v_14:IsA("Frame") then
                    v_14.Visible = false
                end
            end
            for _, v_15 in next, tbl do
                teams_upvr.buttons.kits[v_15].Visible = true
                teams_upvr.buttons.kits[v_15].Size = UDim2.new(0.5, -10, 1, -10)
            end
        elseif #tbl == 1 then
            for _, v_20 in next, teams_upvr.buttons.kits:GetChildren() do
                if v_20 and v_20:IsA("Frame") then
                    v_20.Visible = false
                end
            end
            for _, v_21 in next, tbl do
                teams_upvr.buttons.kits[v_21].Visible = true
                teams_upvr.buttons.kits[v_21].Size = UDim2.new(1, -15, 1, -10)
            end
        end
        teams_upvr.main.label.Text = string.upper(any_getTeamFolderFromTeam_result1.Abbreviation.Value)
        teams_upvr.team.label.Text = string.upper(any_getTeamFolderFromTeam_result1.Name)
        -- KONSTANTERROR: [363] 234. Error Block 107 end (CF ANALYSIS FAILED)
    end;
    updateLeague = function(arg1, arg2) -- Line 304, Named "updateLeague"
        --[[ Upvalues[4]:
            [1]: tbl_upvw_2 (read and write)
            [2]: References_upvr (readonly)
            [3]: tbl_upvw_3 (read and write)
            [4]: teams_upvr (readonly)
        ]]
        for _, v_16 in next, tbl_upvw_2 do
            if v_16 and v_16.Name == arg2 then
            end
        end
        References_upvr.Main.config.Stats[arg1.side].Team.Value = string.upper(tbl_upvw_3[arg2][1].Name)
        References_upvr.Main.config.Stats[arg1.side]["Kit Type"].Value = "Home"
        teams_upvr.league.label.Text = string.upper(arg2)
        arg1:updateTeam()
        arg1.current = arg2
        arg1.index.team = 1
    end;
}
local any_new_result1_upvr = _engine:load("Network").new()
function module.toggle(arg1, arg2) -- Line 323
    --[[ Upvalues[10]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: References_upvr (readonly)
        [5]: Profile_upvr (readonly)
        [6]: tbl_upvw_3 (read and write)
        [7]: tbl_upvw_2 (read and write)
        [8]: teams_upvr (readonly)
        [9]: main_upvr (readonly)
        [10]: any_new_result1_upvr (readonly)
    ]]
    if arg2 then
        if string.find(LocalPlayer_upvr.Team.Name, "Home") then
            arg1.side = "Home"
        else
            arg1.side = "Away"
        end
        local any_GenerateGUID_result1_upvr = Services_upvr.HttpService:GenerateGUID(false)
        for _, v_17 in next, References_upvr.Main.kits["RF Custom"]:GetChildren() do
            if v_17 then
                if v_17:FindFirstChild("Custom") and string.lower(v_17.Name) == string.lower(Profile_upvr.team.TeamName.Value) or not v_17:FindFirstChild("Custom") then
                    if tbl_upvw_3["RF Custom"] then
                        local var143 = "RF Custom"
                        References_upvr.Main.config.Stats[arg1.side].Team.Value = string.upper(v_17.Name)
                    end
                end
            end
        end
        arg1.toggled = true
        arg1.session = any_GenerateGUID_result1_upvr
        for i_18, v_18 in next, tbl_upvw_3[var143] do
            if v_18.Name == arg1.side then
                arg1.index.team = i_18
            end
        end
        for i_19, v_19 in next, tbl_upvw_2 do
            if v_19 and v_19.Name == var143 then
                arg1.current = var143
                arg1.index.league = i_19
            end
        end
        arg1:updateTeam()
        teams_upvr.league.label.Text = string.upper(var143)
        teams_upvr.Visible = true
        Services_upvr.TweenService:Create(main_upvr.gradient, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            ImageTransparency = 0;
        }):Play()
        Services_upvr.TweenService:Create(teams_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
            Position = UDim2.new(0.5, 0, 0.5, 0);
        }):Play()
        task.spawn(function() -- Line 365
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: teams_upvr (copied, readonly)
            ]]
            for i_20 = 60, 0, -1 do
                if not arg1.session then break end
                if arg1.session ~= any_GenerateGUID_result1_upvr then break end
                teams_upvr.buttons.confirm.countdown.Text = tostring(i_20)
                task.wait(1)
            end
            if arg1.session and arg1.session == any_GenerateGUID_result1_upvr then
                i_20 = false
                arg1:toggle(i_20)
            end
        end)
    else
        any_GenerateGUID_result1_upvr = nil
        arg1.session = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            ImageTransparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(main_upvr.gradient, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            GroupTransparency = 1;
            Position = UDim2.new(0.5, 0, 0.5, 20);
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(teams_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = task.wait
        any_GenerateGUID_result1_upvr(0.2)
        any_GenerateGUID_result1_upvr = false
        arg1.toggled = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = teams_upvr
        any_GenerateGUID_result1_upvr.Visible = false
        any_GenerateGUID_result1_upvr = References_upvr.Main.config.AutoSystem.Value
        if any_GenerateGUID_result1_upvr then
            any_GenerateGUID_result1_upvr = any_new_result1_upvr:send
            any_GenerateGUID_result1_upvr("captain")
        end
        any_GenerateGUID_result1_upvr = any_new_result1_upvr:send
        any_GenerateGUID_result1_upvr("teamSelection", arg1.side, References_upvr.Main.config.Stats[arg1.side].Team.Value)
        any_GenerateGUID_result1_upvr = any_new_result1_upvr:send
        any_GenerateGUID_result1_upvr("kitTypeSelection", arg1.side, References_upvr.Main.config.Stats[arg1.side]["Kit Type"].Value)
        any_GenerateGUID_result1_upvr = nil
        arg1.side = any_GenerateGUID_result1_upvr
    end
end
return module
ModuleScript voteKick voteKick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:20
-- Luau version 6, Types version 3
-- Time taken: 0.014917 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local voteKick_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("voteKick", 100)
local module = {
    toggled = false;
}
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("Network").new()
function module.init(arg1) -- Line 23
    --[[ Upvalues[5]:
        [1]: any_load_result1_upvr (readonly)
        [2]: voteKick_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_new_result1_upvr (readonly)
    ]]
    for _, v in next, {"right", "left"} do
        voteKick_upvr.progress.progress[v].circle.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, any_load_result1_upvr.Text), ColorSequenceKeypoint.new(0.5, any_load_result1_upvr.Text), ColorSequenceKeypoint.new(0.501, any_load_result1_upvr.Accent), ColorSequenceKeypoint.new(1, any_load_result1_upvr.Accent)})
    end
    for _, v_2_upvr in next, voteKick_upvr.buttons:GetChildren() do
        if v_2_upvr and v_2_upvr:IsA("TextButton") then
            v_2_upvr.MouseEnter:Connect(function() -- Line 36
                --[[ Upvalues[5]:
                    [1]: arg1 (readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: Services_upvr (copied, readonly)
                    [4]: v_2_upvr (readonly)
                    [5]: any_load_result1_upvr (copied, readonly)
                ]]
                if arg1.toggled then
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Accent;
                        TextColor3 = any_load_result1_upvr.Text;
                    }):Play()
                end
            end)
            v_2_upvr.MouseLeave:Connect(function() -- Line 42
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_2_upvr (readonly)
                    [3]: any_load_result1_upvr (copied, readonly)
                ]]
                Services_upvr.TweenService:Create(v_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
            end)
            v_2_upvr.MouseButton1Click:Connect(function() -- Line 45
                --[[ Upvalues[4]:
                    [1]: arg1 (readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: any_new_result1_upvr (copied, readonly)
                    [4]: v_2_upvr (readonly)
                ]]
                if arg1.toggled then
                    References_upvr.Main.sounds.UI.Click:Play()
                    any_new_result1_upvr:send("voteKick", arg1.current, v_2_upvr.Name)
                    arg1:toggle(false)
                end
            end)
        end
    end
    script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 55
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script:GetAttribute("toggle") ~= "" then
            arg1:toggle(script:GetAttribute("toggle"))
            script:SetAttribute("toggle", "")
        end
    end)
end
function module.toggle(arg1, arg2) -- Line 63
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: voteKick_upvr (readonly)
    ]]
    if arg2 then
        local any_GenerateGUID_result1_upvr = Services_upvr.HttpService:GenerateGUID(false)
        arg1.toggled = true
        arg1.session = any_GenerateGUID_result1_upvr
        arg1.current = arg2
        voteKick_upvr.main.user.Text = arg2
        voteKick_upvr.Visible = true
        Services_upvr.TweenService:Create(voteKick_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
        }):Play()
        Services_upvr.TweenService:Create(voteKick_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Transparency = 0;
        }):Play()
        for _, v_3 in next, {"right", "left"} do
            if v_3 == "right" then
                voteKick_upvr.progress.progress[v_3].circle.UIGradient.Rotation = 0
            else
                voteKick_upvr.progress.progress[v_3].circle.UIGradient.Rotation = 180
            end
        end
        task.spawn(function() -- Line 84
            --[[ Upvalues[4]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: voteKick_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            for i_4 = 15, 0, -1 do
                local var43
                if not var43 then break end
                var43 = arg1.session
                if var43 ~= any_GenerateGUID_result1_upvr then break end
                var43 = 1
                for _, v_4 in next, {"right", "left"} do
                    local var45
                    if v_4 == "left" then
                        var45 = math.clamp(math.clamp((15 - i_4) / 15, 0, 1) * 100 * 3.6, 0, 360)
                    end
                    if v_4 == "left" and 180 <= voteKick_upvr.progress.progress.right.circle.UIGradient.Rotation or v_4 == "right" then
                        if 168 < var45 and var45 <= 192 and v_4 == "right" or v_4 == "left" and 168 < var45 and var45 <= 192 then
                            Services_upvr.TweenService:Create(voteKick_upvr.progress.progress[v_4].circle.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                                Rotation = math.clamp(var45, 180, 360);
                            }):Play()
                            var43 = 0.5
                        else
                            local tbl = {}
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            tbl.Rotation = math.clamp(var45, 180, 360)
                            Services_upvr.TweenService:Create(voteKick_upvr.progress.progress[v_4].circle.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), tbl):Play()
                        end
                    end
                end
                task.wait(var43)
            end
        end)
        task.spawn(function() -- Line 117
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: voteKick_upvr (copied, readonly)
            ]]
            for i_6 = 15, 0, -1 do
                if not arg1.session then break end
                if arg1.session ~= any_GenerateGUID_result1_upvr then break end
                voteKick_upvr.progress.countdown.Text = tostring(i_6)
                task.wait(1)
            end
            if arg1.session and arg1.session == any_GenerateGUID_result1_upvr then
                i_6 = false
                arg1:toggle(i_6)
            end
        end)
    else
        any_GenerateGUID_result1_upvr = nil
        arg1.session = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = nil
        arg1.current = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            GroupTransparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(voteKick_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            Transparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(voteKick_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = task.wait
        any_GenerateGUID_result1_upvr(0.2)
        any_GenerateGUID_result1_upvr = next
        for _, v_5 in any_GenerateGUID_result1_upvr, {"right", "left"} do
            if v_5 == "right" then
                voteKick_upvr.progress.progress[v_5].circle.UIGradient.Rotation = 0
            else
                voteKick_upvr.progress.progress[v_5].circle.UIGradient.Rotation = 180
            end
        end
        any_GenerateGUID_result1_upvr = false
        arg1.toggled = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = voteKick_upvr
        any_GenerateGUID_result1_upvr.Visible = false
    end
end
return module
ModuleScript menu menu
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:22
-- Luau version 6, Types version 3
-- Time taken: 0.129023 seconds

local _engine = _G._engine
local any_load_result1_upvr_4 = _engine:load("FormatNumber", "utils")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local PlayerGui = References_upvr.PlayerGui
local Profile_upvr = References_upvr.Profile
while not Profile_upvr:GetAttribute("Loaded") and tick() - tick() <= 2 do
    task.wait()
end
local IntValue_upvr_2 = Instance.new("IntValue")
IntValue_upvr_2.Value = Profile_upvr.stats.Cash.Value
local IntValue_upvr = Instance.new("IntValue")
IntValue_upvr.Value = Profile_upvr.stats.Cash.Value
local NumberValue_upvr_2 = Instance.new("NumberValue")
NumberValue_upvr_2.Name = "lerpPlay"
NumberValue_upvr_2.Parent = script
NumberValue_upvr_2.Value = 0
local NumberValue_upvr = Instance.new("NumberValue")
NumberValue_upvr.Name = "lerpCustomize"
NumberValue_upvr.Parent = script
NumberValue_upvr.Value = 0
local main_upvr = PlayerGui:WaitForChild("main", 100)
local menu_upvr = PlayerGui:WaitForChild("menu", 100)
local module_upvr = {
    current = "home";
    inputInProcess = false;
    index = {
        home = 1;
        kickoff = 2;
        servers = 3;
        customize = 4;
        store = 5;
    };
    navigation = {
        container = "none";
        current = "none";
        horizontal = "left";
        vertical = 1;
        debounce = false;
    };
    tabs = {
        debounce = false;
    };
    bulkFadeGroups = {};
    pages = {};
    cache = {};
    updateCash = function(arg1) -- Line 84, Named "updateCash"
        --[[ Upvalues[4]:
            [1]: IntValue_upvr (readonly)
            [2]: IntValue_upvr_2 (readonly)
            [3]: menu_upvr (readonly)
            [4]: any_load_result1_upvr_4 (readonly)
        ]]
        IntValue_upvr.Value = IntValue_upvr_2.Value
        menu_upvr.menu.main.profile.cash.cash.Text = tostring(any_load_result1_upvr_4.FormatLong(IntValue_upvr_2.Value))
    end;
}
local any_load_result1_upvr_5 = _engine:load("ThumbnailService", "utils")
function module_upvr.updateProfile(arg1) -- Line 89
    --[[ Upvalues[6]:
        [1]: menu_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_load_result1_upvr_5 (readonly)
        [4]: any_load_result1_upvr_4 (readonly)
        [5]: IntValue_upvr_2 (readonly)
        [6]: Profile_upvr (readonly)
    ]]
    menu_upvr.menu.main.profile.main.display.Text = LocalPlayer_upvr.DisplayName
    menu_upvr.menu.main.profile.main.user.Text = LocalPlayer_upvr.Name
    menu_upvr.menu.main.profile.main.avatar.Image = any_load_result1_upvr_5:get(LocalPlayer_upvr.UserId)
    menu_upvr.menu.main.profile.cash.cash.Text = tostring(any_load_result1_upvr_4.FormatLong(IntValue_upvr_2.Value))
    menu_upvr.menu.main.profile.level.level.level.Text = tostring(Profile_upvr.level.Level.Value)
    menu_upvr.menu.main.profile.level.progress.xp.Text = string.format("<b>%s XP</b>/%s XP", tostring(any_load_result1_upvr_4.FormatLong(Profile_upvr.level.XP.Value)), tostring(any_load_result1_upvr_4.FormatLong(Profile_upvr.level.XPNeeded.Value)))
    menu_upvr.menu.main.profile.level.progress.bar.bar:TweenSize(UDim2.new((Profile_upvr.level.XP.Value - Profile_upvr.level.PreviousXPNeeded.Value) / (Profile_upvr.level.XPNeeded.Value - Profile_upvr.level.PreviousXPNeeded.Value), 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
end
function module_upvr.hover(arg1, arg2) -- Line 100
    --[[ Upvalues[3]:
        [1]: menu_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if script:GetAttribute("freeze") then
    else
        for _, v_12 in next, menu_upvr.menu.main.tabs:GetChildren() do
            if v_12 and v_12:IsA("Frame") then
                for _, v_13 in next, v_12:GetChildren() do
                    if v_13 and v_13:IsA("Frame") and v_13:FindFirstChild("main") and v_13.main:FindFirstChild("button") and v_13 ~= arg2 then
                        if v_13.main:FindFirstChild("icon") then
                            Services_upvr.TweenService:Create(v_13.main.icon.icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                ImageColor3 = Color3.fromRGB(35, 39, 50);
                            }):Play()
                        end
                        Services_upvr.TweenService:Create(v_13.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            BackgroundTransparency = 0;
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.gfx.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageTransparency = 1;
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.description, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            Scale = 1;
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0, 15, 0, 10);
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            Position = UDim2.new(0, 0, 0, 0);
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0, 15, 0, 60);
                        }):Play()
                        Services_upvr.TweenService:Create(v_13.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            Position = UDim2.new(0, 0, 0, -0);
                        }):Play()
                    end
                end
            end
        end
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(arg2.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(arg2.main.gfx.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0.3;
        }):Play()
        Services_upvr.TweenService:Create(arg2.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1.03;
        }):Play()
        if arg2.main:FindFirstChild("icon") then
            Services_upvr.TweenService:Create(arg2.main.icon.icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
        if arg2.main.label.TextXAlignment == Enum.TextXAlignment.Left then
            Services_upvr.TweenService:Create(arg2.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
                Position = UDim2.new(0, 18, 0, 7);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Position = UDim2.new(0, -3, 0, 3);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
                Position = UDim2.new(0, 18, 0, 57);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Position = UDim2.new(0, -3, 0, 3);
            }):Play()
            return
        end
        if arg2.main.label.TextXAlignment == Enum.TextXAlignment.Right then
            Services_upvr.TweenService:Create(arg2.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
                Position = UDim2.new(0, 12, 0, 7);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Position = UDim2.new(0, 3, 0, 3);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
                Position = UDim2.new(0, 12, 0, 57);
            }):Play()
            Services_upvr.TweenService:Create(arg2.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Position = UDim2.new(0, 3, 0, 3);
            }):Play()
        end
    end
end
function module_upvr.update(arg1, arg2, arg3) -- Line 149
    arg1.navigation.container = arg2.Name
    arg1.navigation.current = arg3.Name
    arg1.navigation.horizontal = arg3.alignment.horizontal.Value
    arg1.navigation.vertical = arg3.alignment.vertical.Value
end
function module_upvr.move(arg1, arg2) -- Line 156
    --[[ Upvalues[1]:
        [1]: menu_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 2. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [2] 2. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 5. Error Block 3 start (CF ANALYSIS FAILED)
    local current = arg1.navigation.current
    -- KONSTANTERROR: [7] 5. Error Block 3 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [38] 23. Error Block 128 start (CF ANALYSIS FAILED)
    for _, v in next, current:GetChildren() do
        if v and v:IsA("Frame") and v:FindFirstChild("alignment") and v.alignment.vertical.Value == arg1.navigation.vertical and v.alignment.horizontal.Value == "right" then
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [75.5]
            if not nil then
                arg1:update(current, v)
                arg1:hover(v)
                return
            end
        end
    end
    do
        return
    end
    -- KONSTANTERROR: [38] 23. Error Block 128 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [90] 58. Error Block 15 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [90] 58. Error Block 15 end (CF ANALYSIS FAILED)
end
function module_upvr.select(arg1, arg2) -- Line 264
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if not arg1.cache.buttonDebounce and arg1.current ~= arg2.Name then
        arg1.cache.buttonDebounce = true
        if arg1.bulkFadeGroups[arg1.current] then
            arg1.bulkFadeGroups[arg1.current]:FadeOut()
        end
        arg1.current = arg2.Name
        menu_upvr.menu.main.tabs.UIPageLayout:JumpTo(menu_upvr.menu.main.tabs[arg2.Name])
        task.wait(0.1)
        if arg1.bulkFadeGroups[arg2.Name] then
            arg1.bulkFadeGroups[arg2.Name]:FadeIn()
        end
        if Services_upvr.UserInputService.GamepadEnabled then
            for _, v_2 in next, menu_upvr.menu.main.tabs[arg2.Name]:GetChildren() do
                if v_2 and v_2:IsA("Frame") and v_2.LayoutOrder == 1 and v_2:FindFirstChild("alignment") then
                    arg1.navigation.container = arg2.Name
                    arg1.navigation.current = v_2.Name
                    arg1.navigation.horizontal = v_2.alignment.horizontal.Value
                    arg1.navigation.vertical = v_2.alignment.vertical.Value
                    arg1:hover(v_2)
                end
            end
        end
        arg1.cache.buttonDebounce = nil
    end
end
local any_load_result1_upvr_2 = _engine:load("CoreMethods", "utils")
local any_load_result1_upvr = _engine:load("TeamService", "utils")
local any_load_result1_upvr_3 = _engine:load("BulkFade", "utils")
local movementController_upvr = script.Parent.Parent:WaitForChild("controllers", 100):WaitForChild("movementController", 100)
local CurrentCamera_upvr = workspace.CurrentCamera
local menu_upvr_2 = main_upvr:WaitForChild("buttons", 100):WaitForChild("menu", 100)
local mouse_upvr = LocalPlayer_upvr:GetMouse()
function module_upvr.init(arg1) -- Line 297
    --[[ Upvalues[18]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_2 (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: any_load_result1_upvr_3 (readonly)
        [8]: movementController_upvr (readonly)
        [9]: main_upvr (readonly)
        [10]: NumberValue_upvr_2 (readonly)
        [11]: NumberValue_upvr (readonly)
        [12]: CurrentCamera_upvr (readonly)
        [13]: menu_upvr_2 (readonly)
        [14]: module_upvr (readonly)
        [15]: Profile_upvr (readonly)
        [16]: IntValue_upvr_2 (readonly)
        [17]: IntValue_upvr (readonly)
        [18]: mouse_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local clone_2_upvr = References_upvr.Main.rigs.Character:Clone()
    local pcall_result1, pcall_result2_2 = pcall(function() -- Line 302
        --[[ Upvalues[1]:
            [1]: LocalPlayer_upvr (copied, readonly)
        ]]
        return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
    end)
    if pcall_result1 and pcall_result2_2 then
        for _, v_3 in next, pcall_result2_2:GetChildren() do
            if v_3:IsA("Accessory") and not v_3:FindFirstChildWhichIsA("WrapLayer", true) and not v_3:FindFirstChild("BodyBackAttachment", true) and not v_3:FindFirstChild("WaistBackAttachment", true) then
                v_3.Parent = clone_2_upvr
            elseif v_3:IsA("BodyColors") then
                clone_2_upvr["Body Colors"]:Destroy()
                v_3.Parent = clone_2_upvr
            elseif v_3:IsA("Decal") and v_3.Name == "face" then
                clone_2_upvr.Head.face.Texture = v_3.Texture
            end
        end
    end
    if References_upvr.Main.boots:FindFirstChild(References_upvr.Profile.inventory.Current.Boots.Value) then
        clone_2_upvr.RightBoot.TextureID = References_upvr.Main.boots[References_upvr.Profile.inventory.Current.Boots.Value].TextureID
        clone_2_upvr.LeftBoot.TextureID = References_upvr.Main.boots[References_upvr.Profile.inventory.Current.Boots.Value].TextureID
    end
    menu_upvr.menu.Visible = true
    clone_2_upvr.Parent = workspace.game.menu
    clone_2_upvr:SetPrimaryPartCFrame(workspace.game.menu.character.menu.CFrame)
    any_load_result1_upvr_2:SetCoreGui("SetCoreGuiEnabled", "Chat", false)
    local clone_3 = References_upvr.Main.balls["Adidas RF Pro 23/24"]:Clone()
    clone_3.Parent = clone_2_upvr.Ball.design
    clone_3.Size = clone_2_upvr.Ball.Size
    clone_3.CFrame = clone_2_upvr.Ball.CFrame
    clone_2_upvr.Ball.Transparency = 1
    local WeldConstraint = Instance.new("WeldConstraint", clone_3)
    WeldConstraint.Part0 = clone_3
    WeldConstraint.Part1 = clone_2_upvr.Ball
    local any_LoadAnimation_result1_upvr_2 = clone_2_upvr.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Menu)
    any_LoadAnimation_result1_upvr_2:Play()
    local function loadKit_upvr(arg1_7) -- Line 344, Named "loadKit"
        --[[ Upvalues[3]:
            [1]: clone_2_upvr (readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 5. Error Block 49 start (CF ANALYSIS FAILED)
        for i_4, v_4 in next, clone_2_upvr:GetChildren() do
            if v_4:IsA("Shirt") or v_4:IsA("Pants") then
                v_4:Destroy()
            end
        end
        if clone_2_upvr:FindFirstChild("LayeredShirt") then
            clone_2_upvr.LayeredShirt.Handle.Transparency = 1
            i_4 = clone_2_upvr
            i_4.LayeredShirt.Handle.AccessoryWrapLayer.Enabled = false
        end
        if clone_2_upvr:FindFirstChild("LayeredPants") then
            clone_2_upvr.LayeredPants.Handle.Transparency = 1
            i_4 = clone_2_upvr
            i_4.LayeredPants.Handle.AccessoryWrapLayer.Enabled = false
        end
        i_4 = LocalPlayer_upvr
        if string.find(i_4.Team.Name, "GK") and arg1_7:FindFirstChild("GK Shirt") and arg1_7:FindFirstChild("GK Pants") then
            arg1_7["GK Shirt"]:Clone().Parent = clone_2_upvr
            arg1_7["GK Pants"]:Clone().Parent = clone_2_upvr
            return
        end
        arg1_7.Shirt:Clone().Parent = clone_2_upvr
        arg1_7.Pants:Clone().Parent = clone_2_upvr
        do
            return
        end
        -- KONSTANTERROR: [5] 5. Error Block 49 end (CF ANALYSIS FAILED)
    end
    local function updateKit_upvr() -- Line 399, Named "updateKit"
        --[[ Upvalues[5]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: any_load_result1_upvr (copied, readonly)
            [3]: loadKit_upvr (readonly)
            [4]: clone_2_upvr (readonly)
            [5]: Services_upvr (copied, readonly)
        ]]
        if string.find(LocalPlayer_upvr.Team.Name, "Home") then
            loadKit_upvr(any_load_result1_upvr:getKitFromTeam("Home"))
        else
            if string.find(LocalPlayer_upvr.Team.Name, "Away") then
                loadKit_upvr(any_load_result1_upvr:getKitFromTeam("Away"))
                return
            end
            for _, v_14 in next, clone_2_upvr:GetChildren() do
                if v_14:IsA("Shirt") or v_14:IsA("Pants") then
                    v_14:Destroy()
                end
            end
            clone_2_upvr.LayeredShirt.Handle.Transparency = 1
            clone_2_upvr.LayeredShirt.Handle.AccessoryWrapLayer.Enabled = false
            Services_upvr.StarterPlayer.StarterCharacter.ClassicShirt:Clone().Parent = clone_2_upvr
            Services_upvr.StarterPlayer.StarterCharacter.ClassicPants:Clone().Parent = clone_2_upvr
        end
    end
    LocalPlayer_upvr:GetPropertyChangedSignal("Team"):Connect(function() -- Line 421
        --[[ Upvalues[1]:
            [1]: updateKit_upvr (readonly)
        ]]
        updateKit_upvr()
    end)
    for _, v_5 in next, {"Home", "Away"} do
        References_upvr.Main.config.Stats[v_5].Team.Changed:Connect(updateKit_upvr)
        References_upvr.Main.config.Stats[v_5]["Kit Type"].Changed:Connect(updateKit_upvr)
        local _
    end
    for _, v_6 in next, menu_upvr.menu.main.tabs:GetChildren() do
        if v_6 and v_6:IsA("Frame") then
            arg1.bulkFadeGroups[v_6.Name] = any_load_result1_upvr_3.CreateGroup(v_6:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
            if v_6.Name ~= arg1.current then
                arg1.bulkFadeGroups[v_6.Name]:FadeOut()
            end
        end
    end
    local function toggleMenu_upvr() -- Line 444, Named "toggleMenu"
        --[[ Upvalues[11]:
            [1]: menu_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: movementController_upvr (copied, readonly)
            [4]: any_load_result1_upvr_2 (copied, readonly)
            [5]: main_upvr (copied, readonly)
            [6]: NumberValue_upvr_2 (copied, readonly)
            [7]: NumberValue_upvr (copied, readonly)
            [8]: clone_2_upvr (readonly)
            [9]: any_LoadAnimation_result1_upvr_2 (readonly)
            [10]: CurrentCamera_upvr (copied, readonly)
            [11]: Services_upvr (copied, readonly)
        ]]
        if not menu_upvr.Enabled then
            References_upvr.Main.sounds.UI.Click:Play()
            menu_upvr.Enabled = true
            menu_upvr.gradient:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
            task.wait(0.5)
            movementController_upvr:SetAttribute("forceStop", true)
            movementController_upvr:SetAttribute("canSprint", false)
            any_load_result1_upvr_2:SetCoreGui("SetCoreGuiEnabled", "Chat", false)
            main_upvr.Enabled = false
            menu_upvr.menu.Visible = true
            NumberValue_upvr_2.Value = 0
            NumberValue_upvr.Value = 0
            clone_2_upvr.Parent = workspace.game.menu
            clone_2_upvr:SetPrimaryPartCFrame(workspace.game.menu.character.menu.CFrame)
            any_LoadAnimation_result1_upvr_2:Play(0)
            task.delay(0.1, function() -- Line 467
                --[[ Upvalues[1]:
                    [1]: any_LoadAnimation_result1_upvr_2 (copied, readonly)
                ]]
                for _, v_7 in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                    if v_7 and v_7 ~= any_LoadAnimation_result1_upvr_2 then
                        v_7:Stop(0)
                    end
                end
            end)
            script:SetAttribute("freeze", false)
            script:SetAttribute("enabled", true)
            CurrentCamera_upvr.FieldOfView = 30
            Services_upvr.Lighting.DepthOfField.Enabled = true
            Services_upvr.Lighting.DepthOfField.FarIntensity = 1
            Services_upvr.Lighting.DepthOfField.FocusDistance = 0
            Services_upvr.Lighting.DepthOfField.InFocusRadius = 50
            Services_upvr.Lighting.DepthOfField.NearIntensity = 0
            task.wait(0.3)
            References_upvr.Main.sounds.Player.Woosh:Play()
            menu_upvr.gradient:TweenPosition(UDim2.new(1, 700, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
            task.wait(0.5)
            CurrentCamera_upvr.FieldOfView = 30
            menu_upvr.gradient.Position = UDim2.new(-1, -700, 0, 0)
        end
    end
    menu_upvr.console.controls.back.Visible = false
    menu_upvr.console.controls.spin.Visible = false
    if Services_upvr.UserInputService.GamepadEnabled then
        menu_upvr.console.Visible = true
    end
    Services_upvr.UserInputService.GamepadConnected:Connect(function() -- Line 507
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        menu_upvr.console.Visible = true
    end)
    Services_upvr.UserInputService.GamepadDisconnected:Connect(function() -- Line 511
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        menu_upvr.console.Visible = false
    end)
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_8, arg2) -- Line 515
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: toggleMenu_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 4. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 4. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 10. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [14] 10. Error Block 3 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [21] 15. Error Block 4 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [21] 15. Error Block 4 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [28] 20. Error Block 5 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [28] 20. Error Block 5 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [163] 113. Error Block 21 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [163] 113. Error Block 21 end (CF ANALYSIS FAILED)
    end)
    Services_upvr.UserInputService.InputChanged:Connect(function(arg1_9, arg2) -- Line 645
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_9.KeyCode == Enum.KeyCode.Thumbstick1 and script:GetAttribute("enabled") and not script:GetAttribute("freeze") and arg1.navigation.current ~= "none" and arg1.navigation.container ~= "none" and not arg1.inputInProcess then
            arg1.inputInProcess = true
            if 0.7 <= arg1_9.Position.X and not arg1.navigation.debounce then
                arg1.navigation.debounce = true
                arg1:move("right")
            elseif arg1_9.Position.X <= -0.7 and not arg1.navigation.debounce then
                arg1.navigation.debounce = true
                arg1:move("left")
            elseif 0.7 <= arg1_9.Position.Y and not arg1.navigation.debounce then
                arg1.navigation.debounce = true
                arg1:move("up")
            elseif arg1_9.Position.Y <= -0.7 and not arg1.navigation.debounce then
                arg1.navigation.debounce = true
                arg1:move("down")
            elseif arg1_9.Position.X < 0.3 and -0.3 < arg1_9.Position.X and arg1_9.Position.Y < 0.3 and -0.3 < arg1_9.Position.Y and arg1.navigation.debounce then
                task.delay(0.1, function() -- Line 662
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.navigation.debounce = false
                end)
            end
            task.delay(0.2, function() -- Line 667
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.inputInProcess = false
            end)
        end
    end)
    menu_upvr_2.button.MouseEnter:Connect(function() -- Line 675
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr_2 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(menu_upvr_2.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(177, 177, 177);
        }):Play()
    end)
    menu_upvr_2.button.MouseLeave:Connect(function() -- Line 680
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: menu_upvr_2 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(menu_upvr_2.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    menu_upvr_2.button.MouseButton1Click:Connect(function() -- Line 684
        --[[ Upvalues[1]:
            [1]: toggleMenu_upvr (readonly)
        ]]
        toggleMenu_upvr()
    end)
    main_upvr.Enabled = false
    menu_upvr.Enabled = true
    CurrentCamera_upvr.CameraType = Enum.CameraType.Scriptable
    CurrentCamera_upvr.CFrame = workspace.game.menu.camera.menu.CFrame
    CurrentCamera_upvr.FieldOfView = 30
    Services_upvr.Lighting.DepthOfField.Enabled = true
    Services_upvr.Lighting.DepthOfField.FarIntensity = 1
    Services_upvr.Lighting.DepthOfField.FocusDistance = 0
    Services_upvr.Lighting.DepthOfField.InFocusRadius = 50
    Services_upvr.Lighting.DepthOfField.NearIntensity = 0
    module_upvr:updateProfile()
    Profile_upvr.level.XP.Changed:Connect(module_upvr.updateProfile)
    Profile_upvr.level.XPNeeded.Changed:Connect(module_upvr.updateProfile)
    Profile_upvr.level.Level.Changed:Connect(module_upvr.updateProfile)
    IntValue_upvr_2.Changed:Connect(module_upvr.updateCash)
    Profile_upvr.stats.Cash.Changed:Connect(function() -- Line 710
        --[[ Upvalues[5]:
            [1]: References_upvr (copied, readonly)
            [2]: IntValue_upvr_2 (copied, readonly)
            [3]: IntValue_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: Profile_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Points:Play()
        IntValue_upvr_2.Value = IntValue_upvr.Value
        Services_upvr.TweenService:Create(IntValue_upvr_2, TweenInfo.new(1.75, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
            Value = tonumber(Profile_upvr.stats.Cash.Value);
        }):Play()
    end)
    Services_upvr.RunService.Heartbeat:Connect(function(arg1_10) -- Line 716
        --[[ Upvalues[6]:
            [1]: mouse_upvr (copied, readonly)
            [2]: CurrentCamera_upvr (copied, readonly)
            [3]: any_load_result1_upvr_2 (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: NumberValue_upvr_2 (copied, readonly)
            [6]: NumberValue_upvr (copied, readonly)
        ]]
        if script:GetAttribute("enabled") then
            local vector2_4 = Vector2.new(CurrentCamera_upvr.ViewportSize.X / 2, CurrentCamera_upvr.ViewportSize.Y / 2)
            local var327 = Vector2.new(mouse_upvr.X, mouse_upvr.Y) - vector2_4
            local vector2_3 = Vector2.new(var327.Y / vector2_4.Y * 0.5235987755982988, var327.X / vector2_4.X * 0.5235987755982988)
            any_load_result1_upvr_2:SetCoreGui("SetCoreGuiEnabled", "Chat", false)
            CurrentCamera_upvr.CameraType = Enum.CameraType.Scriptable
            if not Services_upvr.UserInputService.TouchEnabled then
                if not Services_upvr.UserInputService.GamepadEnabled then
                    Services_upvr.TweenService:Create(CurrentCamera_upvr, TweenInfo.new(arg1_10, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        FieldOfView = 30;
                        CFrame = workspace.game.menu.camera.menu.CFrame:Lerp(workspace.game.menu.camera.play.CFrame, NumberValue_upvr_2.Value):Lerp(workspace.game.menu.camera.customize.CFrame, NumberValue_upvr.Value) * CFrame.Angles(-vector2_3.X / 20, -vector2_3.Y / 20, 0);
                    }):Play()
                    return
                end
            end
            Services_upvr.TweenService:Create(CurrentCamera_upvr, TweenInfo.new(arg1_10, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = 30;
                CFrame = workspace.game.menu.camera.menu.CFrame:Lerp(workspace.game.menu.camera.play.CFrame, NumberValue_upvr_2.Value):Lerp(workspace.game.menu.camera.customize.CFrame, NumberValue_upvr.Value);
            }):Play()
        end
    end)
    for _, v_8_upvr in next, menu_upvr.menu.main.buttons:GetChildren() do
        if v_8_upvr and v_8_upvr:IsA("Frame") then
            v_8_upvr.button.MouseEnter:Connect(function() -- Line 738
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_8_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_8_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 1;
                    }):Play()
                    if v_8_upvr:FindFirstChild("logo") then
                        Services_upvr.TweenService:Create(v_8_upvr.logo, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                        return
                    end
                    if v_8_upvr:FindFirstChild("label") then
                        Services_upvr.TweenService:Create(v_8_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                    end
                end
            end)
            v_8_upvr.button.MouseLeave:Connect(function() -- Line 753
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_8_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    Services_upvr.TweenService:Create(v_8_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 0;
                    }):Play()
                    if v_8_upvr:FindFirstChild("logo") then
                        Services_upvr.TweenService:Create(v_8_upvr.logo, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0.5, 0, 0.5, 0);
                        }):Play()
                        return
                    end
                    if v_8_upvr:FindFirstChild("label") then
                        Services_upvr.TweenService:Create(v_8_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0.5, 0, 0.5, 0);
                        }):Play()
                    end
                end
            end)
            v_8_upvr.button.MouseButton1Click:Connect(function() -- Line 766
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: v_8_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    arg1:select(v_8_upvr)
                end
            end)
        end
    end
    for _, v_9_upvr in next, script.pages:GetChildren() do
        if v_9_upvr and v_9_upvr:IsA("ModuleScript") then
            task.spawn(function() -- Line 781
                --[[ Upvalues[1]:
                    [1]: v_9_upvr (readonly)
                ]]
                require(v_9_upvr):init()
            end)
        end
    end
    for _, v_10_upvr in next, menu_upvr.menu.main.tabs:GetChildren() do
        if v_10_upvr and v_10_upvr:IsA("Frame") then
            if not arg1.pages[v_10_upvr.Name] and script:FindFirstChild(v_10_upvr.Name) then
                arg1.pages[v_10_upvr.Name] = {}
            end
            for _, v_11_upvr in next, v_10_upvr:GetChildren() do
                if v_11_upvr and v_11_upvr:IsA("Frame") and v_11_upvr:FindFirstChild("main") and v_11_upvr.main:FindFirstChild("button") then
                    local var349_upvw = false
                    if script:FindFirstChild(v_10_upvr.Name) and script[v_10_upvr.Name]:FindFirstChild(v_11_upvr.Name) then
                        arg1.pages[v_10_upvr.Name][v_11_upvr.Name] = require(script[v_10_upvr.Name][v_11_upvr.Name])
                    end
                    v_11_upvr.main.button.MouseEnter:Connect(function() -- Line 801
                        --[[ Upvalues[3]:
                            [1]: References_upvr (copied, readonly)
                            [2]: Services_upvr (copied, readonly)
                            [3]: v_11_upvr (readonly)
                        ]]
                        if script:GetAttribute("freeze") then
                        else
                            References_upvr.Main.sounds.UI.Hover:Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                BackgroundTransparency = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.gfx.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                ImageTransparency = 0.3;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Scale = 1.03;
                            }):Play()
                            if v_11_upvr.main:FindFirstChild("icon") then
                                Services_upvr.TweenService:Create(v_11_upvr.main.icon.icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    ImageColor3 = Color3.fromRGB(255, 255, 255);
                                }):Play()
                            end
                            if v_11_upvr.main.label.TextXAlignment == Enum.TextXAlignment.Left then
                                Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextColor3 = Color3.fromRGB(255, 255, 255);
                                    Position = UDim2.new(0, 18, 0, 7);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    Position = UDim2.new(0, -3, 0, 3);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextColor3 = Color3.fromRGB(255, 255, 255);
                                    Position = UDim2.new(0, 18, 0, 57);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    Position = UDim2.new(0, -3, 0, 3);
                                }):Play()
                                return
                            end
                            if v_11_upvr.main.label.TextXAlignment == Enum.TextXAlignment.Right then
                                Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextColor3 = Color3.fromRGB(255, 255, 255);
                                    Position = UDim2.new(0, 12, 0, 7);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    Position = UDim2.new(0, 3, 0, 3);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextColor3 = Color3.fromRGB(255, 255, 255);
                                    Position = UDim2.new(0, 12, 0, 57);
                                }):Play()
                                Services_upvr.TweenService:Create(v_11_upvr.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    Position = UDim2.new(0, 3, 0, 3);
                                }):Play()
                            end
                        end
                    end)
                    v_11_upvr.main.button.MouseLeave:Connect(function() -- Line 828
                        --[[ Upvalues[2]:
                            [1]: v_11_upvr (readonly)
                            [2]: Services_upvr (copied, readonly)
                        ]]
                        if script:GetAttribute("freeze") then
                        else
                            if v_11_upvr.main:FindFirstChild("icon") then
                                Services_upvr.TweenService:Create(v_11_upvr.main.icon.icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    ImageColor3 = Color3.fromRGB(35, 39, 50);
                                }):Play()
                            end
                            Services_upvr.TweenService:Create(v_11_upvr.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                BackgroundTransparency = 0;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.gfx.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                ImageTransparency = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Scale = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                                Position = UDim2.new(0, 15, 0, 10);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Position = UDim2.new(0, 0, 0, 0);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                                Position = UDim2.new(0, 15, 0, 60);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Position = UDim2.new(0, 0, 0, -0);
                            }):Play()
                        end
                    end)
                    v_11_upvr.main.button.MouseButton1Down:Connect(function() -- Line 848
                        --[[ Upvalues[4]:
                            [1]: References_upvr (copied, readonly)
                            [2]: var349_upvw (read and write)
                            [3]: Services_upvr (copied, readonly)
                            [4]: v_11_upvr (readonly)
                        ]]
                        if script:GetAttribute("freeze") then
                        else
                            References_upvr.Main.sounds.UI.Click:Play()
                            var349_upvw = true
                            Services_upvr.TweenService:Create(v_11_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                                Scale = 0.9;
                            }):Play()
                        end
                    end)
                    Services_upvr.UserInputService.InputEnded:Connect(function(arg1_11, arg2) -- Line 858
                        --[[ Upvalues[5]:
                            [1]: var349_upvw (read and write)
                            [2]: v_11_upvr (readonly)
                            [3]: Services_upvr (copied, readonly)
                            [4]: arg1 (readonly)
                            [5]: v_10_upvr (readonly)
                        ]]
                        if arg1_11.UserInputType == Enum.UserInputType.MouseButton1 or arg1_11.UserInputType == Enum.UserInputType.Touch or var349_upvw and not script:GetAttribute("freeze") then
                            var349_upvw = false
                            if v_11_upvr.main:FindFirstChild("icon") then
                                Services_upvr.TweenService:Create(v_11_upvr.main.icon.icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    ImageColor3 = Color3.fromRGB(35, 39, 50);
                                }):Play()
                            end
                            Services_upvr.TweenService:Create(v_11_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                                Scale = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                BackgroundTransparency = 0;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.gfx.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                ImageTransparency = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Scale = 1;
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                                Position = UDim2.new(0, 15, 0, 10);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.label.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Position = UDim2.new(0, 0, 0, 0);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(35, 39, 50);
                                Position = UDim2.new(0, 15, 0, 60);
                            }):Play()
                            Services_upvr.TweenService:Create(v_11_upvr.main.description.shadow, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Position = UDim2.new(0, 0, 0, -0);
                            }):Play()
                            if arg1.pages[v_10_upvr.Name][v_11_upvr.Name] then
                                arg1.pages[v_10_upvr.Name][v_11_upvr.Name]:run(arg1.bulkFadeGroups[v_10_upvr.Name])
                            end
                        end
                    end)
                end
            end
        end
    end
end
return module_upvr
ModuleScript training training
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:25
-- Luau version 6, Types version 3
-- Time taken: 0.002022 seconds

local _engine = _G._engine
local menu = _engine.References.PlayerGui:WaitForChild("menu", 100)
local any_load_result1 = _engine:load("BulkFade", "utils")
local tbl_2_upvr = {
    buttons = any_load_result1.CreateGroup(menu.menu.main.buttons:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    profile = any_load_result1.CreateGroup(menu.menu.main.profile:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
local module = {}
local any_new_result1_upvr = _engine:load("Teleporter").new(script.Parent.Parent, "none", 15758062201)
function module.run(arg1, arg2) -- Line 23
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    local tbl = {
        buttons = tbl_2_upvr.buttons;
        profile = tbl_2_upvr.profile;
    }
    tbl.origin = arg2
    any_new_result1_upvr:prompt("training ground", nil, tbl)
end
return module
ModuleScript servers servers
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:26
-- Luau version 6, Types version 3
-- Time taken: 0.004628 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local servers_upvr = script.Parent.Parent:WaitForChild("pages", 100):WaitForChild("servers", 100)
local var7_upvw = false
local tbl_upvr = {
    menu = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
menu_upvr.pages.servers.overlay.BackgroundTransparency = 1
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
BindableEvent_upvr.Event:Connect(function() -- Line 34
    --[[ Upvalues[6]:
        [1]: servers_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: var7_upvw (read and write)
        [4]: Services_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: tbl_upvr (readonly)
    ]]
    if servers_upvr:GetAttribute("freeze") then
    else
        References_upvr.Main.sounds.UI.Click:Play()
        if not var7_upvw then
            var7_upvw = true
            Services_upvr.TweenService:Create(menu_upvr.pages.servers.overlay, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {
                BackgroundTransparency = 1;
            }):Play()
            menu_upvr.pages.servers.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.2, true)
            task.wait(0.15)
            menu_upvr.menu.Visible = true
            tbl_upvr.menu:FadeIn()
            script.Parent.Parent:SetAttribute("freeze", false)
            servers_upvr:SetAttribute("toggle", false)
            task.wait(0.05)
            menu_upvr.pages.servers.Visible = false
            var7_upvw = false
        end
    end
end)
menu_upvr.pages.servers.main.top.back.back.MouseButton1Click:Connect(function() -- Line 60
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 68, Named "run"
        --[[ Upvalues[5]:
            [1]: tbl_upvr (readonly)
            [2]: var7_upvw (read and write)
            [3]: servers_upvr (readonly)
            [4]: menu_upvr (readonly)
            [5]: Services_upvr (readonly)
        ]]
        tbl_upvr.menu:FadeOut()
        var7_upvw = true
        servers_upvr:SetAttribute("toggle", true)
        script.Parent.Parent:SetAttribute("freeze", true)
        task.wait(0.15)
        menu_upvr.menu.Visible = false
        menu_upvr.pages.servers.Visible = true
        Services_upvr.TweenService:Create(menu_upvr.pages.servers.overlay, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            BackgroundTransparency = 0.3;
        }):Play()
        menu_upvr.pages.servers.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.3, true)
        var7_upvw = false
    end;
}
ModuleScript private private
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:27
-- Luau version 6, Types version 3
-- Time taken: 0.005509 seconds

local _engine = _G._engine
local any_load_result1 = _engine:load("BulkFade", "utils")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local tbl_upvr = {}
local var8_upvw = false
tbl_upvr.buttons = any_load_result1.CreateGroup(menu_upvr.menu.main.buttons:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.tabs = any_load_result1.CreateGroup(menu_upvr.menu.main.tabs:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
local var11_upvw = false
BindableEvent_upvr.Event:Connect(function() -- Line 29
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: var11_upvw (read and write)
        [3]: var8_upvw (read and write)
        [4]: menu_upvr (readonly)
        [5]: tbl_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var11_upvw then
        var11_upvw = true
        var8_upvw = false
        menu_upvr.pages.private.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = true
        menu_upvr.menu.main.tabs.Visible = true
        tbl_upvr.buttons:FadeIn()
        tbl_upvr.tabs:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.pages.private.Visible = false
        task.wait(0.15)
        var11_upvw = false
    end
end)
menu_upvr.pages.private.main.top.back.MouseButton1Click:Connect(function() -- Line 53
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
local module = {}
local any_load_result1_3_upvr = _engine:load("Monetization", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local any_load_result1_2_upvr = _engine:load("GamePassWhitelist", "utils")
function module.run(arg1) -- Line 61
    --[[ Upvalues[7]:
        [1]: any_load_result1_3_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_load_result1_2_upvr (readonly)
        [4]: var8_upvw (read and write)
        [5]: tbl_upvr (readonly)
        [6]: menu_upvr (readonly)
        [7]: Services_upvr (readonly)
    ]]
    if any_load_result1_3_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_3_upvr.gamePasses["Private Training"].gamePassId) or table.find(any_load_result1_2_upvr, LocalPlayer_upvr.UserId) or game.PlaceId == 15690159367 then
        script.Parent.Parent:SetAttribute("freeze", true)
        var8_upvw = true
        tbl_upvr.buttons:FadeOut()
        tbl_upvr.tabs:FadeOut()
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = false
        menu_upvr.menu.main.tabs.Visible = false
        menu_upvr.pages.private.Visible = true
        menu_upvr.pages.private.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    else
        local pcall_result1, pcall_result2 = pcall(function() -- Line 79
            --[[ Upvalues[3]:
                [1]: Services_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: any_load_result1_3_upvr (copied, readonly)
            ]]
            return Services_upvr.MarketPlaceService:PromptGamePassPurchase(LocalPlayer_upvr, any_load_result1_3_upvr.gamePasses["Private Training"].gamePassId)
        end)
        if not pcall_result1 then
            warn(string.format("An unexpected error occured while prompting game pass purchase | %s", pcall_result2))
        end
    end
end
return module
ModuleScript kickoff kickoff
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:28
-- Luau version 6, Types version 3
-- Time taken: 0.010171 seconds

local _engine = _G._engine
local References = _engine.References
local any_load_result1_upvr_2 = _engine:load("FormatNumber", "utils")
local config_upvr = References.Main.config
local menu_upvr = References.PlayerGui:WaitForChild("menu", 100)
local module = {}
local any_load_result1_upvr = _engine:load("TeamService", "utils")
function module.updateTeams(arg1) -- Line 17
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: menu_upvr (readonly)
    ]]
    local tbl = {
        home = any_load_result1_upvr:getTeamColorFromTeam("Home");
        away = any_load_result1_upvr:getTeamColorFromTeam("Away");
    }
    for _, v in next, menu_upvr.menu.main.tabs.kickoff.stats.main.top:GetDescendants() do
        if v and v:IsA("TextLabel") and v.Name == "score" and (v.Parent.Name == "home" or v.Parent.Name == "away") then
            v.TextColor3 = tbl[v.Parent.Name]
        end
    end
    for _, v_2 in next, menu_upvr.menu.main.tabs.kickoff.stats.main.percentage:GetDescendants() do
        if v_2 and v_2:IsA("TextLabel") and v_2.Name == "percentage" and (v_2.Parent.Parent.Name == "home" or v_2.Parent.Parent.Name == "away") then
            v_2.TextColor3 = tbl[v_2.Parent.Parent.Name]
        end
    end
    for _, v_3 in next, menu_upvr.menu.main.tabs.kickoff.stats.main.main:GetDescendants() do
        if v_3 and v_3:IsA("TextLabel") and (v_3.Name == "home" or v_3.Name == "away") then
            v_3.TextColor3 = tbl[v_3.Name]
        end
    end
end
function module.updateTimer(arg1) -- Line 42
    --[[ Upvalues[3]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: config_upvr (readonly)
        [3]: menu_upvr (readonly)
    ]]
    local any_FormatZero_result1 = any_load_result1_upvr_2.FormatZero(config_upvr.Timer.Minutes.Value)
    local any_FormatZero_result1_2 = any_load_result1_upvr_2.FormatZero(config_upvr.Timer.Seconds.Value)
    if config_upvr.Timer.Added.Enabled.Value then
        menu_upvr.menu.main.tabs.kickoff.stats.main.top.timer.timer.Text = string.format("%s:%s+%s", any_FormatZero_result1, any_FormatZero_result1_2, tostring(config_upvr.Timer.Added.Minutes.Value))
    else
        menu_upvr.menu.main.tabs.kickoff.stats.main.top.timer.timer.Text = string.format("%s:%s", any_FormatZero_result1, any_FormatZero_result1_2)
    end
end
function module.updateStats(arg1) -- Line 54
    --[[ Upvalues[3]:
        [1]: config_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
    ]]
    for _, v_4 in next, config_upvr.Stats.Home:GetChildren() do
        if v_4 and menu_upvr.menu.main.tabs.kickoff.stats.main.main:FindFirstChild(string.lower(v_4.Name)) then
            local var32 = menu_upvr.menu.main.tabs.kickoff.stats.main.main[string.lower(v_4.Name)]
            var32.home.Text = tostring(v_4.Value)
            var32.away.Text = tostring(config_upvr.Stats.Away[v_4.Name].Value)
        end
    end
    for _, v_5 in next, {"Home", "Away"} do
        menu_upvr.menu.main.tabs.kickoff.stats.main.top[string.lower(v_5)].score.Text = tostring(config_upvr.Stats[v_5].Score.Value)
        for _, v_6 in next, menu_upvr.menu.main.tabs.kickoff.stats.main.percentage[string.lower(v_5)]:GetChildren() do
            if v_6 and v_6:IsA("Frame") then
                if v_6.Name == "possession" then
                    v_6.percentage.Text = tostring(config_upvr.Stats[v_5].Possession.Value)..'%'
                elseif v_6.Name == "shot accuracy" then
                    if config_upvr.Stats[v_5]["Accurate Shots"].Value == 0 then
                        v_6.percentage.Text = "0%"
                    else
                        v_6.percentage.Text = tostring(any_load_result1_upvr_2.FormatDecimal(math.clamp(config_upvr.Stats[v_5]["Accurate Shots"].Value / config_upvr.Stats[v_5].Shots.Value, 0, 1) * 100, 0))..'%'
                    end
                elseif v_6.Name == "pass accuracy" then
                    if config_upvr.Stats[v_5]["Accurate Passes"].Value == 0 then
                        v_6.percentage.Text = "0%"
                    else
                        v_6.percentage.Text = tostring(any_load_result1_upvr_2.FormatDecimal(math.clamp(config_upvr.Stats[v_5]["Accurate Passes"].Value / config_upvr.Stats[v_5].Passes.Value, 0, 1) * 100, 0))..'%'
                    end
                end
            end
        end
    end
end
function module.init(arg1) -- Line 88
    --[[ Upvalues[1]:
        [1]: config_upvr (readonly)
    ]]
    arg1:updateStats()
    arg1:updateTimer()
    arg1:updateTeams()
    for _, v_7 in next, {"Home", "Away"} do
        config_upvr.Stats[v_7].Team.Changed:Connect(arg1.updateTeams)
        config_upvr.Stats[v_7]["Kit Type"].Changed:Connect(arg1.updateTeams)
    end
    for _, v_8 in next, config_upvr.Stats:GetDescendants() do
        if v_8:IsA("ValueBase") then
            v_8.Changed:Connect(arg1.updateStats)
        end
    end
    for _, v_9 in next, config_upvr.Timer:GetDescendants() do
        if v_9:IsA("ValueBase") then
            v_9.Changed:Connect(arg1.updateTimer)
        end
    end
end
return module
ModuleScript stats stats
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:30
-- Luau version 6, Types version 3
-- Time taken: 0.004129 seconds

local _engine = _G._engine
local References = _engine.References
local Profile_upvr = References.Profile
local menu_upvr = References.PlayerGui:WaitForChild("menu", 100)
local module = {}
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local any_load_result1_upvr = _engine:load("FormatNumber", "utils")
function module.update(arg1) -- Line 16
    --[[ Upvalues[4]:
        [1]: menu_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Profile_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
    ]]
    menu_upvr.pages.stats.main.main.name.display.Text = LocalPlayer_upvr.DisplayName
    menu_upvr.pages.stats.main.main.name.user.Text = LocalPlayer_upvr.Name
    if Profile_upvr.stats.Matches.Value == 0 then
        menu_upvr.pages.stats.main.main.percentage.gavg.value.Text = "0.00"
    else
        menu_upvr.pages.stats.main.main.percentage.gavg.value.Text = any_load_result1_upvr.FormatDecimal(Profile_upvr.stats.Goals.Value / Profile_upvr.stats.Matches.Value, 2)
    end
    if Profile_upvr.stats["Accurate Shots"].Value == 0 then
        menu_upvr.pages.stats.main.main.percentage["shot accuracy"].value.Text = "0%"
    else
        menu_upvr.pages.stats.main.main.percentage["shot accuracy"].value.Text = any_load_result1_upvr.FormatDecimal(math.clamp(Profile_upvr.stats["Accurate Shots"].Value / Profile_upvr.stats.Shots.Value, 0, 1) * 100, 0)..'%'
    end
    if Profile_upvr.stats["Accurate Passes"].Value == 0 then
        menu_upvr.pages.stats.main.main.percentage["pass accuracy"].value.Text = "0%"
    else
        menu_upvr.pages.stats.main.main.percentage["pass accuracy"].value.Text = any_load_result1_upvr.FormatDecimal(math.clamp(Profile_upvr.stats["Accurate Passes"].Value / Profile_upvr.stats.Passes.Value, 0, 1) * 100, 0)..'%'
    end
    for _, v in next, Profile_upvr.stats:GetChildren() do
        if v and menu_upvr.pages.stats.main.main.stats:FindFirstChild(string.lower(v.Name)) then
            if string.lower(v.Name) == "goals" then
                menu_upvr.pages.stats.main.main.stats[string.lower(v.Name)].value.Text = string.format("%s / %s (P) / %s (FK)", any_load_result1_upvr.FormatLong(v.Value), any_load_result1_upvr.FormatLong(Profile_upvr.stats.Penalties.Value), any_load_result1_upvr.FormatLong(Profile_upvr.stats["Free Kicks"].Value))
            else
                menu_upvr.pages.stats.main.main.stats[string.lower(v.Name)].value.Text = any_load_result1_upvr.FormatLong(v.Value)
            end
        end
    end
end
function module.init(arg1) -- Line 49
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: Profile_upvr (readonly)
    ]]
    menu_upvr.pages.stats.Position = UDim2.new(0.05, 0, 0.5, 30 * menu_upvr.pages.stats.UIScale.Scale)
    menu_upvr.pages.stats.UIScale:GetPropertyChangedSignal("Scale"):Connect(function() -- Line 51
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        menu_upvr.pages.stats.Position = UDim2.new(0.05, 0, 0.5, 30 * menu_upvr.pages.stats.UIScale.Scale)
    end)
    arg1:update()
    for _, v_2 in next, Profile_upvr.stats:GetDescendants() do
        if v_2:IsA("ValueBase") then
            v_2.Changed:Connect(arg1.update)
        end
    end
end
return module
ModuleScript soundtrack soundtrack
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:31
-- Luau version 6, Types version 3
-- Time taken: 0.012370 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local module = {}
local module_2_upvr = require(script.Parent.Parent.Parent.Parent:WaitForChild("controllers", 100):WaitForChild("jukeboxController", 100))
function module.create(arg1, arg2) -- Line 21
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: module_2_upvr (readonly)
    ]]
    local var8_upvw = false
    local clone_upvr = References_upvr.Main.ui.track:Clone()
    clone_upvr.Parent = menu_upvr.pages.soundtrack.main.scroll.main
    clone_upvr.Name = arg2.Name
    clone_upvr.main.track.Text = arg2.Name
    local var10
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var10 = arg2.Artist.Value
        return var10
    end
    if not arg2:FindFirstChild("Artist") or not INLINED() then
        var10 = "Various Artists"
    end
    clone_upvr.main.artist.Text = var10
    var10 = clone_upvr.main.play
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var10 = arg2.Cover.Value
        return var10
    end
    if not arg2:FindFirstChild("Cover") or not INLINED_2() then
        var10 = "rbxassetid://15944529435"
    end
    var10.cover.Image = var10
    var10 = clone_upvr.main.play.button
    var10.MouseEnter:Connect(function() -- Line 30
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(clone_upvr.main.play, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            BackgroundTransparency = 0.7;
        }):Play()
        Services_upvr.TweenService:Create(clone_upvr.main.play.icon, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            ImageTransparency = 0;
        }):Play()
    end)
    var10 = clone_upvr.main.play.button
    var10.MouseLeave:Connect(function() -- Line 36
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: clone_upvr (readonly)
        ]]
        Services_upvr.TweenService:Create(clone_upvr.main.play, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            BackgroundTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(clone_upvr.main.play.icon, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            ImageTransparency = 1;
        }):Play()
    end)
    var10 = clone_upvr.main.play.button
    var10.MouseButton1Down:Connect(function() -- Line 41
        --[[ Upvalues[3]:
            [1]: var8_upvw (read and write)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
        ]]
        var8_upvw = true
        Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
            Scale = 0.9;
        }):Play()
    end)
    var10 = Services_upvr.UserInputService
    var10.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 46
        --[[ Upvalues[3]:
            [1]: var8_upvw (read and write)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
        ]]
        if var8_upvw and (arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch) then
            var8_upvw = false
            Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 1;
            }):Play()
        end
    end)
    var10 = clone_upvr.main.play.button
    var10.MouseButton1Click:Connect(function() -- Line 53
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: module_2_upvr (copied, readonly)
            [3]: arg2 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        module_2_upvr:play(arg2)
    end)
end
local any_load_result1_upvr = _engine:load("CanvasSize", "utils")
local any_load_result1_upvr_2 = _engine:load("Theme", "utils")
local soundtrack_upvr = Services_upvr.SoundService:WaitForChild("soundtrack", 100)
function module.init(arg1) -- Line 59
    --[[ Upvalues[6]:
        [1]: menu_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr_2 (readonly)
        [6]: soundtrack_upvr (readonly)
    ]]
    menu_upvr.pages.soundtrack.Position = UDim2.new(0.05, -1, 0.5, 30 * menu_upvr.pages.soundtrack.UIScale.Scale)
    menu_upvr.pages.soundtrack.UIScale:GetPropertyChangedSignal("Scale"):Connect(function() -- Line 63
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        menu_upvr.pages.soundtrack.Position = UDim2.new(0.05, -1, 0.5, 30 * menu_upvr.pages.soundtrack.UIScale.Scale)
    end)
    menu_upvr.pages.soundtrack.main.scroll.CanvasSize = any_load_result1_upvr:resizeRow(menu_upvr.pages.soundtrack.main.scroll.main, menu_upvr.pages.soundtrack.UIScale.Scale)
    menu_upvr.pages.soundtrack.main.scroll:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() -- Line 68
        --[[ Upvalues[2]:
            [1]: menu_upvr (copied, readonly)
            [2]: any_load_result1_upvr (copied, readonly)
        ]]
        menu_upvr.pages.soundtrack.main.scroll.CanvasSize = any_load_result1_upvr:resizeRow(menu_upvr.pages.soundtrack.main.scroll.main, menu_upvr.pages.soundtrack.UIScale.Scale)
    end)
    for _, v_upvr in next, {"forward", "backward"} do
        local var32_upvw = false
        menu_upvr.pages.soundtrack.main.current[v_upvr].button.MouseEnter:Connect(function() -- Line 77
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: v_upvr (readonly)
                [5]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = any_load_result1_upvr_2.Text;
            }):Play()
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr], TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_2.Accent;
            }):Play()
        end)
        menu_upvr.pages.soundtrack.main.current[v_upvr].button.MouseLeave:Connect(function() -- Line 84
            --[[ Upvalues[5]:
                [1]: var32_upvw (read and write)
                [2]: Services_upvr (copied, readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: v_upvr (readonly)
                [5]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            if not var32_upvw then
                Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
            end
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr], TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr_2.Text;
            }):Play()
        end)
        menu_upvr.pages.soundtrack.main.current[v_upvr].button.MouseButton1Down:Connect(function() -- Line 93
            --[[ Upvalues[4]:
                [1]: var32_upvw (read and write)
                [2]: Services_upvr (copied, readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: v_upvr (readonly)
            ]]
            var32_upvw = true
            Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end)
        Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2) -- Line 98
            --[[ Upvalues[4]:
                [1]: var32_upvw (read and write)
                [2]: Services_upvr (copied, readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: v_upvr (readonly)
            ]]
            if var32_upvw and (arg1_3.UserInputType == Enum.UserInputType.MouseButton1 or arg1_3.UserInputType == Enum.UserInputType.Touch) then
                var32_upvw = false
                Services_upvr.TweenService:Create(menu_upvr.pages.soundtrack.main.current[v_upvr].UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end)
        menu_upvr.pages.soundtrack.main.current[v_upvr].button.MouseButton1Click:Connect(function() -- Line 105
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: v_upvr (readonly)
                [3]: soundtrack_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            if v_upvr == "forward" then
                if soundtrack_upvr.TimeLength <= soundtrack_upvr.TimePosition + 10 then
                    soundtrack_upvr.TimePosition = soundtrack_upvr.TimeLength
                else
                    local var46 = soundtrack_upvr
                    var46.TimePosition += 10
                end
            end
            if v_upvr == "backward" then
                if soundtrack_upvr.TimePosition - 10 <= 0 then
                    soundtrack_upvr.TimePosition = 0
                    return
                end
                local var47 = soundtrack_upvr
                var47.TimePosition -= 10
            end
        end)
    end
    for _, v_2 in next, References_upvr.Main.sounds.Soundtrack:GetChildren() do
        if v_2 and v_2:IsA("Sound") then
            arg1:create(v_2)
        end
    end
end
return module
ModuleScript monetization monetization
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:32
-- Luau version 6, Types version 3
-- Time taken: 0.005337 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local module = {}
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_load_result1_upvr_2 = _engine:load("FormatNumber", "utils")
local any_load_result1_upvr = _engine:load("Monetization", "utils")
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.init(arg1) -- Line 18
    --[[ Upvalues[7]:
        [1]: menu_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: References_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr_3 (readonly)
        [7]: LocalPlayer_upvr (readonly)
    ]]
    for _, v_upvr in next, menu_upvr.menu.main.tabs.store.currency.main.list:GetChildren() do
        if v_upvr and v_upvr:IsA("Frame") then
            v_upvr.button.MouseEnter:Connect(function() -- Line 24
                --[[ Upvalues[4]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_upvr (readonly)
                    [4]: any_load_result1_upvr_3 (copied, readonly)
                ]]
                References_upvr.Main.sounds.UI.Hover:Play()
                Services_upvr.TweenService:Create(v_upvr, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr_3.Text:Lerp(Color3.new(0, 0, 0), 0.35);
                }):Play()
            end)
            v_upvr.button.MouseLeave:Connect(function() -- Line 29
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_upvr (readonly)
                    [3]: any_load_result1_upvr_3 (copied, readonly)
                ]]
                Services_upvr.TweenService:Create(v_upvr, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr_3.Text;
                }):Play()
            end)
            local var22_upvr = any_load_result1_upvr.developerProducts[string.format("%s RF Points", any_load_result1_upvr_2.FormatLong(tonumber(v_upvr.Name)))]
            v_upvr.button.MouseButton1Click:Connect(function() -- Line 33
                --[[ Upvalues[4]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                    [4]: var22_upvr (readonly)
                ]]
                References_upvr.Main.sounds.UI.Click:Play()
                local pcall_result1, pcall_result2 = pcall(function() -- Line 36
                    --[[ Upvalues[3]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: LocalPlayer_upvr (copied, readonly)
                        [3]: var22_upvr (copied, readonly)
                    ]]
                    return Services_upvr.MarketPlaceService:PromptProductPurchase(LocalPlayer_upvr, var22_upvr.productId)
                end)
                if not pcall_result1 then
                    warn(string.format("An unexpected error occured while prompting product purchase | %s", pcall_result2))
                end
            end)
        end
    end
    var22_upvr = menu_upvr.menu.main
    for _, v_2_upvr in next, var22_upvr.tabs.store.passes.main.list:GetChildren() do
        if v_2_upvr and v_2_upvr:IsA("Frame") then
            var22_upvr = any_load_result1_upvr.gamePasses
            local var28_upvr = var22_upvr[v_2_upvr.Name]
            var22_upvr = any_load_result1_upvr.userOwnsPass(LocalPlayer_upvr, var28_upvr.gamePassId)
            local var29_upvw = var22_upvr
            if var29_upvw then
                v_2_upvr.owned.Visible = true
            end
            v_2_upvr.button.MouseEnter:Connect(function() -- Line 56
                --[[ Upvalues[4]:
                    [1]: var29_upvw (read and write)
                    [2]: References_upvr (copied, readonly)
                    [3]: Services_upvr (copied, readonly)
                    [4]: v_2_upvr (readonly)
                ]]
                if not var29_upvw then
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_2_upvr.hover, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 0.5;
                    }):Play()
                end
            end)
            v_2_upvr.button.MouseLeave:Connect(function() -- Line 63
                --[[ Upvalues[3]:
                    [1]: var29_upvw (read and write)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_2_upvr (readonly)
                ]]
                if not var29_upvw then
                    Services_upvr.TweenService:Create(v_2_upvr.hover, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 1;
                    }):Play()
                end
            end)
            v_2_upvr.button.MouseButton1Click:Connect(function() -- Line 69
                --[[ Upvalues[5]:
                    [1]: var29_upvw (read and write)
                    [2]: References_upvr (copied, readonly)
                    [3]: Services_upvr (copied, readonly)
                    [4]: LocalPlayer_upvr (copied, readonly)
                    [5]: var28_upvr (readonly)
                ]]
                if not var29_upvw then
                    References_upvr.Main.sounds.UI.Click:Play()
                    Services_upvr.MarketPlaceService:PromptGamePassPurchase(LocalPlayer_upvr, var28_upvr.gamePassId)
                end
            end)
            Services_upvr.MarketPlaceService.PromptGamePassPurchaseFinished:Connect(function(arg1_2, arg2, arg3) -- Line 76
                --[[ Upvalues[5]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                    [2]: var28_upvr (readonly)
                    [3]: References_upvr (copied, readonly)
                    [4]: var29_upvw (read and write)
                    [5]: v_2_upvr (readonly)
                ]]
                if arg3 and arg1_2 == LocalPlayer_upvr and arg2 == var28_upvr.gamePassId then
                    References_upvr.Main.sounds.UI.Purchase:Play()
                    var29_upvw = true
                    v_2_upvr.owned.Visible = true
                end
            end)
        end
    end
end
return module
ModuleScript my player my player
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:34
-- Luau version 6, Types version 3
-- Time taken: 0.026073 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local PlayerGui = References_upvr.PlayerGui
local menu_upvr = PlayerGui:WaitForChild("menu", 100)
local rotate_upvr = workspace.game.menu.ui.rotate.rotate
rotate_upvr.Parent = PlayerGui
rotate_upvr.Enabled = false
rotate_upvr.Adornee = workspace.game.menu.ui.rotate
local jersey_upvr = workspace.game.menu.ui.jersey.jersey
jersey_upvr.Parent = PlayerGui
jersey_upvr.Adornee = workspace.game.menu.ui.jersey
local module = {
    current = "accessories";
    index = {
        accessories = 1;
        boots = 2;
        gloves = 3;
        ["ball holds"] = 4;
        celebrations = 5;
    };
    tabs = {
        debounce = false;
    };
    pages = {};
    cache = {};
    select = function(arg1, arg2) -- Line 44, Named "select"
        --[[ Upvalues[1]:
            [1]: menu_upvr (readonly)
        ]]
        if not arg1.cache.buttonDebounce and arg1.current ~= arg2.Name and arg2.Name ~= "back" then
            arg1.cache.buttonDebounce = true
            if arg1.pages[arg1.current] and arg1.pages[arg1.current].close then
                task.spawn(function() -- Line 49
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1.pages[arg1.current]:close()
                end)
            end
            if arg1.pages[arg2.Name] and arg1.pages[arg2.Name].open then
                task.spawn(function() -- Line 55
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    arg1.pages[arg2.Name]:open()
                end)
            end
            arg1.current = arg2.Name
            menu_upvr.pages.customize.main.pages.UIPageLayout:JumpTo(menu_upvr.pages.customize.main.pages[arg2.Name])
            task.wait(0.1)
            arg1.cache.buttonDebounce = nil
        end
    end;
}
local Profile_upvr = References_upvr.Profile
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
local any_new_result1_upvr = _engine:load("Network").new()
local any_load_result1_upvr = _engine:load("MouseObject")
local mouse_upvr = LocalPlayer_upvr:GetMouse()
function module.init(arg1) -- Line 68
    --[[ Upvalues[11]:
        [1]: Profile_upvr (readonly)
        [2]: Character_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
        [4]: jersey_upvr (readonly)
        [5]: References_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: any_load_result1_upvr (readonly)
        [9]: rotate_upvr (readonly)
        [10]: mouse_upvr (readonly)
        [11]: menu_upvr (readonly)
    ]]
    workspace.game.menu.ui.boots.main.main.label.Text = string.upper(Profile_upvr.inventory.Current.Boots.Value)
    workspace.game.menu.ui.gloves.main.main.label.Text = string.upper(Profile_upvr.inventory.Current.Gloves.Value)
    Profile_upvr.inventory.Current.Boots.Changed:Connect(function() -- Line 74
        --[[ Upvalues[1]:
            [1]: Profile_upvr (copied, readonly)
        ]]
        workspace.game.menu.ui.boots.main.main.label.Text = string.upper(Profile_upvr.inventory.Current.Boots.Value)
    end)
    Profile_upvr.inventory.Current.Gloves.Changed:Connect(function() -- Line 78
        --[[ Upvalues[1]:
            [1]: Profile_upvr (copied, readonly)
        ]]
        workspace.game.menu.ui.gloves.main.main.label.Text = string.upper(Profile_upvr.inventory.Current.Gloves.Value)
    end)
    Character_upvr.Jersey.jersey.name.Text = string.upper(LocalPlayer_upvr.Name)
    Character_upvr.Jersey.jersey.number.Text = tostring(Profile_upvr.stats.Number.Value)
    Character_upvr.Jersey.jersey.number.PlaceholderText = tostring(Profile_upvr.stats.Number.Value)
    jersey_upvr.main.button.MouseEnter:Connect(function() -- Line 88
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: jersey_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(jersey_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(jersey_upvr.main.image, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
            Position = UDim2.new(0.5, 0, 0.5, -2);
        }):Play()
    end)
    jersey_upvr.main.button.MouseLeave:Connect(function() -- Line 94
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: jersey_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(jersey_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0;
        }):Play()
        Services_upvr.TweenService:Create(jersey_upvr.main.image, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(35, 39, 50);
            Position = UDim2.new(0.5, 0, 0.5, 0);
        }):Play()
    end)
    jersey_upvr.main.button.MouseButton1Click:Connect(function() -- Line 99
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: Character_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        Character_upvr.Jersey.jersey.number.Text = ""
        Character_upvr.Jersey.jersey.number:CaptureFocus()
    end)
    Character_upvr.Jersey.jersey.number.FocusLost:Connect(function() -- Line 105
        --[[ Upvalues[3]:
            [1]: Character_upvr (copied, readonly)
            [2]: any_new_result1_upvr (copied, readonly)
            [3]: Profile_upvr (copied, readonly)
        ]]
        if tonumber(Character_upvr.Jersey.jersey.number.Text) and 0 <= tonumber(Character_upvr.Jersey.jersey.number.Text) and tonumber(Character_upvr.Jersey.jersey.number.Text) <= 99 then
            Character_upvr.Jersey.jersey.number.PlaceholderText = Character_upvr.Jersey.jersey.number.Text
            any_new_result1_upvr:send("replicateValue", Profile_upvr.stats.Number, tonumber(Character_upvr.Jersey.jersey.number.Text))
        else
            Character_upvr.Jersey.jersey.number.Text = Character_upvr.Jersey.jersey.number.PlaceholderText
        end
    end)
    local any_new_result1, any_new_result2 = any_load_result1_upvr.new(rotate_upvr.button)
    local tbl_upvr = {
        edit = false;
        hovering = false;
        enabled = false;
        lastMousePosition = nil;
    }
    any_new_result1:Connect(function() -- Line 124
        --[[ Upvalues[4]:
            [1]: rotate_upvr (copied, readonly)
            [2]: tbl_upvr (readonly)
            [3]: mouse_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if not rotate_upvr.Enabled then
        else
            tbl_upvr.hovering = true
            mouse_upvr.Icon = "rbxassetid://15820803017"
            Services_upvr.TweenService:Create(workspace.game.menu.ui.arrow.arrow.arrow, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0.3;
            }):Play()
        end
    end)
    any_new_result2:Connect(function() -- Line 134
        --[[ Upvalues[4]:
            [1]: rotate_upvr (copied, readonly)
            [2]: tbl_upvr (readonly)
            [3]: mouse_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if not rotate_upvr.Enabled then
        else
            tbl_upvr.hovering = false
            if not tbl_upvr.enabled then
                mouse_upvr.Icon = ""
                Services_upvr.TweenService:Create(workspace.game.menu.ui.arrow.arrow.arrow, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0.7;
                }):Play()
            end
        end
    end)
    rotate_upvr.button.MouseButton1Down:Connect(function() -- Line 147
        --[[ Upvalues[3]:
            [1]: rotate_upvr (copied, readonly)
            [2]: tbl_upvr (readonly)
            [3]: mouse_upvr (copied, readonly)
        ]]
        if not rotate_upvr.Enabled then
        else
            tbl_upvr.enabled = true
            tbl_upvr.lastMousePosition = mouse_upvr.X
        end
    end)
    Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2) -- Line 156
        --[[ Upvalues[4]:
            [1]: tbl_upvr (readonly)
            [2]: rotate_upvr (copied, readonly)
            [3]: mouse_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch and tbl_upvr.enabled then
            if not rotate_upvr.Enabled then return end
            if not tbl_upvr.hovering then
                mouse_upvr.Icon = ""
                Services_upvr.TweenService:Create(workspace.game.menu.ui.arrow.arrow.arrow, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0.7;
                }):Play()
            end
            tbl_upvr.enabled = false
            tbl_upvr.lastMousePosition = nil
        end
    end)
    mouse_upvr.Move:Connect(function() -- Line 172
        --[[ Upvalues[5]:
            [1]: tbl_upvr (readonly)
            [2]: mouse_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: Character_upvr (copied, readonly)
        ]]
        if tbl_upvr.enabled then
            Services_upvr.TweenService:Create(Character_upvr.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                CFrame = Character_upvr.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, math.rad((workspace.CurrentCamera:WorldToViewportPoint(mouse_upvr.Hit.Position).X - tbl_upvr.lastMousePosition) * 2 / menu_upvr.menu.main.UIScale.Scale), 0);
            }):Play()
            tbl_upvr.lastMousePosition = mouse_upvr.X
        end
    end)
    Services_upvr.UserInputService.InputChanged:Connect(function(arg1_3, arg2) -- Line 182
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: Character_upvr (copied, readonly)
        ]]
        if arg1_3.KeyCode == Enum.KeyCode.Thumbstick2 and script:GetAttribute("toggle") then
            if 0.7 <= arg1_3.Position.X then
                Services_upvr.TweenService:Create(Character_upvr.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                    CFrame = Character_upvr.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, 0.5, 0);
                }):Play()
                return
            end
            if arg1_3.Position.X <= -0.7 then
                Services_upvr.TweenService:Create(Character_upvr.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                    CFrame = Character_upvr.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, -0.5, 0);
                }):Play()
            end
        end
    end)
    Services_upvr.RunService.Heartbeat:Connect(function() -- Line 192
        --[[ Upvalues[4]:
            [1]: Character_upvr (copied, readonly)
            [2]: tbl_upvr (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: jersey_upvr (copied, readonly)
        ]]
        if Character_upvr.PrimaryPart.Orientation.Y <= -51 and -151 <= Character_upvr.PrimaryPart.Orientation.Y and not tbl_upvr.edit then
            tbl_upvr.edit = true
            Services_upvr.TweenService:Create(jersey_upvr.main.UIScale, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 1;
            }):Play()
        elseif -51 < Character_upvr.PrimaryPart.Orientation.Y or Character_upvr.PrimaryPart.Orientation.Y < -151 then
            if tbl_upvr.edit then
                tbl_upvr.edit = false
                Services_upvr.TweenService:Create(jersey_upvr.main.UIScale, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
                    Scale = 0;
                }):Play()
            end
        end
    end)
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_4, arg2) -- Line 204
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 66 start (CF ANALYSIS FAILED)
        if arg1_4.KeyCode == Enum.KeyCode.ButtonR1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not arg1.tabs.debounce then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == #menu_upvr.pages.customize.main.top:GetChildren() - 2 then
                for i, v in next, arg1.index do
                    if v and v == 1 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.customize.main.pages[i])
                        task.delay(0.2, function() -- Line 212
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 230
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [162] #111
            end
            -- KONSTANTWARNING: GOTO [102] #69
        end
        -- KONSTANTERROR: [0] 1. Error Block 66 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [162] 111. Error Block 64 start (CF ANALYSIS FAILED)
        if arg1_4.KeyCode == Enum.KeyCode.ButtonL1 and arg1.index[arg1.current] and script:GetAttribute("toggle") then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == 1 then
                for i_2, v_2 in next, arg1.index do
                    if v_2 and v_2 == #menu_upvr.pages.customize.main.top:GetChildren() - 2 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.customize.main.pages[i_2])
                        task.delay(0.2, function() -- Line 240
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 258
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                -- KONSTANTWARNING: GOTO [317] #216
            end
            -- KONSTANTWARNING: GOTO [258] #175
        end
        -- KONSTANTERROR: [162] 111. Error Block 64 end (CF ANALYSIS FAILED)
    end)
    for _, v_3_upvr in next, menu_upvr.pages.customize.main.top:GetChildren() do
        if v_3_upvr and v_3_upvr:IsA("Frame") then
            local button = v_3_upvr:FindFirstChild("button")
            if not button then
                button = v_3_upvr:FindFirstChild("back")
            end
            local image_upvr = v_3_upvr:FindFirstChild("image", true)
            button.MouseEnter:Connect(function() -- Line 271
                --[[ Upvalues[4]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_3_upvr (readonly)
                    [4]: image_upvr (readonly)
                ]]
                References_upvr.Main.sounds.UI.Hover:Play()
                Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(255, 255, 255);
                    Position = UDim2.new(0.5, 0, 0.5, -2);
                }):Play()
            end)
            button.MouseLeave:Connect(function() -- Line 277
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_3_upvr (readonly)
                    [3]: image_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(35, 39, 50);
                    Position = UDim2.new(0.5, 0, 0.5, 0);
                }):Play()
            end)
            button.MouseButton1Click:Connect(function() -- Line 282
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: v_3_upvr (readonly)
                ]]
                References_upvr.Main.sounds.UI.Click:Play()
                arg1:select(v_3_upvr)
            end)
        end
    end
    for _, v_4 in next, script:GetChildren() do
        if v_4 and v_4:IsA("ModuleScript") then
            image_upvr = v_4
            local var67_2 = require(image_upvr)
            image_upvr = var67_2:init
            image_upvr()
            image_upvr = arg1.pages
            image_upvr[v_4.Name] = var67_2
        end
    end
    script:SetAttribute("loaded", true)
end
return module
ModuleScript boots boots
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:35
-- Luau version 6, Types version 3
-- Time taken: 0.017511 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local boots_upvr = References_upvr.Main:WaitForChild("boots", 100)
local module = {}
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_load_result1_upvr_2 = _engine:load("CanvasSize", "utils")
local Services_upvr = _engine.Services
local any_load_result1_upvr = _engine:load("Viewport")
local any_new_result1_upvr_2 = _engine:load("Network").new()
function module.create(arg1, arg2) -- Line 25
    --[[ Upvalues[9]:
        [1]: References_upvr (readonly)
        [2]: any_load_result1_upvr_3 (readonly)
        [3]: boots_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: any_load_result1_upvr_2 (readonly)
        [6]: Services_upvr (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_load_result1_upvr (readonly)
        [9]: any_new_result1_upvr_2 (readonly)
    ]]
    if arg2 and (not arg2:GetAttribute("key") or arg2:GetAttribute("key") and arg2:GetAttribute("key") ~= References_upvr.Main.config.Key:GetAttribute("realKey")) then
        if arg2.Name ~= "RF Premium" then return end
    end
    local any_new_result1_upvr = any_load_result1_upvr_3.new()
    local SOME_upvr = boots_upvr:WaitForChild(arg2.Name, 100)
    local clone_upvr = References_upvr.Main.ui.item:Clone()
    clone_upvr.Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    clone_upvr.Name = SOME_upvr.Name
    clone_upvr.LayoutOrder = 2
    menu_upvr.pages.customize.main.pages[script.Name].scroll.CanvasSize = any_load_result1_upvr_2:resizeGrid(menu_upvr.pages.customize.main.pages[script.Name].scroll.main, 3)
    clone_upvr.main.UIScale.Scale = 0
    Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
        Scale = 1;
    }):Play()
    if SOME_upvr.Name == Profile_upvr.inventory.Current.Boots.Value then
        clone_upvr.main.selected.Visible = true
    end
    any_load_result1_upvr.new({
        _viewport = clone_upvr.main.viewport;
        _model = SOME_upvr;
        _rotate = "Dynamic";
        _viewportDistance = 1;
        _cameraFOV = 60;
    })
    any_new_result1_upvr.mouseEnter = clone_upvr.main.button.MouseEnter:Connect(function() -- Line 54
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(177, 177, 177);
        }):Play()
    end)
    any_new_result1_upvr.mouseLeave = clone_upvr.main.button.MouseLeave:Connect(function() -- Line 59
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: clone_upvr (readonly)
        ]]
        Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    any_new_result1_upvr.mouseClick = clone_upvr.main.button.MouseButton1Click:Connect(function() -- Line 63
        --[[ Upvalues[5]:
            [1]: References_upvr (copied, readonly)
            [2]: clone_upvr (readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: any_new_result1_upvr_2 (copied, readonly)
            [5]: SOME_upvr (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        clone_upvr.main.selected.Visible = true
        for _, v in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
            if v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v ~= clone_upvr then
                v.main.selected.Visible = false
            end
        end
        any_new_result1_upvr_2:send("replicateValue", References_upvr.Profile.inventory.Current.Boots, SOME_upvr.Name)
    end)
    any_new_result1_upvr.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 76
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvr (readonly)
        ]]
        any_new_result1_upvr:DoCleaning()
    end)
end
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
local LocalPlayer_upvr = References_upvr.LocalPlayer
function module.init(arg1) -- Line 81
    --[[ Upvalues[6]:
        [1]: Character_upvr (readonly)
        [2]: boots_upvr (readonly)
        [3]: Profile_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: References_upvr (readonly)
        [6]: LocalPlayer_upvr (readonly)
    ]]
    for _, v_2 in next, Character_upvr.RightBoot:GetChildren() do
        if v_2 and v_2:IsA("SurfaceAppearance") then
            v_2:Destroy()
        end
    end
    for _, v_3 in next, Character_upvr.LeftBoot:GetChildren() do
        if v_3 and v_3:IsA("SurfaceAppearance") then
            v_3:Destroy()
        end
    end
    Character_upvr.RightBoot.TextureID = boots_upvr[Profile_upvr.inventory.Current.Boots.Value].TextureID
    Character_upvr.LeftBoot.TextureID = boots_upvr[Profile_upvr.inventory.Current.Boots.Value].TextureID
    if boots_upvr[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
        boots_upvr[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = Character_upvr.RightBoot
        boots_upvr[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = Character_upvr.LeftBoot
    end
    Profile_upvr.inventory.Current.Boots.Changed:Connect(function() -- Line 104
        --[[ Upvalues[5]:
            [1]: menu_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Character_upvr (copied, readonly)
            [4]: boots_upvr (copied, readonly)
            [5]: Profile_upvr (copied, readonly)
        ]]
        for _, v_4 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
            if v_4 and v_4:FindFirstChild("main") and v_4.main:FindFirstChild("selected") and v_4.Name == References_upvr.Profile.inventory.Current.Boots.Value then
                v_4.main.selected.Visible = true
            elseif v_4 and v_4:FindFirstChild("main") and v_4.main:FindFirstChild("selected") and v_4.Name ~= References_upvr.Profile.inventory.Current.Boots.Value then
                v_4.main.selected.Visible = false
            end
        end
        for _, v_5 in next, Character_upvr.RightBoot:GetChildren() do
            if v_5 and v_5:IsA("SurfaceAppearance") then
                v_5:Destroy()
            end
        end
        for _, v_6 in next, Character_upvr.LeftBoot:GetChildren() do
            if v_6 and v_6:IsA("SurfaceAppearance") then
                v_6:Destroy()
            end
        end
        Character_upvr.RightBoot.TextureID = boots_upvr[Profile_upvr.inventory.Current.Boots.Value].TextureID
        Character_upvr.LeftBoot.TextureID = boots_upvr[Profile_upvr.inventory.Current.Boots.Value].TextureID
        if boots_upvr[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
            boots_upvr[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = Character_upvr.RightBoot
            boots_upvr[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = Character_upvr.LeftBoot
        end
    end)
    for _ = 1, math.ceil(#boots_upvr:GetChildren() / 3 + 0.5) * 3 do
        References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    end
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildAdded:Connect(function(arg1_2) -- Line 146
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        if arg1_2 and arg1_2.Name ~= "grid" then
            local tbl = {}
            for i_8, v_7 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_7.Name == "grid" then
                    table.insert(tbl, v_7)
                end
            end
            if 2 <= #tbl then
                i_8 = #tbl
                tbl[math.random(1, i_8)]:Destroy()
                return
            end
            if #tbl == 1 then
                tbl[1]:Destroy()
            end
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildRemoved:Connect(function(arg1_3) -- Line 164
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        if arg1_3 and arg1_3.Name ~= "grid" then
            References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 171
        --[[ Upvalues[5]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: boots_upvr (copied, readonly)
            [4]: Profile_upvr (copied, readonly)
            [5]: menu_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            task.spawn(function() -- Line 173
                --[[ Upvalues[4]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                    [2]: arg1 (copied, readonly)
                    [3]: boots_upvr (copied, readonly)
                    [4]: Profile_upvr (copied, readonly)
                ]]
                if LocalPlayer_upvr:GetAttribute("hasRFPremium") then
                    arg1:create(boots_upvr["RF Premium"])
                    task.wait(0.05)
                end
                for _, v_8 in next, Profile_upvr.inventory.Boots:GetChildren() do
                    if script.Parent:GetAttribute("toggle") then
                        arg1:create(v_8)
                        task.wait(0.05)
                    end
                end
            end)
        else
            for _, v_9 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_9 and v_9:IsA("Frame") and v_9.Name ~= "grid" then
                    v_9:Destroy()
                end
            end
        end
    end)
end
return module
ModuleScript accessories accessories
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:37
-- Luau version 6, Types version 3
-- Time taken: 0.034294 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
local any_new_result1_upvr = _engine:load("Network").new()
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local accessories_upvr = References_upvr.Main:WaitForChild("accessories", 100)
local LocalPlayer_upvr = References_upvr.LocalPlayer
local pcall_result1, pcall_result2 = pcall(function() -- Line 27
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
end)
if pcall_result1 and pcall_result2 then
    for _, v in next, pcall_result2:GetChildren() do
        if v:IsA("Accessory") and not v:FindFirstChildWhichIsA("WrapLayer", true) then
            v.Parent = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
        elseif v:IsA("BodyColors") then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            v.Parent = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
        elseif v:IsA("Decal") and v.Name == "face" then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            workspace.game.rigs:WaitForChild("previewer", 100):Clone().Head.face.Texture = v.Texture
        end
    end
end
local module = {
    toggled = false;
    selecting = {};
    update = function(arg1, arg2) -- Line 50, Named "update"
        --[[ Upvalues[2]:
            [1]: accessories_upvr (readonly)
            [2]: Profile_upvr (readonly)
        ]]
        arg2.Accessories:ClearAllChildren()
        arg2.RightHand.Transparency = 0
        arg2.LeftHand.Transparency = 0
        for i_2 = 1, 3 do
            if accessories_upvr:FindFirstChild(Profile_upvr.inventory.Current["Accessory "..tostring(i_2)].Value) then
                local SOME = accessories_upvr:WaitForChild(Profile_upvr.inventory.Current["Accessory "..tostring(i_2)].Value, 100)
                local function addAccessory(arg1_2) -- Line 59
                    --[[ Upvalues[1]:
                        [1]: arg2 (readonly)
                    ]]
                    if arg1_2:FindFirstChild("Part1") and arg1_2:FindFirstChild("Weld") and arg2:FindFirstChild(arg1_2.Part1.Value) then
                        local clone_2 = arg1_2:Clone()
                        clone_2.Parent = arg2.Accessories
                        clone_2.Weld.Part1 = arg2:WaitForChild(arg1_2.Part1.Value, 100)
                        for _, v_2 in next, arg2.Gloves:GetChildren() do
                            for _, v_3 in next, v_2:GetChildren() do
                                if v_3.Transparency == 0 and string.find(clone_2.Name, "Glove") then
                                    clone_2.Transparency = 1
                                elseif v_3.Transparency == 1 and string.find(clone_2.Name, "Glove") then
                                    arg2.RightHand.Transparency = 1
                                    arg2.LeftHand.Transparency = 1
                                elseif v_3.Transparency == 1 and not arg2.Accessories:FindFirstChild("RightGlove") then
                                    arg2.RightHand.Transparency = 0
                                    arg2.LeftHand.Transparency = 0
                                end
                            end
                        end
                    end
                end
                if SOME:IsA("Model") then
                    for _, v_4 in next, SOME:GetChildren() do
                        if v_4 then
                            addAccessory(v_4)
                        end
                    end
                else
                    addAccessory(SOME)
                end
            end
        end
    end;
}
local any_load_result1_upvr = _engine:load("Maid")
local any_load_result1_upvr_3 = _engine:load("CanvasSize", "utils")
local any_load_result1_upvr_2 = _engine:load("Viewport")
function module.create(arg1, arg2, arg3) -- Line 94
    --[[ Upvalues[9]:
        [1]: References_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: accessories_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: any_load_result1_upvr_3 (readonly)
        [6]: Services_upvr (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_load_result1_upvr_2 (readonly)
        [9]: any_new_result1_upvr (readonly)
    ]]
    if arg3 and (not arg3:GetAttribute("key") or arg3:GetAttribute("key") and arg3:GetAttribute("key") ~= References_upvr.Main.config.Key:GetAttribute("realKey")) then
    else
        local any_new_result1_upvr_2 = any_load_result1_upvr.new()
        local SOME_upvr = accessories_upvr:WaitForChild(arg3.Name, 100)
        local clone_6_upvr = References_upvr.Main.ui.item:Clone()
        clone_6_upvr.Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        clone_6_upvr.Name = SOME_upvr.Name
        clone_6_upvr.LayoutOrder = 2
        menu_upvr.pages.customize.main.pages[script.Name].scroll.CanvasSize = any_load_result1_upvr_3:resizeGrid(menu_upvr.pages.customize.main.pages[script.Name].scroll.main, 3)
        clone_6_upvr.main.UIScale.Scale = 0
        Services_upvr.TweenService:Create(clone_6_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Scale = 1;
        }):Play()
        arg2.Accessories:ClearAllChildren()
        for _, v_13 in next, arg2.Gloves:GetChildren() do
            for _, v_14 in next, v_13:GetChildren() do
                v_14.Transparency = 1
            end
        end
        arg2.RightHand.Transparency = 0
        arg2.LeftHand.Transparency = 0
        if SOME_upvr.Name == Profile_upvr.inventory.Current["Accessory 1"].Value or SOME_upvr.Name == Profile_upvr.inventory.Current["Accessory 2"].Value or SOME_upvr.Name == Profile_upvr.inventory.Current["Accessory 3"].Value then
            clone_6_upvr.main.selected.Visible = true
        end
        local function addAccessory(arg1_3) -- Line 126
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if arg1_3:FindFirstChild("Part1") and arg1_3:FindFirstChild("Weld") and arg2:FindFirstChild(arg1_3.Part1.Value) then
                local clone = arg1_3:Clone()
                clone.Parent = arg2.Accessories
                clone.Weld.Part1 = arg2:WaitForChild(arg1_3.Part1.Value, 100)
                for _, v_15 in next, arg2.Gloves:GetChildren() do
                    for _, v_16 in next, v_15:GetChildren() do
                        if v_16.Transparency == 0 and string.find(clone.Name, "Glove") then
                            clone.Transparency = 1
                        elseif v_16.Transparency == 1 and string.find(clone.Name, "Glove") then
                            arg2.RightHand.Transparency = 1
                            arg2.LeftHand.Transparency = 1
                        elseif v_16.Transparency == 1 and not arg2.Accessories:FindFirstChild("RightGlove") then
                            arg2.RightHand.Transparency = 0
                            arg2.LeftHand.Transparency = 0
                        end
                    end
                end
            end
        end
        if SOME_upvr:IsA("Model") then
            for i_20, v_17 in next, SOME_upvr:GetChildren() do
                if v_17 and v_17.Parent then
                    addAccessory(v_17)
                end
            end
        else
            addAccessory(SOME_upvr)
        end
        if SOME_upvr:FindFirstChild("AccessoryType") then
            i_20 = 0
            v_17 = -5.5
            i_20 = math.pi
            v_17 = 0.5
            local var69 = CFrame.new(3, i_20, v_17) * CFrame.Angles(i_20, v_17, (-math.pi))
            if SOME_upvr.AccessoryType.Value == "Head" then
                i_20 = 1.5
                v_17 = -3.5
                i_20 = math.pi
                v_17 = 0.5
                var69 = CFrame.new(1.82, i_20, v_17) * CFrame.Angles(i_20, v_17, (-math.pi))
            elseif SOME_upvr.AccessoryType.Value == "LowerArm" then
                i_20 = -1
                v_17 = -4
                i_20 = math.pi
                v_17 = 0.5
                var69 = CFrame.new(3.5, i_20, v_17) * CFrame.Angles(i_20, v_17, (-math.pi))
            elseif SOME_upvr.AccessoryType.Value == "Hand" then
                i_20 = -1
                v_17 = -3
                i_20 = math.pi
                v_17 = 0.5
                var69 = CFrame.new(3, i_20, v_17) * CFrame.Angles(i_20, v_17, (-math.pi))
            elseif SOME_upvr.AccessoryType.Value == "LowerLeg" then
                i_20 = -2
                v_17 = -4
                i_20 = math.pi
                v_17 = 0.5
                var69 = CFrame.new(2.2, i_20, v_17) * CFrame.Angles(i_20, v_17, (-math.pi))
            end
            local tbl = {}
            v_17 = clone_6_upvr.main
            i_20 = v_17.viewport
            tbl._viewport = i_20
            tbl._model = arg2
            tbl._cameraOffset = var69
            i_20 = 30
            tbl._cameraFOV = i_20
            any_load_result1_upvr_2.new(tbl)
        else
            local tbl_3 = {
                _viewport = clone_6_upvr.main.viewport;
            }
            tbl_3._model = arg2
            tbl_3._cameraOffset = CFrame.new(-3, 0, -5.5) * CFrame.Angles(math.pi, -0.5, (-math.pi))
            tbl_3._cameraFOV = 30
            any_load_result1_upvr_2.new(tbl_3)
        end
        for i_21 = 1, 3 do
            if SOME_upvr.Name == Profile_upvr.inventory.Current["Accessory "..tostring(i_21)].Value then
                if menu_upvr.pages.customize.main.pages[script.Name].selected[tostring(i_21)]:FindFirstChild("viewport") then
                    menu_upvr.pages.customize.main.pages[script.Name].selected[tostring(i_21)]:FindFirstChild("viewport")
                end
                menu_upvr.pages.customize.main.pages[script.Name].selected[tostring(i_21)].none.Visible = false
                local clone_5 = clone_6_upvr.main.viewport:Clone()
                clone_5.Parent = menu_upvr.pages.customize.main.pages[script.Name].selected[tostring(i_21)]
                clone_5.AnchorPoint = Vector2.new(0.5, 0)
                clone_5.Position = UDim2.new(0.5, 0, 0, 5)
                clone_5.Size = UDim2.new(1, -20, 1, -35)
            end
        end
        any_new_result1_upvr_2.mouseEnter = clone_6_upvr.main.button.MouseEnter:Connect(function() -- Line 202
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_6_upvr (readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_6_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        any_new_result1_upvr_2.mouseLeave = clone_6_upvr.main.button.MouseLeave:Connect(function() -- Line 207
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: clone_6_upvr (readonly)
            ]]
            Services_upvr.TweenService:Create(clone_6_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        any_new_result1_upvr_2.mouseClick = clone_6_upvr.main.button.MouseButton1Click:Connect(function() -- Line 211
            --[[ Upvalues[7]:
                [1]: arg1 (readonly)
                [2]: References_upvr (copied, readonly)
                [3]: clone_6_upvr (readonly)
                [4]: menu_upvr (copied, readonly)
                [5]: Profile_upvr (copied, readonly)
                [6]: any_new_result1_upvr (copied, readonly)
                [7]: SOME_upvr (readonly)
            ]]
            if arg1.selecting.slot then
                References_upvr.Main.sounds.UI.Click:Play()
                clone_6_upvr.main.selected.Visible = true
                for i_22, v_18 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                    if v_18 and v_18.Name ~= Profile_upvr.inventory.Current["Accessory 1"].Value and v_18.Name ~= Profile_upvr.inventory.Current["Accessory 2"].Value and v_18.Name ~= Profile_upvr.inventory.Current["Accessory 3"].Value and v_18:FindFirstChild("main") and v_18.main:FindFirstChild("selected") and v_18 ~= clone_6_upvr then
                        v_18.main.selected.Visible = false
                    end
                end
                if arg1.selecting.slot:FindFirstChild("viewport") then
                    i_22 = arg1
                    i_22.selecting.slot.viewport:Destroy()
                end
                local clone_4 = clone_6_upvr.main.viewport:Clone()
                clone_4.Parent = arg1.selecting.slot
                clone_4.AnchorPoint = Vector2.new(0.5, 0)
                clone_4.Position = UDim2.new(0.5, 0, 0, 5)
                clone_4.Size = UDim2.new(1, -20, 1, -35)
                arg1.selecting.slot.none.Visible = false
                arg1.selecting.slot.label.Text = "SLOT "..tostring(arg1.selecting.slot.Name)
                any_new_result1_upvr:send("replicateValue", Profile_upvr.inventory.Current["Accessory "..tostring(arg1.selecting.slot.Name)], SOME_upvr.Name)
                arg1.selecting.slot = nil
            end
        end)
        any_new_result1_upvr_2.onDestroying = clone_6_upvr.Destroying:Connect(function() -- Line 240
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_2 (readonly)
            ]]
            any_new_result1_upvr_2:DoCleaning()
        end)
    end
end
local clone_3_upvr = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
function module.init(arg1) -- Line 245
    --[[ Upvalues[7]:
        [1]: Profile_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: clone_3_upvr (readonly)
        [4]: Character_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
    ]]
    while not Profile_upvr:FindFirstChild("inventory") do
        task.wait()
    end
    if References_upvr.Main.boots:FindFirstChild(Profile_upvr.inventory.Current.Boots.Value) then
        for _, v_5 in next, clone_3_upvr.RightBoot:GetChildren() do
            if v_5 and v_5:IsA("SurfaceAppearance") then
                v_5:Destroy()
            end
        end
        for _, v_6 in next, clone_3_upvr.LeftBoot:GetChildren() do
            if v_6 and v_6:IsA("SurfaceAppearance") then
                v_6:Destroy()
            end
        end
        clone_3_upvr.RightBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
        clone_3_upvr.LeftBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
        if References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
            References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_3_upvr.RightBoot
            References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_3_upvr.LeftBoot
        end
    end
    arg1:update(Character_upvr)
    for _ = 1, math.floor(#References_upvr.Main.accessories:GetChildren() / 3 + 0.5) * 3 + 2 do
        References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    end
    for i_9 = 1, 3 do
        Profile_upvr.inventory.Current["Accessory "..tostring(i_9)].Changed:Connect(function() -- Line 289
            --[[ Upvalues[4]:
                [1]: menu_upvr (copied, readonly)
                [2]: Profile_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: Character_upvr (copied, readonly)
            ]]
            for _, v_7 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_7 and v_7:FindFirstChild("main") and v_7.main:FindFirstChild("selected") and (v_7.Name == Profile_upvr.inventory.Current["Accessory 1"].Value or v_7.Name == Profile_upvr.inventory.Current["Accessory 2"].Value or v_7.Name == Profile_upvr.inventory.Current["Accessory 3"].Value) then
                    v_7.main.selected.Visible = true
                elseif v_7 and v_7:FindFirstChild("main") and v_7.main:FindFirstChild("selected") then
                    v_7.main.selected.Visible = false
                end
            end
            arg1:update(Character_upvr)
        end)
    end
    for _, v_8_upvr in next, menu_upvr.pages.customize.main.pages[script.Name].selected:GetChildren() do
        if v_8_upvr:IsA("Frame") then
            v_8_upvr.button.MouseEnter:Connect(function() -- Line 304
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_8_upvr (readonly)
                ]]
                References_upvr.Main.sounds.UI.Hover:Play()
                Services_upvr.TweenService:Create(v_8_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(177, 177, 177);
                }):Play()
            end)
            v_8_upvr.button.MouseLeave:Connect(function() -- Line 309
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_8_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(v_8_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
            end)
            v_8_upvr.button.MouseButton1Click:Connect(function() -- Line 313
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: v_8_upvr (readonly)
                ]]
                if not arg1.selecting.slot then
                    References_upvr.Main.sounds.UI.Click:Play()
                    arg1.selecting.slot = v_8_upvr
                    v_8_upvr.label.Text = "SELECT"
                end
            end)
        end
    end
    if menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.Name == Profile_upvr.inventory.Current["Accessory 1"].Value or menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.Name == Profile_upvr.inventory.Current["Accessory 2"].Value or menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.Name == Profile_upvr.inventory.Current["Accessory 3"].Value then
        menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.selected.Visible = true
    end
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.button.MouseEnter:Connect(function() -- Line 327
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(177, 177, 177);
        }):Play()
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.button.MouseLeave:Connect(function() -- Line 332
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.button.MouseButton1Click:Connect(function() -- Line 336
        --[[ Upvalues[5]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: Profile_upvr (copied, readonly)
            [5]: any_new_result1_upvr (copied, readonly)
        ]]
        if arg1.selecting.slot then
            References_upvr.Main.sounds.UI.Click:Play()
            menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None.selected.Visible = true
            for _, v_9 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_9 and v_9.Name ~= Profile_upvr.inventory.Current["Accessory 1"].Value and v_9.Name ~= Profile_upvr.inventory.Current["Accessory 2"].Value and v_9.Name ~= Profile_upvr.inventory.Current["Accessory 3"].Value and v_9:FindFirstChild("main") and v_9.main:FindFirstChild("selected") and v_9 ~= menu_upvr.pages.customize.main.pages[script.Name].scroll.main.None then
                    v_9.main.selected.Visible = false
                end
            end
            for _, v_10 in next, arg1.selecting.slot:GetChildren() do
                if v_10 and v_10.Name == "viewport" then
                    v_10:Destroy()
                end
            end
            arg1.selecting.slot.none.Visible = true
            arg1.selecting.slot.label.Text = "SLOT "..tostring(arg1.selecting.slot.Name)
            any_new_result1_upvr:send("replicateValue", Profile_upvr.inventory.Current["Accessory "..tostring(arg1.selecting.slot.Name)], "None")
            arg1.selecting.slot = nil
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildAdded:Connect(function(arg1_4) -- Line 361
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        if arg1_4 and arg1_4.Name ~= "grid" then
            local tbl_2 = {}
            for i_14, v_11 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_11.Name == "grid" then
                    table.insert(tbl_2, v_11)
                end
            end
            if 2 <= #tbl_2 then
                i_14 = #tbl_2
                tbl_2[math.random(1, i_14)]:Destroy()
                return
            end
            if #tbl_2 == 1 then
                tbl_2[1]:Destroy()
            end
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildRemoved:Connect(function(arg1_5) -- Line 379
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        if arg1_5 and arg1_5.Name ~= "grid" then
            References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 386
        --[[ Upvalues[4]:
            [1]: Profile_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: clone_3_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            task.spawn(function() -- Line 388
                --[[ Upvalues[3]:
                    [1]: Profile_upvr (copied, readonly)
                    [2]: arg1 (copied, readonly)
                    [3]: clone_3_upvr (copied, readonly)
                ]]
                for _, v_12 in next, Profile_upvr.inventory.Accessories:GetChildren() do
                    if script.Parent:GetAttribute("toggle") then
                        arg1:create(clone_3_upvr, v_12)
                        task.wait(0.05)
                    end
                end
            end)
        else
            for _, v_19 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_19 and v_19:IsA("Frame") and v_19.Name ~= "grid" and v_19.Name ~= "None" then
                    v_19:Destroy()
                end
            end
        end
    end)
end
return module
ModuleScript gloves gloves
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:39
-- Luau version 6, Types version 3
-- Time taken: 0.030420 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local gloves_upvr = References_upvr.Main:WaitForChild("gloves", 100)
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
local module = {
    toggled = false;
}
local any_load_result1_upvr_2 = _engine:load("Maid")
local any_load_result1_upvr = _engine:load("CanvasSize", "utils")
local Services_upvr = _engine.Services
local any_load_result1_upvr_3 = _engine:load("Viewport")
local any_new_result1_upvr = _engine:load("Network").new()
function module.create(arg1, arg2) -- Line 27
    --[[ Upvalues[9]:
        [1]: References_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: gloves_upvr (readonly)
        [4]: menu_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_load_result1_upvr_3 (readonly)
        [9]: any_new_result1_upvr (readonly)
    ]]
    if arg2 and (not arg2:GetAttribute("key") or arg2:GetAttribute("key") and arg2:GetAttribute("key") ~= References_upvr.Main.config.Key:GetAttribute("realKey")) then
    else
        local any_new_result1_upvr_2 = any_load_result1_upvr_2.new()
        local SOME_upvr = gloves_upvr:WaitForChild(arg2.Name, 100)
        local clone_upvr = References_upvr.Main.ui.item:Clone()
        clone_upvr.Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        clone_upvr.Name = SOME_upvr.Name
        clone_upvr.LayoutOrder = 2
        menu_upvr.pages.customize.main.pages[script.Name].scroll.CanvasSize = any_load_result1_upvr:resizeGrid(menu_upvr.pages.customize.main.pages[script.Name].scroll.main, 3)
        clone_upvr.main.UIScale.Scale = 0
        Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Scale = 1;
        }):Play()
        if SOME_upvr.Name == Profile_upvr.inventory.Current.Gloves.Value then
            clone_upvr.main.selected.Visible = true
        end
        any_load_result1_upvr_3.new({
            _viewport = clone_upvr.main.viewport;
            _model = SOME_upvr;
            _rotate = "Dynamic";
            _viewportDistance = 1;
            _cameraFOV = 60;
        })
        any_new_result1_upvr_2.mouseEnter = clone_upvr.main.button.MouseEnter:Connect(function() -- Line 56
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_upvr (readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        any_new_result1_upvr_2.mouseLeave = clone_upvr.main.button.MouseLeave:Connect(function() -- Line 61
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: clone_upvr (readonly)
            ]]
            Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        any_new_result1_upvr_2.mouseClick = clone_upvr.main.button.MouseButton1Click:Connect(function() -- Line 65
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: clone_upvr (readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
                [5]: SOME_upvr (readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            clone_upvr.main.selected.Visible = true
            for _, v_13 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_13 and v_13:FindFirstChild("main") and v_13.main:FindFirstChild("selected") and v_13 ~= clone_upvr then
                    v_13.main.selected.Visible = false
                end
            end
            any_new_result1_upvr:send("replicateValue", References_upvr.Profile.inventory.Current.Gloves, SOME_upvr.Name)
        end)
        any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 78
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_2 (readonly)
            ]]
            any_new_result1_upvr_2:DoCleaning()
        end)
    end
end
function module.init(arg1) -- Line 83
    --[[ Upvalues[5]:
        [1]: Profile_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: gloves_upvr (readonly)
        [5]: Character_upvr (readonly)
    ]]
    Profile_upvr.inventory.Current.Gloves.Changed:Connect(function() -- Line 86
        --[[ Upvalues[5]:
            [1]: menu_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: gloves_upvr (copied, readonly)
            [5]: Character_upvr (copied, readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        local _, NONE_7 = menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren()
        local var107
        for i, v in next, var107, NONE_7 do
            if v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name == References_upvr.Profile.inventory.Current.Gloves.Value then
                v.main.selected.Visible = true
            elseif v and v:FindFirstChild("main") and v.main:FindFirstChild("selected") and v.Name ~= References_upvr.Profile.inventory.Current.Gloves.Value then
                v.main.selected.Visible = false
            end
        end
        var107 = arg1
        if var107.toggled then
            var107 = gloves_upvr
            v = References_upvr.Profile.inventory.Current
            i = v.Gloves
            local var108 = var107[i.Value]
            var107 = '1'
            if var108 then
                v = "GloveType"
                if var108:FindFirstChild(v) then
                    var107 = var108.GloveType.Value
                end
            end
            v = Character_upvr
            i = v.Gloves:GetChildren()
            for _, v_2 in next, v.Gloves:GetChildren() do
                if v_2 and v_2.Name == var107 then
                    for _, v_3 in next, v_2:GetChildren() do
                        v_3.Transparency = 0
                        v_3.SurfaceAppearance:Destroy()
                        var108.SurfaceAppearance:Clone().Parent = v_3
                        local _
                    end
                else
                    for _, v_4 in next, v_2:GetChildren() do
                        v_4.Transparency = 1
                    end
                end
            end
        end
    end)
    for _ = 1, math.floor(#gloves_upvr:GetChildren() / 3 + 0.5) * 3 do
        References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    end
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildAdded:Connect(function(arg1_2) -- Line 131
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        if arg1_2 and arg1_2.Name ~= "grid" then
            local tbl = {}
            for i_6, v_5 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_5.Name == "grid" then
                    table.insert(tbl, v_5)
                end
            end
            if 2 <= #tbl then
                i_6 = #tbl
                tbl[math.random(1, i_6)]:Destroy()
                return
            end
            if #tbl == 1 then
                tbl[1]:Destroy()
            end
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildRemoved:Connect(function(arg1_3) -- Line 149
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        if arg1_3 and arg1_3.Name ~= "grid" then
            References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 156
        --[[ Upvalues[3]:
            [1]: Profile_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: menu_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            task.spawn(function() -- Line 158
                --[[ Upvalues[2]:
                    [1]: Profile_upvr (copied, readonly)
                    [2]: arg1 (copied, readonly)
                ]]
                for _, v_6 in next, Profile_upvr.inventory.Gloves:GetChildren() do
                    if script.Parent:GetAttribute("toggle") then
                        arg1:create(v_6)
                        task.wait(0.05)
                    end
                end
            end)
        else
            for _, v_14 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_14 and v_14:IsA("Frame") and v_14.Name ~= "grid" then
                    v_14:Destroy()
                end
            end
        end
    end)
end
function module.open(arg1) -- Line 176
    --[[ Upvalues[3]:
        [1]: Character_upvr (readonly)
        [2]: gloves_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg1.toggled = true
    local _, NONE_3 = Character_upvr.Accessories:GetChildren()
    local var209
    for _, v_7 in next, var209, NONE_3 do
        if v_7 and string.find(v_7.Name, "Glove") then
            v_7.Transparency = 1
        end
    end
    var209 = Character_upvr
    var209 = 1
    var209.RightHand.Transparency = var209
    var209 = Character_upvr
    var209 = 1
    var209.LeftHand.Transparency = var209
    var209 = gloves_upvr
    local var210 = var209[References_upvr.Profile.inventory.Current.Gloves.Value]
    var209 = '1'
    if var210 then
        if var210:FindFirstChild("GloveType") then
            var209 = var210.GloveType.Value
        end
    end
    for _, v_8 in next, Character_upvr.Gloves:GetChildren() do
        if v_8 and v_8.Name == var209 then
            for _, v_9 in next, v_8:GetChildren() do
                v_9.Transparency = 0
                v_9.SurfaceAppearance:Destroy()
                var210.SurfaceAppearance:Clone().Parent = v_9
                local _
            end
        else
            for _, v_10 in next, v_8:GetChildren() do
                v_10.Transparency = 1
            end
        end
    end
end
function module.close(arg1) -- Line 210
    --[[ Upvalues[1]:
        [1]: Character_upvr (readonly)
    ]]
    arg1.toggled = false
    if not Character_upvr.Accessories:FindFirstChild("RightGlove") then
        Character_upvr.RightHand.Transparency = 0
        Character_upvr.LeftHand.Transparency = 0
    end
    for _, v_11 in next, Character_upvr.Accessories:GetChildren() do
        if v_11 and string.find(v_11.Name, "Glove") then
            v_11.Transparency = 0
        end
    end
    for _, v_12 in next, Character_upvr.Gloves:GetDescendants() do
        if v_12 and v_12:IsA("MeshPart") then
            v_12.Transparency = 1
        end
    end
    return true
end
return module
ModuleScript ball holds ball holds
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:40
-- Luau version 6, Types version 3
-- Time taken: 0.029627 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local Ball_upvr = References_upvr.Main.animations:WaitForChild("Ball", 100)
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
local clone_upvr_2 = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
local LocalPlayer_upvr = References_upvr.LocalPlayer
local pcall_result1, pcall_result2 = pcall(function() -- Line 26
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
end)
if pcall_result1 and pcall_result2 then
    for _, v in next, pcall_result2:GetChildren() do
        if v:IsA("Accessory") and not v:FindFirstChildWhichIsA("WrapLayer", true) then
            v.Parent = clone_upvr_2
        elseif v:IsA("BodyColors") then
            v.Parent = clone_upvr_2
        elseif v:IsA("Decal") and v.Name == "face" then
            clone_upvr_2.Head.face.Texture = v.Texture
        end
    end
end
if References_upvr.Main.boots:FindFirstChild(Profile_upvr.inventory.Current.Boots.Value) then
    for _, v_2 in next, clone_upvr_2.RightBoot:GetChildren() do
        if v_2 and v_2:IsA("SurfaceAppearance") then
            v_2:Destroy()
        end
    end
    for _, v_3 in next, clone_upvr_2.LeftBoot:GetChildren() do
        if v_3 and v_3:IsA("SurfaceAppearance") then
            v_3:Destroy()
        end
    end
    clone_upvr_2.RightBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
    clone_upvr_2.LeftBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
    if References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
        References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr_2.RightBoot
        References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr_2.LeftBoot
    end
end
local module = {
    toggled = false;
}
local any_load_result1_upvr = _engine:load("Maid")
local any_load_result1_upvr_3 = _engine:load("CanvasSize", "utils")
local Services_upvr = _engine.Services
local any_load_result1_upvr_2 = _engine:load("Viewport")
local any_new_result1_upvr_2 = _engine:load("Network").new()
function module.create(arg1, arg2) -- Line 70
    --[[ Upvalues[11]:
        [1]: References_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: Ball_upvr (readonly)
        [4]: clone_upvr_2 (readonly)
        [5]: menu_upvr (readonly)
        [6]: any_load_result1_upvr_3 (readonly)
        [7]: Services_upvr (readonly)
        [8]: Profile_upvr (readonly)
        [9]: any_load_result1_upvr_2 (readonly)
        [10]: Character_upvr (readonly)
        [11]: any_new_result1_upvr_2 (readonly)
    ]]
    if arg2 and (not arg2:GetAttribute("key") or arg2:GetAttribute("key") and arg2:GetAttribute("key") ~= References_upvr.Main.config.Key:GetAttribute("realKey")) then
    else
        local any_new_result1_upvr = any_load_result1_upvr.new()
        local SOME_upvr = Ball_upvr:WaitForChild(arg2.Name, 100)
        clone_upvr_2.Accessories:ClearAllChildren()
        local clone_upvr = References_upvr.Main.ui.item:Clone()
        clone_upvr.Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        clone_upvr.Name = SOME_upvr.Name
        clone_upvr.LayoutOrder = 2
        menu_upvr.pages.customize.main.pages[script.Name].scroll.CanvasSize = any_load_result1_upvr_3:resizeGrid(menu_upvr.pages.customize.main.pages[script.Name].scroll.main, 3)
        clone_upvr.main.UIScale.Scale = 0
        Services_upvr.TweenService:Create(clone_upvr.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Scale = 1;
        }):Play()
        if SOME_upvr.Name == Profile_upvr.inventory.Current["Ball Hold"].Value then
            clone_upvr.main.selected.Visible = true
        end
        for _, v_14 in next, clone_upvr_2.Accessories:GetChildren() do
            if v_14 and string.find(v_14.Name, "Glove") then
                v_14.Transparency = 1
            end
        end
        clone_upvr_2.RightHand.Transparency = 1
        clone_upvr_2.LeftHand.Transparency = 1
        for _, v_15 in next, clone_upvr_2.Gloves:GetChildren() do
            if v_15 and v_15.Name == References_upvr.Main.gloves[Profile_upvr.inventory.Current.Gloves.Value].GloveType.Value then
                for _, v_16 in next, v_15:GetChildren() do
                    v_16.Transparency = 0
                    v_16.SurfaceAppearance:Destroy()
                    References_upvr.Main.gloves[Profile_upvr.inventory.Current.Gloves.Value].SurfaceAppearance:Clone().Parent = v_16
                end
            else
                for _, v_17 in next, v_15:GetChildren() do
                    v_17.Transparency = 1
                end
            end
        end
        any_load_result1_upvr_2.new({
            _viewport = clone_upvr.main.viewport;
            _model = clone_upvr_2;
            _cameraOffset = CFrame.new(2.25, 0.2, -7.5) * CFrame.Angles(math.pi, 0.3, (-math.pi));
            _cameraFOV = 30;
            _ball = true;
            _animationData = {
                _id = Ball_upvr[clone_upvr.Name].AnimationId;
                _looped = true;
            };
        })
        any_new_result1_upvr.mouseEnter = clone_upvr.main.button.MouseEnter:Connect(function() -- Line 128
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_upvr (readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        any_new_result1_upvr.mouseLeave = clone_upvr.main.button.MouseLeave:Connect(function() -- Line 133
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: clone_upvr (readonly)
            ]]
            Services_upvr.TweenService:Create(clone_upvr.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        any_new_result1_upvr.mouseClick = clone_upvr.main.button.MouseButton1Click:Connect(function() -- Line 137
            --[[ Upvalues[7]:
                [1]: References_upvr (copied, readonly)
                [2]: clone_upvr (readonly)
                [3]: menu_upvr (copied, readonly)
                [4]: Character_upvr (copied, readonly)
                [5]: Ball_upvr (copied, readonly)
                [6]: SOME_upvr (readonly)
                [7]: any_new_result1_upvr_2 (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            clone_upvr.main.selected.Visible = true
            for _, v_18 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_18 and v_18:FindFirstChild("main") and v_18.main:FindFirstChild("selected") and v_18 ~= clone_upvr then
                    v_18.main.selected.Visible = false
                end
            end
            for _, v_19 in next, Character_upvr.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v_19 and Ball_upvr:FindFirstChild(v_19.Name) then
                    v_19:Stop()
                end
            end
            local any_LoadAnimation_result1_3 = Character_upvr.Humanoid.Animator:LoadAnimation(Ball_upvr[SOME_upvr.Name])
            any_LoadAnimation_result1_3.Priority = Enum.AnimationPriority.Action2
            any_LoadAnimation_result1_3:Play()
            any_new_result1_upvr_2:send("replicateValue", References_upvr.Profile.inventory.Current["Ball Hold"], SOME_upvr.Name)
        end)
        any_new_result1_upvr.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 160
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:DoCleaning()
        end)
    end
end
function module.init(arg1) -- Line 165
    --[[ Upvalues[4]:
        [1]: Profile_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Ball_upvr (readonly)
    ]]
    Profile_upvr.inventory.Current["Ball Hold"].Changed:Connect(function() -- Line 168
        --[[ Upvalues[2]:
            [1]: menu_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
        ]]
        for _, v_4 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
            if v_4 and v_4:FindFirstChild("main") and v_4.main:FindFirstChild("selected") and v_4.Name == References_upvr.Profile.inventory.Current["Ball Hold"].Value then
                v_4.main.selected.Visible = true
            elseif v_4 and v_4:FindFirstChild("main") and v_4.main:FindFirstChild("selected") and v_4.Name ~= References_upvr.Profile.inventory.Current["Ball Hold"].Value then
                v_4.main.selected.Visible = false
            end
        end
    end)
    for _ = 1, math.floor(#Ball_upvr:GetChildren() / 3 + 0.5) * 3 + 3 do
        References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    end
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildAdded:Connect(function(arg1_2) -- Line 190
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        if arg1_2 and arg1_2.Name ~= "grid" then
            local tbl = {}
            for i_6, v_5 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_5.Name == "grid" then
                    table.insert(tbl, v_5)
                end
            end
            if 2 <= #tbl then
                i_6 = #tbl
                tbl[math.random(1, i_6)]:Destroy()
                return
            end
            if #tbl == 1 then
                tbl[1]:Destroy()
            end
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildRemoved:Connect(function(arg1_3) -- Line 208
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        if arg1_3 and arg1_3.Name ~= "grid" then
            References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 215
        --[[ Upvalues[3]:
            [1]: Profile_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: menu_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            task.spawn(function() -- Line 217
                --[[ Upvalues[2]:
                    [1]: Profile_upvr (copied, readonly)
                    [2]: arg1 (copied, readonly)
                ]]
                for _, v_6 in next, Profile_upvr.inventory["Ball Holds"]:GetChildren() do
                    if script.Parent:GetAttribute("toggle") then
                        arg1:create(v_6)
                        task.wait(0.05)
                    end
                end
            end)
        else
            for _, v_20 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_20 and v_20:IsA("Frame") and v_20.Name ~= "grid" then
                    v_20:Destroy()
                end
            end
        end
    end)
end
function module.open(arg1) -- Line 235
    --[[ Upvalues[4]:
        [1]: Character_upvr (readonly)
        [2]: Ball_upvr (readonly)
        [3]: Profile_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg1.toggled = true
    local children_6, _ = Character_upvr.Accessories:GetChildren()
    local var168
    for _, v_7 in next, children_6, var168 do
        if v_7 and string.find(v_7.Name, "Glove") then
            v_7.Transparency = 1
        end
    end
    Character_upvr.RightHand.Transparency = 1
    Character_upvr.LeftHand.Transparency = 1
    var168 = Character_upvr.Ball
    var168.design["Adidas RF Pro 23/24"].Transparency = 0
    var168 = Character_upvr
    var168 = workspace.game.rigs.previewer.Ball.Ball
    var168.Ball.Ball.C0 = var168.C0
    var168 = Character_upvr
    var168 = workspace.game.rigs.previewer.Ball.Ball
    var168.Ball.Ball.C1 = var168.C1
    var168 = Character_upvr
    var168 = Ball_upvr[Profile_upvr.inventory.Current["Ball Hold"].Value]
    local any_LoadAnimation_result1_2 = var168.Humanoid.Animator:LoadAnimation(var168)
    any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action2
    any_LoadAnimation_result1_2:Play()
    var168 = References_upvr.Main.gloves
    local var170 = var168[References_upvr.Profile.inventory.Current.Gloves.Value]
    var168 = '1'
    if var170 then
        if var170:FindFirstChild("GloveType") then
            var168 = var170.GloveType.Value
        end
    end
    for _, v_8 in next, Character_upvr.Gloves:GetChildren() do
        if v_8 and v_8.Name == var168 then
            for _, v_9 in next, v_8:GetChildren() do
                v_9.Transparency = 0
                v_9.SurfaceAppearance:Destroy()
                var170.SurfaceAppearance:Clone().Parent = v_9
                local _
            end
        else
            for _, v_10 in next, v_8:GetChildren() do
                v_10.Transparency = 1
            end
        end
    end
end
function module.close(arg1) -- Line 277
    --[[ Upvalues[3]:
        [1]: Character_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: Ball_upvr (readonly)
    ]]
    arg1.toggled = false
    Character_upvr.Ball.design["Adidas RF Pro 23/24"].Transparency = 1
    Character_upvr.Ball.Ball.C0 = References_upvr.Main.rigs.Character.Ball.Ball.C0
    Character_upvr.Ball.Ball.C1 = References_upvr.Main.rigs.Character.Ball.Ball.C1
    for _, v_11 in next, Character_upvr.Humanoid.Animator:GetPlayingAnimationTracks() do
        if v_11 and Ball_upvr:FindFirstChild(v_11.Name) then
            v_11:Stop()
        end
    end
    if not Character_upvr.Accessories:FindFirstChild("RightGlove") then
        Character_upvr.RightHand.Transparency = 0
        Character_upvr.LeftHand.Transparency = 0
    end
    for _, v_12 in next, Character_upvr.Accessories:GetChildren() do
        if v_12 and string.find(v_12.Name, "Glove") then
            v_12.Transparency = 0
        end
    end
    for _, v_13 in next, Character_upvr.Gloves:GetDescendants() do
        if v_13 and v_13:IsA("MeshPart") then
            v_13.Transparency = 1
        end
    end
end
return module
ModuleScript celebrations celebrations
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:41
-- Luau version 6, Types version 3
-- Time taken: 0.017793 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local Celebrations_upvr = References_upvr.Main.animations:WaitForChild("Celebrations", 100)
local clone_upvr = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
local LocalPlayer_upvr = References_upvr.LocalPlayer
local pcall_result1, pcall_result2 = pcall(function() -- Line 26
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
end)
if pcall_result1 and pcall_result2 then
    for _, v in next, pcall_result2:GetChildren() do
        if v:IsA("Accessory") and not v:FindFirstChildWhichIsA("WrapLayer", true) then
            v.Parent = clone_upvr
        elseif v:IsA("BodyColors") then
            v.Parent = clone_upvr
        elseif v:IsA("Decal") and v.Name == "face" then
            clone_upvr.Head.face.Texture = v.Texture
        end
    end
end
if References_upvr.Main.boots:FindFirstChild(Profile_upvr.inventory.Current.Boots.Value) then
    for _, v_2 in next, clone_upvr.RightBoot:GetChildren() do
        if v_2 and v_2:IsA("SurfaceAppearance") then
            v_2:Destroy()
        end
    end
    for _, v_3 in next, clone_upvr.LeftBoot:GetChildren() do
        if v_3 and v_3:IsA("SurfaceAppearance") then
            v_3:Destroy()
        end
    end
    clone_upvr.RightBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
    clone_upvr.LeftBoot.TextureID = References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].TextureID
    if References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
        References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr.RightBoot
        References_upvr.Main.boots[Profile_upvr.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr.LeftBoot
    end
end
local module = {}
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_load_result1_upvr_2 = _engine:load("CanvasSize", "utils")
local Services_upvr = _engine.Services
local any_load_result1_upvr = _engine:load("Viewport")
function module.create(arg1, arg2) -- Line 68
    --[[ Upvalues[8]:
        [1]: References_upvr (readonly)
        [2]: any_load_result1_upvr_3 (readonly)
        [3]: Celebrations_upvr (readonly)
        [4]: clone_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: any_load_result1_upvr_2 (readonly)
        [7]: Services_upvr (readonly)
        [8]: any_load_result1_upvr (readonly)
    ]]
    if arg2 and (not arg2:GetAttribute("key") or arg2:GetAttribute("key") and arg2:GetAttribute("key") ~= References_upvr.Main.config.Key:GetAttribute("realKey")) then
    else
        local any_new_result1_upvr = any_load_result1_upvr_3.new()
        clone_upvr.Accessories:ClearAllChildren()
        for _, v_6 in next, clone_upvr.Gloves:GetChildren() do
            for _, v_7 in next, v_6:GetChildren() do
                v_7.Transparency = 1
            end
        end
        clone_upvr.RightHand.Transparency = 0
        clone_upvr.LeftHand.Transparency = 0
        local clone_upvr_2 = References_upvr.Main.ui.item:Clone()
        clone_upvr_2.Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        clone_upvr_2.Name = Celebrations_upvr:WaitForChild(arg2.Name, 100).Name
        clone_upvr_2.LayoutOrder = 2
        menu_upvr.pages.customize.main.pages[script.Name].scroll.CanvasSize = any_load_result1_upvr_2:resizeGrid(menu_upvr.pages.customize.main.pages[script.Name].scroll.main, 3)
        clone_upvr_2.main.UIScale.Scale = 0
        Services_upvr.TweenService:Create(clone_upvr_2.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Scale = 1;
        }):Play()
        local unpacked_value_1_upvr, unpacked_value_2_upvr = table.unpack(any_load_result1_upvr.new({
            _viewport = clone_upvr_2.main.viewport;
            _model = clone_upvr;
            _cameraOffset = CFrame.new(2.25, -0.4, -12) * CFrame.Angles(math.pi, 0.2, (-math.pi));
            _cameraFOV = 7;
            _animationData = {
                _id = Celebrations_upvr[clone_upvr_2.Name].AnimationId;
                _looped = true;
            };
            _return = "Camera";
        }))
        any_new_result1_upvr.mouseEnter = clone_upvr_2.main.button.MouseEnter:Connect(function() -- Line 109
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_upvr_2 (readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr_2.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        any_new_result1_upvr.mouseLeave = clone_upvr_2.main.button.MouseLeave:Connect(function() -- Line 114
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            Services_upvr.TweenService:Create(clone_upvr_2.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        any_new_result1_upvr.mouseClick = clone_upvr_2.main.button.MouseButton1Click:Connect(function() -- Line 118
            --[[ Upvalues[1]:
                [1]: References_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
        end)
        any_new_result1_upvr.renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 132
            --[[ Upvalues[2]:
                [1]: unpacked_value_1_upvr (readonly)
                [2]: unpacked_value_2_upvr (readonly)
            ]]
            unpacked_value_1_upvr.CFrame = CFrame.lookAt((unpacked_value_2_upvr.PrimaryPart.CFrame * workspace.game.cutscenes.celebrations.home.right.position.CFrame:ToObjectSpace(workspace.game.cutscenes.celebrations.home.right.corner.CFrame)).Position, unpacked_value_2_upvr.UpperTorso.CFrame.Position)
        end)
        any_new_result1_upvr.onDestroying = clone_upvr_2.Destroying:Connect(function() -- Line 137
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr (readonly)
            ]]
            any_new_result1_upvr:DoCleaning()
        end)
    end
end
function module.init(arg1) -- Line 142
    --[[ Upvalues[4]:
        [1]: Celebrations_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: Profile_upvr (readonly)
    ]]
    for _ = 1, math.floor(#Celebrations_upvr:GetChildren() / 3 + 0.5) * 3 + 3 do
        References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
    end
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildAdded:Connect(function(arg1_2) -- Line 155
        --[[ Upvalues[1]:
            [1]: menu_upvr (copied, readonly)
        ]]
        if arg1_2 and arg1_2.Name ~= "grid" then
            local tbl = {}
            for i_5, v_4 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_4.Name == "grid" then
                    table.insert(tbl, v_4)
                end
            end
            if 2 <= #tbl then
                i_5 = #tbl
                tbl[math.random(1, i_5)]:Destroy()
                return
            end
            if #tbl == 1 then
                tbl[1]:Destroy()
            end
        end
    end)
    menu_upvr.pages.customize.main.pages[script.Name].scroll.main.ChildRemoved:Connect(function(arg1_3) -- Line 173
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        if arg1_3 and arg1_3.Name ~= "grid" then
            References_upvr.Main.ui.grid:Clone().Parent = menu_upvr.pages.customize.main.pages[script.Name].scroll.main
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 180
        --[[ Upvalues[4]:
            [1]: Profile_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: menu_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            task.spawn(function() -- Line 182
                --[[ Upvalues[3]:
                    [1]: Profile_upvr (copied, readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: arg1 (copied, readonly)
                ]]
                for _, v_5 in next, Profile_upvr.inventory.Celebrations:GetChildren() do
                    if script.Parent:GetAttribute("toggle") and References_upvr.Main.animations.Celebrations:FindFirstChild(v_5.Name) then
                        arg1:create(v_5)
                        task.wait(0.05)
                    end
                end
            end)
        else
            for _, v_8 in next, menu_upvr.pages.customize.main.pages[script.Name].scroll.main:GetChildren() do
                if v_8 and v_8:IsA("Frame") and v_8.Name ~= "grid" then
                    v_8:Destroy()
                end
            end
        end
    end)
end
return module
ModuleScript cosmetics cosmetics
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:42
-- Luau version 6, Types version 3
-- Time taken: 0.016758 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local module = {
    current = "daily";
    index = {
        daily = 1;
        weekly = 2;
        redeem = 3;
    };
    tabs = {
        debounce = false;
    };
    pages = {};
    cache = {};
    select = function(arg1, arg2) -- Line 34, Named "select"
        --[[ Upvalues[1]:
            [1]: menu_upvr (readonly)
        ]]
        if not arg1.cache.buttonDebounce and arg1.current ~= arg2.Name and arg2.Name ~= "back" then
            arg1.cache.buttonDebounce = true
            if arg1.pages[arg1.current] and arg1.pages[arg1.current].close then
                task.spawn(function() -- Line 39
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1.pages[arg1.current]:close()
                end)
            end
            if arg1.pages[arg2.Name] and arg1.pages[arg2.Name].open then
                task.spawn(function() -- Line 45
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    arg1.pages[arg2.Name]:open()
                end)
            end
            arg1.current = arg2.Name
            menu_upvr.pages.cosmetics.main.pages.UIPageLayout:JumpTo(menu_upvr.pages.cosmetics.main.pages[arg2.Name])
            task.wait(0.1)
            arg1.cache.buttonDebounce = nil
        end
    end;
}
local my_player_upvr = script.Parent:WaitForChild("my player", 100)
local mouse_upvr = Services_upvr.Players.LocalPlayer:GetMouse()
local any_new_result1_upvr = _engine:load("Purchase").new(script)
function module.init(arg1) -- Line 58
    --[[ Upvalues[6]:
        [1]: my_player_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: References_upvr (readonly)
        [5]: mouse_upvr (readonly)
        [6]: any_new_result1_upvr (readonly)
    ]]
    while not my_player_upvr:GetAttribute("loaded") do
        task.wait()
    end
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 67
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 66 start (CF ANALYSIS FAILED)
        if arg1_2.KeyCode == Enum.KeyCode.ButtonR1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not arg1.tabs.debounce then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == #menu_upvr.pages.cosmetics.main.top:GetChildren() - 2 then
                for i, v in next, arg1.index do
                    if v and v == 1 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.cosmetics.main.pages[i])
                        task.delay(0.2, function() -- Line 75
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 93
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [162] #111
            end
            -- KONSTANTWARNING: GOTO [102] #69
        end
        -- KONSTANTERROR: [0] 1. Error Block 66 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [162] 111. Error Block 64 start (CF ANALYSIS FAILED)
        if arg1_2.KeyCode == Enum.KeyCode.ButtonL1 and arg1.index[arg1.current] and script:GetAttribute("toggle") then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == 1 then
                for i_2, v_2 in next, arg1.index do
                    if v_2 and v_2 == #menu_upvr.pages.cosmetics.main.top:GetChildren() - 2 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.cosmetics.main.pages[i_2])
                        task.delay(0.2, function() -- Line 103
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 121
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                -- KONSTANTWARNING: GOTO [317] #216
            end
            -- KONSTANTWARNING: GOTO [258] #175
        end
        -- KONSTANTERROR: [162] 111. Error Block 64 end (CF ANALYSIS FAILED)
    end)
    for _, v_3_upvr in next, menu_upvr.pages.cosmetics.main.top:GetChildren() do
        if v_3_upvr and v_3_upvr:IsA("Frame") then
            local button = v_3_upvr:FindFirstChild("button")
            if not button then
                button = v_3_upvr:FindFirstChild("back")
            end
            local image_upvr = v_3_upvr:FindFirstChild("image", true)
            local label_upvr = v_3_upvr:FindFirstChild("label", true)
            button.MouseEnter:Connect(function() -- Line 135
                --[[ Upvalues[5]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_3_upvr (readonly)
                    [4]: image_upvr (readonly)
                    [5]: label_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 1;
                    }):Play()
                    if image_upvr then
                        Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                        return
                    end
                    if label_upvr then
                        Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                    end
                end
            end)
            button.MouseLeave:Connect(function() -- Line 150
                --[[ Upvalues[4]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_3_upvr (readonly)
                    [3]: image_upvr (readonly)
                    [4]: label_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                if image_upvr then
                    Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(35, 39, 50);
                        Position = UDim2.new(0.5, 0, 0.5, 0);
                    }):Play()
                elseif label_upvr then
                    Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = Color3.fromRGB(35, 39, 50);
                        Position = UDim2.new(0.5, 0, 0.5, 0);
                    }):Play()
                end
            end)
            button.MouseButton1Click:Connect(function() -- Line 160
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: v_3_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    arg1:select(v_3_upvr)
                end
            end)
        end
    end
    local tbl_upvr = {
        edit = false;
        hovering = false;
        enabled = false;
        lastMousePosition = nil;
    }
    local var46_upvw
    label_upvr = menu_upvr.purchase
    image_upvr = label_upvr.main
    image_upvr.viewport.viewport.WorldModel.ChildAdded:Connect(function(arg1_3) -- Line 182
        --[[ Upvalues[2]:
            [1]: var46_upvw (read and write)
            [2]: References_upvr (copied, readonly)
        ]]
        if arg1_3 and arg1_3.Name == "previewer" then
            var46_upvw = arg1_3
            var46_upvw:WaitForChild("Humanoid", 100):WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Player.Play):Play()
        end
    end)
    label_upvr = menu_upvr
    image_upvr = label_upvr.purchase
    local Camera = Instance.new("Camera", image_upvr.main.viewport)
    Camera.FieldOfView = 30
    label_upvr = workspace.game.rigs.previewer
    image_upvr = label_upvr.HumanoidRootPart
    image_upvr = CFrame.new
    label_upvr = 2.25
    image_upvr = image_upvr(label_upvr, -0.75, -11)
    image_upvr = math.pi
    label_upvr = 0.2
    Camera.CFrame = image_upvr.CFrame * image_upvr * CFrame.Angles(image_upvr, label_upvr, (-math.pi))
    label_upvr = menu_upvr
    image_upvr = label_upvr.purchase
    image_upvr.main.viewport.viewport.CurrentCamera = Camera
    label_upvr = menu_upvr.purchase
    image_upvr = label_upvr.main
    image_upvr.viewport.button.MouseEnter:Connect(function() -- Line 197
        --[[ Upvalues[3]:
            [1]: var46_upvw (read and write)
            [2]: tbl_upvr (readonly)
            [3]: mouse_upvr (copied, readonly)
        ]]
        if var46_upvw then
            tbl_upvr.hovering = true
            mouse_upvr.Icon = "rbxassetid://15820803017"
        end
    end)
    label_upvr = menu_upvr.purchase
    image_upvr = label_upvr.main
    image_upvr.viewport.button.MouseLeave:Connect(function() -- Line 204
        --[[ Upvalues[2]:
            [1]: tbl_upvr (readonly)
            [2]: mouse_upvr (copied, readonly)
        ]]
        tbl_upvr.hovering = false
        mouse_upvr.Icon = ""
    end)
    label_upvr = menu_upvr.purchase
    image_upvr = label_upvr.main
    image_upvr.viewport.button.MouseButton1Down:Connect(function() -- Line 209
        --[[ Upvalues[4]:
            [1]: var46_upvw (read and write)
            [2]: menu_upvr (copied, readonly)
            [3]: tbl_upvr (readonly)
            [4]: mouse_upvr (copied, readonly)
        ]]
        if var46_upvw and menu_upvr.purchase.main.info.category.Text ~= "CELEBRATIONS" then
            tbl_upvr.enabled = true
            tbl_upvr.lastMousePosition = mouse_upvr.X
        end
    end)
    Services_upvr.UserInputService.InputEnded:Connect(function(arg1_4, arg2) -- Line 216
        --[[ Upvalues[2]:
            [1]: tbl_upvr (readonly)
            [2]: mouse_upvr (copied, readonly)
        ]]
        if arg1_4.UserInputType == Enum.UserInputType.MouseButton1 or arg1_4.UserInputType == Enum.UserInputType.Touch and tbl_upvr.enabled then
            if not tbl_upvr.hovering then
                mouse_upvr.Icon = ""
            end
            tbl_upvr.enabled = false
            tbl_upvr.lastMousePosition = nil
        end
    end)
    Services_upvr.UserInputService.InputChanged:Connect(function(arg1_5, arg2) -- Line 227
        --[[ Upvalues[3]:
            [1]: menu_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: var46_upvw (read and write)
        ]]
        if arg1_5.KeyCode == Enum.KeyCode.Thumbstick2 and menu_upvr.purchase.Visible then
            if 0.7 <= arg1_5.Position.X then
                Services_upvr.TweenService:Create(var46_upvw.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                    CFrame = var46_upvw.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, 0.5, 0);
                }):Play()
                return
            end
            if arg1_5.Position.X <= -0.7 then
                Services_upvr.TweenService:Create(var46_upvw.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                    CFrame = var46_upvw.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, -0.5, 0);
                }):Play()
            end
        end
    end)
    mouse_upvr.Move:Connect(function() -- Line 237
        --[[ Upvalues[5]:
            [1]: tbl_upvr (readonly)
            [2]: mouse_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: var46_upvw (read and write)
        ]]
        if tbl_upvr.enabled then
            Services_upvr.TweenService:Create(var46_upvw.PrimaryPart, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                CFrame = var46_upvw.PrimaryPart.CFrame * CFrame.fromEulerAnglesXYZ(0, math.rad((workspace.CurrentCamera:WorldToViewportPoint(mouse_upvr.Hit.Position).X - tbl_upvr.lastMousePosition) * 2 / menu_upvr.pages.cosmetics.main.UIScale.Scale), 0);
            }):Play()
            tbl_upvr.lastMousePosition = mouse_upvr.X
        end
    end)
    for _, v_4 in next, script:GetChildren() do
        if v_4 and v_4:IsA("ModuleScript") then
            local v_4_2 = require(v_4)
            arg1.pages[v_4.Name] = v_4_2
            v_4_2:init(any_new_result1_upvr)
        end
    end
end
return module
ModuleScript daily daily
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:44
-- Luau version 6, Types version 3
-- Time taken: 0.049783 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local SOME_upvr = References_upvr.Main.cycle:WaitForChild(script.Name, 100)
local module = {
    activeMaids = {};
}
local function getEquippedGlove_upvr() -- Line 28, Named "getEquippedGlove"
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Profile_upvr (readonly)
    ]]
    local gloves = References_upvr.Main:FindFirstChild("gloves")
    if not gloves then
        return nil
    end
    local Current = Profile_upvr.inventory:FindFirstChild("Current")
    if not Current then
        return nil
    end
    local Gloves_2 = Current:FindFirstChild("Gloves")
    if not Gloves_2 then
        return nil
    end
    local Value = Gloves_2.Value
    if Value ~= "" and gloves:FindFirstChild(Value) then
        return gloves[Value]
    end
    local DefaultValue = Gloves_2:FindFirstChild("DefaultValue")
    if DefaultValue and DefaultValue.Value ~= "" and gloves:FindFirstChild(DefaultValue.Value) then
        return gloves[DefaultValue.Value]
    end
    local Gloves = Profile_upvr.inventory:FindFirstChild("Gloves")
    if Gloves then
        for _, v in ipairs(Gloves:GetChildren()) do
            if v:IsA("BoolValue") and v.Value and gloves:FindFirstChild(v.Name) then
                return gloves[v.Name]
            end
        end
    end
    return gloves:GetChildren()[1]
end
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_new_result1_3_upvr = _engine:load("Janitor").new()
local any_load_result1_upvr_2 = _engine:load("FormatNumber", "utils")
local LocalPlayer_upvr = References_upvr.LocalPlayer
local any_load_result1_upvr = _engine:load("Viewport")
local Services_upvr = _engine.Services
function module.create(arg1, arg2, arg3, arg4) -- Line 67
    --[[ Upvalues[9]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: any_new_result1_3_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: Profile_upvr (readonly)
        [6]: any_load_result1_upvr (readonly)
        [7]: getEquippedGlove_upvr (readonly)
        [8]: References_upvr (readonly)
        [9]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 206 start (CF ANALYSIS FAILED)
    local any_new_result1 = any_load_result1_upvr_3.new()
    table.insert(arg1.activeMaids, any_new_result1)
    arg3.info.item.Text = string.upper(arg4.Name)
    any_new_result1_3_upvr:clean(arg3.viewport:GetChildren(), "UIGradient")
    if arg4.Parent.Name == "Ball" then
        arg3.info.info.category.Text = "BALL HOLDS"
    else
        arg3.info.info.category.Text = string.upper(arg4.Parent.Name)
    end
    if arg4:FindFirstChild("Price") and 0 < arg4.Price.Value then
        arg3.info.info.price.price.Text = any_load_result1_upvr_2.FormatLong(arg4.Price.Value)
    else
        arg3.info.info.price.price.Text = "FREE"
    end
    if arg4.Parent.Name == "accessories" or arg4.Parent.Name == "Ball" or arg4.Parent.Name == "Celebrations" then
        local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 87
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
        end)
        if pcall_result1_2 and pcall_result2_2 then
            for _, v_2 in next, pcall_result2_2:GetChildren() do
                if v_2:IsA("Accessory") and not v_2:FindFirstChildWhichIsA("WrapLayer", true) then
                    v_2.Parent = arg2
                elseif v_2:IsA("BodyColors") then
                    v_2.Parent = arg2
                elseif v_2:IsA("Decal") and v_2.Name == "face" then
                    arg2.Head.face.Texture = v_2.Texture
                end
            end
        end
        for _, v_3 in next, arg2.Gloves:GetChildren() do
            for i_4, v_4 in next, v_3:GetChildren() do
                v_4.Transparency = 1
            end
        end
        arg2.Accessories:ClearAllChildren()
        arg2.RightHand.Transparency = 0
        arg2.LeftHand.Transparency = 0
    end
    local function addAccessory(arg1_4) -- Line 114
        --[[ Upvalues[1]:
            [1]: arg2 (readonly)
        ]]
        if arg1_4:FindFirstChild("Part1") and arg1_4:FindFirstChild("Weld") and arg2:FindFirstChild(arg1_4.Part1.Value) then
            local clone = arg1_4:Clone()
            clone.Parent = arg2.Accessories
            clone.Weld.Part1 = arg2:WaitForChild(arg1_4.Part1.Value, 100)
            for _, v_5 in next, arg2.Gloves:GetChildren() do
                for _, v_6 in next, v_5:GetChildren() do
                    if v_6.Transparency == 0 and string.find(clone.Name, "Glove") then
                        clone.Transparency = 1
                    elseif v_6.Transparency == 1 and string.find(clone.Name, "Glove") then
                        arg2.RightHand.Transparency = 1
                        arg2.LeftHand.Transparency = 1
                    elseif v_6.Transparency == 1 and not arg2.Accessories:FindFirstChild("RightGlove") then
                        arg2.RightHand.Transparency = 0
                        arg2.LeftHand.Transparency = 0
                    end
                end
            end
        end
    end
    if arg4.Parent.Name == "accessories" then
        if Profile_upvr.inventory.Accessories:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        if arg4:IsA("Model") then
            for i_7, v_7 in next, arg4:GetChildren() do
                if v_7 then
                    v_3 = v_7.Parent
                    if v_3 then
                        v_3 = addAccessory
                        v_3(v_7)
                    end
                end
            end
        else
            addAccessory(arg4)
        end
        if arg4:FindFirstChild("AccessoryType") then
            i_7 = 0
            v_7 = -5.5
            i_7 = math.pi
            v_7 = 0.5
            v_3 = (-math.pi)
            local var208 = CFrame.new(3, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            if arg4.AccessoryType.Value == "Head" then
                i_7 = 1.5
                v_7 = -3.5
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var208 = CFrame.new(1.82, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "LowerArm" then
                i_7 = -1
                v_7 = -4
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var208 = CFrame.new(3.5, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "Hand" then
                i_7 = -1
                v_7 = -3
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var208 = CFrame.new(3, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "LowerLeg" then
                i_7 = -2
                v_7 = -4
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var208 = CFrame.new(2.2, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            end
            local tbl_13 = {}
            i_7 = arg3.viewport
            tbl_13._viewport = i_7
            tbl_13._model = arg2
            tbl_13._cameraOffset = var208
            i_7 = 30
            tbl_13._cameraFOV = i_7
            any_load_result1_upvr.new(tbl_13)
        else
            local tbl_8 = {
                _viewport = arg3.viewport;
            }
            tbl_8._model = arg2
            tbl_8._cameraOffset = CFrame.new(-3, 0, -5.5) * CFrame.Angles(math.pi, -0.5, (-math.pi))
            tbl_8._cameraFOV = 30
            any_load_result1_upvr.new(tbl_8)
        end
        -- KONSTANTWARNING: GOTO [941] #602
    end
    -- KONSTANTERROR: [0] 1. Error Block 206 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [445] 295. Error Block 207 start (CF ANALYSIS FAILED)
    if arg4.Parent.Name == "boots" then
        if Profile_upvr.inventory.Boots:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        local tbl_2 = {
            _viewport = arg3.viewport;
        }
        tbl_2._model = arg4
        tbl_2._rotate = "Dynamic"
        tbl_2._viewportDistance = 1
        tbl_2._cameraFOV = 60
        any_load_result1_upvr.new(tbl_2)
    elseif arg4.Parent.Name == "gloves" then
        if Profile_upvr.inventory.Gloves:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        local tbl_4 = {
            _viewport = arg3.viewport;
        }
        tbl_4._model = arg4
        tbl_4._rotate = "Dynamic"
        tbl_4._viewportDistance = 1
        tbl_4._cameraFOV = 60
        any_load_result1_upvr.new(tbl_4)
    else
        tbl_4 = arg4.Parent
        local var213
        if var213.Name == "Ball" then
            var213 = Profile_upvr.inventory
            if var213["Ball Holds"]:FindFirstChild(arg4.Name) then
                var213 = arg3.info.info.price
                var213 = false
                var213.icon.Visible = var213
                var213 = arg3.info.info.price
                var213 = false
                var213.price.Visible = var213
                var213 = arg3.info.info.price
                var213 = true
                var213.tick.Visible = var213
                var213 = arg3.info.info.price
                var213 = true
                var213.owned.Visible = var213
            end
            local getEquippedGlove_result1 = getEquippedGlove_upvr()
            var213 = getEquippedGlove_result1
            if var213 then
                var213 = getEquippedGlove_result1:FindFirstChild("GloveType")
                if var213 then
                    var213 = getEquippedGlove_result1.GloveType.Value
                    local var215 = var213
                end
            end
            for _, v_12 in next, arg2.Accessories:GetChildren() do
                if v_12 then
                    i_4 = "Glove"
                    if string.find(v_12.Name, i_4) then
                        v_12.Transparency = 1
                    end
                end
            end
            arg2.RightHand.Transparency = 1
            arg2.LeftHand.Transparency = 1
            for _, v_13 in next, arg2.Gloves:GetChildren() do
                if var215 and v_13 and v_13.Name == var215 then
                    for _, v_14 in next, v_13:GetChildren() do
                        v_14.Transparency = 0
                        local class_SurfaceAppearance_2 = v_14:FindFirstChildWhichIsA("SurfaceAppearance")
                        if class_SurfaceAppearance_2 then
                            class_SurfaceAppearance_2:Destroy()
                        end
                        if getEquippedGlove_result1 and getEquippedGlove_result1:FindFirstChild("SurfaceAppearance") then
                            getEquippedGlove_result1.SurfaceAppearance:Clone().Parent = v_14
                        end
                    end
                else
                    for _, v_15 in next, v_13:GetChildren() do
                        v_15.Transparency = 1
                    end
                end
            end
            local tbl_10 = {
                _viewport = arg3.viewport;
            }
            tbl_10._model = arg2
            tbl_10._cameraOffset = CFrame.new(2.25, 0.2, -7.5) * CFrame.Angles(math.pi, 0.3, (-math.pi))
            tbl_10._cameraFOV = 30
            tbl_10._ball = true
            tbl_10._animationData = {
                _id = arg4.AnimationId;
                _looped = true;
            }
            any_load_result1_upvr.new(tbl_10)
        else
            var215 = arg4.Parent
            if var215.Name == "Celebrations" then
                var215 = Profile_upvr.inventory
                if var215.Celebrations:FindFirstChild(arg4.Name) then
                    var215 = arg3.info.info.price
                    var215 = false
                    var215.icon.Visible = var215
                    var215 = arg3.info.info.price
                    var215 = false
                    var215.price.Visible = var215
                    var215 = arg3.info.info.price
                    var215 = true
                    var215.tick.Visible = var215
                    var215 = arg3.info.info.price
                    var215 = true
                    var215.owned.Visible = var215
                end
                var215 = any_load_result1_upvr
                var215 = {}
                local var227 = var215
                var227._viewport = arg3.viewport
                var227._model = arg2
                var227._cameraOffset = CFrame.new(2.25, -0.4, -12) * CFrame.Angles(math.pi, 0.2, (-math.pi))
                var227._cameraFOV = 7
                var227._animationData = {
                    _id = arg4.AnimationId;
                    _looped = true;
                }
                var227._return = "Camera"
                var227 = table.unpack(var215.new(var227))
                local unpacked_value_1_upvr, unpacked_value_2_upvr_2 = table.unpack(var215.new(var227))
                any_new_result1.renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 284
                    --[[ Upvalues[2]:
                        [1]: unpacked_value_1_upvr (readonly)
                        [2]: unpacked_value_2_upvr_2 (readonly)
                    ]]
                    if not unpacked_value_1_upvr or not unpacked_value_2_upvr_2 then
                    else
                        local position_2 = workspace.game.cutscenes.celebrations.home.right.position
                        local corner = workspace.game.cutscenes.celebrations.home.right.corner
                        if not position_2 or not corner then return end
                        if not unpacked_value_2_upvr_2.PrimaryPart or not unpacked_value_2_upvr_2.UpperTorso then return end
                        unpacked_value_1_upvr.CFrame = CFrame.lookAt((unpacked_value_2_upvr_2.PrimaryPart.CFrame * position_2.CFrame:ToObjectSpace(corner.CFrame)).Position, unpacked_value_2_upvr_2.UpperTorso.CFrame.Position)
                    end
                end)
            end
        end
    end
    unpacked_value_1_upvr = arg4.Parent
    local function INLINED_3() -- Internal function, doesn't exist in bytecode
        unpacked_value_1_upvr = arg4.Parent
        return unpacked_value_1_upvr.Name == "Ball"
    end
    local function INLINED_4() -- Internal function, doesn't exist in bytecode
        unpacked_value_1_upvr = arg4.Parent
        return unpacked_value_1_upvr.Name == "Celebrations"
    end
    if unpacked_value_1_upvr.Name == "accessories" or INLINED_3() or INLINED_4() then
        unpacked_value_1_upvr = arg2:GetChildren()
        local children_6, NONE_2 = arg2:GetChildren()
        for _, v_8 in next, children_6, NONE_2 do
            if v_8 and (v_8:IsA("Accessory") or v_8:IsA("BodyColors")) then
                v_8:Destroy()
            end
        end
    end
    NONE_2 = arg1.class
    children_6 = NONE_2.event
    function NONE_2(arg1_5) -- Line 313
        --[[ Upvalues[2]:
            [1]: arg4 (readonly)
            [2]: arg3 (readonly)
        ]]
        if arg1_5 and arg1_5 == arg4 then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
    end
    any_new_result1.onEvent = children_6.Event:Connect(NONE_2)
    children_6 = arg3.button
    function NONE_2() -- Line 322
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: arg3 (readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(arg3.hover, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0.7;
            }):Play()
        end
    end
    any_new_result1.mouseEnter = children_6.MouseEnter:Connect(NONE_2)
    children_6 = arg3.button
    function NONE_2() -- Line 331
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: arg3 (readonly)
        ]]
        Services_upvr.TweenService:Create(arg3.hover, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundTransparency = 1;
        }):Play()
    end
    any_new_result1.mouseLeave = children_6.MouseLeave:Connect(NONE_2)
    children_6 = arg3.button
    function NONE_2() -- Line 335
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg4 (readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Click:Play()
            if arg1.class and arg4.Parent.Name == "accessories" then
                arg1.class:prompt(arg4, "Accessories")
                return
            end
            if arg1.class and arg4.Parent.Name == "boots" then
                arg1.class:prompt(arg4, "Boots")
                return
            end
            if arg1.class and arg4.Parent.Name == "gloves" then
                arg1.class:prompt(arg4, "Gloves")
                return
            end
            if arg1.class and arg4.Parent.Name == "Ball" then
                arg1.class:prompt(arg4, "Ball Holds")
                return
            end
            if arg1.class and arg4.Parent.Name == "Celebrations" then
                arg1.class:prompt(arg4, "Celebrations")
            end
        end
    end
    any_new_result1.mouseClick = children_6.MouseButton1Click:Connect(NONE_2)
    -- KONSTANTERROR: [445] 295. Error Block 207 end (CF ANALYSIS FAILED)
end
function module.update(arg1) -- Line 356
    --[[ Upvalues[2]:
        [1]: SOME_upvr (readonly)
        [2]: menu_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local tbl_5 = {}
    local var245 = "small"
    tbl_5[1] = "large"
    tbl_5[2] = var245
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [104] 68. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [104] 68. Error Block 12 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 20 start (CF ANALYSIS FAILED)
    if var245 and var245 == "large" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.6]
        if nil then
            -- KONSTANTWARNING: GOTO [104] #68
        end
    elseif var245 and var245 == "small" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.7]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.8]
        for _, _ in nil do
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.11]
            if nil then
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        end
    end
    -- KONSTANTERROR: [10] 8. Error Block 20 end (CF ANALYSIS FAILED)
end
function module.init(arg1, arg2) -- Line 378
    --[[ Upvalues[2]:
        [1]: SOME_upvr (readonly)
        [2]: menu_upvr (readonly)
    ]]
    arg1.class = arg2
    arg1:update()
    SOME_upvr.large.Changed:Connect(function() -- Line 384
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        for i_9, v_9 in next, arg1.activeMaids do
            if v_9 then
                v_9:DoCleaning()
                table.remove(arg1.activeMaids, i_9)
            end
        end
        arg1:update()
    end)
    for _, v_10 in next, SOME_upvr.small:GetChildren() do
        v_10.Changed:Connect(function() -- Line 396
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            for i_11, v_11 in next, arg1.activeMaids do
                if v_11 then
                    v_11:DoCleaning()
                    table.remove(arg1.activeMaids, i_11)
                end
            end
            arg1:update()
        end)
    end
    menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = SOME_upvr.time.Value
    SOME_upvr.time.Changed:Connect(function() -- Line 411
        --[[ Upvalues[2]:
            [1]: menu_upvr (copied, readonly)
            [2]: SOME_upvr (copied, readonly)
        ]]
        menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = SOME_upvr.time.Value
    end)
    return true
end
return module
ModuleScript weekly weekly
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:46
-- Luau version 6, Types version 3
-- Time taken: 0.058693 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local SOME_upvr = References_upvr.Main.cycle:WaitForChild(script.Name, 100)
local module = {
    activeMaids = {};
}
local function getEquippedGlove_upvr() -- Line 28, Named "getEquippedGlove"
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Profile_upvr (readonly)
    ]]
    local gloves = References_upvr.Main:FindFirstChild("gloves")
    if not gloves then
        return nil
    end
    local Current = Profile_upvr.inventory:FindFirstChild("Current")
    if not Current then
        return nil
    end
    local Gloves_2 = Current:FindFirstChild("Gloves")
    if not Gloves_2 then
        return nil
    end
    local Value = Gloves_2.Value
    if Value ~= "" and gloves:FindFirstChild(Value) then
        return gloves[Value]
    end
    local DefaultValue = Gloves_2:FindFirstChild("DefaultValue")
    if DefaultValue and DefaultValue.Value ~= "" and gloves:FindFirstChild(DefaultValue.Value) then
        return gloves[DefaultValue.Value]
    end
    local Gloves = Profile_upvr.inventory:FindFirstChild("Gloves")
    if Gloves then
        for _, v in ipairs(Gloves:GetChildren()) do
            if v:IsA("BoolValue") and v.Value and gloves:FindFirstChild(v.Name) then
                return gloves[v.Name]
            end
        end
    end
    return gloves:GetChildren()[1]
end
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_new_result1_2_upvr = _engine:load("Janitor").new()
local any_load_result1_upvr_2 = _engine:load("FormatNumber", "utils")
local LocalPlayer_upvr = References_upvr.LocalPlayer
local any_load_result1_upvr = _engine:load("Viewport")
local Services_upvr = _engine.Services
function module.create(arg1, arg2, arg3, arg4) -- Line 67
    --[[ Upvalues[9]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: any_new_result1_2_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: Profile_upvr (readonly)
        [6]: any_load_result1_upvr (readonly)
        [7]: getEquippedGlove_upvr (readonly)
        [8]: References_upvr (readonly)
        [9]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 206 start (CF ANALYSIS FAILED)
    local any_new_result1_3 = any_load_result1_upvr_3.new()
    table.insert(arg1.activeMaids, any_new_result1_3)
    arg3.info.item.Text = string.upper(arg4.Name)
    any_new_result1_2_upvr:clean(arg3.viewport:GetChildren(), "UIGradient")
    if arg4.Parent.Name == "Ball" then
        arg3.info.info.category.Text = "BALL HOLDS"
    else
        arg3.info.info.category.Text = string.upper(arg4.Parent.Name)
    end
    if arg4:FindFirstChild("Price") and 0 < arg4.Price.Value then
        arg3.info.info.price.price.Text = any_load_result1_upvr_2.FormatLong(arg4.Price.Value)
    else
        arg3.info.info.price.price.Text = "FREE"
    end
    if arg4.Parent.Name == "accessories" or arg4.Parent.Name == "Ball" or arg4.Parent.Name == "Celebrations" then
        local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 87
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
        end)
        if pcall_result1_2 and pcall_result2_2 then
            for _, v_2 in next, pcall_result2_2:GetChildren() do
                if v_2:IsA("Accessory") and not v_2:FindFirstChildWhichIsA("WrapLayer", true) then
                    v_2.Parent = arg2
                elseif v_2:IsA("BodyColors") then
                    v_2.Parent = arg2
                elseif v_2:IsA("Decal") and v_2.Name == "face" then
                    arg2.Head.face.Texture = v_2.Texture
                end
            end
        end
        for _, v_3 in next, arg2.Gloves:GetChildren() do
            for i_4, v_4 in next, v_3:GetChildren() do
                v_4.Transparency = 1
            end
        end
        arg2.Accessories:ClearAllChildren()
        arg2.RightHand.Transparency = 0
        arg2.LeftHand.Transparency = 0
    end
    local function addAccessory(arg1_4) -- Line 114
        --[[ Upvalues[1]:
            [1]: arg2 (readonly)
        ]]
        if arg1_4:FindFirstChild("Part1") and arg1_4:FindFirstChild("Weld") and arg2:FindFirstChild(arg1_4.Part1.Value) then
            local clone_2 = arg1_4:Clone()
            clone_2.Parent = arg2.Accessories
            clone_2.Weld.Part1 = arg2:WaitForChild(arg1_4.Part1.Value, 100)
            for _, v_5 in next, arg2.Gloves:GetChildren() do
                for _, v_6 in next, v_5:GetChildren() do
                    if v_6.Transparency == 0 and string.find(clone_2.Name, "Glove") then
                        clone_2.Transparency = 1
                    elseif v_6.Transparency == 1 and string.find(clone_2.Name, "Glove") then
                        arg2.RightHand.Transparency = 1
                        arg2.LeftHand.Transparency = 1
                    elseif v_6.Transparency == 1 and not arg2.Accessories:FindFirstChild("RightGlove") then
                        arg2.RightHand.Transparency = 0
                        arg2.LeftHand.Transparency = 0
                    end
                end
            end
        end
    end
    if arg4.Parent.Name == "accessories" then
        if Profile_upvr.inventory.Accessories:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        if arg4:IsA("Model") then
            for i_7, v_7 in next, arg4:GetChildren() do
                if v_7 then
                    v_3 = v_7.Parent
                    if v_3 then
                        v_3 = addAccessory
                        v_3(v_7)
                    end
                end
            end
        else
            addAccessory(arg4)
        end
        if arg4:FindFirstChild("AccessoryType") then
            i_7 = 0
            v_7 = -5.5
            i_7 = math.pi
            v_7 = 0.5
            v_3 = (-math.pi)
            local var205 = CFrame.new(3, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            if arg4.AccessoryType.Value == "Head" then
                i_7 = 1.5
                v_7 = -3.5
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var205 = CFrame.new(1.82, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "LowerArm" then
                i_7 = -1
                v_7 = -4
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var205 = CFrame.new(3.5, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "Hand" then
                i_7 = -1
                v_7 = -3
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var205 = CFrame.new(3, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            elseif arg4.AccessoryType.Value == "LowerLeg" then
                i_7 = -2
                v_7 = -4
                i_7 = math.pi
                v_7 = 0.5
                v_3 = (-math.pi)
                var205 = CFrame.new(2.2, i_7, v_7) * CFrame.Angles(i_7, v_7, v_3)
            end
            local tbl_9 = {}
            i_7 = arg3.viewport
            tbl_9._viewport = i_7
            tbl_9._model = arg2
            tbl_9._cameraOffset = var205
            i_7 = 30
            tbl_9._cameraFOV = i_7
            any_load_result1_upvr.new(tbl_9)
        else
            local tbl_5 = {
                _viewport = arg3.viewport;
            }
            tbl_5._model = arg2
            tbl_5._cameraOffset = CFrame.new(-3, 0, -5.5) * CFrame.Angles(math.pi, -0.5, (-math.pi))
            tbl_5._cameraFOV = 30
            any_load_result1_upvr.new(tbl_5)
        end
        -- KONSTANTWARNING: GOTO [941] #602
    end
    -- KONSTANTERROR: [0] 1. Error Block 206 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [445] 295. Error Block 207 start (CF ANALYSIS FAILED)
    if arg4.Parent.Name == "boots" then
        if Profile_upvr.inventory.Boots:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        local tbl_14 = {
            _viewport = arg3.viewport;
        }
        tbl_14._model = arg4
        tbl_14._rotate = "Dynamic"
        tbl_14._viewportDistance = 1
        tbl_14._cameraFOV = 60
        any_load_result1_upvr.new(tbl_14)
    elseif arg4.Parent.Name == "gloves" then
        if Profile_upvr.inventory.Gloves:FindFirstChild(arg4.Name) then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
        local tbl_13 = {
            _viewport = arg3.viewport;
        }
        tbl_13._model = arg4
        tbl_13._rotate = "Dynamic"
        tbl_13._viewportDistance = 1
        tbl_13._cameraFOV = 60
        any_load_result1_upvr.new(tbl_13)
    else
        tbl_13 = arg4.Parent
        local var210
        if var210.Name == "Ball" then
            var210 = Profile_upvr.inventory
            if var210["Ball Holds"]:FindFirstChild(arg4.Name) then
                var210 = arg3.info.info.price
                var210 = false
                var210.icon.Visible = var210
                var210 = arg3.info.info.price
                var210 = false
                var210.price.Visible = var210
                var210 = arg3.info.info.price
                var210 = true
                var210.tick.Visible = var210
                var210 = arg3.info.info.price
                var210 = true
                var210.owned.Visible = var210
            end
            local getEquippedGlove_result1 = getEquippedGlove_upvr()
            var210 = getEquippedGlove_result1
            if var210 then
                var210 = getEquippedGlove_result1:FindFirstChild("GloveType")
                if var210 then
                    var210 = getEquippedGlove_result1.GloveType.Value
                    local var212 = var210
                end
            end
            for _, v_12 in next, arg2.Accessories:GetChildren() do
                if v_12 then
                    i_4 = "Glove"
                    if string.find(v_12.Name, i_4) then
                        v_12.Transparency = 1
                    end
                end
            end
            arg2.RightHand.Transparency = 1
            arg2.LeftHand.Transparency = 1
            for _, v_13 in next, arg2.Gloves:GetChildren() do
                if var212 and v_13 and v_13.Name == var212 then
                    for _, v_14 in next, v_13:GetChildren() do
                        v_14.Transparency = 0
                        local class_SurfaceAppearance_2 = v_14:FindFirstChildWhichIsA("SurfaceAppearance")
                        if class_SurfaceAppearance_2 then
                            class_SurfaceAppearance_2:Destroy()
                        end
                        if getEquippedGlove_result1 and getEquippedGlove_result1:FindFirstChild("SurfaceAppearance") then
                            getEquippedGlove_result1.SurfaceAppearance:Clone().Parent = v_14
                        end
                    end
                else
                    for _, v_15 in next, v_13:GetChildren() do
                        v_15.Transparency = 1
                    end
                end
            end
            local tbl_11 = {
                _viewport = arg3.viewport;
            }
            tbl_11._model = arg2
            tbl_11._cameraOffset = CFrame.new(2.25, 0.2, -7.5) * CFrame.Angles(math.pi, 0.3, (-math.pi))
            tbl_11._cameraFOV = 30
            tbl_11._ball = true
            tbl_11._animationData = {
                _id = arg4.AnimationId;
                _looped = true;
            }
            any_load_result1_upvr.new(tbl_11)
        else
            var212 = arg4.Parent
            if var212.Name == "Celebrations" then
                var212 = Profile_upvr.inventory
                if var212.Celebrations:FindFirstChild(arg4.Name) then
                    var212 = arg3.info.info.price
                    var212 = false
                    var212.icon.Visible = var212
                    var212 = arg3.info.info.price
                    var212 = false
                    var212.price.Visible = var212
                    var212 = arg3.info.info.price
                    var212 = true
                    var212.tick.Visible = var212
                    var212 = arg3.info.info.price
                    var212 = true
                    var212.owned.Visible = var212
                end
                var212 = any_load_result1_upvr
                var212 = {}
                local var224 = var212
                var224._viewport = arg3.viewport
                var224._model = arg2
                var224._cameraOffset = CFrame.new(2.25, -0.4, -12) * CFrame.Angles(math.pi, 0.2, (-math.pi))
                var224._cameraFOV = 7
                var224._animationData = {
                    _id = arg4.AnimationId;
                    _looped = true;
                }
                var224._return = "Camera"
                var224 = table.unpack(var212.new(var224))
                local unpacked_value_1_upvr, unpacked_value_2_upvr = table.unpack(var212.new(var224))
                any_new_result1_3.renderStepped = _G._services.RunService.RenderStepped:Connect(function() -- Line 284
                    --[[ Upvalues[2]:
                        [1]: unpacked_value_1_upvr (readonly)
                        [2]: unpacked_value_2_upvr (readonly)
                    ]]
                    unpacked_value_1_upvr.CFrame = CFrame.lookAt((unpacked_value_2_upvr.PrimaryPart.CFrame * workspace.game.cutscenes.celebrations.home.right.position.CFrame:ToObjectSpace(workspace.game.cutscenes.celebrations.home.right.corner.CFrame)).Position, unpacked_value_2_upvr.UpperTorso.CFrame.Position)
                end)
            end
        end
    end
    unpacked_value_1_upvr = arg4.Parent
    local function INLINED_3() -- Internal function, doesn't exist in bytecode
        unpacked_value_1_upvr = arg4.Parent
        return unpacked_value_1_upvr.Name == "Ball"
    end
    local function INLINED_4() -- Internal function, doesn't exist in bytecode
        unpacked_value_1_upvr = arg4.Parent
        return unpacked_value_1_upvr.Name == "Celebrations"
    end
    if unpacked_value_1_upvr.Name == "accessories" or INLINED_3() or INLINED_4() then
        unpacked_value_1_upvr = arg2:GetChildren()
        local children_11, NONE_3 = arg2:GetChildren()
        for _, v_8 in next, children_11, NONE_3 do
            if v_8 and (v_8:IsA("Accessory") or v_8:IsA("BodyColors")) then
                v_8:Destroy()
            end
        end
    end
    NONE_3 = arg1.class
    children_11 = NONE_3.event
    function NONE_3(arg1_5) -- Line 298
        --[[ Upvalues[2]:
            [1]: arg4 (readonly)
            [2]: arg3 (readonly)
        ]]
        if arg1_5 and arg1_5 == arg4 then
            arg3.info.info.price.icon.Visible = false
            arg3.info.info.price.price.Visible = false
            arg3.info.info.price.tick.Visible = true
            arg3.info.info.price.owned.Visible = true
        end
    end
    any_new_result1_3.onEvent = children_11.Event:Connect(NONE_3)
    children_11 = arg3.button
    function NONE_3() -- Line 307
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: arg3 (readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(arg3.hover, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0.7;
            }):Play()
        end
    end
    any_new_result1_3.mouseEnter = children_11.MouseEnter:Connect(NONE_3)
    children_11 = arg3.button
    function NONE_3() -- Line 316
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: arg3 (readonly)
        ]]
        Services_upvr.TweenService:Create(arg3.hover, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundTransparency = 1;
        }):Play()
    end
    any_new_result1_3.mouseLeave = children_11.MouseLeave:Connect(NONE_3)
    children_11 = arg3.button
    function NONE_3() -- Line 320
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: arg4 (readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Click:Play()
            if arg1.class and arg4.Parent.Name == "accessories" then
                arg1.class:prompt(arg4, "Accessories")
                return
            end
            if arg1.class and arg4.Parent.Name == "boots" then
                arg1.class:prompt(arg4, "Boots")
                return
            end
            if arg1.class and arg4.Parent.Name == "gloves" then
                arg1.class:prompt(arg4, "Gloves")
                return
            end
            if arg1.class and arg4.Parent.Name == "Ball" then
                arg1.class:prompt(arg4, "Ball Holds")
                return
            end
            if arg1.class and arg4.Parent.Name == "Celebrations" then
                arg1.class:prompt(arg4, "Celebrations")
            end
        end
    end
    any_new_result1_3.mouseClick = children_11.MouseButton1Click:Connect(NONE_3)
    -- KONSTANTERROR: [445] 295. Error Block 207 end (CF ANALYSIS FAILED)
end
local function update(arg1) -- Line 341
    --[[ Upvalues[2]:
        [1]: SOME_upvr (readonly)
        [2]: menu_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local tbl_8 = {}
    local var240 = "small"
    tbl_8[1] = "large"
    tbl_8[2] = var240
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [104] 68. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [104] 68. Error Block 12 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [10] 8. Error Block 20 start (CF ANALYSIS FAILED)
    if var240 and var240 == "large" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.6]
        if nil then
            -- KONSTANTWARNING: GOTO [104] #68
        end
    elseif var240 and var240 == "small" then
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.7]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.8]
        for _, _ in nil do
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [104.11]
            if nil then
            end
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        end
    end
    -- KONSTANTERROR: [10] 8. Error Block 20 end (CF ANALYSIS FAILED)
end
module.update = update
function module.init(arg1, arg2) -- Line 363
    --[[ Upvalues[2]:
        [1]: SOME_upvr (readonly)
        [2]: menu_upvr (readonly)
    ]]
    arg1.class = arg2
    arg1:update()
    SOME_upvr.large.Changed:Connect(function() -- Line 369
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        for i_9, v_9 in next, arg1.activeMaids do
            if v_9 then
                v_9:DoCleaning()
                table.remove(arg1.activeMaids, i_9)
            end
        end
        arg1:update()
    end)
    for _, v_10 in next, SOME_upvr.small:GetChildren() do
        v_10.Changed:Connect(function() -- Line 381
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            for i_11, v_11 in next, arg1.activeMaids do
                if v_11 then
                    v_11:DoCleaning()
                    table.remove(arg1.activeMaids, i_11)
                end
            end
            arg1:update()
        end)
    end
    local function update_upvr() -- Line 395, Named "update"
        --[[ Upvalues[2]:
            [1]: SOME_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
        ]]
        local any_split_result1 = SOME_upvr.time.Value:split(':')
        local tonumber_result1 = tonumber(any_split_result1[1])
        local floored = math.floor(tonumber_result1 / 24, 0.5)
        local tonumber_result1_3 = tonumber(any_split_result1[2])
        local tonumber_result1_2 = tonumber(any_split_result1[3])
        if 0 < floored then
            if floored == 1 then
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s DAY", tostring(floored))
            else
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s DAYS", tostring(floored))
            end
        end
        if 0 < tonumber_result1 then
            if tonumber_result1 == 1 then
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s HOUR", tostring(tonumber_result1))
            else
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s HOURS", tostring(tonumber_result1))
            end
        end
        if 0 < tonumber_result1_3 then
            if tonumber_result1_3 == 1 then
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s MINUTE", tostring(tonumber_result1_3))
            else
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s MINUTES", tostring(tonumber_result1_3))
            end
        end
        if 0 < tonumber_result1_2 then
            if tonumber_result1_2 == 1 then
                menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s SECOND", tostring(tonumber_result1_2))
                return
            end
            menu_upvr.pages.cosmetics.main.pages[script.Name].offsale.time.Text = string.format("%s SECONDS", tostring(tonumber_result1_2))
        end
    end
    update_upvr()
    SOME_upvr.time.Changed:Connect(function() -- Line 431
        --[[ Upvalues[1]:
            [1]: update_upvr (readonly)
        ]]
        update_upvr()
    end)
    return true
end
return module
ModuleScript redeem redeem
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:47
-- Luau version 6, Types version 3
-- Time taken: 0.013204 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local module = {}
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local var6_upvw = false
local Services_upvr = _engine.Services
local any_load_result1_upvr = _engine:load("Theme", "utils")
local var9_upvw = false
local var10_upvw = false
local any_new_result1_upvr_2 = _engine:load("Network").new()
local any_new_result1_upvr = _engine:load("Notification").new()
function module.init(arg1, arg2) -- Line 27
    --[[ Upvalues[9]:
        [1]: menu_upvr (readonly)
        [2]: var6_upvw (read and write)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: var9_upvw (read and write)
        [7]: var10_upvw (read and write)
        [8]: any_new_result1_upvr_2 (readonly)
        [9]: any_new_result1_upvr (readonly)
    ]]
    menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.button.MouseEnter:Connect(function() -- Line 30
        --[[ Upvalues[5]:
            [1]: var6_upvw (copied, read and write)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: any_load_result1_upvr (copied, readonly)
        ]]
        var6_upvw = true
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1.03;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.button.MouseLeave:Connect(function() -- Line 38
        --[[ Upvalues[4]:
            [1]: var6_upvw (copied, read and write)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        var6_upvw = false
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.button.MouseButton1Down:Connect(function() -- Line 45
        --[[ Upvalues[3]:
            [1]: var9_upvw (copied, read and write)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
        ]]
        var9_upvw = true
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
            Scale = 0.9;
        }):Play()
    end)
    Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 50
        --[[ Upvalues[3]:
            [1]: var9_upvw (copied, read and write)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var9_upvw then
                var9_upvw = false
                Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.button.MouseButton1Click:Connect(function() -- Line 57
        --[[ Upvalues[7]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: any_load_result1_upvr (copied, readonly)
            [5]: var10_upvw (copied, read and write)
            [6]: any_new_result1_upvr_2 (copied, readonly)
            [7]: any_new_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        if not var10_upvw and menu_upvr.pages.cosmetics.main.pages.redeem.main.input.input.Text ~= "" then
            var10_upvw = true
            menu_upvr.pages.cosmetics.main.pages.redeem.main.input.input.Text = ""
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 1;
            }):Play()
            task.wait(0.15)
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.loading, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            task.wait(0.3)
            local any_fetch_result1, any_fetch_result2_upvr = any_new_result1_upvr_2:fetch("redeem", menu_upvr.pages.cosmetics.main.pages.redeem.main.input.input.Text)
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.loading, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 1;
            }):Play()
            task.wait(0.15)
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 0;
            }):Play()
            if any_fetch_result1 == "success" then
                References_upvr.Main.sounds.UI.Success:Play()
                task.spawn(function() -- Line 83
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (copied, readonly)
                        [2]: any_fetch_result2_upvr (readonly)
                    ]]
                    any_new_result1_upvr:create(string.upper(any_fetch_result2_upvr), Color3.fromRGB(69, 255, 162))
                end)
            else
                References_upvr.Main.sounds.UI.Error:Play()
                task.spawn(function() -- Line 88
                    --[[ Upvalues[2]:
                        [1]: any_new_result1_upvr (copied, readonly)
                        [2]: any_fetch_result2_upvr (readonly)
                    ]]
                    any_new_result1_upvr:create(string.upper(any_fetch_result2_upvr), Color3.fromRGB(255, 61, 61))
                end)
                menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label.TextColor3 = Color3.fromRGB(255, 0, 0)
                Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
                menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label:TweenPosition(UDim2.new(0.5, -15, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.05, true)
                task.wait(0.05)
                menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.label:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Elastic, 0.25, true)
            end
            task.wait(0.1)
            var10_upvw = false
        end
    end)
    task.spawn(function() -- Line 105
        --[[ Upvalues[2]:
            [1]: menu_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        while true do
            menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.loading.Rotation = 0
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.main.pages.redeem.main.redeem.loading, TweenInfo.new(0.35, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                Rotation = 360;
            }):Play()
            task.wait(0.35)
        end
    end)
    return true
end
return module
ModuleScript settings settings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:49
-- Luau version 6, Types version 3
-- Time taken: 0.015933 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
while not Profile_upvr:GetAttribute("Loaded") and tick() - tick() <= 2 do
    task.wait()
end
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_load_result1 = _engine:load("BulkFade", "utils")
local tbl_upvr = {
    settings = any_load_result1.CreateGroup(menu_upvr.pages.settings.main.pages.settings:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    bindings = any_load_result1.CreateGroup(menu_upvr.pages.settings.main.pages.bindings:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    page = any_load_result1.CreateGroup(menu_upvr.pages.settings:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
tbl_upvr.page:FadeOut()
local module = {
    current = "settings";
    index = {
        settings = 1;
        bindings = 2;
    };
    tabs = {
        debounce = false;
    };
    pages = {};
}
local var13_upvw = false
function module.select(arg1, arg2) -- Line 49
    --[[ Upvalues[4]:
        [1]: var13_upvw (read and write)
        [2]: tbl_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: Services_upvr (readonly)
    ]]
    if not var13_upvw and arg1.current ~= arg2.Name then
        var13_upvw = true
        if tbl_upvr[arg1.current] then
            tbl_upvr[arg1.current]:FadeOut()
        end
        if arg2.Name == "settings" then
            menu_upvr.pages.settings.main.top.title.settings.TextTransparency = 1
            Services_upvr.TweenService:Create(menu_upvr.pages.settings.main.top.title.bindings, TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                Position = UDim2.new(1, 0, 0, 0);
                TextTransparency = 1;
            }):Play()
        else
            menu_upvr.pages.settings.main.top.title.bindings.TextTransparency = 1
            Services_upvr.TweenService:Create(menu_upvr.pages.settings.main.top.title.settings, TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                Position = UDim2.new(-1, 0, 0, 0);
                TextTransparency = 1;
            }):Play()
        end
        arg1.current = arg2.Name
        menu_upvr.pages.settings.main.pages.UIPageLayout:JumpTo(menu_upvr.pages.settings.main.pages[arg2.Name])
        task.wait(0.1)
        Services_upvr.TweenService:Create(menu_upvr.pages.settings.main.top.title[arg1.current], TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Position = UDim2.new(0, 0, 0, 0);
            TextTransparency = 0;
        }):Play()
        if tbl_upvr[arg1.current] then
            tbl_upvr[arg1.current]:FadeIn()
        end
        var13_upvw = false
    end
end
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_new_result1_upvr_2 = _engine:load("Network").new()
local any_new_result1_upvr = _engine:load("Binder").new(script.Parent)
local any_new_result1_upvr_3 = _engine:load("Notification").new({
    lifeTime = 3;
})
local any_load_result1_upvr_2 = _engine:load("CanvasSize", "utils")
function module.init(arg1) -- Line 79
    --[[ Upvalues[9]:
        [1]: Services_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
        [5]: Profile_upvr (readonly)
        [6]: any_new_result1_upvr_2 (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: any_new_result1_upvr_3 (readonly)
        [9]: any_load_result1_upvr_2 (readonly)
    ]]
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 82
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 68 start (CF ANALYSIS FAILED)
        if arg1_2.KeyCode == Enum.KeyCode.ButtonR1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not script.Parent:GetAttribute("freeze") and not arg1.tabs.debounce then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == #menu_upvr.pages.settings.main.buttons:GetChildren() then
                for i, v in next, arg1.index do
                    if v and v == 1 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.settings.main.buttons[i])
                        task.delay(0.2, function() -- Line 91
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 109
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [170] #116
            end
            -- KONSTANTWARNING: GOTO [110] #74
        end
        -- KONSTANTERROR: [0] 1. Error Block 68 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [170] 116. Error Block 66 start (CF ANALYSIS FAILED)
        if arg1_2.KeyCode == Enum.KeyCode.ButtonL1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not script.Parent:GetAttribute("freeze") then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == 1 then
                for i_2, v_2 in next, arg1.index do
                    if v_2 and v_2 == #menu_upvr.pages.settings.main.buttons:GetChildren() then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.settings.main.buttons[i_2])
                        task.delay(0.2, function() -- Line 119
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 137
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                -- KONSTANTWARNING: GOTO [333] #226
            end
            -- KONSTANTWARNING: GOTO [274] #185
        end
        -- KONSTANTERROR: [170] 116. Error Block 66 end (CF ANALYSIS FAILED)
    end)
    for _, v_3_upvr in next, menu_upvr.pages.settings.main.buttons:GetChildren() do
        if v_3_upvr and v_3_upvr:IsA("Frame") then
            v_3_upvr.button.MouseEnter:Connect(function() -- Line 147
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_3_upvr (readonly)
                ]]
                References_upvr.Main.sounds.UI.Hover:Play()
                Services_upvr.TweenService:Create(v_3_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1.03;
                }):Play()
                Services_upvr.TweenService:Create(v_3_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
                Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
            end)
            v_3_upvr.button.MouseLeave:Connect(function() -- Line 154
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_3_upvr (readonly)
                    [3]: any_load_result1_upvr (copied, readonly)
                ]]
                Services_upvr.TweenService:Create(v_3_upvr.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Scale = 1;
                }):Play()
                Services_upvr.TweenService:Create(v_3_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = any_load_result1_upvr.Text;
                }):Play()
                Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
            end)
            v_3_upvr.button.MouseButton1Click:Connect(function() -- Line 160
                --[[ Upvalues[9]:
                    [1]: References_upvr (copied, readonly)
                    [2]: menu_upvr (copied, readonly)
                    [3]: v_3_upvr (readonly)
                    [4]: arg1 (readonly)
                    [5]: Services_upvr (copied, readonly)
                    [6]: Profile_upvr (copied, readonly)
                    [7]: any_new_result1_upvr_2 (copied, readonly)
                    [8]: any_new_result1_upvr (copied, readonly)
                    [9]: any_new_result1_upvr_3 (copied, readonly)
                ]]
                -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                References_upvr.Main.sounds.UI.Click:Play()
                -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [28] 18. Error Block 2 start (CF ANALYSIS FAILED)
                arg1:select(v_3_upvr)
                do
                    return
                end
                -- KONSTANTERROR: [28] 18. Error Block 2 end (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [34] 23. Error Block 3 start (CF ANALYSIS FAILED)
                -- KONSTANTERROR: [34] 23. Error Block 3 end (CF ANALYSIS FAILED)
            end)
        end
    end
    for _, v_4 in next, menu_upvr.pages.settings.main.pages:GetChildren() do
        if v_4:IsA("Frame") then
            for _, v_5_upvr in next, v_4:GetChildren() do
                if v_5_upvr and v_5_upvr:IsA("Frame") then
                    v_5_upvr.scroll.CanvasSize = any_load_result1_upvr_2:resizeList(v_5_upvr.scroll.main, menu_upvr.pages.settings.main.UIScale.Scale)
                    v_5_upvr.scroll.main:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() -- Line 321
                        --[[ Upvalues[3]:
                            [1]: v_5_upvr (readonly)
                            [2]: any_load_result1_upvr_2 (copied, readonly)
                            [3]: menu_upvr (copied, readonly)
                        ]]
                        v_5_upvr.scroll.CanvasSize = any_load_result1_upvr_2:resizeList(v_5_upvr.scroll.main, menu_upvr.pages.settings.main.UIScale.Scale)
                    end)
                end
            end
        end
    end
    for _, v_6 in next, script:GetChildren() do
        if v_6 and v_6:IsA("ModuleScript") then
            local v_6_2 = require(v_6)
            v_6_2:init()
            arg1.pages[v_6.Name] = v_6_2
        end
    end
    menu_upvr.pages.settings:SetAttribute("loaded", true)
end
return module
ModuleScript settings settings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:51
-- Luau version 6, Types version 3
-- Time taken: 0.168239 seconds

local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local PlayerGui_upvr = LocalPlayer_upvr:WaitForChild("PlayerGui")
local NetColorRemoteEvent_upvr = game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent")
local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local any_new_result1_upvr = _engine:load("Network").new()
local any_load_result1_upvr_2 = _engine:load("Maid")
local Profile_upvr = References_upvr.Profile
local menu_upvr = PlayerGui_upvr:WaitForChild("menu", 100)
local module_upvr = {
    categories = {
        gameplay = {"Atmosphere", "Ambience", "Referee", "CammySounds", "Ball", "Fall", "Jump", "Materials", "Player", "Rain", "Slide", "Snow", "Weather"};
        interface = {"UI"};
        soundtrack = {"Soundtrack"};
    };
    volume = {
        gameplay = {};
        interface = {};
        soundtrack = {};
        other = {};
    };
    cache = {};
    ColorRemoteEvent = NetColorRemoteEvent_upvr;
}
local function saveColorSetting_upvr(arg1) -- Line 61, Named "saveColorSetting"
    --[[ Upvalues[1]:
        [1]: any_new_result1_upvr (readonly)
    ]]
    if arg1.Name == "Home Net Color" or arg1.Name == "Away Net Color" or arg1.Name == "Pitch Line Color" then
        game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent"):FireServer("saveNetColor", arg1.Name, {
            r = arg1.Value.R;
            g = arg1.Value.G;
            b = arg1.Value.B;
        })
    else
        any_new_result1_upvr:send("replicateValue", arg1, arg1.Value)
    end
end
local function setupPitchLineColor_upvr() -- Line 77, Named "setupPitchLineColor"
    --[[ Upvalues[1]:
        [1]: Profile_upvr (readonly)
    ]]
    if Profile_upvr and Profile_upvr.settings and Profile_upvr.settings.Visual then
        if not Profile_upvr.settings.Visual:FindFirstChild("Pitch Line Color") then
            local Color3Value = Instance.new("Color3Value")
            Color3Value.Name = "Pitch Line Color"
            Color3Value.Value = Color3.new(1, 1, 1)
            local StringValue_28 = Instance.new("StringValue")
            StringValue_28.Name = "Category"
            StringValue_28.Value = "Visual"
            StringValue_28.Parent = Color3Value
            Color3Value.Parent = Profile_upvr.settings.Visual
            updatePitchLineColor(Color3Value.Value)
            return
        end
        updatePitchLineColor(Profile_upvr.settings.Visual["Pitch Line Color"].Value)
    end
end
function updatePitchLineColor(arg1) -- Line 103
    if workspace.pitch and workspace.pitch.main and workspace.pitch.main.Lines then
        for _, v in next, workspace.pitch.main.Lines:GetDescendants() do
            if v and v.Name == "SurfaceAppearance" then
                v.Color = arg1
            end
        end
    end
end
function saveMotionBlurSetting(arg1) -- Line 115
    --[[ Upvalues[2]:
        [1]: Profile_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    if Profile_upvr and Profile_upvr.settings and Profile_upvr.settings.Visual and Profile_upvr.settings.Visual:FindFirstChild("Motion Blur") then
        Profile_upvr.settings.Visual["Motion Blur"].Value = arg1
    end
    any_new_result1_upvr:send("replicateValue", Profile_upvr.settings.Visual["Motion Blur"], arg1)
    game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent"):FireServer("saveMotionBlur", arg1)
end
function updateMotionBlur(arg1) -- Line 131
    --[[ Upvalues[4]:
        [1]: Services_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: Profile_upvr (readonly)
        [4]: any_load_result1_upvr_2 (readonly)
    ]]
    local MotionBlur = Services_upvr.Lighting:FindFirstChild("MotionBlur")
    if MotionBlur then
        MotionBlur:Destroy()
    end
    if module_upvr.blurMaid then
        module_upvr.blurMaid:DoCleaning()
        module_upvr.blurMaid = nil
    end
    if Profile_upvr and Profile_upvr.settings and Profile_upvr.settings.Visual and Profile_upvr.settings.Visual:FindFirstChild("Motion Blur") and Profile_upvr.settings.Visual["Motion Blur"].Value ~= arg1 then
        saveMotionBlurSetting(arg1)
    end
    if arg1 then
        module_upvr.blurMaid = any_load_result1_upvr_2.new()
        local BlurEffect_upvr = Instance.new("BlurEffect")
        BlurEffect_upvr.Name = "MotionBlur"
        BlurEffect_upvr.Size = 0
        BlurEffect_upvr.Enabled = true
        BlurEffect_upvr.Parent = Services_upvr.Lighting
        module_upvr.blurMaid.blurEffect = BlurEffect_upvr
        local tbl_upvr = {0, 0, 0, 0, 0}
        local var27_upvw = 1
        local function _(arg1_2) -- Line 177, Named "updateHistory"
            --[[ Upvalues[2]:
                [1]: tbl_upvr (readonly)
                [2]: var27_upvw (read and write)
            ]]
            tbl_upvr[var27_upvw] = arg1_2
            var27_upvw = var27_upvw % #tbl_upvr + 1
            local var32 = 0
            for _, v_2 in ipairs(tbl_upvr) do
                var32 += v_2
            end
            return var32 / #tbl_upvr
        end
        local Position_2_upvw = workspace.CurrentCamera.CFrame.Position
        local LookVector_2_upvw = workspace.CurrentCamera.CFrame.LookVector
        module_upvr.blurMaid.motionConnection = Services_upvr.RunService.RenderStepped:Connect(function(arg1_3) -- Line 189
            --[[ Upvalues[5]:
                [1]: Position_2_upvw (read and write)
                [2]: LookVector_2_upvw (read and write)
                [3]: tbl_upvr (readonly)
                [4]: var27_upvw (read and write)
                [5]: BlurEffect_upvr (readonly)
            ]]
            local Position = workspace.CurrentCamera.CFrame.Position
            local LookVector = workspace.CurrentCamera.CFrame.LookVector
            tbl_upvr[var27_upvw] = (Position - Position_2_upvw).Magnitude * 2.5 + (LookVector - LookVector_2_upvw).Magnitude * 3
            var27_upvw = var27_upvw % #tbl_upvr + 1
            local var45 = 0
            for i_3, v_3 in ipairs(tbl_upvr) do
                var45 += v_3
            end
            local var49 = var45 / #tbl_upvr
            var45 = 0
            if 0.05 < var49 then
                i_3 = var49 - 0.05
                var45 = math.min(i_3 ^ 1.5 * 6, 6)
            end
            if BlurEffect_upvr.Size < var45 then
                i_3 = BlurEffect_upvr
                v_3 = var45 - BlurEffect_upvr.Size
                i_3 = v_3 * math.min(arg1_3 * 8, 1)
                BlurEffect_upvr.Size = i_3.Size + i_3
            else
                i_3 = BlurEffect_upvr
                v_3 = var45 - BlurEffect_upvr.Size
                i_3 = v_3 * math.min(arg1_3 * 15, 1)
                BlurEffect_upvr.Size = i_3.Size + i_3
            end
            if BlurEffect_upvr.Size < 0.2 then
                BlurEffect_upvr.Size = 0
            end
            Position_2_upvw = Position
            LookVector_2_upvw = LookVector
        end)
    end
end
local function _() -- Line 236, Named "requestNetColors"
    game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent"):FireServer("loadNetColors")
end
local main_2_upvr = PlayerGui_upvr:WaitForChild("main", 100)
function module_upvr.update(arg1, arg2) -- Line 241
    --[[ Upvalues[8]:
        [1]: Profile_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: main_2_upvr (readonly)
        [7]: References_upvr (readonly)
        [8]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 5. Error Block 175 start (CF ANALYSIS FAILED)
    for _, v_4 in next, {"Field Pattern", "Field Roughness", "Field Material", "Shadows", "Stadium", "Weather Effects", "Grass Stains", "Dynamic Goal Nets", "Motion Blur"} do
        Profile_upvr.settings.Visual[v_4].Value = false
        any_new_result1_upvr:send("replicateValue", Profile_upvr.settings.Visual[v_4], false)
    end
    do
        return
    end
    -- KONSTANTERROR: [7] 5. Error Block 175 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [48] 36. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [48] 36. Error Block 6 end (CF ANALYSIS FAILED)
end
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_load_result1_upvr_3 = _engine:load("FormatNumber", "utils")
local mouse_upvr = LocalPlayer_upvr:GetMouse()
local any_new_result1_upvr_2 = _engine:load("ColorPicker").new(script.Parent)
function module_upvr.create(arg1, arg2) -- Line 456
    --[[ Upvalues[11]:
        [1]: References_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: module_upvr (readonly)
        [6]: any_new_result1_upvr (readonly)
        [7]: any_load_result1_upvr_3 (readonly)
        [8]: mouse_upvr (readonly)
        [9]: any_new_result1_upvr_2 (readonly)
        [10]: saveColorSetting_upvr (readonly)
        [11]: NetColorRemoteEvent_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var74
    if var74 then
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var74 = string.lower(arg2.Category.Value)
            return var74
        end
        if not arg2:FindFirstChild("Category") or not INLINED() then
            var74 = string.lower(arg2.Parent.Name)
        end
        local clone_upvr_4 = References_upvr.Main.ui.bool:Clone()
        clone_upvr_4.Parent = menu_upvr.pages.settings.main.pages.settings[var74].scroll.main
        clone_upvr_4.Name = arg2.Name
        clone_upvr_4.label.Text = string.upper(arg2.Name)
        if not arg2.Value then
            clone_upvr_4.toggle.icon.Visible = false
            clone_upvr_4.toggle.BackgroundColor3 = any_load_result1_upvr.Text
        end
        arg1:update(arg2)
        arg2.Changed:Connect(function() -- Line 472
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_upvr_4 (readonly)
                [4]: any_load_result1_upvr (copied, readonly)
            ]]
            if arg2.Value then
                Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Accent;
                }):Play()
                clone_upvr_4.toggle.icon.Visible = true
            else
                Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
                clone_upvr_4.toggle.icon.Visible = false
            end
        end)
        clone_upvr_4.toggle.button.MouseEnter:Connect(function() -- Line 482
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: Services_upvr (copied, readonly)
                [4]: clone_upvr_4 (readonly)
                [5]: any_load_result1_upvr (copied, readonly)
            ]]
            if script.Parent:GetAttribute("freeze") then
            else
                References_upvr.Main.sounds.UI.Hover:Play()
                if arg2.Value then
                    Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Accent:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    return
                end
                Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                }):Play()
            end
        end)
        clone_upvr_4.toggle.button.MouseLeave:Connect(function() -- Line 496
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: clone_upvr_4 (readonly)
                [4]: any_load_result1_upvr (copied, readonly)
            ]]
            if arg2.Value then
                Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Accent;
                }):Play()
            else
                Services_upvr.TweenService:Create(clone_upvr_4.toggle, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
            end
        end)
        clone_upvr_4.toggle.button.MouseButton1Click:Connect(function() -- Line 504
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: module_upvr (copied, readonly)
                [4]: any_new_result1_upvr (copied, readonly)
                [5]: arg1 (readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 25 start (CF ANALYSIS FAILED)
            if script.Parent:GetAttribute("freeze") then return end
            References_upvr.Main.sounds.UI.Click:Play()
            arg2.Value = not arg2.Value
            if arg2.Name == "Motion Blur" then
                updateMotionBlur(arg2.Value)
                saveMotionBlurSetting(arg2.Value)
                -- KONSTANTWARNING: GOTO [110] #77
            end
            -- KONSTANTERROR: [0] 1. Error Block 25 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [47] 32. Error Block 22 start (CF ANALYSIS FAILED)
            if arg2.Name == "Angle Bar" then
                if _G._root then
                    _G._root:SetAttribute("AngleBarEnabled", arg2.Value)
                end
                module_upvr:_updateAngleBarDisplayVisibility()
                any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
            elseif arg2.Name == "Angle Bar Display" then
                module_upvr:_updateAngleBarDisplayVisibility()
                any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
            else
                any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
            end
            -- KONSTANTERROR: [47] 32. Error Block 22 end (CF ANALYSIS FAILED)
        end)
    else
        clone_upvr_4 = arg2.Value
        local var86_upvr
        if tonumber(clone_upvr_4) ~= nil then
            clone_upvr_4 = arg2:FindFirstChild("Category")
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                clone_upvr_4 = arg2.Category.Value
                return string.lower(clone_upvr_4)
            end
            if not clone_upvr_4 or not INLINED_2() then
                clone_upvr_4 = arg2.Parent.Name
            end
            clone_upvr_4 = arg2.Value
            local var87_upvw = clone_upvr_4
            local var88_upvw = false
            var86_upvr = arg2:FindFirstChild("Min")
            local function INLINED_3() -- Internal function, doesn't exist in bytecode
                var86_upvr = arg2.Min.Value
                return tonumber(var86_upvr)
            end
            if not var86_upvr or not INLINED_3() then
                local var89_upvr = 0
            end
            local function INLINED_4() -- Internal function, doesn't exist in bytecode
                var86_upvr = tonumber(arg2.Max.Value)
                return var86_upvr
            end
            if not arg2:FindFirstChild("Max") or not INLINED_4() then
                var86_upvr = 100
            end
            local var90_upvr = var86_upvr - var89_upvr
            local function _() -- Line 541, Named "getFraction"
                --[[ Upvalues[3]:
                    [1]: arg2 (readonly)
                    [2]: var89_upvr (readonly)
                    [3]: var90_upvr (readonly)
                ]]
                return math.clamp((tonumber(arg2.Value) - var89_upvr) / var90_upvr, 0, 1)
            end
            local clone_2_upvr = References_upvr.Main.ui.slider:Clone()
            clone_2_upvr.Parent = menu_upvr.pages.settings.main.pages.settings[string.lower(clone_upvr_4)].scroll.main
            clone_2_upvr.Name = arg2.Name
            clone_2_upvr.label.Text = string.upper(arg2.Name)
            clone_2_upvr.slider.slide.Size = UDim2.new(math.clamp((tonumber(arg2.Value) - var89_upvr) / var90_upvr, 0, 1), 0, 1, 0)
            arg1:update(arg2)
            arg2.Changed:Connect(function() -- Line 552
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                arg1:update(arg2)
            end)
            if arg2.Parent.Name == "Audio" then
                clone_2_upvr.slider.value.PlaceholderText = any_load_result1_upvr_3.FormatDecimal(tonumber(arg2.Value), 0)..'%'
                clone_2_upvr.slider.value.Text = any_load_result1_upvr_3.FormatDecimal(tonumber(arg2.Value), 0)..'%'
            else
                clone_2_upvr.slider.value.PlaceholderText = any_load_result1_upvr_3.FormatDecimal(tonumber(arg2.Value), 2)
                clone_2_upvr.slider.value.Text = any_load_result1_upvr_3.FormatDecimal(tonumber(arg2.Value), 2)
            end
            clone_2_upvr.slider.value.FocusLost:Connect(function() -- Line 564
                --[[ Upvalues[7]:
                    [1]: clone_2_upvr (readonly)
                    [2]: var89_upvr (readonly)
                    [3]: var86_upvr (readonly)
                    [4]: arg2 (readonly)
                    [5]: any_load_result1_upvr_3 (copied, readonly)
                    [6]: var90_upvr (readonly)
                    [7]: any_new_result1_upvr (copied, readonly)
                ]]
                if tonumber(clone_2_upvr.slider.value.Text) and var89_upvr <= tonumber(clone_2_upvr.slider.value.Text) and tonumber(clone_2_upvr.slider.value.Text) <= var86_upvr then
                    if arg2.Parent.Name == "Audio" then
                        clone_2_upvr.slider.value.Text = any_load_result1_upvr_3.FormatDecimal(tonumber(clone_2_upvr.slider.value.Text), 0)..'%'
                    else
                        clone_2_upvr.slider.value.Text = any_load_result1_upvr_3.FormatDecimal(tonumber(clone_2_upvr.slider.value.Text), 2)
                    end
                    clone_2_upvr.slider.value.PlaceholderText = clone_2_upvr.slider.value.Text
                    arg2.Value = clone_2_upvr.slider.value.Text
                    clone_2_upvr.slider.slide.Size = UDim2.new(math.clamp((tonumber(arg2.Value) - var89_upvr) / var90_upvr, 0, 1), 0, 1, 0)
                    any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
                else
                    clone_2_upvr.value.Text = clone_2_upvr.value.PlaceholderText
                end
            end)
            clone_2_upvr.slider.edit.MouseButton1Click:Connect(function() -- Line 584
                --[[ Upvalues[2]:
                    [1]: References_upvr (copied, readonly)
                    [2]: clone_2_upvr (readonly)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    clone_2_upvr.slider.value:CaptureFocus()
                end
            end)
            clone_2_upvr.slider.button.MouseEnter:Connect(function() -- Line 593
                --[[ Upvalues[4]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: clone_2_upvr (readonly)
                    [4]: any_load_result1_upvr (copied, readonly)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(clone_2_upvr.slider, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                    }):Play()
                    Services_upvr.TweenService:Create(clone_2_upvr.slider.slide, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Accent:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                end
            end)
            clone_2_upvr.slider.button.MouseLeave:Connect(function() -- Line 603
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_2_upvr (readonly)
                    [3]: any_load_result1_upvr (copied, readonly)
                ]]
                Services_upvr.TweenService:Create(clone_2_upvr.slider, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
                Services_upvr.TweenService:Create(clone_2_upvr.slider.slide, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Accent;
                }):Play()
            end)
            clone_2_upvr.slider.button.MouseButton1Down:Connect(function() -- Line 608
                --[[ Upvalues[2]:
                    [1]: References_upvr (copied, readonly)
                    [2]: var88_upvw (read and write)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    var88_upvw = true
                end
            end)
            Services_upvr.UserInputService.InputEnded:Connect(function(arg1_4, arg2_2) -- Line 617
                --[[ Upvalues[4]:
                    [1]: var88_upvw (read and write)
                    [2]: arg2 (readonly)
                    [3]: var87_upvw (read and write)
                    [4]: any_new_result1_upvr (copied, readonly)
                ]]
                if var88_upvw and (arg1_4.UserInputType == Enum.UserInputType.MouseButton1 or arg1_4.UserInputType == Enum.UserInputType.Touch) then
                    var88_upvw = false
                    arg2.Value = var87_upvw
                    any_new_result1_upvr:send("replicateValue", arg2, arg2.Value)
                end
            end)
            mouse_upvr.Move:Connect(function() -- Line 626
                --[[ Upvalues[9]:
                    [1]: var88_upvw (read and write)
                    [2]: mouse_upvr (copied, readonly)
                    [3]: clone_2_upvr (readonly)
                    [4]: any_load_result1_upvr_3 (copied, readonly)
                    [5]: var89_upvr (readonly)
                    [6]: var90_upvr (readonly)
                    [7]: var86_upvr (readonly)
                    [8]: arg2 (readonly)
                    [9]: var87_upvw (read and write)
                ]]
                if var88_upvw then
                    local clamped = math.clamp((workspace.CurrentCamera:WorldToScreenPoint(mouse_upvr.Hit.Position).X - clone_2_upvr.slider.AbsolutePosition.X) / clone_2_upvr.slider.AbsoluteSize.X, 0, 1)
                    local any_FormatDecimal_result1 = any_load_result1_upvr_3.FormatDecimal(math.clamp(var89_upvr + tonumber(var90_upvr * clamped), var89_upvr, var86_upvr), 2)
                    if arg2.Parent.Name == "Audio" then
                        clone_2_upvr.slider.value.Text = any_load_result1_upvr_3.FormatDecimal(math.clamp(var89_upvr + tonumber(var90_upvr * clamped), var89_upvr, var86_upvr), 0)..'%'
                    else
                        clone_2_upvr.slider.value.Text = any_FormatDecimal_result1
                    end
                    clone_2_upvr.slider.value.PlaceholderText = clone_2_upvr.slider.value.Text
                    clone_2_upvr.slider.slide.Size = UDim2.new(clamped, 0, 1, 0)
                    var87_upvw = any_FormatDecimal_result1
                end
            end)
            return
        end
        local var106
        if var106 then
            local function INLINED_5() -- Internal function, doesn't exist in bytecode
                var106 = string.lower(arg2.Category.Value)
                return var106
            end
            if not arg2:FindFirstChild("Category") or not INLINED_5() then
                var106 = string.lower(arg2.Parent.Name)
            end
            local clone_upvr_2 = References_upvr.Main.ui.color:Clone()
            clone_upvr_2.Parent = menu_upvr.pages.settings.main.pages.settings[var106].scroll.main
            clone_upvr_2.Name = arg2.Name
            clone_upvr_2.label.Text = string.upper(arg2.Name)
            clone_upvr_2.value.color.BackgroundColor3 = arg2.Value
            clone_upvr_2.value.gradient.BackgroundColor3 = arg2.Value
            clone_upvr_2.value.value.Text = string.format("%s,%s,%s", any_load_result1_upvr_3.FormatDecimal(arg2.Value.R * 255, 0), any_load_result1_upvr_3.FormatDecimal(arg2.Value.G * 255, 0), any_load_result1_upvr_3.FormatDecimal(arg2.Value.B * 255, 0))
            arg1:update(arg2)
            arg2.Changed:Connect(function() -- Line 655
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                arg1:update(arg2)
            end)
            any_new_result1_upvr_2.event.Event:Connect(function(arg1_5) -- Line 659
                --[[ Upvalues[4]:
                    [1]: arg2 (readonly)
                    [2]: clone_upvr_2 (readonly)
                    [3]: any_load_result1_upvr_3 (copied, readonly)
                    [4]: saveColorSetting_upvr (copied, readonly)
                ]]
                if arg1_5 and arg1_5.Name == arg2.Name then
                    clone_upvr_2.value.color.BackgroundColor3 = arg2.Value
                    clone_upvr_2.value.gradient.BackgroundColor3 = arg2.Value
                    clone_upvr_2.value.value.Text = string.format("%s,%s,%s", any_load_result1_upvr_3.FormatDecimal(arg2.Value.R * 255, 0), any_load_result1_upvr_3.FormatDecimal(arg2.Value.G * 255, 0), any_load_result1_upvr_3.FormatDecimal(arg2.Value.B * 255, 0))
                    saveColorSetting_upvr(arg2)
                end
            end)
            clone_upvr_2.value.button.MouseEnter:Connect(function() -- Line 668
                --[[ Upvalues[5]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: clone_upvr_2 (readonly)
                    [4]: any_load_result1_upvr (copied, readonly)
                    [5]: arg2 (readonly)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(clone_upvr_2.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                    }):Play()
                    Services_upvr.TweenService:Create(clone_upvr_2.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = arg2.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    Services_upvr.TweenService:Create(clone_upvr_2.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = arg2.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                end
            end)
            clone_upvr_2.value.button.MouseLeave:Connect(function() -- Line 679
                --[[ Upvalues[4]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_upvr_2 (readonly)
                    [3]: any_load_result1_upvr (copied, readonly)
                    [4]: arg2 (readonly)
                ]]
                Services_upvr.TweenService:Create(clone_upvr_2.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_2.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = arg2.Value;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_2.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = arg2.Value;
                }):Play()
            end)
            clone_upvr_2.value.button.MouseButton1Click:Connect(function() -- Line 685
                --[[ Upvalues[4]:
                    [1]: References_upvr (copied, readonly)
                    [2]: any_new_result1_upvr_2 (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: saveColorSetting_upvr (copied, readonly)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    any_new_result1_upvr_2:prompt(arg2)
                    task.delay(0.5, function() -- Line 694
                        --[[ Upvalues[2]:
                            [1]: arg2 (copied, readonly)
                            [2]: saveColorSetting_upvr (copied, readonly)
                        ]]
                        if arg2 then
                            saveColorSetting_upvr(arg2)
                        end
                    end)
                end
            end)
            return
        end
        local var120
        if var120 then
            clone_upvr_2 = arg2:FindFirstChild("Category")
            local function INLINED_6() -- Internal function, doesn't exist in bytecode
                var120 = var120(clone_upvr_2)
                clone_upvr_2 = arg2.Category.Value
                var120 = string.lower
                return var120
            end
            if not clone_upvr_2 or not INLINED_6() then
                var120 = string.lower
                clone_upvr_2 = arg2.Parent.Name
                var120 = var120(clone_upvr_2)
            end
            clone_upvr_2 = false
            local var121_upvw = clone_upvr_2
            local clone_upvr_3 = References_upvr.Main.ui.dropdown:Clone()
            clone_upvr_3.Parent = menu_upvr.pages.settings.main.pages.settings[var120].scroll.main
            clone_upvr_3.Name = arg2.Name
            clone_upvr_3.label.Text = string.upper(arg2.Name)
            clone_upvr_3.menu.menu.value.value.Text = string.upper(arg2.Value)
            arg1:update(arg2)
            arg2.Changed:Connect(function() -- Line 711
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                arg1:update(arg2)
            end)
            for _, v_15 in next, arg2:GetChildren() do
                if v_15 and v_15.Name ~= arg2.Value and v_15.Name ~= "Dropdown" and v_15.Name ~= "Category" and v_15.Name ~= "DefaultValue" then
                    local clone_upvr = clone_upvr_3.menu.menu.value:Clone()
                    clone_upvr.Parent = clone_upvr_3.menu.menu
                    clone_upvr.Name = string.lower(v_15.Name)
                    clone_upvr.value.Text = string.upper(v_15.Name)
                    local clone = References_upvr.Main.ui.button:Clone()
                    clone.Parent = clone_upvr
                    clone.MouseEnter:Connect(function() -- Line 725
                        --[[ Upvalues[5]:
                            [1]: var121_upvw (read and write)
                            [2]: References_upvr (copied, readonly)
                            [3]: Services_upvr (copied, readonly)
                            [4]: clone_upvr (readonly)
                            [5]: any_load_result1_upvr (copied, readonly)
                        ]]
                        if script.Parent:GetAttribute("freeze") then
                        elseif var121_upvw then
                            References_upvr.Main.sounds.UI.Hover:Play()
                            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                BackgroundTransparency = 0;
                            }):Play()
                            Services_upvr.TweenService:Create(clone_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = any_load_result1_upvr.Text;
                            }):Play()
                        end
                    end)
                    clone.MouseLeave:Connect(function() -- Line 737
                        --[[ Upvalues[2]:
                            [1]: Services_upvr (copied, readonly)
                            [2]: clone_upvr (readonly)
                        ]]
                        Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            BackgroundTransparency = 1;
                        }):Play()
                        Services_upvr.TweenService:Create(clone_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(255, 255, 255);
                        }):Play()
                    end)
                    clone.MouseButton1Click:Connect(function() -- Line 742
                        --[[ Upvalues[9]:
                            [1]: var121_upvw (read and write)
                            [2]: References_upvr (copied, readonly)
                            [3]: clone_upvr_3 (readonly)
                            [4]: clone_upvr (readonly)
                            [5]: arg2 (readonly)
                            [6]: arg1 (readonly)
                            [7]: NetColorRemoteEvent_upvr (copied, readonly)
                            [8]: module_upvr (copied, readonly)
                            [9]: any_new_result1_upvr (copied, readonly)
                        ]]
                        if script.Parent:GetAttribute("freeze") then
                        elseif var121_upvw then
                            var121_upvw = false
                            References_upvr.Main.sounds.UI.Click:Play()
                            clone_upvr_3.menu.menu.value.value.Text = clone_upvr.value.Text
                            clone_upvr.value.Text = string.upper(arg2.Value)
                            for i_17, v_17 in next, arg2:GetChildren() do
                                if v_17 and string.lower(v_17.Name) == string.lower(clone_upvr_3.menu.menu.value.value.Text) then
                                    arg2.Value = v_17.Name
                                end
                            end
                            i_17 = 1
                            v_17 = -4
                            i_17 = Enum.EasingDirection.InOut
                            v_17 = Enum.EasingStyle.Sine
                            clone_upvr_3:TweenSize(UDim2.new(i_17, v_17, 0, 40), i_17, v_17, 0.15, true)
                            i_17 = 0.5
                            v_17 = -10
                            i_17 = Enum.EasingDirection.InOut
                            v_17 = Enum.EasingStyle.Sine
                            clone_upvr_3.menu:TweenSize(UDim2.new(i_17, v_17, 0, 32), i_17, v_17, 0.15, true)
                            local var141
                            if arg2 and arg2.Value ~= nil then
                                if arg2.Name == "Time" then
                                    var141 = arg2
                                    arg1:update(var141)
                                    var141 = "saveStringSetting"
                                    i_17 = "Time"
                                    v_17 = arg2.Value
                                    NetColorRemoteEvent_upvr:FireServer(var141, i_17, v_17)
                                else
                                    if arg2.Name == "Angle Bar Display" then
                                        module_upvr:_updateAngleBarDisplayVisibility()
                                        var141 = "replicateValue"
                                        i_17 = arg2
                                        v_17 = arg2.Value
                                        any_new_result1_upvr:send(var141, i_17, v_17)
                                        return
                                    end
                                    var141 = "replicateValue"
                                    i_17 = arg2
                                    v_17 = arg2.Value
                                    any_new_result1_upvr:send(var141, i_17, v_17)
                                end
                            end
                            i_17 = arg2
                            local function INLINED_7() -- Internal function, doesn't exist in bytecode
                                var141 = i_17.Name
                                i_17 = arg2
                                return var141
                            end
                            if not i_17 or not INLINED_7() then
                                var141 = "unknown"
                            end
                            warn("[Settings] Dropdown click: value or value.Value is nil for setting:", var141)
                        end
                    end)
                end
            end
            clone_upvr_3.menu.button.MouseEnter:Connect(function() -- Line 786
                --[[ Upvalues[5]:
                    [1]: References_upvr (copied, readonly)
                    [2]: var121_upvw (read and write)
                    [3]: Services_upvr (copied, readonly)
                    [4]: clone_upvr_3 (readonly)
                    [5]: any_load_result1_upvr (copied, readonly)
                ]]
                if script.Parent:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    if not var121_upvw then
                        Services_upvr.TweenService:Create(clone_upvr_3.menu, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                        }):Play()
                        return
                    end
                    Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 0;
                    }):Play()
                    Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = any_load_result1_upvr.Text;
                    }):Play()
                end
            end)
            clone_upvr_3.menu.button.MouseLeave:Connect(function() -- Line 801
                --[[ Upvalues[4]:
                    [1]: var121_upvw (read and write)
                    [2]: Services_upvr (copied, readonly)
                    [3]: clone_upvr_3 (readonly)
                    [4]: any_load_result1_upvr (copied, readonly)
                ]]
                if not var121_upvw then
                    Services_upvr.TweenService:Create(clone_upvr_3.menu, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Text;
                    }):Play()
                else
                    Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 1;
                    }):Play()
                    Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = Color3.fromRGB(255, 255, 255);
                    }):Play()
                end
            end)
            ;({})[1] = "button"
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            ;({})[2] = "dropdown"
            for _, v_16 in next, {} do
                clone_upvr = clone_upvr_3.menu[v_16].MouseButton1Click
                clone_upvr = clone_upvr:Connect
                clone_upvr(function() -- Line 811
                    --[[ Upvalues[5]:
                        [1]: References_upvr (copied, readonly)
                        [2]: var121_upvw (read and write)
                        [3]: clone_upvr_3 (readonly)
                        [4]: menu_upvr (copied, readonly)
                        [5]: Services_upvr (copied, readonly)
                    ]]
                    if script.Parent:GetAttribute("freeze") then
                    else
                        References_upvr.Main.sounds.UI.Click:Play()
                        if not var121_upvw then
                            var121_upvw = true
                            clone_upvr_3:TweenSize(UDim2.new(1, -4, 0, clone_upvr_3.menu.menu.AbsoluteSize.Y / menu_upvr.pages.settings.main.UIScale.Scale + 8), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                            clone_upvr_3.menu:TweenSize(UDim2.new(0.5, -10, 0, clone_upvr_3.menu.menu.AbsoluteSize.Y / menu_upvr.pages.settings.main.UIScale.Scale), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                            return
                        end
                        var121_upvw = false
                        Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            BackgroundTransparency = 1;
                        }):Play()
                        Services_upvr.TweenService:Create(clone_upvr_3.menu.menu.value.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(255, 255, 255);
                        }):Play()
                        clone_upvr_3:TweenSize(UDim2.new(1, -4, 0, 40), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                        clone_upvr_3.menu:TweenSize(UDim2.new(0.5, -10, 0, 32), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                    end
                end)
                local _
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            end
        end
    end
end
function module_upvr.init(arg1) -- Line 834
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: Profile_upvr (readonly)
        [4]: setupPitchLineColor_upvr (readonly)
        [5]: module_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    for _, v_5 in next, References_upvr.Main.sounds:GetDescendants() do
        if v_5 then
            local var387
            if var387 then
                var387 = "other"
                for i_6, v_6 in next, arg1.categories do
                    for _, v_7 in next, v_6 do
                        if v_7 and v_5:FindFirstAncestor(v_7) then
                            var387 = i_6
                        end
                    end
                end
                arg1.volume[var387][v_5] = v_5.Volume
            end
        end
    end
    arg1.volume.soundtrack[Services_upvr.SoundService.soundtrack] = 0.5
    game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent"):FireServer("loadNetColors")
    if not Profile_upvr.settings.Visual:FindFirstChild("Home Net Color") then
        local Color3Value_2 = Instance.new("Color3Value")
        Color3Value_2.Name = "Home Net Color"
        Color3Value_2.Value = Color3.fromRGB(255, 255, 255)
        Color3Value_2.Parent = Profile_upvr.settings.Visual
        local StringValue_35 = Instance.new("StringValue")
        StringValue_35.Name = "Category"
        StringValue_35.Value = "Visual"
        StringValue_35.Parent = Color3Value_2
    end
    local var390
    if not Profile_upvr.settings.Visual:FindFirstChild("Away Net Color") then
        var390 = "Color3Value"
        local any_8 = Instance.new(var390)
        var390 = "Away Net Color"
        any_8.Name = var390
        var390 = Color3.fromRGB(255, 255, 255)
        any_8.Value = var390
        var390 = Profile_upvr.settings.Visual
        any_8.Parent = var390
        var390 = Instance.new("StringValue")
        local var392 = var390
        var392.Name = "Category"
        var392.Value = "Visual"
        var392.Parent = any_8
    end
    var392 = Profile_upvr.settings
    if not var392.Visual:FindFirstChild("Pitch Line Color") then
        var392 = "Color3Value"
        local any_6 = Instance.new(var392)
        var392 = "Pitch Line Color"
        any_6.Name = var392
        var392 = Color3.new(1, 1, 1)
        any_6.Value = var392
        var392 = Instance.new("StringValue")
        local var394 = var392
        var394.Name = "Category"
        var394.Value = "Visual"
        var394.Parent = any_6
        any_6.Parent = Profile_upvr.settings.Visual
    end
    var394 = Profile_upvr.settings
    if not var394.Visual:FindFirstChild("Motion Blur") then
        var394 = "BoolValue"
        local any_3 = Instance.new(var394)
        var394 = "Motion Blur"
        any_3.Name = var394
        var394 = false
        any_3.Value = var394
        var394 = Instance.new("StringValue")
        local var396 = var394
        var396.Name = "Category"
        var396.Value = "Visual"
        var396.Parent = any_3
        any_3.Parent = Profile_upvr.settings.Visual
    end
    var396 = Profile_upvr.settings
    if not var396.Visual:FindFirstChild("Pass Markers") then
        var396 = "BoolValue"
        local any_5 = Instance.new(var396)
        var396 = "Pass Markers"
        any_5.Name = var396
        var396 = true
        any_5.Value = var396
        var396 = Instance.new("StringValue")
        local var398 = var396
        var398.Name = "Category"
        var398.Value = "Visual"
        var398.Parent = any_5
        any_5.Parent = Profile_upvr.settings.Visual
    end
    var398 = Profile_upvr.settings
    if not var398.Visual:FindFirstChild("Grass Stains") then
        var398 = "BoolValue"
        local any_4 = Instance.new(var398)
        var398 = "Grass Stains"
        any_4.Name = var398
        var398 = true
        any_4.Value = var398
        var398 = Profile_upvr.settings.Visual
        any_4.Parent = var398
        var398 = Instance.new("StringValue", any_4)
        local var400 = var398
        var400.Name = "Category"
        var400.Value = "visual"
    else
        var400 = Profile_upvr.settings.Visual
        var400 = var400["Grass Stains"]:FindFirstChild("Category")
        local var402 = var400
        if not var402 then
            var402 = Instance.new("StringValue", var400["Grass Stains"])
            var402.Name = "Category"
        end
        var402.Value = "visual"
    end
    if not Profile_upvr.settings.Visual:FindFirstChild("Input Method") then
        local StringValue_36 = Instance.new("StringValue")
        StringValue_36.Name = "Input Method"
        StringValue_36.Value = "Controller"
        StringValue_36.Parent = Profile_upvr.settings.Visual
        local StringValue_10 = Instance.new("StringValue", StringValue_36)
        StringValue_10.Name = "Category"
        StringValue_10.Value = "gameplay"
        local BoolValue_10 = Instance.new("BoolValue", StringValue_36)
        BoolValue_10.Name = "Dropdown"
        BoolValue_10.Value = true
        local StringValue_32 = Instance.new("StringValue", StringValue_36)
        StringValue_32.Name = "Controller"
        StringValue_32.Value = "Controller"
        Instance.new("StringValue", StringValue_36).Name = "KBM"
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Instance.new("StringValue", StringValue_36).Value = "KBM"
        local StringValue_38 = Instance.new("StringValue", StringValue_36)
        StringValue_38.Name = "Mobile"
        StringValue_38.Value = "Mobile"
    else
        local Input_Method = Profile_upvr.settings.Visual["Input Method"]
        if not Input_Method:FindFirstChild("Category") then
            local StringValue_31 = Instance.new("StringValue", Input_Method)
            StringValue_31.Name = "Category"
        end
        StringValue_31.Value = "gameplay"
        if not Input_Method:FindFirstChild("Dropdown") then
            local BoolValue_2 = Instance.new("BoolValue", Input_Method)
            BoolValue_2.Name = "Dropdown"
            BoolValue_2.Value = true
        end
        if not Input_Method:FindFirstChild("Controller") then
            local StringValue_2 = Instance.new("StringValue", Input_Method)
            StringValue_2.Name = "Controller"
            StringValue_2.Value = "Controller"
        end
        if not Input_Method:FindFirstChild("KBM") then
            local StringValue_33 = Instance.new("StringValue", Input_Method)
            StringValue_33.Name = "KBM"
            StringValue_33.Value = "KBM"
        end
        if not Input_Method:FindFirstChild("Mobile") then
            local StringValue_30 = Instance.new("StringValue", Input_Method)
            StringValue_30.Name = "Mobile"
            StringValue_30.Value = "Mobile"
        end
    end
    if not Profile_upvr.settings.Visual:FindFirstChild("Angle Bar") then
        local BoolValue_4 = Instance.new("BoolValue")
        BoolValue_4.Name = "Angle Bar"
        BoolValue_4.Value = false
        local StringValue_29 = Instance.new("StringValue")
        StringValue_29.Name = "Category"
        StringValue_29.Value = "gameplay"
        StringValue_29.Parent = BoolValue_4
        BoolValue_4.Parent = Profile_upvr.settings.Visual
    end
    if not Profile_upvr.settings.Visual:FindFirstChild("Angle Bar Display") then
        local StringValue_40 = Instance.new("StringValue")
        StringValue_40.Name = "Angle Bar Display"
        StringValue_40.Value = "3D"
        local StringValue_19 = Instance.new("StringValue")
        StringValue_19.Name = "Category"
        StringValue_19.Value = "gameplay"
        StringValue_19.Parent = StringValue_40
        local BoolValue_7 = Instance.new("BoolValue")
        BoolValue_7.Name = "Dropdown"
        BoolValue_7.Value = true
        BoolValue_7.Parent = StringValue_40
        local StringValue_42 = Instance.new("StringValue")
        StringValue_42.Name = "2D"
        StringValue_42.Value = "2D"
        StringValue_42.Parent = StringValue_40
        Instance.new("StringValue").Name = "3D"
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Instance.new("StringValue").Value = "3D"
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Instance.new("StringValue").Parent = StringValue_40
        StringValue_40.Parent = Profile_upvr.settings.Visual
    end
    if not Profile_upvr.settings.Visual:FindFirstChild("Time") then
        local StringValue_15 = Instance.new("StringValue")
        StringValue_15.Name = "Time"
        StringValue_15.Value = "Auto"
        StringValue_15.Parent = Profile_upvr.settings.Visual
        local StringValue_39 = Instance.new("StringValue", StringValue_15)
        StringValue_39.Name = "Category"
        StringValue_39.Value = "visual"
        local BoolValue_3 = Instance.new("BoolValue", StringValue_15)
        BoolValue_3.Name = "Dropdown"
        BoolValue_3.Value = true
        local StringValue_27 = Instance.new("StringValue", StringValue_15)
        StringValue_27.Name = "Auto"
        StringValue_27.Value = "Auto"
        Instance.new("StringValue", StringValue_15).Name = "Morning"
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Instance.new("StringValue", StringValue_15).Value = "Morning"
        local StringValue_4 = Instance.new("StringValue", StringValue_15)
        StringValue_4.Name = "Afternoon"
        StringValue_4.Value = "Afternoon"
        local StringValue_25 = Instance.new("StringValue", StringValue_15)
        StringValue_25.Name = "Night"
        StringValue_25.Value = "Night"
    else
        local Time = Profile_upvr.settings.Visual.Time
        local Category = Time:FindFirstChild("Category")
        if not Category then
            Category = Instance.new("StringValue", Time)
            Category.Name = "Category"
        end
        Category.Value = "visual"
        if not Time:FindFirstChild("Dropdown") then
            local BoolValue_5 = Instance.new("BoolValue", Time)
            BoolValue_5.Name = "Dropdown"
            BoolValue_5.Value = true
        end
        if not Time:FindFirstChild("Auto") then
            local StringValue_37 = Instance.new("StringValue", Time)
            StringValue_37.Name = "Auto"
            StringValue_37.Value = "Auto"
        end
        if not Time:FindFirstChild("Morning") then
            local StringValue_24 = Instance.new("StringValue", Time)
            StringValue_24.Name = "Morning"
            StringValue_24.Value = "Morning"
        end
        if not Time:FindFirstChild("Afternoon") then
            local StringValue_34 = Instance.new("StringValue", Time)
            StringValue_34.Name = "Afternoon"
            StringValue_34.Value = "Afternoon"
        end
        if not Time:FindFirstChild("Night") then
            local StringValue_23 = Instance.new("StringValue", Time)
            StringValue_23.Name = "Night"
            StringValue_23.Value = "Night"
        end
    end
    for _, v_8 in pairs(Profile_upvr.settings.Audio:GetChildren()) do
        if v_8 and v_8:IsA("ValueBase") then
            arg1:create(v_8)
        end
    end
    local tbl_4 = {}
    if Profile_upvr.settings.Visual:FindFirstChild("Angle Bar") then
        tbl_4["Angle Bar"] = Profile_upvr.settings.Visual["Angle Bar"]
    end
    if Profile_upvr.settings.Visual:FindFirstChild("Angle Bar Display") then
        tbl_4["Angle Bar Display"] = Profile_upvr.settings.Visual["Angle Bar Display"]
    end
    if Profile_upvr.settings.Visual:FindFirstChild("Input Method") then
        tbl_4["Input Method"] = Profile_upvr.settings.Visual["Input Method"]
    end
    if Profile_upvr.settings:FindFirstChild("Gameplay") then
        for _, v_9 in pairs(Profile_upvr.settings.Gameplay:GetChildren()) do
            if v_9 and v_9:IsA("ValueBase") and not tbl_4[v_9.Name] then
                tbl_4[v_9.Name] = v_9
            end
        end
    else
        warn("Player profile is missing the 'Gameplay' settings folder.")
    end
    for _, v_10 in ipairs({"Input Method", "Angle Bar", "Field of View", "Strong Foot", "Camera Mode", "Occluded Net Transparency"}) do
        if tbl_4[v_10] then
            arg1:create(tbl_4[v_10])
            tbl_4[v_10] = nil
        end
    end
    for _, v_11 in pairs(tbl_4) do
        if v_11 then
            arg1:create(v_11)
        end
    end
    local tbl_3 = {}
    for _, v_12 in pairs(Profile_upvr.settings.Visual:GetChildren()) do
        if v_12 and v_12:IsA("ValueBase") and v_12.Name ~= "Input Method" and v_12.Name ~= "Angle Bar" then
            tbl_3[v_12.Name] = v_12
        end
    end
    local tbl_2 = {"Field Pattern", "Field Roughness", "Field Material", "Shadows", "Stadium", "Weather Effects", "Time", "Grass Stains", "Dynamic Goal Nets", "Pass Markers", "Motion Blur", "Home Net Color", "Away Net Color", "Pitch Line Color"}
    for _, v_13 in next, tbl_2 do
        if tbl_3[v_13] then
            arg1:create(tbl_3[v_13])
        end
    end
    for i_14, v_14 in next, tbl_3 do
        if not table.find(tbl_2, i_14) then
            arg1:create(v_14)
        end
    end
    setupPitchLineColor_upvr()
    updateMotionBlur(Profile_upvr.settings.Visual["Motion Blur"].Value)
    if Profile_upvr.settings.Visual:FindFirstChild("Time") then
        Profile_upvr.settings.Visual.Time.Changed:Connect(function() -- Line 1237
            --[[ Upvalues[1]:
                [1]: References_upvr (copied, readonly)
            ]]
            if References_upvr.Main and References_upvr.Main.config and References_upvr.Main.config.Weather then
                local Value_upvr = References_upvr.Main.config.Weather.Value
                task.spawn(function() -- Line 1241
                    --[[ Upvalues[2]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Value_upvr (readonly)
                    ]]
                    local config = References_upvr.Main.config
                    if Value_upvr == "Clear" then
                        config = "Overcast"
                    else
                        config = "Clear"
                    end
                    config.Weather.Value = config
                    task.wait(0.1)
                    References_upvr.Main.config.Weather.Value = Value_upvr
                end)
            end
        end)
    end
    if _G._root and Profile_upvr.settings.Visual:FindFirstChild("Angle Bar") then
        _G._root:SetAttribute("AngleBarEnabled", Profile_upvr.settings.Visual["Angle Bar"].Value)
    end
    if Profile_upvr.settings.Visual:FindFirstChild("Angle Bar Display") or Profile_upvr.settings.Visual:FindFirstChild("Angle Bar") then
        module_upvr:_updateAngleBarDisplayVisibility()
    end
end
game:GetService("ReplicatedStorage"):WaitForChild("NetColorRemoteEvent").OnClientEvent:Connect(function(arg1, ...) -- Line 1262
    --[[ Upvalues[3]:
        [1]: Profile_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [113] 71. Error Block 21 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [120.1]
    updatePitchLineColor(Profile_upvr.settings.Visual[nil].Value)
    do
        return
    end
    -- KONSTANTERROR: [113] 71. Error Block 21 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [125] 79. Error Block 22 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [125] 79. Error Block 22 end (CF ANALYSIS FAILED)
end)
function module_upvr._updateAngleBarDisplayVisibility(arg1) -- Line 1419
    --[[ Upvalues[3]:
        [1]: Profile_upvr (readonly)
        [2]: PlayerGui_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 34 start (CF ANALYSIS FAILED)
    local var457
    if _G._root then
        var457 = _G
    end
    local function INLINED_8() -- Internal function, doesn't exist in bytecode
        var457 = Profile_upvr.settings.Visual["Angle Bar Display"].Value
        return var457
    end
    if not Profile_upvr.settings.Visual:FindFirstChild("Angle Bar Display") or not INLINED_8() then
        var457 = "3D"
    end
    local UI = PlayerGui_upvr:FindFirstChild("UI")
    local main = PlayerGui_upvr:FindFirstChild("main")
    -- KONSTANTERROR: [0] 1. Error Block 34 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [132] 96. Error Block 20 start (CF ANALYSIS FAILED)
    main.anglebar.Visible = false
    do
        return
    end
    -- KONSTANTERROR: [132] 96. Error Block 20 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [138] 100. Error Block 40 start (CF ANALYSIS FAILED)
    if main and main:FindFirstChild("anglebar") then
        main.anglebar.Visible = var457._root:GetAttribute("AngleBarEnabled") or false
    end
    if UI then
        local AngleBar = UI:FindFirstChild("AngleBar")
        local Bar = UI:FindFirstChild("Bar")
        if AngleBar then
            AngleBar.Visible = false
        end
        if Bar then
            Bar.Visible = false
        end
    end
    -- KONSTANTERROR: [138] 100. Error Block 40 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript bindings bindings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:53
-- Luau version 6, Types version 3
-- Time taken: 0.027963 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local any_load_result1_upvr = _engine:load("Theme", "utils")
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local module = {}
local any_new_result1_upvr_2 = _engine:load("Binder").new(script.Parent)
function module.create(arg1, arg2, arg3) -- Line 19
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: any_new_result1_upvr_2 (readonly)
        [3]: Services_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
    ]]
    local clone_upvr = References_upvr.Main.ui.bind:Clone()
    clone_upvr.Parent = arg3
    clone_upvr.Name = arg2.Name
    clone_upvr.label.Text = string.upper(arg2.Name)
    local var10
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var10 = string.upper(arg2.Value)
        return var10
    end
    if arg2.Value == "" or not INLINED() then
        var10 = "NOT SET"
    end
    clone_upvr.value.value.Text = var10
    var10 = clone_upvr.value
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var10 = Color3.fromRGB(255, 255, 255)
        return var10
    end
    if arg2.Value == "" or not INLINED_2() then
        var10 = Color3.fromRGB(180, 50, 50)
    end
    var10.value.TextColor3 = var10
    var10 = any_new_result1_upvr_2.event
    var10.Event:Connect(function(arg1_2) -- Line 29
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: clone_upvr (readonly)
        ]]
        if arg1_2 then
            local var13
            if arg1_2.Name == var13 then
                var13 = clone_upvr.value
                local function INLINED_5() -- Internal function, doesn't exist in bytecode
                    var13 = string.upper(arg2.Value)
                    return var13
                end
                if arg2.Value == "" or not INLINED_5() then
                    var13 = "NOT SET"
                end
                var13.value.Text = var13
                var13 = clone_upvr.value
                local function INLINED_6() -- Internal function, doesn't exist in bytecode
                    var13 = Color3.fromRGB(255, 255, 255)
                    return var13
                end
                if arg2.Value == "" or not INLINED_6() then
                    var13 = Color3.fromRGB(180, 50, 50)
                end
                var13.value.TextColor3 = var13
            end
        end
    end)
    var10 = clone_upvr.value.button
    var10.MouseEnter:Connect(function() -- Line 37
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.value, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
            }):Play()
        end
    end)
    var10 = clone_upvr.value.button
    var10.MouseLeave:Connect(function() -- Line 46
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: clone_upvr (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(clone_upvr.value, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    var10 = clone_upvr.value.button
    var10.MouseButton1Click:Connect(function() -- Line 50
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: any_new_result1_upvr_2 (copied, readonly)
            [3]: arg2 (readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Click:Play()
            any_new_result1_upvr_2:prompt(arg2)
        end
    end)
end
local any_new_result1_upvr = _engine:load("Network").new()
function module.createMobileVisibility(arg1, arg2, arg3) -- Line 60
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
    ]]
    local clone_upvr_2 = References_upvr.Main.ui.bind:Clone()
    clone_upvr_2.Parent = arg3
    clone_upvr_2.Name = arg2.Name
    clone_upvr_2.label.Text = string.upper(arg2.Name:gsub(" %(Mobile%)$", ""))
    local function updateDisplay() -- Line 67
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: clone_upvr_2 (readonly)
        ]]
        -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
        -- KONSTANTERROR: [0] 1. Error Block 43 start (CF ANALYSIS FAILED)
        local var27
        if var27 == "boolean" then
            -- KONSTANTWARNING: GOTO [17] #14
        end
        -- KONSTANTERROR: [0] 1. Error Block 43 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [13] 11. Error Block 52 start (CF ANALYSIS FAILED)
        if arg2.Value ~= "true" then
            local _ = false
            -- KONSTANTWARNING: Skipped task `defvar` above
        else
        end
        var27 = clone_upvr_2.value:FindFirstChild("value")
        if not var27 then
            var27 = clone_upvr_2.value
        end
        if var27 then
            local children_3 = var27:IsA("TextLabel")
            if children_3 then
                if true then
                    children_3 = "VISIBLE"
                else
                    children_3 = "HIDDEN"
                end
                var27.Text = children_3
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                local function INLINED_8() -- Internal function, doesn't exist in bytecode
                    children_3 = Color3.fromRGB(100, 255, 100)
                    return children_3
                end
                if not true or not INLINED_8() then
                    children_3 = Color3.fromRGB(255, 100, 100)
                end
                var27.TextColor3 = children_3
                return
            end
        end
        local var30
        if clone_upvr_2.value:IsA("TextLabel") then
            var30 = clone_upvr_2
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if true then
                var30 = "VISIBLE"
            else
                var30 = "HIDDEN"
            end
            var30.value.Text = var30
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if not true or not Color3.fromRGB(100, 255, 100) then
            end
            clone_upvr_2.value.TextColor3 = Color3.fromRGB(255, 100, 100)
        end
        -- KONSTANTERROR: [13] 11. Error Block 52 end (CF ANALYSIS FAILED)
    end
    updateDisplay()
    arg2.Changed:Connect(updateDisplay)
    clone_upvr_2.value.button.MouseEnter:Connect(function() -- Line 94
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr_2 (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr_2.value, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr.Text:Lerp(Color3.new(0, 0, 0), 0.15);
            }):Play()
        end
    end)
    clone_upvr_2.value.button.MouseLeave:Connect(function() -- Line 103
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: clone_upvr_2 (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(clone_upvr_2.value, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    clone_upvr_2.value.button.MouseButton1Click:Connect(function() -- Line 107
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: arg2 (readonly)
            [3]: any_new_result1_upvr (copied, readonly)
        ]]
        if script.Parent:GetAttribute("freeze") then
        else
            References_upvr.Main.sounds.UI.Click:Play()
            print("[MOBILE VISIBILITY DEBUG] Toggling visibility for:", arg2.Name, "from", arg2.Value)
            print("[MOBILE VISIBILITY DEBUG] Value type:", type(arg2.Value))
            local Value_2 = arg2.Value
            print("[MOBILE VISIBILITY DEBUG] Current value:", Value_2, "Type:", type(Value_2))
            local var37
            if type(Value_2) == "boolean" then
                var37 = Value_2
            elseif Value_2 ~= "true" then
                var37 = false
            else
                var37 = true
            end
            local var38 = not var37
            print("[MOBILE VISIBILITY DEBUG] Calculated new value:", var38)
            arg2.Value = var38
            print("[MOBILE VISIBILITY DEBUG] Final value in object:", arg2.Value)
            any_new_result1_upvr:send("replicateValue", arg2, var38)
            if _G._root then
                _G._root:SetAttribute("resetTools", true)
                print("[MOBILE VISIBILITY DEBUG] Set resetTools attribute on _G._root")
            end
        end
    end)
end
function module.clearBindings(arg1) -- Line 146
    --[[ Upvalues[1]:
        [1]: menu_upvr (readonly)
    ]]
    for _, v in pairs(menu_upvr.pages.settings.main.pages.bindings.misc.scroll.main:GetChildren()) do
        if v:IsA("Frame") then
            v:Destroy()
        end
    end
    for _, v_2 in pairs(menu_upvr.pages.settings.main.pages.bindings.tools.scroll.main:GetChildren()) do
        if v_2:IsA("Frame") and v_2:FindFirstChild("container") then
            for _, v_3 in pairs(v_2.container:GetChildren()) do
                if v_3:IsA("Frame") then
                    v_3:Destroy()
                end
            end
        end
    end
end
local Profile_3_upvr = References_upvr.Profile
function module.refreshBindings(arg1) -- Line 165
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: Profile_3_upvr (readonly)
        [4]: menu_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg1:clearBindings()
    local getEffectiveInputMethod_result1 = (function() -- Line 170, Named "getEffectiveInputMethod"
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        local Profile_2 = References_upvr.Profile
        if Profile_2 and Profile_2.settings and Profile_2.settings.Visual and Profile_2.settings.Visual:FindFirstChild("Input Method") then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            local Value = Profile_2.settings.Visual:FindFirstChild("Input Method").Value
            if Value == "KBM" then
                return "KBM"
            end
            if Value == "Controller" then
                return "Controller"
            end
            if Value == "Mobile" then
                return "Touch"
            end
        end
        if Services_upvr.UserInputService.TouchEnabled then
            return "Touch"
        end
        if Services_upvr.UserInputService.GamepadEnabled then
            return "Controller"
        end
        return "KBM"
    end)()
    print("[BINDINGS DEBUG] Input method detected:", getEffectiveInputMethod_result1)
    local var82
    if getEffectiveInputMethod_result1 ~= "Controller" then
    else
    end
    if getEffectiveInputMethod_result1 ~= "Touch" then
        var82 = false
    else
        var82 = true
    end
    for _, v_4 in ipairs({"Dribble", "Precision", "Tap Right", "Tap Left", "Flick Up", "Drag Back", "Chop Right", "Chop Left", "Stop Ball"}) do
        ({})[v_4] = true
        local var87
    end
    for _, v_5 in next, Profile_3_upvr.binds:GetChildren() do
        if v_5 then
            for _, v_6 in next, v_5:GetChildren() do
                local var92 = false
                if var82 then
                    var92 = v_6.Name:find("%(Mobile%)$")
                    local var93
                elseif true then
                    var92 = v_6.Name:find("%(Gamepad%)$")
                else
                    var93 = not v_6.Name:find("%(Gamepad%)$")
                    if var93 then
                        var93 = not v_6.Name:find("%(Mobile%)$")
                    end
                    var92 = var93
                end
                if var92 then
                    local var94
                    if var94 == "misc" then
                        if var82 then
                            var94 = arg1:createMobileVisibility
                            var94(v_6, menu_upvr.pages.settings.main.pages.bindings.misc.scroll.main)
                        else
                            var94 = arg1:create
                            var94(v_6, menu_upvr.pages.settings.main.pages.bindings.misc.scroll.main)
                        end
                    else
                        var94 = string.lower(v_5.Name)
                        if string.lower(v_5.Name) == "skills" then
                            if var87[v_6.Name:gsub(" %(Mobile%)$", ""):gsub(" %(Gamepad%)$", "")] then
                                var94 = "dribble"
                            else
                                var94 = "skills"
                            end
                        end
                        if menu_upvr.pages.settings.main.pages.bindings.tools.scroll.main:FindFirstChild(var94) then
                            if var82 then
                                arg1:createMobileVisibility(v_6, menu_upvr.pages.settings.main.pages.bindings.tools.scroll.main[var94].container)
                            else
                                arg1:create(v_6, menu_upvr.pages.settings.main.pages.bindings.tools.scroll.main[var94].container)
                            end
                        end
                    end
                end
            end
        end
    end
end
function module.init(arg1) -- Line 271
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    arg1:refreshBindings()
    Services_upvr.UserInputService.GamepadConnected:Connect(function() -- Line 276
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:refreshBindings()
    end)
    Services_upvr.UserInputService.GamepadDisconnected:Connect(function() -- Line 280
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        task.wait(0.1)
        arg1:refreshBindings()
    end)
    local Profile = References_upvr.Profile
    if Profile and Profile.settings and Profile.settings.Visual and Profile.settings.Visual:FindFirstChild("Input Method") then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        Profile.settings.Visual:FindFirstChild("Input Method").Changed:Connect(function() -- Line 291
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            print("[BINDINGS DEBUG] Input Method setting changed, refreshing bindings")
            task.wait(0.1)
            arg1:refreshBindings()
        end)
    end
end
return module
ModuleScript kit creator kit creator
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:54
-- Luau version 6, Types version 3
-- Time taken: 0.035798 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
local main_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100).pages["kit creator"].main.main
local module = {
    debounce = {};
}
local any_load_result1_upvr = _engine:load("FormatNumber", "utils")
function module.update(arg1) -- Line 22
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: Profile_upvr (readonly)
        [3]: main_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
    ]]
    if References_upvr.Main.presets:FindFirstChild(tostring(Profile_upvr.team.KitPreset.Value)) then
        for _, v in next, {"front", "back"} do
            if main_upvr[v].rig:FindFirstChild("Shirt") then
                main_upvr[v].rig.Shirt:Destroy()
            end
            if main_upvr[v].rig:FindFirstChild("Pants") then
                main_upvr[v].rig.Pants.Color3 = Profile_upvr.team.PantsColour.Value
            end
            local clone = References_upvr.Main.presets[tostring(Profile_upvr.team.KitPreset.Value)]:Clone()
            clone.Name = "Shirt"
            clone.Parent = main_upvr[v].rig
            clone.Color3 = Profile_upvr.team.KitColour.Value
        end
    end
    main_upvr.preset.buttons.label.Text = string.format("KIT TYPE %s", tostring(Profile_upvr.team.KitPreset.Value))
    main_upvr.back.name.TextColor3 = Profile_upvr.team.TextColour.Value
    main_upvr.back.number.TextColor3 = Profile_upvr.team.TextColour.Value
    main_upvr.name.input.input.Text = Profile_upvr.team.TeamName.Value
    main_upvr.name.input.input.PlaceholderText = Profile_upvr.team.TeamName.Value
    main_upvr.abbreviation.input.input.Text = string.upper(Profile_upvr.team.Abbreviation.Value)
    main_upvr.abbreviation.input.input.PlaceholderText = string.upper(Profile_upvr.team.Abbreviation.Value)
    main_upvr.kit.value.color.BackgroundColor3 = Profile_upvr.team.KitColour.Value
    main_upvr.kit.value.gradient.BackgroundColor3 = Profile_upvr.team.KitColour.Value
    main_upvr.kit.value.value.Text = string.format("%s,%s,%s", any_load_result1_upvr.FormatDecimal(Profile_upvr.team.KitColour.Value.R * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.KitColour.Value.G * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.KitColour.Value.B * 255, 0))
    main_upvr.pants.value.color.BackgroundColor3 = Profile_upvr.team.PantsColour.Value
    main_upvr.pants.value.gradient.BackgroundColor3 = Profile_upvr.team.PantsColour.Value
    main_upvr.pants.value.value.Text = string.format("%s,%s,%s", any_load_result1_upvr.FormatDecimal(Profile_upvr.team.PantsColour.Value.R * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.PantsColour.Value.G * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.PantsColour.Value.B * 255, 0))
    main_upvr.text.value.color.BackgroundColor3 = Profile_upvr.team.TextColour.Value
    main_upvr.text.value.gradient.BackgroundColor3 = Profile_upvr.team.TextColour.Value
    main_upvr.text.value.value.Text = string.format("%s,%s,%s", any_load_result1_upvr.FormatDecimal(Profile_upvr.team.TextColour.Value.R * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.TextColour.Value.G * 255, 0), any_load_result1_upvr.FormatDecimal(Profile_upvr.team.TextColour.Value.B * 255, 0))
end
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local any_new_result1_upvr_2 = _engine:load("Network").new()
local any_load_result1_upvr_2 = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("ColorPicker").new(script)
function module.init(arg1) -- Line 63
    --[[ Upvalues[8]:
        [1]: main_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: Profile_upvr (readonly)
        [6]: any_new_result1_upvr_2 (readonly)
        [7]: any_load_result1_upvr_2 (readonly)
        [8]: any_new_result1_upvr (readonly)
    ]]
    for _, v_2_upvr in next, {"front", "back"} do
        local rig = main_upvr[v_2_upvr].rig
        rig:Destroy()
        local pcall_result1, pcall_result2_2 = pcall(function() -- Line 71
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
        end)
        if pcall_result1 and pcall_result2_2 then
            for _, v_3 in next, pcall_result2_2:GetChildren() do
                if v_3:IsA("BodyColors") then
                    v_3.Parent = rig:Clone()
                elseif v_3:IsA("Decal") and v_3.Name == "face" then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    rig:Clone().Head.face.Texture = v_3.Texture
                end
            end
        end
        local clone_upvr_2 = rig:Clone()
        task.delay(5, function() -- Line 85
            --[[ Upvalues[3]:
                [1]: clone_upvr_2 (readonly)
                [2]: main_upvr (copied, readonly)
                [3]: v_2_upvr (readonly)
            ]]
            clone_upvr_2.Parent = main_upvr[v_2_upvr]
        end)
    end
    task.delay(7, function() -- Line 90
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    for _, v_4_upvr in next, {"next", "prev"} do
        clone_upvr_2 = main_upvr.preset.buttons
        local var109 = clone_upvr_2[v_4_upvr]
        clone_upvr_2 = var109.button.MouseEnter
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 99
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: main_upvr (copied, readonly)
            ]]
            if script:GetAttribute("freeze") then
            else
                References_upvr.Main.sounds.UI.Hover:Play()
                Services_upvr.TweenService:Create(main_upvr.preset.buttons, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(main_upvr.preset.buttons.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
                Services_upvr.TweenService:Create(main_upvr.preset.buttons.next.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
                Services_upvr.TweenService:Create(main_upvr.preset.buttons.prev.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
            end
        end)
        clone_upvr_2 = var109.button.MouseLeave
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 111
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: main_upvr (copied, readonly)
            ]]
            Services_upvr.TweenService:Create(main_upvr.preset.buttons, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 1;
            }):Play()
            Services_upvr.TweenService:Create(main_upvr.preset.buttons.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(35, 39, 50);
            }):Play()
            Services_upvr.TweenService:Create(main_upvr.preset.buttons.next.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(35, 39, 50);
            }):Play()
            Services_upvr.TweenService:Create(main_upvr.preset.buttons.prev.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(35, 39, 50);
            }):Play()
        end)
        clone_upvr_2 = var109.button.MouseButton1Click
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 118
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: v_4_upvr (readonly)
                [4]: Profile_upvr (copied, readonly)
                [5]: any_new_result1_upvr_2 (copied, readonly)
            ]]
            if script:GetAttribute("freeze") then
            else
                References_upvr.Main.sounds.UI.Click:Play()
                if not arg1.debounce["kit type"] then
                    arg1.debounce["kit type"] = true
                    if v_4_upvr == "next" and Profile_upvr.team.KitPreset.Value == #References_upvr.Main.presets:GetChildren() then
                        Profile_upvr.team.KitPreset.Value = 1
                    elseif v_4_upvr == "prev" and Profile_upvr.team.KitPreset.Value == 1 then
                        Profile_upvr.team.KitPreset.Value = #References_upvr.Main.presets:GetChildren()
                    elseif v_4_upvr == "next" then
                        local KitPreset_4 = Profile_upvr.team.KitPreset
                        KitPreset_4.Value += 1
                    elseif v_4_upvr == "prev" then
                        local KitPreset_2 = Profile_upvr.team.KitPreset
                        KitPreset_2.Value -= 1
                    end
                    any_new_result1_upvr_2:send("replicateValue", Profile_upvr.team.KitPreset, Profile_upvr.team.KitPreset.Value)
                    task.delay(0.35, function() -- Line 139
                        --[[ Upvalues[1]:
                            [1]: arg1 (copied, readonly)
                        ]]
                        arg1.debounce["kit type"] = nil
                    end)
                end
            end
        end)
    end
    for _, v_5_upvr in next, {"name", "abbreviation"} do
        clone_upvr_2 = main_upvr
        local var125_upvr = clone_upvr_2[v_5_upvr]
        clone_upvr_2 = var125_upvr.input.input.FocusLost
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 149
            --[[ Upvalues[6]:
                [1]: References_upvr (copied, readonly)
                [2]: v_5_upvr (readonly)
                [3]: var125_upvr (readonly)
                [4]: arg1 (readonly)
                [5]: any_new_result1_upvr_2 (copied, readonly)
                [6]: Profile_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            if v_5_upvr == "name" and 25 < #var125_upvr.input.input.Text or v_5_upvr == "abbreviation" and 4 < #var125_upvr.input.input.Text then
                var125_upvr.input.input.Text = var125_upvr.input.input.PlaceholderText
            else
                if not arg1.debounce[v_5_upvr] and var125_upvr.input.input.Text ~= "" then
                    arg1.debounce[v_5_upvr] = true
                    local any_fetch_result1 = any_new_result1_upvr_2:fetch("filterString", var125_upvr.input.input.Text)
                    if any_fetch_result1 == "filter error" then
                        var125_upvr.input.input.Text = var125_upvr.input.input.PlaceholderText
                    elseif v_5_upvr == "name" then
                        var125_upvr.input.input.Text = any_fetch_result1
                        var125_upvr.input.input.PlaceholderText = var125_upvr.input.input.Text
                        Profile_upvr.team.TeamName.Value = any_fetch_result1
                        any_new_result1_upvr_2:send("replicateValue", Profile_upvr.team.TeamName, Profile_upvr.team.TeamName.Value)
                    elseif v_5_upvr == "abbreviation" then
                        var125_upvr.input.input.Text = string.upper(any_fetch_result1)
                        var125_upvr.input.input.PlaceholderText = var125_upvr.input.input.Text
                        Profile_upvr.team.Abbreviation.Value = string.upper(any_fetch_result1)
                        any_new_result1_upvr_2:send("replicateValue", Profile_upvr.team.Abbreviation, Profile_upvr.team.Abbreviation.Value)
                    end
                    task.delay(0.35, function() -- Line 178
                        --[[ Upvalues[2]:
                            [1]: arg1 (copied, readonly)
                            [2]: v_5_upvr (copied, readonly)
                        ]]
                        arg1.debounce[v_5_upvr] = nil
                    end)
                    return
                end
                var125_upvr.input.input.Text = var125_upvr.input.input.PlaceholderText
            end
        end)
    end
    local tbl_4 = {}
    var125_upvr = "text"
    tbl_4[1] = "kit"
    tbl_4[2] = "pants"
    tbl_4[3] = var125_upvr
    for _, v_6_upvr in next, tbl_4 do
        clone_upvr_2 = main_upvr
        var125_upvr = clone_upvr_2[v_6_upvr]
        local var130_upvr = var125_upvr
        clone_upvr_2 = var130_upvr.value.button.MouseEnter
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 190
            --[[ Upvalues[6]:
                [1]: References_upvr (copied, readonly)
                [2]: v_6_upvr (readonly)
                [3]: Services_upvr (copied, readonly)
                [4]: var130_upvr (readonly)
                [5]: any_load_result1_upvr_2 (copied, readonly)
                [6]: Profile_upvr (copied, readonly)
            ]]
            if script:GetAttribute("freeze") then
            else
                References_upvr.Main.sounds.UI.Hover:Play()
                if v_6_upvr == "kit" then
                    Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr_2.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.KitColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.KitColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    return
                end
                if v_6_upvr == "pants" then
                    Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr_2.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.PantsColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.PantsColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    return
                end
                if v_6_upvr == "text" then
                    Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr_2.Text:Lerp(Color3.new(0, 0, 0), 0.15);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.TextColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.TextColour.Value:Lerp(Color3.new(0, 0, 0), 0.05);
                    }):Play()
                end
            end
        end)
        clone_upvr_2 = var130_upvr.value.button.MouseLeave
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 212
            --[[ Upvalues[5]:
                [1]: v_6_upvr (readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: var130_upvr (readonly)
                [4]: any_load_result1_upvr_2 (copied, readonly)
                [5]: Profile_upvr (copied, readonly)
            ]]
            if v_6_upvr == "kit" then
                Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr_2.Text;
                }):Play()
                Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = Profile_upvr.team.KitColour.Value;
                }):Play()
                Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = Profile_upvr.team.KitColour.Value;
                }):Play()
            else
                if v_6_upvr == "pants" then
                    Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr_2.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.PantsColour.Value;
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.PantsColour.Value;
                    }):Play()
                    return
                end
                if v_6_upvr == "text" then
                    Services_upvr.TweenService:Create(var130_upvr.value, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr_2.Text;
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.color, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.TextColour.Value;
                    }):Play()
                    Services_upvr.TweenService:Create(var130_upvr.value.gradient, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = Profile_upvr.team.TextColour.Value;
                    }):Play()
                end
            end
        end)
        clone_upvr_2 = var130_upvr.value.button.MouseButton1Click
        clone_upvr_2 = clone_upvr_2:Connect
        clone_upvr_2(function() -- Line 228
            --[[ Upvalues[4]:
                [1]: References_upvr (copied, readonly)
                [2]: v_6_upvr (readonly)
                [3]: any_new_result1_upvr (copied, readonly)
                [4]: Profile_upvr (copied, readonly)
            ]]
            if script:GetAttribute("freeze") then
            else
                References_upvr.Main.sounds.UI.Click:Play()
                if v_6_upvr == "kit" then
                    any_new_result1_upvr:prompt(Profile_upvr.team.KitColour)
                    return
                end
                if v_6_upvr == "pants" then
                    any_new_result1_upvr:prompt(Profile_upvr.team.PantsColour)
                    return
                end
                if v_6_upvr == "text" then
                    any_new_result1_upvr:prompt(Profile_upvr.team.TextColour)
                end
            end
        end)
    end
    for _, v_7 in next, Profile_upvr.team:GetChildren() do
        if v_7 then
            var130_upvr = v_7:IsA("ValueBase")
            if var130_upvr then
                var130_upvr = v_7.Changed
                var130_upvr = var130_upvr:Connect
                var130_upvr(function() -- Line 249
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1:update()
                end)
            end
        end
    end
end
return module
ModuleScript servers servers
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:56
-- Luau version 6, Types version 3
-- Time taken: 0.028808 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_CreateGroup_result1_upvr = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.private:GetDescendants(), TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
any_CreateGroup_result1_upvr:FadeOut()
local module = {
    privateServerDebounce = false;
    current = "main";
    index = {
        main = 1;
        training = 2;
    };
    tabs = {
        debounce = false;
    };
    pages = {};
    cache = {};
}
local function codeExists_upvr(arg1) -- Line 36, Named "codeExists"
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    for _, v in next, References_upvr.Main.servers.private:GetChildren() do
        if v and v:FindFirstChild("code") and v:FindFirstChild("access") and string.lower(v.code.Value) == string.lower(arg1) and v.access.Value ~= "" then
            return v
        end
    end
    return false
end
function module.select(arg1, arg2) -- Line 46
    --[[ Upvalues[1]:
        [1]: menu_upvr (readonly)
    ]]
    if not arg1.cache.buttonDebounce and arg1.current ~= arg2.Name and arg2.Name ~= "back" then
        arg1.cache.buttonDebounce = true
        if arg1.pages[arg1.current] and arg1.pages[arg1.current].close then
            task.spawn(function() -- Line 51
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.pages[arg1.current]:close()
            end)
        end
        if arg1.pages[arg2.Name] and arg1.pages[arg2.Name].open then
            task.spawn(function() -- Line 57
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                ]]
                arg1.pages[arg2.Name]:open()
            end)
        end
        arg1.current = arg2.Name
        menu_upvr.pages.servers.main.pages.UIPageLayout:JumpTo(menu_upvr.pages.servers.main.pages[arg2.Name])
        task.wait(0.1)
        arg1.cache.buttonDebounce = nil
    end
end
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_new_result1_upvr_2 = _engine:load("Network").new()
local any_new_result1_upvr = _engine:load("Notification").new()
function module.init(arg1) -- Line 70
    --[[ Upvalues[8]:
        [1]: Services_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
        [5]: codeExists_upvr (readonly)
        [6]: any_CreateGroup_result1_upvr (readonly)
        [7]: any_new_result1_upvr_2 (readonly)
        [8]: any_new_result1_upvr (readonly)
    ]]
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_3, arg2) -- Line 73
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 66 start (CF ANALYSIS FAILED)
        if arg1_3.KeyCode == Enum.KeyCode.ButtonR1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not arg1.tabs.debounce then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == #menu_upvr.pages.servers.main.top:GetChildren() - 2 then
                for i_2, v_2 in next, arg1.index do
                    if v_2 and v_2 == 1 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.servers.main.pages[i_2])
                        task.delay(0.2, function() -- Line 81
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 99
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [162] #111
            end
            -- KONSTANTWARNING: GOTO [102] #69
        end
        -- KONSTANTERROR: [0] 1. Error Block 66 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [162] 111. Error Block 64 start (CF ANALYSIS FAILED)
        if arg1_3.KeyCode == Enum.KeyCode.ButtonL1 and arg1.index[arg1.current] and script:GetAttribute("toggle") then
            arg1.tabs.debounce = true
            if arg1.index[arg1.current] == 1 then
                for i_3, v_3 in next, arg1.index do
                    if v_3 and v_3 == #menu_upvr.pages.servers.main.top:GetChildren() - 2 then
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(menu_upvr.pages.servers.main.pages[i_3])
                        task.delay(0.2, function() -- Line 109
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.tabs.debounce = false
                        end)
                        return
                    end
                end
                task.delay(0.2, function() -- Line 127
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.tabs.debounce = false
                end)
                -- KONSTANTWARNING: GOTO [317] #216
            end
            -- KONSTANTWARNING: GOTO [258] #175
        end
        -- KONSTANTERROR: [162] 111. Error Block 64 end (CF ANALYSIS FAILED)
    end)
    for _, v_4_upvr in next, menu_upvr.pages.servers.main.top:GetChildren() do
        if v_4_upvr and v_4_upvr:IsA("Frame") then
            local button_2 = v_4_upvr:FindFirstChild("button")
            if not button_2 then
                button_2 = v_4_upvr:FindFirstChild("back")
            end
            local image_upvr = v_4_upvr:FindFirstChild("image", true)
            local label_upvr = v_4_upvr:FindFirstChild("label", true)
            button_2.MouseEnter:Connect(function() -- Line 141
                --[[ Upvalues[5]:
                    [1]: References_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_4_upvr (readonly)
                    [4]: image_upvr (readonly)
                    [5]: label_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_4_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 1;
                    }):Play()
                    if image_upvr then
                        Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                        return
                    end
                    if label_upvr then
                        Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(255, 255, 255);
                            Position = UDim2.new(0.5, 0, 0.5, -2);
                        }):Play()
                    end
                end
            end)
            button_2.MouseLeave:Connect(function() -- Line 156
                --[[ Upvalues[4]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_4_upvr (readonly)
                    [3]: image_upvr (readonly)
                    [4]: label_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(v_4_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                if image_upvr then
                    Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageColor3 = Color3.fromRGB(35, 39, 50);
                        Position = UDim2.new(0.5, 0, 0.5, 0);
                    }):Play()
                elseif label_upvr then
                    Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextColor3 = Color3.fromRGB(35, 39, 50);
                        Position = UDim2.new(0.5, 0, 0.5, 0);
                    }):Play()
                end
            end)
            button_2.MouseButton1Click:Connect(function() -- Line 166
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: arg1 (readonly)
                    [3]: v_4_upvr (readonly)
                ]]
                if script:GetAttribute("freeze") then
                else
                    References_upvr.Main.sounds.UI.Click:Play()
                    arg1:select(v_4_upvr)
                end
            end)
        end
    end
    label_upvr = menu_upvr
    image_upvr = label_upvr.pages
    image_upvr.servers.main.code.join.button.MouseEnter:Connect(function() -- Line 177
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.servers.main.code.join, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.servers.main.code.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    label_upvr = menu_upvr
    image_upvr = label_upvr.pages
    image_upvr.servers.main.code.join.button.MouseLeave:Connect(function() -- Line 183
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(menu_upvr.pages.servers.main.code.join, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.servers.main.code.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    label_upvr = menu_upvr
    image_upvr = label_upvr.pages
    image_upvr.servers.main.code.join.button.MouseButton1Click:Connect(function() -- Line 188
        --[[ Upvalues[7]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: codeExists_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: any_CreateGroup_result1_upvr (copied, readonly)
            [6]: any_new_result1_upvr_2 (copied, readonly)
            [7]: any_new_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if arg1.privateServerDebounce then
        else
            local codeExists_upvr_result1 = codeExists_upvr(menu_upvr.pages.servers.main.code.input.input.Text)
            if menu_upvr.pages.servers.main.code.input.input.Text ~= "" and codeExists_upvr_result1 then
                arg1.privateServerDebounce = true
                menu_upvr.private.Visible = true
                any_CreateGroup_result1_upvr:FadeIn()
                any_new_result1_upvr_2:send("privateServer", codeExists_upvr_result1.access.Value)
                task.delay(0.35, function() -- Line 204
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.privateServerDebounce = false
                end)
                return
            end
            arg1.privateServerDebounce = true
            References_upvr.Main.sounds.UI.Error:Play()
            task.spawn(function() -- Line 210
                --[[ Upvalues[1]:
                    [1]: any_new_result1_upvr (copied, readonly)
                ]]
                any_new_result1_upvr:create(string.upper("PRIVATE SERVER NOT FOUND; PLEASE WAIT UP TO A FEW MINUTES IF YOU ARE JOINING A NEW SERVER."), Color3.fromRGB(255, 61, 61))
            end)
            task.delay(0.35, function() -- Line 214
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.privateServerDebounce = false
            end)
        end
    end)
    script:GetAttributeChangedSignal("privateServer"):Connect(function() -- Line 222
        --[[ Upvalues[2]:
            [1]: menu_upvr (copied, readonly)
            [2]: any_CreateGroup_result1_upvr (copied, readonly)
        ]]
        if script:GetAttribute("privateServer") then
            menu_upvr.private.Visible = true
            any_CreateGroup_result1_upvr:FadeIn()
        end
    end)
    for _, v_5 in next, script:GetChildren() do
        if v_5 then
            label_upvr = "ModuleScript"
            if v_5:IsA(label_upvr) then
                image_upvr = v_5
                local var85_2 = require(image_upvr)
                image_upvr = arg1.pages
                label_upvr = v_5.Name
                image_upvr[label_upvr] = var85_2
                image_upvr = var85_2:init
                image_upvr()
            end
        end
    end
end
return module
ModuleScript training training
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:57
-- Luau version 6, Types version 3
-- Time taken: 0.021618 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_load_result1_upvr = _engine:load("Theme", "utils")
local module = {
    debounce = false;
    switching = false;
    servers = {};
    cache = {};
}
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_load_result1_upvr_2 = _engine:load("Flags", "utils")
local any_new_result1_upvr = _engine:load("Notification").new()
local any_new_result1_upvr_4 = _engine:load("Teleporter").new(script.Parent.Parent.Parent, menu_upvr.menu.main.profile, script:GetAttribute("placeId"), "server")
local any_load_result1_upvr_4 = _engine:load("ThumbnailService", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.create(arg1, arg2) -- Line 27
    --[[ Upvalues[10]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_2 (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
        [9]: any_load_result1_upvr_4 (readonly)
        [10]: LocalPlayer_upvr (readonly)
    ]]
    for _, v in next, {"location", "flag"} do
        while not arg2:FindFirstChild(v) do
            task.wait()
        end
    end
    local var17_upvw = false
    local any_new_result1_upvr_2 = any_load_result1_upvr_3.new()
    arg1.cache[arg2.Name] = {
        maid = any_new_result1_upvr_2;
    }
    local clone_upvr = References_upvr.Main.ui.server:Clone()
    clone_upvr.Parent = menu_upvr.pages.servers.main.pages[script.Name].scroll.main
    clone_upvr.Name = arg2.Name
    local function update() -- Line 46
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr_2 (copied, readonly)
        ]]
        clone_upvr.location.location.Text = string.upper(arg2.location.Value)
        local var21
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var21 = any_load_result1_upvr_2[arg2.flag.Value].Emoji
            return var21
        end
        if not any_load_result1_upvr_2[arg2.flag.Value] or not INLINED() then
            var21 = ""
        end
        clone_upvr.flag.flag.Text = var21
        var21 = clone_upvr
        var21 = string.format("%s/%s Players", tostring(#arg2.players:GetChildren()), tostring(script:GetAttribute("maxPlayers") or "14"))
        var21.count.Text = var21
        var21 = -(#arg2.players:GetChildren())
        clone_upvr.LayoutOrder = var21
    end
    update()
    any_new_result1_upvr_2.locationChanged = arg2.location.Changed:Connect(update)
    any_new_result1_upvr_2.flagChanged = arg2.flag.Changed:Connect(update)
    any_new_result1_upvr_2.mouseEnter = clone_upvr.join.button.MouseEnter:Connect(function() -- Line 58
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseLeave = clone_upvr.join.button.MouseLeave:Connect(function() -- Line 68
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        if arg1.debounce then
        else
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseButton1Down = clone_upvr.join.button.MouseButton1Down:Connect(function() -- Line 77
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: var17_upvw (read and write)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            var17_upvw = true
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 86
        --[[ Upvalues[4]:
            [1]: var17_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var17_upvw and not arg1.debounce then
                var17_upvw = false
                Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    any_new_result1_upvr_2.mouseButton1Click = clone_upvr.join.button.MouseButton1Click:Connect(function() -- Line 93
        --[[ Upvalues[8]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg2 (readonly)
            [4]: any_new_result1_upvr (copied, readonly)
            [5]: Services_upvr (copied, readonly)
            [6]: clone_upvr (readonly)
            [7]: any_load_result1_upvr (copied, readonly)
            [8]: any_new_result1_upvr_4 (copied, readonly)
        ]]
        if not arg1.debounce then
            arg1.debounce = true
            References_upvr.Main.sounds.UI.Click:Play()
            if arg2:FindFirstChild("players") and _G._maxPlayers <= #arg2.players:GetChildren() then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 101
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr (copied, readonly)
                    ]]
                    any_new_result1_upvr:create(string.upper("SELECTED SERVER IS FULL!"), Color3.fromRGB(255, 61, 61))
                end)
            end
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
            any_new_result1_upvr_4:prompt("teleport", arg2.Name)
            task.delay(0.35, function() -- Line 110
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.debounce = false
            end)
        end
    end)
    any_new_result1_upvr_2.onEvent = any_new_result1_upvr_4.event.Event:Connect(function(arg1_3) -- Line 116
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_3 == "no" then
            arg1.debounce = false
        end
    end)
    any_new_result1_upvr_2.update = arg2:GetAttributeChangedSignal("update"):Connect(function() -- Line 122
        --[[ Upvalues[6]:
            [1]: arg2 (readonly)
            [2]: update (readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr_4 (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: Services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 9. Error Block 63 start (CF ANALYSIS FAILED)
        while not arg2:FindFirstChild("players") do
            task.wait()
        end
        update()
        for _, v_2 in next, clone_upvr.players.list:GetChildren() do
            if v_2 and v_2:IsA("ImageLabel") and v_2.Name ~= "avatar" then
                v_2:Destroy()
            end
        end
        local _, _ = arg2.players:GetChildren()
        -- KONSTANTERROR: [10] 9. Error Block 63 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 185
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        any_new_result1_upvr_2:DoCleaning()
        if arg1.cache[arg2.Name] then
            arg1.cache[arg2.Name] = nil
        end
    end)
end
local any_new_result1_upvr_3 = _engine:load("Janitor").new()
function module.loadPage(arg1) -- Line 193
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: any_new_result1_upvr_3 (readonly)
    ]]
    local function _(arg1_4) -- Line 196, Named "createSlot"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.servers[arg1_4] then
            arg1:create(arg1.servers[arg1_4])
        end
    end
    any_new_result1_upvr_3:clean(menu_upvr.pages.servers.main.pages[script.Name].scroll.main:GetChildren(), "UIListLayout")
    for i_3 = 1, #arg1.servers do
        if arg1.servers[i_3] then
            arg1:create(arg1.servers[i_3])
        end
    end
end
function module.update(arg1) -- Line 209
    arg1:loadPage()
end
function module.destroy(arg1, arg2) -- Line 213
    if arg1.cache[arg2.Name] then
        arg1.cache[arg2.Name].maid:DoCleaning()
        arg1.cache[arg2.Name] = nil
    end
end
local servers_upvr = References_upvr.Main.servers
function module.init(arg1) -- Line 220
    --[[ Upvalues[5]:
        [1]: servers_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
    ]]
    for _, v_3 in next, servers_upvr[script.Name]:GetChildren() do
        if v_3 and v_3:IsA("Folder") then
            table.insert(arg1.servers, v_3)
        end
    end
    servers_upvr[script.Name].ChildAdded:Connect(function(arg1_5) -- Line 229
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5:IsA("Folder") then
            table.insert(arg1.servers, arg1_5)
        end
    end)
    servers_upvr[script.Name].ChildRemoved:Connect(function(arg1_6) -- Line 235
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6:IsA("Folder") and table.find(arg1.servers, arg1_6) then
            table.remove(arg1.servers, table.find(arg1.servers, arg1_6))
        end
    end)
    local refresh_upvr = menu_upvr.pages.servers.main.pages[script.Name].page.refresh
    refresh_upvr.button.MouseEnter:Connect(function() -- Line 245
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: refresh_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    refresh_upvr.button.MouseLeave:Connect(function() -- Line 251
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: refresh_upvr (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    refresh_upvr.button.MouseButton1Click:Connect(function() -- Line 256
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.switching then
            arg1.switching = true
            arg1:update()
            task.delay(0.15, function() -- Line 263
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.switching = false
            end)
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 271
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            arg1:update()
        end
    end)
end
return module
ModuleScript main main
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:09:58
-- Luau version 6, Types version 3
-- Time taken: 0.014959 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_load_result1_upvr = _engine:load("Theme", "utils")
local module = {
    debounce = false;
    switching = false;
    servers = {};
    cache = {};
}
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_load_result1_upvr_2 = _engine:load("Flags", "utils")
local any_new_result1_upvr = _engine:load("Notification").new()
local any_new_result1_upvr_4 = _engine:load("Teleporter").new(script.Parent.Parent.Parent, menu_upvr.menu.main.profile, script:GetAttribute("placeId"), "server")
local any_load_result1_upvr_4 = _engine:load("ThumbnailService", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.create(arg1, arg2) -- Line 27
    --[[ Upvalues[10]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_2 (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
        [9]: any_load_result1_upvr_4 (readonly)
        [10]: LocalPlayer_upvr (readonly)
    ]]
    for _, v in next, {"location", "flag"} do
        while not arg2:FindFirstChild(v) do
            task.wait()
        end
    end
    local var17_upvw = false
    local any_new_result1_upvr_2 = any_load_result1_upvr_3.new()
    arg1.cache[arg2.Name] = {
        maid = any_new_result1_upvr_2;
    }
    local clone_upvr = References_upvr.Main.ui.server:Clone()
    clone_upvr.Parent = menu_upvr.pages.servers.main.pages[script.Name].scroll.main
    clone_upvr.Name = arg2.Name
    local function update() -- Line 46
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr_2 (copied, readonly)
        ]]
        clone_upvr.location.location.Text = string.upper(arg2.location.Value)
        local var21
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var21 = any_load_result1_upvr_2[arg2.flag.Value].Emoji
            return var21
        end
        if not any_load_result1_upvr_2[arg2.flag.Value] or not INLINED() then
            var21 = ""
        end
        clone_upvr.flag.flag.Text = var21
        var21 = clone_upvr
        var21 = string.format("%s/%s Players", tostring(#arg2.players:GetChildren()), tostring(script:GetAttribute("maxPlayers") or "14"))
        var21.count.Text = var21
        var21 = -(#arg2.players:GetChildren())
        clone_upvr.LayoutOrder = var21
    end
    update()
    any_new_result1_upvr_2.locationChanged = arg2.location.Changed:Connect(update)
    any_new_result1_upvr_2.flagChanged = arg2.flag.Changed:Connect(update)
    any_new_result1_upvr_2.mouseEnter = clone_upvr.join.button.MouseEnter:Connect(function() -- Line 58
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseLeave = clone_upvr.join.button.MouseLeave:Connect(function() -- Line 68
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        if arg1.debounce then
        else
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseButton1Down = clone_upvr.join.button.MouseButton1Down:Connect(function() -- Line 77
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: var17_upvw (read and write)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            var17_upvw = true
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 86
        --[[ Upvalues[4]:
            [1]: var17_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var17_upvw and not arg1.debounce then
                var17_upvw = false
                Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    any_new_result1_upvr_2.mouseButton1Click = clone_upvr.join.button.MouseButton1Click:Connect(function() -- Line 93
        --[[ Upvalues[8]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg2 (readonly)
            [4]: any_new_result1_upvr (copied, readonly)
            [5]: Services_upvr (copied, readonly)
            [6]: clone_upvr (readonly)
            [7]: any_load_result1_upvr (copied, readonly)
            [8]: any_new_result1_upvr_4 (copied, readonly)
        ]]
        if not arg1.debounce then
            arg1.debounce = true
            References_upvr.Main.sounds.UI.Click:Play()
            if arg2:FindFirstChild("players") and _G._maxPlayers <= #arg2.players:GetChildren() then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 101
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr (copied, readonly)
                    ]]
                    any_new_result1_upvr:create(string.upper("SELECTED SERVER IS FULL!"), Color3.fromRGB(255, 61, 61))
                end)
            end
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
            any_new_result1_upvr_4:prompt("teleport", arg2.Name)
            task.delay(0.35, function() -- Line 110
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.debounce = false
            end)
        end
    end)
    any_new_result1_upvr_2.onEvent = any_new_result1_upvr_4.event.Event:Connect(function(arg1_3) -- Line 116
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_3 == "no" then
            arg1.debounce = false
        end
    end)
    any_new_result1_upvr_2.update = arg2:GetAttributeChangedSignal("update"):Connect(function() -- Line 122
        --[[ Upvalues[6]:
            [1]: arg2 (readonly)
            [2]: update (readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr_4 (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: Services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 9. Error Block 63 start (CF ANALYSIS FAILED)
        while not arg2:FindFirstChild("players") do
            task.wait()
        end
        update()
        for _, v_2 in next, clone_upvr.players.list:GetChildren() do
            if v_2 and v_2:IsA("ImageLabel") and v_2.Name ~= "avatar" then
                v_2:Destroy()
            end
        end
        local _, _ = arg2.players:GetChildren()
        -- KONSTANTERROR: [10] 9. Error Block 63 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 185
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        any_new_result1_upvr_2:DoCleaning()
        if arg1.cache[arg2.Name] then
            arg1.cache[arg2.Name] = nil
        end
    end)
end
local any_new_result1_upvr_3 = _engine:load("Janitor").new()
function module.loadPage(arg1) -- Line 193
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: any_new_result1_upvr_3 (readonly)
    ]]
    local function _(arg1_4) -- Line 196, Named "createSlot"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.servers[arg1_4] then
            arg1:create(arg1.servers[arg1_4])
        end
    end
    any_new_result1_upvr_3:clean(menu_upvr.pages.servers.main.pages[script.Name].scroll.main:GetChildren(), "UIListLayout")
    for i_3 = 1, #arg1.servers do
        if arg1.servers[i_3] then
            arg1:create(arg1.servers[i_3])
        end
    end
end
function module.update(arg1) -- Line 209
    arg1:loadPage()
end
function module.destroy(arg1, arg2) -- Line 213
    if arg1.cache[arg2.Name] then
        arg1.cache[arg2.Name].maid:DoCleaning()
        arg1.cache[arg2.Name] = nil
    end
end
local servers_upvr = References_upvr.Main.servers
function module.init(arg1) -- Line 220
    --[[ Upvalues[5]:
        [1]: servers_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
    ]]
    for _, v_3 in next, servers_upvr[script.Name]:GetChildren() do
        if v_3 and v_3:IsA("Folder") then
            table.insert(arg1.servers, v_3)
        end
    end
    servers_upvr[script.Name].ChildAdded:Connect(function(arg1_5) -- Line 229
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5:IsA("Folder") then
            table.insert(arg1.servers, arg1_5)
        end
    end)
    servers_upvr[script.Name].ChildRemoved:Connect(function(arg1_6) -- Line 235
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_6 and arg1_6:IsA("Folder") and table.find(arg1.servers, arg1_6) then
            table.remove(arg1.servers, table.find(arg1.servers, arg1_6))
        end
    end)
    local refresh_upvr = menu_upvr.pages.servers.main.pages[script.Name].page.refresh
    refresh_upvr.button.MouseEnter:Connect(function() -- Line 245
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: refresh_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    refresh_upvr.button.MouseLeave:Connect(function() -- Line 251
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: refresh_upvr (readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    refresh_upvr.button.MouseButton1Click:Connect(function() -- Line 256
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.switching then
            arg1.switching = true
            arg1:update()
            task.delay(0.15, function() -- Line 263
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.switching = false
            end)
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 271
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            arg1:update()
        end
    end)
end
return module
ModuleScript private private
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:00
-- Luau version 6, Types version 3
-- Time taken: 0.007873 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local module = {
    privateServerDebounce = false;
}
local function codeExists_upvr(arg1) -- Line 21, Named "codeExists"
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    for _, v in next, References_upvr.Main.servers.private:GetChildren() do
        if v and v:FindFirstChild("code") and v:FindFirstChild("access") and string.lower(v.code.Value) == string.lower(arg1) and v.access.Value ~= "" then
            return v
        end
    end
    return false
end
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_load_result1_upvr = _engine:load("Theme", "utils")
local servers_upvr = script.Parent:WaitForChild("servers", 100)
local any_new_result1_upvr = _engine:load("Network").new()
local any_new_result1_upvr_2 = _engine:load("Notification").new()
function module.init(arg1) -- Line 31
    --[[ Upvalues[8]:
        [1]: menu_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
        [5]: codeExists_upvr (readonly)
        [6]: servers_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: any_new_result1_upvr_2 (readonly)
    ]]
    menu_upvr.pages.private.main.main.create.button.MouseEnter:Connect(function() -- Line 32
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: menu_upvr (copied, readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1.03;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.background, TweenInfo.new(0.1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Accent;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr.Text;
        }):Play()
    end)
    menu_upvr.pages.private.main.main.create.button.MouseLeave:Connect(function() -- Line 39
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Scale = 1;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(menu_upvr.pages.private.main.main.create.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    menu_upvr.pages.private.main.main.create.button.MouseButton1Click:Connect(function() -- Line 45
        --[[ Upvalues[7]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: codeExists_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: servers_upvr (copied, readonly)
            [6]: any_new_result1_upvr (copied, readonly)
            [7]: any_new_result1_upvr_2 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if arg1.privateServerDebounce then
        else
            if menu_upvr.pages.private.main.main.code.input.Text ~= "" and not codeExists_upvr(string.lower(menu_upvr.pages.private.main.main.code.input.Text)) then
                arg1.privateServerDebounce = true
                menu_upvr.private.Visible = true
                servers_upvr:SetAttribute("privateServer", true)
                any_new_result1_upvr:send("createServer", menu_upvr.pages.private.main.main.code.input.Text)
                task.delay(0.35, function() -- Line 62
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.privateServerDebounce = false
                end)
                return
            end
            arg1.privateServerDebounce = true
            References_upvr.Main.sounds.UI.Error:Play()
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if codeExists_upvr(string.lower(menu_upvr.pages.private.main.main.code.input.Text)) then
                task.spawn(function() -- Line 70
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_2 (copied, readonly)
                    ]]
                    any_new_result1_upvr_2:create(string.upper("CODE HAS ALREADY BEEN USED."), Color3.fromRGB(255, 61, 61))
                end)
            elseif menu_upvr.pages.private.main.main.code.input.Text == "" then
                task.spawn(function() -- Line 74
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_2 (copied, readonly)
                    ]]
                    any_new_result1_upvr_2:create(string.upper("ENTER A CODE BEFORE CREATING A PRIVATE SERVER."), Color3.fromRGB(255, 61, 61))
                end)
            end
            task.delay(0.35, function() -- Line 79
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.privateServerDebounce = false
            end)
        end
    end)
end
return module
ModuleScript home home
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:01
-- Luau version 6, Types version 3
-- Time taken: 0.009688 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local module = {}
local any_load_result1_upvr = _engine:load("Monetization", "utils")
local any_load_result1_upvr_2 = _engine:load("Objectives")
function module.create(arg1, arg2) -- Line 18
    --[[ Upvalues[6]:
        [1]: any_load_result1_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: References_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: Services_upvr (readonly)
    ]]
    local var10_upvr = any_load_result1_upvr_2._objectives[arg2.Name]
    local clone_upvr = References_upvr.Main.ui.objective:Clone()
    clone_upvr.Parent = menu_upvr.menu.main.tabs.home.objectives.main.objectives
    clone_upvr.Name = arg2.Name
    clone_upvr.label.Text = string.upper(arg2.Name)
    if any_load_result1_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_upvr.gamePasses["2x XP"].gamePassId) then
        clone_upvr.reward.rewards.xp.Text = tostring(var10_upvr._rewards.xp * 2)
    else
        clone_upvr.reward.rewards.xp.Text = tostring(var10_upvr._rewards.xp)
    end
    if any_load_result1_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_upvr.gamePasses["2x Points"].gamePassId) then
        clone_upvr.reward.rewards.xp.Text = tostring(var10_upvr._rewards.points * 2)
    else
        clone_upvr.reward.rewards.xp.Text = tostring(var10_upvr._rewards.points)
    end
    if var10_upvr._repeat then
        clone_upvr.progress.bar:TweenSize(UDim2.new(#arg2:GetChildren() / var10_upvr._repeat, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        arg2.ChildAdded:Connect(function() -- Line 41
            --[[ Upvalues[3]:
                [1]: clone_upvr (readonly)
                [2]: arg2 (readonly)
                [3]: var10_upvr (readonly)
            ]]
            clone_upvr.progress.bar:TweenSize(UDim2.new(#arg2:GetChildren() / var10_upvr._repeat, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        end)
    else
        clone_upvr.progress.bar.Size = UDim2.new(0, 0, 1, 0)
    end
    local function objectiveCompleted_upvr() -- Line 48, Named "objectiveCompleted"
        --[[ Upvalues[2]:
            [1]: clone_upvr (readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        clone_upvr.progress.bar:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        Services_upvr.TweenService:Create(clone_upvr.reward.title, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(clone_upvr.reward.rewards.xp, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(clone_upvr.reward.rewards.points.points, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(clone_upvr.reward.rewards.points.logo, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
        }):Play()
        task.delay(0.15, function() -- Line 56
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: clone_upvr (copied, readonly)
            ]]
            Services_upvr.TweenService:Create(clone_upvr.progress, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.completed.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.completed.progress.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.completed.tick.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.completed.tick.tick, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.completed.progress.bar, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0;
            }):Play()
            task.wait(0.15)
            Services_upvr.TweenService:Create(clone_upvr.progress.bar, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 1;
            }):Play()
        end)
    end
    if arg2.Value then
        objectiveCompleted_upvr()
    end
    arg2.Changed:Connect(function() -- Line 73
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: objectiveCompleted_upvr (readonly)
        ]]
        if arg2.Value then
            objectiveCompleted_upvr()
        end
    end)
end
function module.init(arg1) -- Line 80
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: menu_upvr (readonly)
    ]]
    while not References_upvr.Main.objectives:FindFirstChild(tostring(LocalPlayer_upvr.UserId)) and tick() - tick() <= 20 do
        task.wait()
    end
    if not References_upvr.Main.objectives:FindFirstChild(tostring(LocalPlayer_upvr.UserId)) then
        warn("Could not fetch player objectives data!")
    else
        local SOME = References_upvr.Main.objectives:WaitForChild(tostring(LocalPlayer_upvr.UserId), 100)
        for i, v_upvr in next, SOME:GetChildren() do
            if v_upvr and v_upvr:IsA("BoolValue") then
                task.spawn(function() -- Line 97
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: v_upvr (readonly)
                    ]]
                    arg1:create(v_upvr)
                end)
            end
        end
        SOME.ChildAdded:Connect(function(arg1_2) -- Line 103
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if arg1_2 and arg1_2:IsA("BoolValue") then
                task.spawn(function() -- Line 105
                    --[[ Upvalues[2]:
                        [1]: arg1 (copied, readonly)
                        [2]: arg1_2 (readonly)
                    ]]
                    arg1:create(arg1_2)
                end)
            end
        end)
        while true do
            i = "!*t"
            v_upvr = SOME:WaitForChild("lastReset", 100).Value + 86400 - os.time()
            local os_date_result1 = os.date(i, v_upvr)
            local var37
            if os_date_result1 then
                v_upvr = os_date_result1.hour
                i = tostring(v_upvr)
                var37 = os_date_result1.min
                v_upvr = tostring(var37)
                var37 = tostring(os_date_result1.sec)
                if tonumber(i) < 10 then
                    i = '0'..i
                end
                if tonumber(v_upvr) < 10 then
                    v_upvr = '0'..v_upvr
                end
                if tonumber(var37) < 10 then
                    var37 = '0'..var37
                end
                menu_upvr.menu.main.tabs.home.objectives.main.timer.Text = string.format("<i><font weight=\"heavy\">NEW OBJECTIVES IN <font color=\"rgb(83,215,255)\">%s:%s:%s</font></font></i>", i, v_upvr, var37)
            end
            i = task.wait
            v_upvr = 0.5
            i(v_upvr)
        end
    end
end
return module
ModuleScript premium premium
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:02
-- Luau version 6, Types version 3
-- Time taken: 0.004338 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local premium_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100):WaitForChild("pages", 100):WaitForChild("premium", 100)
local module = {
    check = function(arg1) -- Line 20, Named "check"
        --[[ Upvalues[2]:
            [1]: LocalPlayer_upvr (readonly)
            [2]: premium_upvr (readonly)
        ]]
        if LocalPlayer_upvr:GetAttribute("hasRFPremium") then
            premium_upvr.main.main.subscribe.main.label.icon.Visible = true
            premium_upvr.main.main.subscribe.main.label.label.Text = "SUBSCRIBED"
        else
            premium_upvr.main.main.subscribe.main.label.icon.Visible = false
            premium_upvr.main.main.subscribe.main.label.label.Text = "SUBSCRIBE"
        end
    end;
}
local any_load_result1_upvr = _engine:load("Theme", "utils")
local var9_upvw = false
local any_new_result1_upvr = _engine:load("Network").new()
function module.init(arg1) -- Line 30
    --[[ Upvalues[7]:
        [1]: premium_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: var9_upvw (read and write)
        [7]: any_new_result1_upvr (readonly)
    ]]
    premium_upvr.main.main.subscribe.main.button.MouseEnter:Connect(function() -- Line 33
        --[[ Upvalues[5]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: premium_upvr (copied, readonly)
            [5]: any_load_result1_upvr (copied, readonly)
        ]]
        if not LocalPlayer_upvr:GetAttribute("hasRFPremium") then
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundColor3 = any_load_result1_upvr.Accent;
            }):Play()
            Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main.label.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = any_load_result1_upvr.Text;
            }):Play()
            Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main.label.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr.Text;
            }):Play()
        end
    end)
    premium_upvr.main.main.subscribe.main.button.MouseLeave:Connect(function() -- Line 42
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: premium_upvr (copied, readonly)
            [3]: any_load_result1_upvr (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr.Text;
        }):Play()
        Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main.label.icon, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        Services_upvr.TweenService:Create(premium_upvr.main.main.subscribe.main.label.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    premium_upvr.main.main.subscribe.main.button.MouseButton1Click:Connect(function() -- Line 48
        --[[ Upvalues[4]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: var9_upvw (copied, read and write)
            [3]: References_upvr (copied, readonly)
            [4]: any_new_result1_upvr (copied, readonly)
        ]]
        if not LocalPlayer_upvr:GetAttribute("hasRFPremium") and not var9_upvw then
            var9_upvw = true
            References_upvr.Main.sounds.UI.Click:Play()
            var9_upvw = false
        end
    end)
    arg1:check()
    LocalPlayer_upvr:GetAttributeChangedSignal("hasRFPremium"):Connect(function() -- Line 61
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:check()
    end)
end
return module
ModuleScript ranked ranked
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:04
-- Luau version 6, Types version 3
-- Time taken: 0.018519 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
return {
    current = "50";
    index = {
        ["50"] = 1;
        ["100"] = 2;
        ["200"] = 3;
    };
    tabs = {
        debounce = false;
    };
    pages = {};
    cache = {};
    select = function(arg1, arg2) -- Line 34, Named "select"
        --[[ Upvalues[1]:
            [1]: menu_upvr (readonly)
        ]]
        if not arg1.cache.buttonDebounce and arg1.current ~= arg2.Name and arg2.Name ~= "back" then
            arg1.cache.buttonDebounce = true
            if arg1.pages[arg1.current] and arg1.pages[arg1.current].close then
                task.spawn(function() -- Line 39
                    --[[ Upvalues[1]:
                        [1]: arg1 (readonly)
                    ]]
                    arg1.pages[arg1.current]:close()
                end)
            end
            if arg1.pages[arg2.Name] and arg1.pages[arg2.Name].open then
                task.spawn(function() -- Line 45
                    --[[ Upvalues[2]:
                        [1]: arg1 (readonly)
                        [2]: arg2 (readonly)
                    ]]
                    arg1.pages[arg2.Name]:open()
                end)
            end
            arg1.current = arg2.Name
            menu_upvr.pages.ranked.main.pages.UIPageLayout:JumpTo(menu_upvr.pages.ranked.main.pages[arg2.Name])
            task.wait(0.1)
            arg1.cache.buttonDebounce = nil
        end
    end;
    init = function(arg1) -- Line 58, Named "init"
        --[[ Upvalues[3]:
            [1]: Services_upvr (readonly)
            [2]: menu_upvr (readonly)
            [3]: References_upvr (readonly)
        ]]
        Services_upvr.UserInputService.InputBegan:Connect(function(arg1_3, arg2) -- Line 61
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: menu_upvr (copied, readonly)
                [3]: References_upvr (copied, readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 66 start (CF ANALYSIS FAILED)
            if arg1_3.KeyCode == Enum.KeyCode.ButtonR1 and arg1.index[arg1.current] and script:GetAttribute("toggle") and not arg1.tabs.debounce then
                arg1.tabs.debounce = true
                if arg1.index[arg1.current] == #menu_upvr.pages.ranked.main.top:GetChildren() - 2 then
                    for i, v in next, arg1.index do
                        if v and v == 1 then
                            References_upvr.Main.sounds.UI.Click:Play()
                            arg1:select(menu_upvr.pages.ranked.main.pages[i])
                            task.delay(0.2, function() -- Line 69
                                --[[ Upvalues[1]:
                                    [1]: arg1 (copied, readonly)
                                ]]
                                arg1.tabs.debounce = false
                            end)
                            return
                        end
                    end
                    task.delay(0.2, function() -- Line 87
                        --[[ Upvalues[1]:
                            [1]: arg1 (copied, readonly)
                        ]]
                        arg1.tabs.debounce = false
                    end)
                    do
                        return
                    end
                    -- KONSTANTWARNING: GOTO [162] #111
                end
                -- KONSTANTWARNING: GOTO [102] #69
            end
            -- KONSTANTERROR: [0] 1. Error Block 66 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [162] 111. Error Block 64 start (CF ANALYSIS FAILED)
            if arg1_3.KeyCode == Enum.KeyCode.ButtonL1 and arg1.index[arg1.current] and script:GetAttribute("toggle") then
                arg1.tabs.debounce = true
                if arg1.index[arg1.current] == 1 then
                    for i_2, v_2 in next, arg1.index do
                        if v_2 and v_2 == #menu_upvr.pages.ranked.main.top:GetChildren() - 2 then
                            References_upvr.Main.sounds.UI.Click:Play()
                            arg1:select(menu_upvr.pages.ranked.main.pages[i_2])
                            task.delay(0.2, function() -- Line 97
                                --[[ Upvalues[1]:
                                    [1]: arg1 (copied, readonly)
                                ]]
                                arg1.tabs.debounce = false
                            end)
                            return
                        end
                    end
                    task.delay(0.2, function() -- Line 115
                        --[[ Upvalues[1]:
                            [1]: arg1 (copied, readonly)
                        ]]
                        arg1.tabs.debounce = false
                    end)
                    -- KONSTANTWARNING: GOTO [317] #216
                end
                -- KONSTANTWARNING: GOTO [258] #175
            end
            -- KONSTANTERROR: [162] 111. Error Block 64 end (CF ANALYSIS FAILED)
        end)
        for _, v_3_upvr in next, menu_upvr.pages.ranked.main.top:GetChildren() do
            if v_3_upvr and v_3_upvr:IsA("Frame") then
                local button = v_3_upvr:FindFirstChild("button")
                if not button then
                    button = v_3_upvr:FindFirstChild("back")
                end
                local image_upvr = v_3_upvr:FindFirstChild("image", true)
                local label_upvr = v_3_upvr:FindFirstChild("label", true)
                button.MouseEnter:Connect(function() -- Line 128
                    --[[ Upvalues[5]:
                        [1]: References_upvr (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: v_3_upvr (readonly)
                        [4]: image_upvr (readonly)
                        [5]: label_upvr (readonly)
                    ]]
                    if script:GetAttribute("freeze") then
                    else
                        References_upvr.Main.sounds.UI.Hover:Play()
                        Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageTransparency = 1;
                        }):Play()
                        if image_upvr then
                            Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                ImageColor3 = Color3.fromRGB(255, 255, 255);
                                Position = UDim2.new(0.5, 0, 0.5, -2);
                            }):Play()
                            return
                        end
                        if label_upvr then
                            Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextColor3 = Color3.fromRGB(255, 255, 255);
                                Position = UDim2.new(0.5, 0, 0.5, -2);
                            }):Play()
                        end
                    end
                end)
                button.MouseLeave:Connect(function() -- Line 143
                    --[[ Upvalues[4]:
                        [1]: Services_upvr (copied, readonly)
                        [2]: v_3_upvr (readonly)
                        [3]: image_upvr (readonly)
                        [4]: label_upvr (readonly)
                    ]]
                    Services_upvr.TweenService:Create(v_3_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 0;
                    }):Play()
                    if image_upvr then
                        Services_upvr.TweenService:Create(image_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0.5, 0, 0.5, 0);
                        }):Play()
                    elseif label_upvr then
                        Services_upvr.TweenService:Create(label_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextColor3 = Color3.fromRGB(35, 39, 50);
                            Position = UDim2.new(0.5, 0, 0.5, 0);
                        }):Play()
                    end
                end)
                button.MouseButton1Click:Connect(function() -- Line 153
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: arg1 (readonly)
                        [3]: v_3_upvr (readonly)
                    ]]
                    if script:GetAttribute("freeze") then
                    else
                        References_upvr.Main.sounds.UI.Click:Play()
                        arg1:select(v_3_upvr)
                    end
                end)
            end
        end
        for _, v_4 in next, script:GetChildren() do
            if v_4 then
                label_upvr = "ModuleScript"
                if v_4:IsA(label_upvr) then
                    image_upvr = v_4
                    local image_upvr_3 = require(image_upvr)
                    image_upvr = arg1.pages
                    label_upvr = v_4.Name
                    image_upvr[label_upvr] = image_upvr_3
                    image_upvr = image_upvr_3:init
                    image_upvr()
                end
            end
        end
    end;
}
ModuleScript 50 50
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:05
-- Luau version 6, Types version 3
-- Time taken: 0.021847 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_new_result1_upvr_4 = _engine:load("Notification").new()
local any_new_result1_upvr_3 = _engine:load("Network").new()
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local module = {
    debounce = false;
    switching = false;
    servers = {};
    cache = {};
    serverDebounce = false;
}
local any_load_result1_upvr_2 = _engine:load("Maid")
local any_load_result1_upvr_4 = _engine:load("Flags", "utils")
local any_load_result1_upvr = _engine:load("ThumbnailService", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.create(arg1, arg2) -- Line 29
    --[[ Upvalues[11]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_4 (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr_3 (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
        [9]: any_new_result1_upvr_3 (readonly)
        [10]: any_load_result1_upvr (readonly)
        [11]: LocalPlayer_upvr (readonly)
    ]]
    for _, v in next, {"location", "flag"} do
        while not arg2:FindFirstChild(v) do
            task.wait()
        end
    end
    local var18_upvw = false
    local any_new_result1_upvr_2 = any_load_result1_upvr_2.new()
    arg1.cache[arg2.Name] = {
        maid = any_new_result1_upvr_2;
    }
    local clone_upvr = References_upvr.Main.ui.server:Clone()
    clone_upvr.Parent = menu_upvr.pages.ranked.main.pages[script.Name].scroll.main
    clone_upvr.Name = arg2.Name
    local function update() -- Line 48
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr_4 (copied, readonly)
        ]]
        clone_upvr.location.location.Text = string.upper(arg2.location.Value)
        local var22
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var22 = any_load_result1_upvr_4[arg2.flag.Value].Emoji
            return var22
        end
        if not any_load_result1_upvr_4[arg2.flag.Value] or not INLINED() then
            var22 = ""
        end
        clone_upvr.flag.flag.Text = var22
        var22 = clone_upvr
        var22 = string.format("%s/%s Players", tostring(#arg2.players:GetChildren()), tostring(script:GetAttribute("maxPlayers") or "14"))
        var22.count.Text = var22
        var22 = -(#arg2.players:GetChildren())
        clone_upvr.LayoutOrder = var22
    end
    update()
    any_new_result1_upvr_2.locationChanged = arg2.location.Changed:Connect(update)
    any_new_result1_upvr_2.flagChanged = arg2.flag.Changed:Connect(update)
    any_new_result1_upvr_2.mouseEnter = clone_upvr.join.button.MouseEnter:Connect(function() -- Line 60
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseLeave = clone_upvr.join.button.MouseLeave:Connect(function() -- Line 70
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        if arg1.debounce then
        else
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseButton1Down = clone_upvr.join.button.MouseButton1Down:Connect(function() -- Line 79
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: var18_upvw (read and write)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            var18_upvw = true
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 88
        --[[ Upvalues[4]:
            [1]: var18_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var18_upvw and not arg1.debounce then
                var18_upvw = false
                Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    any_new_result1_upvr_2.mouseButton1Click = clone_upvr.join.button.MouseButton1Click:Connect(function() -- Line 95
        --[[ Upvalues[9]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: any_new_result1_upvr_4 (copied, readonly)
            [5]: arg2 (readonly)
            [6]: Services_upvr (copied, readonly)
            [7]: clone_upvr (readonly)
            [8]: any_load_result1_upvr_3 (copied, readonly)
            [9]: any_new_result1_upvr_3 (copied, readonly)
        ]]
        if not arg1.debounce then
            arg1.debounce = true
            References_upvr.Main.sounds.UI.Click:Play()
            if Profile_upvr.level.Level.Value < tonumber(script.Name) then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 103
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 50 OR HIGHER TO JOIN A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            if arg2:FindFirstChild("players") and _G._maxPlayers <= #arg2.players:GetChildren() then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 112
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("SELECTED SERVER IS FULL!"), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            any_new_result1_upvr_3:send("rankedServer", arg2.access.Value, arg2.level.Value)
            task.delay(0.35, function() -- Line 122
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.debounce = false
            end)
        end
    end)
    any_new_result1_upvr_2.update = arg2:GetAttributeChangedSignal("update"):Connect(function() -- Line 128
        --[[ Upvalues[6]:
            [1]: arg2 (readonly)
            [2]: update (readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: Services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 9. Error Block 63 start (CF ANALYSIS FAILED)
        while not arg2:FindFirstChild("players") do
            task.wait()
        end
        update()
        for _, v_2 in next, clone_upvr.players.list:GetChildren() do
            if v_2 and v_2:IsA("ImageLabel") and v_2.Name ~= "avatar" then
                v_2:Destroy()
            end
        end
        local _, _ = arg2.players:GetChildren()
        -- KONSTANTERROR: [10] 9. Error Block 63 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 191
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        any_new_result1_upvr_2:DoCleaning()
        if arg1.cache[arg2.Name] then
            arg1.cache[arg2.Name] = nil
        end
    end)
end
local any_new_result1_upvr = _engine:load("Janitor").new()
function module.loadPage(arg1) -- Line 199
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    local function _(arg1_3) -- Line 202, Named "createSlot"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.servers[arg1_3] then
            arg1:create(arg1.servers[arg1_3])
        end
    end
    any_new_result1_upvr:clean(menu_upvr.pages.ranked.main.pages[script.Name].scroll.main:GetChildren(), "UIListLayout")
    for i_3 = 1, #arg1.servers do
        if arg1.servers[i_3] then
            arg1:create(arg1.servers[i_3])
        end
    end
end
function module.update(arg1) -- Line 215
    arg1:loadPage()
end
function module.destroy(arg1, arg2) -- Line 219
    if arg1.cache[arg2.Name] then
        arg1.cache[arg2.Name].maid:DoCleaning()
        arg1.cache[arg2.Name] = nil
    end
end
local servers_upvr = References_upvr.Main.servers
function module.init(arg1) -- Line 226
    --[[ Upvalues[8]:
        [1]: servers_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr_3 (readonly)
        [6]: Profile_upvr (readonly)
        [7]: any_new_result1_upvr_3 (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
    ]]
    for _, v_3 in next, servers_upvr[script.Name]:GetChildren() do
        if v_3 and v_3:IsA("Folder") then
            table.insert(arg1.servers, v_3)
        end
    end
    servers_upvr[script.Name].ChildAdded:Connect(function(arg1_4) -- Line 235
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 and arg1_4:IsA("Folder") then
            table.insert(arg1.servers, arg1_4)
        end
    end)
    servers_upvr[script.Name].ChildRemoved:Connect(function(arg1_5) -- Line 241
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5:IsA("Folder") and table.find(arg1.servers, arg1_5) then
            table.remove(arg1.servers, table.find(arg1.servers, arg1_5))
        end
    end)
    local create_2_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.create
    create_2_upvr.button.MouseEnter:Connect(function() -- Line 251
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: create_2_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    create_2_upvr.button.MouseLeave:Connect(function() -- Line 257
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: create_2_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    create_2_upvr.button.MouseButton1Click:Connect(function() -- Line 262
        --[[ Upvalues[6]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: any_new_result1_upvr_3 (copied, readonly)
            [6]: any_new_result1_upvr_4 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if arg1.serverDebounce then
        else
            if tonumber(script.Name) <= Profile_upvr.level.Level.Value then
                arg1.serverDebounce = true
                menu_upvr.ranked.Visible = true
                any_new_result1_upvr_3:send("createRankedServer", tonumber(script.Name))
                return
            end
            arg1.serverDebounce = true
            References_upvr.Main.sounds.UI.Error:Play()
            task.spawn(function() -- Line 276
                --[[ Upvalues[1]:
                    [1]: any_new_result1_upvr_4 (copied, readonly)
                ]]
                any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 50 OR HIGHER TO CREATE A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
            end)
            task.delay(0.35, function() -- Line 280
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.serverDebounce = false
            end)
        end
    end)
    local refresh_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.refresh
    refresh_upvr.button.MouseEnter:Connect(function() -- Line 288
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: refresh_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    refresh_upvr.button.MouseLeave:Connect(function() -- Line 294
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: refresh_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    refresh_upvr.button.MouseButton1Click:Connect(function() -- Line 299
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.switching then
            arg1.switching = true
            arg1:update()
            task.delay(0.15, function() -- Line 306
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.switching = false
            end)
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 314
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            arg1:update()
        end
    end)
end
return module
ModuleScript 200 200
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:07
-- Luau version 6, Types version 3
-- Time taken: 0.024746 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_new_result1_upvr_4 = _engine:load("Notification").new()
local any_new_result1_upvr_3 = _engine:load("Network").new()
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local module = {
    debounce = false;
    switching = false;
    servers = {};
    cache = {};
    serverDebounce = false;
}
local any_load_result1_upvr_2 = _engine:load("Maid")
local any_load_result1_upvr_4 = _engine:load("Flags", "utils")
local any_load_result1_upvr = _engine:load("ThumbnailService", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.create(arg1, arg2) -- Line 29
    --[[ Upvalues[11]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_4 (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr_3 (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
        [9]: any_new_result1_upvr_3 (readonly)
        [10]: any_load_result1_upvr (readonly)
        [11]: LocalPlayer_upvr (readonly)
    ]]
    for _, v in next, {"location", "flag"} do
        while not arg2:FindFirstChild(v) do
            task.wait()
        end
    end
    local var18_upvw = false
    local any_new_result1_upvr_2 = any_load_result1_upvr_2.new()
    arg1.cache[arg2.Name] = {
        maid = any_new_result1_upvr_2;
    }
    local clone_upvr = References_upvr.Main.ui.server:Clone()
    clone_upvr.Parent = menu_upvr.pages.ranked.main.pages[script.Name].scroll.main
    clone_upvr.Name = arg2.Name
    local function update() -- Line 48
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr_4 (copied, readonly)
        ]]
        clone_upvr.location.location.Text = string.upper(arg2.location.Value)
        local var22
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var22 = any_load_result1_upvr_4[arg2.flag.Value].Emoji
            return var22
        end
        if not any_load_result1_upvr_4[arg2.flag.Value] or not INLINED() then
            var22 = ""
        end
        clone_upvr.flag.flag.Text = var22
        var22 = clone_upvr
        var22 = string.format("%s/%s Players", tostring(#arg2.players:GetChildren()), tostring(script:GetAttribute("maxPlayers") or "14"))
        var22.count.Text = var22
        var22 = -(#arg2.players:GetChildren())
        clone_upvr.LayoutOrder = var22
    end
    update()
    any_new_result1_upvr_2.locationChanged = arg2.location.Changed:Connect(update)
    any_new_result1_upvr_2.flagChanged = arg2.flag.Changed:Connect(update)
    any_new_result1_upvr_2.mouseEnter = clone_upvr.join.button.MouseEnter:Connect(function() -- Line 60
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseLeave = clone_upvr.join.button.MouseLeave:Connect(function() -- Line 70
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        if arg1.debounce then
        else
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseButton1Down = clone_upvr.join.button.MouseButton1Down:Connect(function() -- Line 79
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: var18_upvw (read and write)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            var18_upvw = true
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 88
        --[[ Upvalues[4]:
            [1]: var18_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var18_upvw and not arg1.debounce then
                var18_upvw = false
                Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    any_new_result1_upvr_2.mouseButton1Click = clone_upvr.join.button.MouseButton1Click:Connect(function() -- Line 95
        --[[ Upvalues[9]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: any_new_result1_upvr_4 (copied, readonly)
            [5]: arg2 (readonly)
            [6]: Services_upvr (copied, readonly)
            [7]: clone_upvr (readonly)
            [8]: any_load_result1_upvr_3 (copied, readonly)
            [9]: any_new_result1_upvr_3 (copied, readonly)
        ]]
        if not arg1.debounce then
            arg1.debounce = true
            References_upvr.Main.sounds.UI.Click:Play()
            if Profile_upvr.level.Level.Value < tonumber(script.Name) then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 103
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 200 OR HIGHER TO JOIN A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            if arg2:FindFirstChild("players") and _G._maxPlayers <= #arg2.players:GetChildren() then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 112
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("SELECTED SERVER IS FULL!"), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            any_new_result1_upvr_3:send("rankedServer", arg2.access.Value, arg2.level.Value)
            task.delay(0.35, function() -- Line 122
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.debounce = false
            end)
        end
    end)
    any_new_result1_upvr_2.update = arg2:GetAttributeChangedSignal("update"):Connect(function() -- Line 128
        --[[ Upvalues[6]:
            [1]: arg2 (readonly)
            [2]: update (readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: Services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 9. Error Block 63 start (CF ANALYSIS FAILED)
        while not arg2:FindFirstChild("players") do
            task.wait()
        end
        update()
        for _, v_2 in next, clone_upvr.players.list:GetChildren() do
            if v_2 and v_2:IsA("ImageLabel") and v_2.Name ~= "avatar" then
                v_2:Destroy()
            end
        end
        local _, _ = arg2.players:GetChildren()
        -- KONSTANTERROR: [10] 9. Error Block 63 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 191
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        any_new_result1_upvr_2:DoCleaning()
        if arg1.cache[arg2.Name] then
            arg1.cache[arg2.Name] = nil
        end
    end)
end
local any_new_result1_upvr = _engine:load("Janitor").new()
function module.loadPage(arg1) -- Line 199
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    local function _(arg1_3) -- Line 202, Named "createSlot"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.servers[arg1_3] then
            arg1:create(arg1.servers[arg1_3])
        end
    end
    any_new_result1_upvr:clean(menu_upvr.pages.ranked.main.pages[script.Name].scroll.main:GetChildren(), "UIListLayout")
    for i_3 = 1, #arg1.servers do
        if arg1.servers[i_3] then
            arg1:create(arg1.servers[i_3])
        end
    end
end
function module.update(arg1) -- Line 215
    arg1:loadPage()
end
function module.destroy(arg1, arg2) -- Line 219
    if arg1.cache[arg2.Name] then
        arg1.cache[arg2.Name].maid:DoCleaning()
        arg1.cache[arg2.Name] = nil
    end
end
local servers_upvr = References_upvr.Main.servers
function module.init(arg1) -- Line 226
    --[[ Upvalues[8]:
        [1]: servers_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr_3 (readonly)
        [6]: Profile_upvr (readonly)
        [7]: any_new_result1_upvr_3 (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
    ]]
    for _, v_3 in next, servers_upvr[script.Name]:GetChildren() do
        if v_3 and v_3:IsA("Folder") then
            table.insert(arg1.servers, v_3)
        end
    end
    servers_upvr[script.Name].ChildAdded:Connect(function(arg1_4) -- Line 235
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 and arg1_4:IsA("Folder") then
            table.insert(arg1.servers, arg1_4)
        end
    end)
    servers_upvr[script.Name].ChildRemoved:Connect(function(arg1_5) -- Line 241
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5:IsA("Folder") and table.find(arg1.servers, arg1_5) then
            table.remove(arg1.servers, table.find(arg1.servers, arg1_5))
        end
    end)
    local create_2_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.create
    create_2_upvr.button.MouseEnter:Connect(function() -- Line 251
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: create_2_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    create_2_upvr.button.MouseLeave:Connect(function() -- Line 257
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: create_2_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    create_2_upvr.button.MouseButton1Click:Connect(function() -- Line 262
        --[[ Upvalues[6]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: any_new_result1_upvr_3 (copied, readonly)
            [6]: any_new_result1_upvr_4 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if arg1.serverDebounce then
        else
            if tonumber(script.Name) <= Profile_upvr.level.Level.Value then
                arg1.serverDebounce = true
                menu_upvr.ranked.Visible = true
                any_new_result1_upvr_3:send("createRankedServer", tonumber(script.Name))
                return
            end
            arg1.serverDebounce = true
            References_upvr.Main.sounds.UI.Error:Play()
            task.spawn(function() -- Line 276
                --[[ Upvalues[1]:
                    [1]: any_new_result1_upvr_4 (copied, readonly)
                ]]
                any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 200 OR HIGHER TO CREATE A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
            end)
            task.delay(0.35, function() -- Line 280
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.serverDebounce = false
            end)
        end
    end)
    local refresh_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.refresh
    refresh_upvr.button.MouseEnter:Connect(function() -- Line 288
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: refresh_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    refresh_upvr.button.MouseLeave:Connect(function() -- Line 294
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: refresh_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    refresh_upvr.button.MouseButton1Click:Connect(function() -- Line 299
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.switching then
            arg1.switching = true
            arg1:update()
            task.delay(0.15, function() -- Line 306
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.switching = false
            end)
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 314
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            arg1:update()
        end
    end)
end
return module
ModuleScript 100 100
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:09
-- Luau version 6, Types version 3
-- Time taken: 0.024890 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local Profile_upvr = References_upvr.Profile
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_new_result1_upvr_4 = _engine:load("Notification").new()
local any_new_result1_upvr_3 = _engine:load("Network").new()
local any_load_result1_upvr_3 = _engine:load("Theme", "utils")
local module = {
    debounce = false;
    switching = false;
    servers = {};
    cache = {};
    serverDebounce = false;
}
local any_load_result1_upvr_2 = _engine:load("Maid")
local any_load_result1_upvr_4 = _engine:load("Flags", "utils")
local any_load_result1_upvr = _engine:load("ThumbnailService", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.create(arg1, arg2) -- Line 29
    --[[ Upvalues[11]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: References_upvr (readonly)
        [3]: menu_upvr (readonly)
        [4]: any_load_result1_upvr_4 (readonly)
        [5]: Services_upvr (readonly)
        [6]: any_load_result1_upvr_3 (readonly)
        [7]: Profile_upvr (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
        [9]: any_new_result1_upvr_3 (readonly)
        [10]: any_load_result1_upvr (readonly)
        [11]: LocalPlayer_upvr (readonly)
    ]]
    for _, v in next, {"location", "flag"} do
        while not arg2:FindFirstChild(v) do
            task.wait()
        end
    end
    local var18_upvw = false
    local any_new_result1_upvr_2 = any_load_result1_upvr_2.new()
    arg1.cache[arg2.Name] = {
        maid = any_new_result1_upvr_2;
    }
    local clone_upvr = References_upvr.Main.ui.server:Clone()
    clone_upvr.Parent = menu_upvr.pages.ranked.main.pages[script.Name].scroll.main
    clone_upvr.Name = arg2.Name
    local function update() -- Line 48
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: arg2 (readonly)
            [3]: any_load_result1_upvr_4 (copied, readonly)
        ]]
        clone_upvr.location.location.Text = string.upper(arg2.location.Value)
        local var22
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var22 = any_load_result1_upvr_4[arg2.flag.Value].Emoji
            return var22
        end
        if not any_load_result1_upvr_4[arg2.flag.Value] or not INLINED() then
            var22 = ""
        end
        clone_upvr.flag.flag.Text = var22
        var22 = clone_upvr
        var22 = string.format("%s/%s Players", tostring(#arg2.players:GetChildren()), tostring(script:GetAttribute("maxPlayers") or "14"))
        var22.count.Text = var22
        var22 = -(#arg2.players:GetChildren())
        clone_upvr.LayoutOrder = var22
    end
    update()
    any_new_result1_upvr_2.locationChanged = arg2.location.Changed:Connect(update)
    any_new_result1_upvr_2.flagChanged = arg2.flag.Changed:Connect(update)
    any_new_result1_upvr_2.mouseEnter = clone_upvr.join.button.MouseEnter:Connect(function() -- Line 60
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1.03;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseLeave = clone_upvr.join.button.MouseLeave:Connect(function() -- Line 70
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        if arg1.debounce then
        else
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.mouseButton1Down = clone_upvr.join.button.MouseButton1Down:Connect(function() -- Line 79
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: var18_upvw (read and write)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1.debounce then
        else
            var18_upvw = true
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Scale = 0.9;
            }):Play()
        end
    end)
    any_new_result1_upvr_2.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_2, arg2_2) -- Line 88
        --[[ Upvalues[4]:
            [1]: var18_upvw (read and write)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: clone_upvr (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseButton1 or arg1_2.UserInputType == Enum.UserInputType.Touch then
            if var18_upvw and not arg1.debounce then
                var18_upvw = false
                Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                    Scale = 1;
                }):Play()
            end
        end
    end)
    any_new_result1_upvr_2.mouseButton1Click = clone_upvr.join.button.MouseButton1Click:Connect(function() -- Line 95
        --[[ Upvalues[9]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: any_new_result1_upvr_4 (copied, readonly)
            [5]: arg2 (readonly)
            [6]: Services_upvr (copied, readonly)
            [7]: clone_upvr (readonly)
            [8]: any_load_result1_upvr_3 (copied, readonly)
            [9]: any_new_result1_upvr_3 (copied, readonly)
        ]]
        if not arg1.debounce then
            arg1.debounce = true
            References_upvr.Main.sounds.UI.Click:Play()
            if Profile_upvr.level.Level.Value < tonumber(script.Name) then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 103
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 100 OR HIGHER TO JOIN A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            if arg2:FindFirstChild("players") and _G._maxPlayers <= #arg2.players:GetChildren() then
                References_upvr.Main.sounds.UI.Error:Play()
                arg1.debounce = false
                task.spawn(function() -- Line 112
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr_4 (copied, readonly)
                    ]]
                    any_new_result1_upvr_4:create(string.upper("SELECTED SERVER IS FULL!"), Color3.fromRGB(255, 61, 61))
                end)
                return
            end
            Services_upvr.TweenService:Create(clone_upvr.join.UIScale, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Scale = 1;
            }):Play()
            Services_upvr.TweenService:Create(clone_upvr.join.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextColor3 = any_load_result1_upvr_3.Text;
            }):Play()
            any_new_result1_upvr_3:send("rankedServer", arg2.access.Value, arg2.level.Value)
            task.delay(0.35, function() -- Line 122
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.debounce = false
            end)
        end
    end)
    any_new_result1_upvr_2.update = arg2:GetAttributeChangedSignal("update"):Connect(function() -- Line 128
        --[[ Upvalues[6]:
            [1]: arg2 (readonly)
            [2]: update (readonly)
            [3]: clone_upvr (readonly)
            [4]: any_load_result1_upvr (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: Services_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [10] 9. Error Block 63 start (CF ANALYSIS FAILED)
        while not arg2:FindFirstChild("players") do
            task.wait()
        end
        update()
        for _, v_2 in next, clone_upvr.players.list:GetChildren() do
            if v_2 and v_2:IsA("ImageLabel") and v_2.Name ~= "avatar" then
                v_2:Destroy()
            end
        end
        local _, _ = arg2.players:GetChildren()
        -- KONSTANTERROR: [10] 9. Error Block 63 end (CF ANALYSIS FAILED)
    end)
    any_new_result1_upvr_2.onDestroying = clone_upvr.Destroying:Connect(function() -- Line 191
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr_2 (readonly)
            [2]: arg1 (readonly)
            [3]: arg2 (readonly)
        ]]
        any_new_result1_upvr_2:DoCleaning()
        if arg1.cache[arg2.Name] then
            arg1.cache[arg2.Name] = nil
        end
    end)
end
local any_new_result1_upvr = _engine:load("Janitor").new()
function module.loadPage(arg1) -- Line 199
    --[[ Upvalues[2]:
        [1]: menu_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    local function _(arg1_3) -- Line 202, Named "createSlot"
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1.servers[arg1_3] then
            arg1:create(arg1.servers[arg1_3])
        end
    end
    any_new_result1_upvr:clean(menu_upvr.pages.ranked.main.pages[script.Name].scroll.main:GetChildren(), "UIListLayout")
    for i_3 = 1, #arg1.servers do
        if arg1.servers[i_3] then
            arg1:create(arg1.servers[i_3])
        end
    end
end
function module.update(arg1) -- Line 215
    arg1:loadPage()
end
function module.destroy(arg1, arg2) -- Line 219
    if arg1.cache[arg2.Name] then
        arg1.cache[arg2.Name].maid:DoCleaning()
        arg1.cache[arg2.Name] = nil
    end
end
local servers_upvr = References_upvr.Main.servers
function module.init(arg1) -- Line 226
    --[[ Upvalues[8]:
        [1]: servers_upvr (readonly)
        [2]: menu_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_load_result1_upvr_3 (readonly)
        [6]: Profile_upvr (readonly)
        [7]: any_new_result1_upvr_3 (readonly)
        [8]: any_new_result1_upvr_4 (readonly)
    ]]
    for _, v_3 in next, servers_upvr[script.Name]:GetChildren() do
        if v_3 and v_3:IsA("Folder") then
            table.insert(arg1.servers, v_3)
        end
    end
    servers_upvr[script.Name].ChildAdded:Connect(function(arg1_4) -- Line 235
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_4 and arg1_4:IsA("Folder") then
            table.insert(arg1.servers, arg1_4)
        end
    end)
    servers_upvr[script.Name].ChildRemoved:Connect(function(arg1_5) -- Line 241
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_5 and arg1_5:IsA("Folder") and table.find(arg1.servers, arg1_5) then
            table.remove(arg1.servers, table.find(arg1.servers, arg1_5))
        end
    end)
    local create_2_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.create
    create_2_upvr.button.MouseEnter:Connect(function() -- Line 251
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: create_2_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    create_2_upvr.button.MouseLeave:Connect(function() -- Line 257
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: create_2_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(create_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(create_2_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    create_2_upvr.button.MouseButton1Click:Connect(function() -- Line 262
        --[[ Upvalues[6]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: Profile_upvr (copied, readonly)
            [4]: menu_upvr (copied, readonly)
            [5]: any_new_result1_upvr_3 (copied, readonly)
            [6]: any_new_result1_upvr_4 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if arg1.serverDebounce then
        else
            if tonumber(script.Name) <= Profile_upvr.level.Level.Value then
                arg1.serverDebounce = true
                menu_upvr.ranked.Visible = true
                any_new_result1_upvr_3:send("createRankedServer", tonumber(script.Name))
                return
            end
            arg1.serverDebounce = true
            References_upvr.Main.sounds.UI.Error:Play()
            task.spawn(function() -- Line 276
                --[[ Upvalues[1]:
                    [1]: any_new_result1_upvr_4 (copied, readonly)
                ]]
                any_new_result1_upvr_4:create(string.upper("YOU NEED TO BE LEVEL 100 OR HIGHER TO CREATE A RANKED SERVER."), Color3.fromRGB(255, 61, 61))
            end)
            task.delay(0.35, function() -- Line 280
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.serverDebounce = false
            end)
        end
    end)
    local refresh_upvr = menu_upvr.pages.ranked.main.pages[script.Name].page.refresh
    refresh_upvr.button.MouseEnter:Connect(function() -- Line 288
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: refresh_upvr (readonly)
            [4]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Accent;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = any_load_result1_upvr_3.Text;
        }):Play()
    end)
    refresh_upvr.button.MouseLeave:Connect(function() -- Line 294
        --[[ Upvalues[3]:
            [1]: Services_upvr (copied, readonly)
            [2]: refresh_upvr (readonly)
            [3]: any_load_result1_upvr_3 (copied, readonly)
        ]]
        Services_upvr.TweenService:Create(refresh_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            BackgroundColor3 = any_load_result1_upvr_3.Text;
        }):Play()
        Services_upvr.TweenService:Create(refresh_upvr.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    refresh_upvr.button.MouseButton1Click:Connect(function() -- Line 299
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.switching then
            arg1.switching = true
            arg1:update()
            task.delay(0.15, function() -- Line 306
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1.switching = false
            end)
        end
    end)
    script.Parent:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 314
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if script.Parent:GetAttribute("toggle") then
            arg1:update()
        end
    end)
end
return module
ModuleScript play play
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:10
-- Luau version 6, Types version 3
-- Time taken: 0.018332 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local config_upvr = References_upvr.Main.config
local PlayerGui_upvr = References_upvr.PlayerGui
local menu_upvr = PlayerGui_upvr:WaitForChild("menu", 100)
local any_new_result1_3_upvr = _engine:load("Network").new()
local any_load_result1 = _engine:load("MouseObject")
local any_load_result1_2 = _engine:load("BulkFade", "utils")
local any_new_result1_upvr = _engine:load("Notification").new({
    lifeTime = 3;
})
local tbl_upvr = {}
local var18_upvw = false
local clone_upvr = References_upvr.Main.ui.home:Clone()
local clone_upvr_2 = References_upvr.Main.ui.away:Clone()
local function getTeamName_upvr(arg1) -- Line 38, Named "getTeamName"
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    for _, v in next, References_upvr.Main.kits:GetChildren() do
        if v then
            for _, v_2 in next, v:GetChildren() do
                if string.lower(v_2.Name) == string.lower(arg1) then
                    return v_2.Name
                end
            end
        end
    end
    return "Team"
end
local any_load_result1_3_upvr = _engine:load("TeamService", "utils")
local function updateTeams() -- Line 52
    --[[ Upvalues[5]:
        [1]: clone_upvr (readonly)
        [2]: getTeamName_upvr (readonly)
        [3]: config_upvr (readonly)
        [4]: any_load_result1_3_upvr (readonly)
        [5]: clone_upvr_2 (readonly)
    ]]
    clone_upvr.main.container.outfield.label.Text = string.upper(getTeamName_upvr(config_upvr.Stats.Home.Team.Value))
    clone_upvr.main.container.gk.label.Text = string.upper(getTeamName_upvr(config_upvr.Stats.Home.Team.Value)).." GK"
    clone_upvr.main.container.outfield.background.ImageColor3 = any_load_result1_3_upvr:getTeamColorFromTeam("Home")
    clone_upvr.main.container.gk.background.ImageColor3 = any_load_result1_3_upvr:getTeamColorFromTeam("Home"):Lerp(Color3.new(0, 0, 0), 0.2)
    clone_upvr_2.main.container.outfield.label.Text = string.upper(getTeamName_upvr(config_upvr.Stats.Away.Team.Value))
    clone_upvr_2.main.container.gk.label.Text = string.upper(getTeamName_upvr(config_upvr.Stats.Away.Team.Value)).." GK"
    clone_upvr_2.main.container.outfield.background.ImageColor3 = any_load_result1_3_upvr:getTeamColorFromTeam("Away")
    clone_upvr_2.main.container.gk.background.ImageColor3 = any_load_result1_3_upvr:getTeamColorFromTeam("Away"):Lerp(Color3.new(0, 0, 0), 0.2)
end
local main_upvr = PlayerGui_upvr:WaitForChild("main", 100)
local any_load_result1_upvr_2 = _engine:load("Monetization", "utils")
local movementController_upvr = script.Parent.Parent.Parent.Parent:WaitForChild("controllers", 100):WaitForChild("movementController", 100)
local Profile_upvr = References_upvr.Profile
local any_load_result1_upvr = _engine:load("CoreMethods", "utils")
local function finalStage_upvr(arg1) -- Line 64, Named "finalStage"
    --[[ Upvalues[13]:
        [1]: menu_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: clone_upvr (readonly)
        [4]: clone_upvr_2 (readonly)
        [5]: main_upvr (readonly)
        [6]: any_load_result1_upvr_2 (readonly)
        [7]: LocalPlayer_upvr (readonly)
        [8]: any_new_result1_3_upvr (readonly)
        [9]: movementController_upvr (readonly)
        [10]: Profile_upvr (readonly)
        [11]: References_upvr (readonly)
        [12]: Services_upvr (readonly)
        [13]: any_load_result1_upvr (readonly)
    ]]
    menu_upvr.gradient:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
    task.wait(0.5)
    tbl_upvr.home:FadeOut()
    tbl_upvr.away:FadeOut()
    clone_upvr.Enabled = false
    clone_upvr_2.Enabled = false
    main_upvr.Enabled = true
    if not arg1 and any_load_result1_upvr_2.userOwnsPass(LocalPlayer_upvr, any_load_result1_upvr_2.gamePasses["Pitch Teleporter"].gamePassId) then
        any_new_result1_3_upvr:send("pitchTeleporter")
    end
    script.Parent.Parent:SetAttribute("enabled", false)
    movementController_upvr:SetAttribute("canSprint", true)
    workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
    workspace.CurrentCamera.FieldOfView = tonumber(Profile_upvr.settings.Visual["Field of View"].Value)
    workspace.game.menu.Character.Parent = References_upvr.Main.cache
    any_new_result1_3_upvr:send("spawn")
    Services_upvr.Lighting.DepthOfField.Enabled = true
    Services_upvr.Lighting.DepthOfField.FarIntensity = 0
    Services_upvr.Lighting.DepthOfField.FocusDistance = 2
    Services_upvr.Lighting.DepthOfField.InFocusRadius = 0
    Services_upvr.Lighting.DepthOfField.NearIntensity = 1
    task.wait(0.3)
    workspace.CurrentCamera.FieldOfView = tonumber(Profile_upvr.settings.Visual["Field of View"].Value)
    any_load_result1_upvr:SetCoreGui("SetCoreGuiEnabled", "Chat", true)
    References_upvr.Main.sounds.Player.Woosh:Play()
    menu_upvr.gradient:TweenPosition(UDim2.new(1, 700, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
    task.wait(0.5)
    workspace.CurrentCamera.FieldOfView = tonumber(Profile_upvr.settings.Visual["Field of View"].Value)
    menu_upvr.Enabled = false
    menu_upvr.menu.Visible = false
    tbl_upvr.menu:FadeIn()
    menu_upvr.gradient.Position = UDim2.new(-1, -700, 0, 0)
    script.Parent.Parent:SetAttribute("freeze", false)
end
clone_upvr.Parent = PlayerGui_upvr
clone_upvr.Adornee = workspace.game.menu.teams.home
clone_upvr_2.Parent = PlayerGui_upvr
clone_upvr_2.Adornee = workspace.game.menu.teams.away
updateTeams()
config_upvr.Stats.Home.Team.Changed:Connect(updateTeams)
config_upvr.Stats.Home["Kit Type"].Changed:Connect(updateTeams)
config_upvr.Stats.Away.Team.Changed:Connect(updateTeams)
config_upvr.Stats.Away["Kit Type"].Changed:Connect(updateTeams)
for _, v_3_upvr in next, {"Home", "Away"} do
    local var36_upvr = PlayerGui_upvr[string.lower(v_3_upvr)]
    local any_new_result1, any_new_result2 = any_load_result1.new(var36_upvr.main.container.outfield.button)
    local any_new_result1_2, any_new_result2_2 = any_load_result1.new(var36_upvr.main.container.gk.button)
    any_new_result1:Connect(function() -- Line 132
        --[[ Upvalues[4]:
            [1]: clone_upvr (readonly)
            [2]: References_upvr (readonly)
            [3]: var36_upvr (readonly)
            [4]: Services_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            References_upvr.Main.sounds.UI.Hover:Play()
            var36_upvr.main.container.outfield.label:TweenPosition(UDim2.new(0.5, 0, 0.8, -5), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.2, true)
            Services_upvr.TweenService:Create(var36_upvr.main.container.outfield.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                ImageTransparency = 0.8;
            }):Play()
        end
    end)
    any_new_result2:Connect(function() -- Line 145
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: var36_upvr (readonly)
            [3]: Services_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            var36_upvr.main.container.outfield.label:TweenPosition(UDim2.new(0.5, 0, 0.8, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.2, true)
            Services_upvr.TweenService:Create(var36_upvr.main.container.outfield.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                ImageTransparency = 0.5;
            }):Play()
        end
    end)
    var36_upvr.main.container.outfield.button.MouseButton1Click:Connect(function() -- Line 157
        --[[ Upvalues[9]:
            [1]: clone_upvr (readonly)
            [2]: References_upvr (readonly)
            [3]: LocalPlayer_upvr (readonly)
            [4]: any_new_result1_upvr (readonly)
            [5]: var18_upvw (read and write)
            [6]: any_new_result1_3_upvr (readonly)
            [7]: Services_upvr (readonly)
            [8]: v_3_upvr (readonly)
            [9]: finalStage_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            References_upvr.Main.sounds.UI.Click:Play()
            if References_upvr.Main.cards.red:FindFirstChild(LocalPlayer_upvr.Name) then
                References_upvr.Main.sounds.UI.Error:Play()
                any_new_result1_upvr:create("YOU ARE ON A RED CARD!", Color3.fromRGB(255, 61, 61))
                return
            end
            if not var18_upvw then
                var18_upvw = true
                if any_new_result1_3_upvr:fetch("team", Services_upvr.Teams[v_3_upvr]) == "full" then
                    References_upvr.Main.sounds.UI.Error:Play()
                    any_new_result1_upvr:create("THE SELECTED TEAM IS FULL! PLEASE SELECT A DIFFERENT TEAM.", Color3.fromRGB(255, 61, 61))
                    task.delay(0.5, function() -- Line 182
                        --[[ Upvalues[1]:
                            [1]: var18_upvw (copied, read and write)
                        ]]
                        var18_upvw = false
                    end)
                    return
                end
                task.spawn(finalStage_upvr)
                task.delay(0.5, function() -- Line 187
                    --[[ Upvalues[1]:
                        [1]: var18_upvw (copied, read and write)
                    ]]
                    var18_upvw = false
                end)
            end
        end
    end)
    any_new_result1_2:Connect(function() -- Line 194
        --[[ Upvalues[4]:
            [1]: clone_upvr (readonly)
            [2]: References_upvr (readonly)
            [3]: var36_upvr (readonly)
            [4]: Services_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            References_upvr.Main.sounds.UI.Hover:Play()
            var36_upvr.main.container.gk.label:TweenPosition(UDim2.new(0.5, 0, 0.7, -5), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.2, true)
            Services_upvr.TweenService:Create(var36_upvr.main.container.gk.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                ImageTransparency = 0.8;
            }):Play()
        end
    end)
    any_new_result2_2:Connect(function() -- Line 207
        --[[ Upvalues[3]:
            [1]: clone_upvr (readonly)
            [2]: var36_upvr (readonly)
            [3]: Services_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            var36_upvr.main.container.gk.label:TweenPosition(UDim2.new(0.5, 0, 0.7, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.2, true)
            Services_upvr.TweenService:Create(var36_upvr.main.container.gk.gfx, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                ImageTransparency = 0.5;
            }):Play()
        end
    end)
    var36_upvr.main.container.gk.button.MouseButton1Click:Connect(function() -- Line 219
        --[[ Upvalues[9]:
            [1]: clone_upvr (readonly)
            [2]: References_upvr (readonly)
            [3]: LocalPlayer_upvr (readonly)
            [4]: any_new_result1_upvr (readonly)
            [5]: var18_upvw (read and write)
            [6]: any_new_result1_3_upvr (readonly)
            [7]: Services_upvr (readonly)
            [8]: v_3_upvr (readonly)
            [9]: finalStage_upvr (readonly)
        ]]
        if not script.Parent.Parent:GetAttribute("freeze") and workspace.CurrentCamera.CameraType == Enum.CameraType.Scriptable then
        else
            if script.Parent.Parent:GetAttribute("freeze") and not clone_upvr.Enabled then return end
            References_upvr.Main.sounds.UI.Click:Play()
            if References_upvr.Main.cards.red:FindFirstChild(LocalPlayer_upvr.Name) then
                References_upvr.Main.sounds.UI.Error:Play()
                any_new_result1_upvr:create("YOU ARE ON A RED CARD!", Color3.fromRGB(255, 61, 61))
                return
            end
            if not var18_upvw then
                var18_upvw = true
                if any_new_result1_3_upvr:fetch("team", Services_upvr.Teams[v_3_upvr.." GK"]) == "full" then
                    References_upvr.Main.sounds.UI.Error:Play()
                    any_new_result1_upvr:create("THE SELECTED TEAM IS FULL! PLEASE SELECT A DIFFERENT TEAM.", Color3.fromRGB(255, 61, 61))
                    task.delay(0.5, function() -- Line 244
                        --[[ Upvalues[1]:
                            [1]: var18_upvw (copied, read and write)
                        ]]
                        var18_upvw = false
                    end)
                    return
                end
                task.spawn(finalStage_upvr)
                task.delay(0.5, function() -- Line 249
                    --[[ Upvalues[1]:
                        [1]: var18_upvw (copied, read and write)
                    ]]
                    var18_upvw = false
                end)
            end
        end
    end)
end
var36_upvr = Enum.EasingDirection.Out
tbl_upvr.home = any_load_result1_2.CreateGroup(clone_upvr.main:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, var36_upvr))
var36_upvr = Enum.EasingDirection.Out
tbl_upvr.away = any_load_result1_2.CreateGroup(clone_upvr_2.main:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, var36_upvr))
var36_upvr = Enum.EasingDirection.Out
tbl_upvr.menu = any_load_result1_2.CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, var36_upvr))
tbl_upvr.home:FadeOut()
tbl_upvr.away:FadeOut()
clone_upvr.Enabled = false
clone_upvr_2.Enabled = false
local module = {}
local lerpPlay_upvr = script.Parent.Parent:WaitForChild("lerpPlay", 100)
function module.run(arg1) -- Line 271
    --[[ Upvalues[10]:
        [1]: tbl_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: lerpPlay_upvr (readonly)
        [5]: References_upvr (readonly)
        [6]: PlayerGui_upvr (readonly)
        [7]: clone_upvr (readonly)
        [8]: clone_upvr_2 (readonly)
        [9]: menu_upvr (readonly)
        [10]: finalStage_upvr (readonly)
    ]]
    tbl_upvr.menu:FadeOut()
    script.Parent.Parent:SetAttribute("freeze", true)
    if LocalPlayer_upvr.TeamColor == BrickColor.new("Medium stone grey") then
        Services_upvr.TweenService:Create(lerpPlay_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 1;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            CFrame = workspace.game.menu.character.play.CFrame;
        }):Play()
        local any_LoadAnimation_result1_upvr = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Play)
        any_LoadAnimation_result1_upvr:Play(0.1)
        task.delay(0.1, function() -- Line 282
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr (readonly)
            ]]
            for _, v_4 in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v_4 and v_4 ~= any_LoadAnimation_result1_upvr then
                    v_4:Stop(0.2)
                end
            end
        end)
        task.wait(0.2)
        PlayerGui_upvr.home.Enabled = true
        PlayerGui_upvr.away.Enabled = true
        clone_upvr.main.Position = UDim2.new(0.5, 0, 1, 0)
        clone_upvr_2.main.Position = UDim2.new(0.5, 0, 1, 0)
        clone_upvr.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.3, true)
        clone_upvr_2.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.3, true)
        tbl_upvr.home:FadeIn()
        tbl_upvr.away:FadeIn()
        task.wait(0.2)
        menu_upvr.menu.Visible = false
    else
        any_LoadAnimation_result1_upvr = task.spawn
        any_LoadAnimation_result1_upvr(function() -- Line 305
            --[[ Upvalues[1]:
                [1]: finalStage_upvr (copied, readonly)
            ]]
            finalStage_upvr(true)
        end)
    end
end
return module
ModuleScript kit creator kit creator
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:12
-- Luau version 6, Types version 3
-- Time taken: 0.004144 seconds

local _engine = _G._engine
local any_load_result1 = _engine:load("BulkFade", "utils")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local tbl_upvr = {}
local var8_upvw = false
tbl_upvr.buttons = any_load_result1.CreateGroup(menu_upvr.menu.main.buttons:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.tabs = any_load_result1.CreateGroup(menu_upvr.menu.main.tabs:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
local var11_upvw = false
BindableEvent_upvr.Event:Connect(function() -- Line 29
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: var11_upvw (read and write)
        [3]: var8_upvw (read and write)
        [4]: menu_upvr (readonly)
        [5]: tbl_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var11_upvw then
        var11_upvw = true
        var8_upvw = false
        menu_upvr.pages["kit creator"].main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = true
        menu_upvr.menu.main.tabs.Visible = true
        tbl_upvr.buttons:FadeIn()
        tbl_upvr.tabs:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.pages["kit creator"].Visible = false
        task.wait(0.15)
        var11_upvw = false
    end
end)
menu_upvr.pages["kit creator"].main.top.back.MouseButton1Click:Connect(function() -- Line 53
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
local module = {}
local any_load_result1_3_upvr = _engine:load("Monetization", "utils")
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local any_load_result1_2_upvr = _engine:load("GamePassWhitelist", "utils")
function module.run(arg1) -- Line 61
    --[[ Upvalues[7]:
        [1]: any_load_result1_3_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_load_result1_2_upvr (readonly)
        [4]: var8_upvw (read and write)
        [5]: tbl_upvr (readonly)
        [6]: menu_upvr (readonly)
        [7]: Services_upvr (readonly)
    ]]
    if any_load_result1_3_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_3_upvr.gamePasses["Kit Creator"].gamePassId) or table.find(any_load_result1_2_upvr, LocalPlayer_upvr.UserId) then
        script.Parent.Parent:SetAttribute("freeze", true)
        var8_upvw = true
        tbl_upvr.buttons:FadeOut()
        tbl_upvr.tabs:FadeOut()
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = false
        menu_upvr.menu.main.tabs.Visible = false
        menu_upvr.pages["kit creator"].Visible = true
        menu_upvr.pages["kit creator"].main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    else
        local pcall_result1, pcall_result2 = pcall(function() -- Line 79
            --[[ Upvalues[3]:
                [1]: Services_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: any_load_result1_3_upvr (copied, readonly)
            ]]
            return Services_upvr.MarketPlaceService:PromptGamePassPurchase(LocalPlayer_upvr, any_load_result1_3_upvr.gamePasses["Kit Creator"].gamePassId)
        end)
        if not pcall_result1 then
            warn(string.format("An unexpected error occured while prompting game pass purchase | %s", pcall_result2))
        end
    end
end
return module
ModuleScript premium premium
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:13
-- Luau version 6, Types version 3
-- Time taken: 0.003064 seconds

local _engine = _G._engine
local any_load_result1 = _engine:load("BulkFade", "utils")
local References_upvr = _engine.References
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local tbl_upvr = {}
local var7_upvw = false
tbl_upvr.buttons = any_load_result1.CreateGroup(menu_upvr.menu.main.buttons:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.tabs = any_load_result1.CreateGroup(menu_upvr.menu.main.tabs:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
local var10_upvw = false
BindableEvent_upvr.Event:Connect(function() -- Line 27
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: var10_upvw (read and write)
        [3]: var7_upvw (read and write)
        [4]: menu_upvr (readonly)
        [5]: tbl_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var10_upvw then
        var10_upvw = true
        var7_upvw = false
        menu_upvr.pages.premium.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = true
        menu_upvr.menu.main.tabs.Visible = true
        tbl_upvr.buttons:FadeIn()
        tbl_upvr.tabs:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.pages.premium.Visible = false
        task.wait(0.15)
        var10_upvw = false
    end
end)
menu_upvr.pages.premium.main.top.back.MouseButton1Click:Connect(function() -- Line 51
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 59, Named "run"
        --[[ Upvalues[3]:
            [1]: var7_upvw (read and write)
            [2]: tbl_upvr (readonly)
            [3]: menu_upvr (readonly)
        ]]
        script.Parent.Parent:SetAttribute("freeze", true)
        var7_upvw = true
        tbl_upvr.buttons:FadeOut()
        tbl_upvr.tabs:FadeOut()
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = false
        menu_upvr.menu.main.tabs.Visible = false
        menu_upvr.pages.premium.Visible = true
        menu_upvr.pages.premium.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    end;
}
ModuleScript switch switch
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:15
-- Luau version 6, Types version 3
-- Time taken: 0.004151 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local PlayerGui_upvr = References_upvr.PlayerGui
local menu_upvr = PlayerGui_upvr:WaitForChild("menu", 100)
local any_load_result1 = _engine:load("BulkFade", "utils")
local tbl_upvr = {}
local home_upvr = PlayerGui_upvr:WaitForChild("home", 100)
local away_upvr = PlayerGui_upvr:WaitForChild("away", 100)
tbl_upvr.home = any_load_result1.CreateGroup(home_upvr.main:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.away = any_load_result1.CreateGroup(away_upvr.main:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.menu = any_load_result1.CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.home:FadeOut()
tbl_upvr.away:FadeOut()
local module = {}
local any_new_result1_upvr = _engine:load("Notification").new({
    lifeTime = 3;
})
local any_new_result1_upvr_2 = _engine:load("Network").new()
local lerpPlay_upvr = script.Parent.Parent:WaitForChild("lerpPlay", 100)
function module.run(arg1) -- Line 41
    --[[ Upvalues[11]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_new_result1_upvr (readonly)
        [4]: tbl_upvr (readonly)
        [5]: any_new_result1_upvr_2 (readonly)
        [6]: Services_upvr (readonly)
        [7]: lerpPlay_upvr (readonly)
        [8]: PlayerGui_upvr (readonly)
        [9]: home_upvr (readonly)
        [10]: away_upvr (readonly)
        [11]: menu_upvr (readonly)
    ]]
    if References_upvr.Main.cards.red:FindFirstChild(LocalPlayer_upvr.Name) then
        References_upvr.Main.sounds.UI.Error:Play()
        any_new_result1_upvr:create("YOU ARE ON A RED CARD!", Color3.fromRGB(255, 61, 61))
    else
        tbl_upvr.menu:FadeOut()
        script.Parent.Parent:SetAttribute("freeze", true)
        any_new_result1_upvr_2:send("switch")
        Services_upvr.TweenService:Create(lerpPlay_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 1;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            CFrame = workspace.game.menu.character.play.CFrame;
        }):Play()
        local any_LoadAnimation_result1_upvr = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Play)
        any_LoadAnimation_result1_upvr:Play(0.1)
        task.delay(0.1, function() -- Line 58
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr (readonly)
            ]]
            for _, v in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v and v ~= any_LoadAnimation_result1_upvr then
                    v:Stop(0.2)
                end
            end
        end)
        task.wait(0.2)
        PlayerGui_upvr.home.Enabled = true
        PlayerGui_upvr.away.Enabled = true
        home_upvr.main.Position = UDim2.new(0.5, 0, 1, 0)
        away_upvr.main.Position = UDim2.new(0.5, 0, 1, 0)
        home_upvr.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.3, true)
        away_upvr.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.3, true)
        tbl_upvr.home:FadeIn()
        tbl_upvr.away:FadeIn()
        task.wait(0.2)
        menu_upvr.menu.Visible = false
    end
end
return module
ModuleScript my player my player
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:16
-- Luau version 6, Types version 3
-- Time taken: 0.017744 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local PlayerGui = References_upvr.PlayerGui
local my_player_upvr = script.Parent.Parent:WaitForChild("pages", 100):WaitForChild("my player", 100)
local lerpCustomize_upvr = script.Parent.Parent:WaitForChild("lerpCustomize", 100)
local menu_upvr = PlayerGui:WaitForChild("menu", 100)
local rotate_upvr = PlayerGui:WaitForChild("rotate", 100)
local NumberValue_upvr = Instance.new("NumberValue", script)
NumberValue_upvr.Name = "lerp"
NumberValue_upvr.Value = 0
local any_new_result1_upvr = _engine:load("Maid").new()
local var11_upvw = false
local tbl_upvr = {
    menu = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
local jersey_upvr = PlayerGui:WaitForChild("jersey", 100)
local mouse_upvr = Services_upvr.Players.LocalPlayer:GetMouse()
local Character_upvr = workspace.game.menu:WaitForChild("Character", 100)
BindableEvent_upvr.Event:Connect(function() -- Line 42
    --[[ Upvalues[13]:
        [1]: var11_upvw (read and write)
        [2]: Services_upvr (readonly)
        [3]: NumberValue_upvr (readonly)
        [4]: jersey_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: rotate_upvr (readonly)
        [7]: mouse_upvr (readonly)
        [8]: Character_upvr (readonly)
        [9]: lerpCustomize_upvr (readonly)
        [10]: References_upvr (readonly)
        [11]: any_new_result1_upvr (readonly)
        [12]: tbl_upvr (readonly)
        [13]: my_player_upvr (readonly)
    ]]
    if not var11_upvw then
        var11_upvw = true
        Services_upvr.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 0;
        }):Play()
        Services_upvr.TweenService:Create(jersey_upvr.main.UIScale, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
            Scale = 0;
        }):Play()
        menu_upvr.pages.customize.main:TweenPosition(UDim2.new(-0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        rotate_upvr.Enabled = false
        mouse_upvr.Icon = ""
        Services_upvr.TweenService:Create(workspace.game.menu.ui.arrow.arrow.arrow, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
        }):Play()
        for _, v in next, {"boots", "gloves"} do
            workspace.game.menu.ui[v].main.main:TweenPosition(UDim2.new(-1, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
        end
        for _, v_2 in next, menu_upvr.elements:GetChildren() do
            if v_2 and v_2.Name == "point" then
                Services_upvr.TweenService:Create(v_2, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 1;
                }):Play()
            end
        end
        if not Character_upvr.Accessories:FindFirstChild("RightGlove") then
            Character_upvr.RightHand.Transparency = 0
            Character_upvr.LeftHand.Transparency = 0
        end
        for _, v_3 in next, Character_upvr.Accessories:GetChildren() do
            if v_3 and string.find(v_3.Name, "Glove") then
                v_3.Transparency = 0
            end
        end
        for _, v_4 in next, Character_upvr.Gloves:GetDescendants() do
            if v_4 and v_4:IsA("MeshPart") then
                v_4.Transparency = 1
            end
        end
        task.wait(0.025)
        Services_upvr.TweenService:Create(lerpCustomize_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 0;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            CFrame = workspace.game.menu.character.menu.CFrame;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.Ball.design["Adidas RF Pro 23/24"], TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Transparency = 0;
        }):Play()
        workspace.game.menu.Character.Ball.Ball.C0 = References_upvr.Main.rigs.Character.Ball.Ball.C0
        workspace.game.menu.Character.Ball.Ball.C1 = References_upvr.Main.rigs.Character.Ball.Ball.C1
        task.wait(0.4)
        any_new_result1_upvr:DoCleaning()
        tbl_upvr.menu:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.menu.Visible = true
        menu_upvr.pages.customize.Visible = false
        local any_LoadAnimation_result1_upvr_2 = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Menu)
        any_LoadAnimation_result1_upvr_2:Play(0.1)
        task.delay(0.1, function() -- Line 101
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr_2 (readonly)
            ]]
            for _, v_5 in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v_5 and v_5 ~= any_LoadAnimation_result1_upvr_2 then
                    v_5:Stop(0.2)
                end
            end
        end)
        task.wait(0.2)
        my_player_upvr:SetAttribute("toggle", false)
        var11_upvw = false
    end
end)
menu_upvr.pages.customize.main.top.back.back.MouseButton1Click:Connect(function() -- Line 115
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 123, Named "run"
        --[[ Upvalues[10]:
            [1]: tbl_upvr (readonly)
            [2]: var11_upvw (read and write)
            [3]: Services_upvr (readonly)
            [4]: lerpCustomize_upvr (readonly)
            [5]: References_upvr (readonly)
            [6]: rotate_upvr (readonly)
            [7]: menu_upvr (readonly)
            [8]: my_player_upvr (readonly)
            [9]: any_new_result1_upvr (readonly)
            [10]: NumberValue_upvr (readonly)
        ]]
        tbl_upvr.menu:FadeOut()
        var11_upvw = true
        script.Parent.Parent:SetAttribute("freeze", true)
        Services_upvr.TweenService:Create(lerpCustomize_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 1;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            CFrame = workspace.game.menu.character.customize.CFrame;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.Ball.design["Adidas RF Pro 23/24"], TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.ui.arrow.arrow.arrow, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            ImageTransparency = 0.7;
        }):Play()
        local any_LoadAnimation_result1_upvr = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Play)
        any_LoadAnimation_result1_upvr:Play(0.1)
        task.delay(0.1, function() -- Line 136
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr (readonly)
            ]]
            for _, v_6 in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v_6 and v_6 ~= any_LoadAnimation_result1_upvr then
                    v_6:Stop(0.2)
                end
            end
        end)
        task.wait(0.15)
        rotate_upvr.Enabled = true
        menu_upvr.menu.Visible = false
        menu_upvr.pages.customize.Visible = true
        menu_upvr.pages.customize.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.05)
        my_player_upvr:SetAttribute("toggle", true)
        for _, v_7_upvr in next, {"boots", "gloves"} do
            local any_WorldToViewportPoint_result1_upvw_2 = workspace.CurrentCamera:WorldToViewportPoint(workspace.game.menu.ui[v_7_upvr].start.Position)
            local any_WorldToViewportPoint_result1_upvw = workspace.CurrentCamera:WorldToViewportPoint(workspace.game.menu.ui[v_7_upvr]["end"].Position)
            local Frame_upvr = Instance.new("Frame")
            Frame_upvr.BorderSizePixel = 0
            Frame_upvr.BackgroundColor3 = Color3.new(1, 1, 1)
            Frame_upvr.AnchorPoint = Vector2.new(0.5, 0.5)
            Frame_upvr.Size = UDim2.new(0, 0, 0, 0)
            Frame_upvr.Parent = menu_upvr.elements
            local Frame_upvr_3 = Instance.new("Frame")
            Frame_upvr_3.Name = "point"
            Frame_upvr_3.BorderSizePixel = 0
            Frame_upvr_3.BackgroundColor3 = Color3.new(1, 1, 1)
            Frame_upvr_3.BackgroundTransparency = 1
            Frame_upvr_3.AnchorPoint = Vector2.new(0.5, 0.5)
            Frame_upvr_3.Size = UDim2.new(0, 8, 0, 8)
            Frame_upvr_3.Position = UDim2.new(0, any_WorldToViewportPoint_result1_upvw_2.X, 0, any_WorldToViewportPoint_result1_upvw_2.Y)
            Frame_upvr_3.Parent = menu_upvr.elements
            Instance.new("UICorner", Frame_upvr_3).CornerRadius = UDim.new(1, 0)
            local Frame_upvr_2 = Instance.new("Frame")
            Frame_upvr_2.Name = "point"
            Frame_upvr_2.BorderSizePixel = 0
            Frame_upvr_2.BackgroundColor3 = Color3.new(1, 1, 1)
            Frame_upvr_2.BackgroundTransparency = 1
            Frame_upvr_2.AnchorPoint = Vector2.new(0.5, 0.5)
            Frame_upvr_2.Size = UDim2.new(0, 8, 0, 8)
            Frame_upvr_2.Position = UDim2.new(0, any_WorldToViewportPoint_result1_upvw.X, 0, any_WorldToViewportPoint_result1_upvw.Y)
            Frame_upvr_2.Parent = menu_upvr.elements
            Instance.new("UICorner", Frame_upvr_2).CornerRadius = UDim.new(1, 0)
            any_new_result1_upvr:GiveTask(Frame_upvr)
            any_new_result1_upvr:GiveTask(Frame_upvr_3)
            any_new_result1_upvr:GiveTask(Frame_upvr_2)
            Services_upvr.TweenService:Create(Frame_upvr_3, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(Frame_upvr_2, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0;
            }):Play()
            Services_upvr.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
                Value = 1;
            }):Play()
            workspace.game.menu.ui[v_7_upvr].main.main:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
            any_new_result1_upvr[v_7_upvr.."_update"] = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 201
                --[[ Upvalues[7]:
                    [1]: any_WorldToViewportPoint_result1_upvw_2 (read and write)
                    [2]: v_7_upvr (readonly)
                    [3]: any_WorldToViewportPoint_result1_upvw (read and write)
                    [4]: Frame_upvr_3 (readonly)
                    [5]: Frame_upvr_2 (readonly)
                    [6]: Frame_upvr (readonly)
                    [7]: NumberValue_upvr (copied, readonly)
                ]]
                any_WorldToViewportPoint_result1_upvw_2 = workspace.CurrentCamera:WorldToViewportPoint(workspace.game.menu.ui[v_7_upvr].start.Position)
                any_WorldToViewportPoint_result1_upvw = workspace.CurrentCamera:WorldToViewportPoint(workspace.game.menu.ui[v_7_upvr]["end"].Position)
                Frame_upvr_3.Position = UDim2.new(0, any_WorldToViewportPoint_result1_upvw_2.X, 0, any_WorldToViewportPoint_result1_upvw_2.Y)
                Frame_upvr_2.Position = UDim2.new(0, any_WorldToViewportPoint_result1_upvw.X, 0, any_WorldToViewportPoint_result1_upvw.Y)
                Frame_upvr.Position = UDim2.new(0, (any_WorldToViewportPoint_result1_upvw_2.X + any_WorldToViewportPoint_result1_upvw.X) / 2, 0, (any_WorldToViewportPoint_result1_upvw_2.Y + any_WorldToViewportPoint_result1_upvw.Y) / 2)
                Frame_upvr.Rotation = math.atan2(any_WorldToViewportPoint_result1_upvw.Y - any_WorldToViewportPoint_result1_upvw_2.Y, any_WorldToViewportPoint_result1_upvw.X - any_WorldToViewportPoint_result1_upvw_2.X) * 57.29577951308232
                Frame_upvr.Size = UDim2.new(0, 0, 0, 0):Lerp(UDim2.new(0, ((any_WorldToViewportPoint_result1_upvw.X - any_WorldToViewportPoint_result1_upvw_2.X) ^ 2 + (any_WorldToViewportPoint_result1_upvw.Y - any_WorldToViewportPoint_result1_upvw_2.Y) ^ 2) ^ 0.5, 0, 2), NumberValue_upvr.Value)
            end)
        end
        var11_upvw = false
    end;
}
ModuleScript stats stats
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:18
-- Luau version 6, Types version 3
-- Time taken: 0.006141 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local lerpCustomize_upvr = script.Parent.Parent:WaitForChild("lerpCustomize", 100)
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local any_new_result1_upvr = _engine:load("Maid").new()
local var8_upvw = false
local tbl_upvr = {
    menu = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
BindableEvent_upvr.Event:Connect(function() -- Line 31
    --[[ Upvalues[7]:
        [1]: References_upvr (readonly)
        [2]: var8_upvw (read and write)
        [3]: menu_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: lerpCustomize_upvr (readonly)
        [7]: tbl_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var8_upvw then
        var8_upvw = true
        menu_upvr.pages.stats.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        any_new_result1_upvr:DoCleaning()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.Head:WaitForChild("Neck", 100), TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            C0 = Services_upvr.StarterPlayer.StarterCharacter.Head.Neck.C0;
        }):Play()
        Services_upvr.TweenService:Create(lerpCustomize_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            Value = 0;
        }):Play()
        Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
            CFrame = workspace.game.menu.character.menu.CFrame;
        }):Play()
        task.wait(0.4)
        local any_LoadAnimation_result1_upvr_2 = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Menu)
        any_LoadAnimation_result1_upvr_2:Play(0.1)
        task.delay(0.1, function() -- Line 51
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr_2 (readonly)
            ]]
            for _, v in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                if v and v ~= any_LoadAnimation_result1_upvr_2 then
                    v:Stop(0.2)
                end
            end
        end)
        menu_upvr.menu.Visible = true
        tbl_upvr.menu:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.pages.stats.Visible = false
        task.wait(0.15)
        var8_upvw = false
    end
end)
menu_upvr.pages.stats.main.top.back.MouseButton1Click:Connect(function() -- Line 70
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
local module = {}
local mouse_upvr = Services_upvr.Players.LocalPlayer:GetMouse()
function module.run(arg1) -- Line 78
    --[[ Upvalues[8]:
        [1]: tbl_upvr (readonly)
        [2]: var8_upvw (read and write)
        [3]: Services_upvr (readonly)
        [4]: lerpCustomize_upvr (readonly)
        [5]: References_upvr (readonly)
        [6]: menu_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: mouse_upvr (readonly)
    ]]
    local Neck_upvr = workspace.game.menu.Character.Head:WaitForChild("Neck", 100)
    tbl_upvr.menu:FadeOut()
    var8_upvw = true
    script.Parent.Parent:SetAttribute("freeze", true)
    Services_upvr.TweenService:Create(lerpCustomize_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
        Value = 1;
    }):Play()
    Services_upvr.TweenService:Create(workspace.game.menu.Character.HumanoidRootPart, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {
        CFrame = workspace.game.menu.character.stats.CFrame;
    }):Play()
    local any_LoadAnimation_result1_upvr = workspace.game.menu.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Player.Play)
    any_LoadAnimation_result1_upvr:Play(0.1)
    task.delay(0.1, function() -- Line 93
        --[[ Upvalues[1]:
            [1]: any_LoadAnimation_result1_upvr (readonly)
        ]]
        for _, v_2 in next, workspace.game.menu.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
            if v_2 and v_2 ~= any_LoadAnimation_result1_upvr then
                v_2:Stop(0.2)
            end
        end
    end)
    task.wait(0.15)
    menu_upvr.menu.Visible = false
    menu_upvr.pages.stats.Visible = true
    menu_upvr.pages.stats.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    local Y_upvr = Neck_upvr.C0.Y
    any_new_result1_upvr.renderStepped = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 107
        --[[ Upvalues[4]:
            [1]: mouse_upvr (copied, readonly)
            [2]: Neck_upvr (readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: Y_upvr (readonly)
        ]]
        local LookVector = workspace.CurrentCamera.CFrame:ToObjectSpace(mouse_upvr.Hit).LookVector
        Neck_upvr.Transform = CFrame.new()
        Services_upvr.TweenService:Create(Neck_upvr, TweenInfo.new(0.05, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            C0 = CFrame.new(0, Y_upvr, 0) * CFrame.Angles(LookVector.Y, LookVector.X, 0);
        }):Play()
    end)
    var8_upvw = false
end
return module
ModuleScript soundtrack soundtrack
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:19
-- Luau version 6, Types version 3
-- Time taken: 0.003685 seconds

local _engine = _G._engine
local any_load_result1 = _engine:load("BulkFade", "utils")
local References_upvr = _engine.References
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local tbl_upvr = {}
local var7_upvw = false
tbl_upvr.buttons = any_load_result1.CreateGroup(menu_upvr.menu.main.buttons:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
tbl_upvr.tabs = any_load_result1.CreateGroup(menu_upvr.menu.main.tabs:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
local var10_upvw = false
BindableEvent_upvr.Event:Connect(function() -- Line 27
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: var10_upvw (read and write)
        [3]: var7_upvw (read and write)
        [4]: menu_upvr (readonly)
        [5]: tbl_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var10_upvw then
        var10_upvw = true
        var7_upvw = false
        menu_upvr.pages.soundtrack.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = true
        menu_upvr.menu.main.tabs.Visible = true
        tbl_upvr.buttons:FadeIn()
        tbl_upvr.tabs:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        menu_upvr.pages.soundtrack.Visible = false
        task.wait(0.15)
        var10_upvw = false
    end
end)
menu_upvr.pages.soundtrack.main.top.back.MouseButton1Click:Connect(function() -- Line 51
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 59, Named "run"
        --[[ Upvalues[3]:
            [1]: var7_upvw (read and write)
            [2]: tbl_upvr (readonly)
            [3]: menu_upvr (readonly)
        ]]
        script.Parent.Parent:SetAttribute("freeze", true)
        var7_upvw = true
        tbl_upvr.buttons:FadeOut()
        tbl_upvr.tabs:FadeOut()
        task.wait(0.15)
        menu_upvr.menu.main.buttons.Visible = false
        menu_upvr.menu.main.tabs.Visible = false
        menu_upvr.pages.soundtrack.Visible = true
        menu_upvr.pages.soundtrack.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
    end;
}
ModuleScript settings settings
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:21
-- Luau version 6, Types version 3
-- Time taken: 0.004011 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local SOME_upvr = script.Parent.Parent:WaitForChild("pages", 100):WaitForChild(script.Name, 100)
local any_load_result1 = _engine:load("BulkFade", "utils")
while not menu_upvr.pages.settings:GetAttribute("loaded") do
    task.wait()
end
local var7_upvw = false
local tbl_upvr = {
    menu = any_load_result1.CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
    settings = any_load_result1.CreateGroup(menu_upvr.pages.settings:GetDescendants(), TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
BindableEvent_upvr.Event:Connect(function() -- Line 38
    --[[ Upvalues[5]:
        [1]: References_upvr (readonly)
        [2]: var7_upvw (read and write)
        [3]: tbl_upvr (readonly)
        [4]: SOME_upvr (readonly)
        [5]: menu_upvr (readonly)
    ]]
    References_upvr.Main.sounds.UI.Click:Play()
    if not var7_upvw then
        var7_upvw = true
        tbl_upvr.settings:FadeOut()
        SOME_upvr:SetAttribute("toggle", false)
        task.wait(0.15)
        menu_upvr.menu.Visible = true
        tbl_upvr.menu:FadeIn()
        script.Parent.Parent:SetAttribute("freeze", false)
        task.wait(0.15)
        menu_upvr.pages.settings.Visible = false
        var7_upvw = false
    end
end)
menu_upvr.pages.settings.main.top.back.MouseButton1Click:Connect(function() -- Line 58
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 66, Named "run"
        --[[ Upvalues[4]:
            [1]: tbl_upvr (readonly)
            [2]: var7_upvw (read and write)
            [3]: SOME_upvr (readonly)
            [4]: menu_upvr (readonly)
        ]]
        tbl_upvr.menu:FadeOut()
        var7_upvw = true
        script.Parent.Parent:SetAttribute("freeze", true)
        task.wait(0.15)
        SOME_upvr:SetAttribute("toggle", true)
        menu_upvr.menu.Visible = false
        menu_upvr.pages.settings.Visible = true
        tbl_upvr.settings:FadeIn()
        var7_upvw = false
    end;
}
ModuleScript cosmetics cosmetics
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:23
-- Luau version 6, Types version 3
-- Time taken: 0.003590 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local cosmetics_upvr = script.Parent.Parent:WaitForChild("pages", 100):WaitForChild("cosmetics", 100)
local var7_upvw = false
local tbl_upvr = {
    menu = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
menu_upvr.pages.cosmetics.overlay.BackgroundTransparency = 1
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
BindableEvent_upvr.Event:Connect(function() -- Line 34
    --[[ Upvalues[6]:
        [1]: cosmetics_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: var7_upvw (read and write)
        [4]: Services_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: tbl_upvr (readonly)
    ]]
    if cosmetics_upvr:GetAttribute("freeze") then
    else
        References_upvr.Main.sounds.UI.Click:Play()
        if not var7_upvw then
            var7_upvw = true
            Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.overlay, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {
                BackgroundTransparency = 1;
            }):Play()
            menu_upvr.pages.cosmetics.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.2, true)
            cosmetics_upvr:SetAttribute("toggle", false)
            task.wait(0.15)
            menu_upvr.menu.Visible = true
            tbl_upvr.menu:FadeIn()
            script.Parent.Parent:SetAttribute("freeze", false)
            task.wait(0.05)
            menu_upvr.pages.cosmetics.Visible = false
            var7_upvw = false
        end
    end
end)
menu_upvr.pages.cosmetics.main.top.back.back.MouseButton1Click:Connect(function() -- Line 60
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 68, Named "run"
        --[[ Upvalues[5]:
            [1]: tbl_upvr (readonly)
            [2]: var7_upvw (read and write)
            [3]: cosmetics_upvr (readonly)
            [4]: menu_upvr (readonly)
            [5]: Services_upvr (readonly)
        ]]
        tbl_upvr.menu:FadeOut()
        var7_upvw = true
        script.Parent.Parent:SetAttribute("freeze", true)
        task.wait(0.15)
        cosmetics_upvr:SetAttribute("toggle", true)
        menu_upvr.menu.Visible = false
        menu_upvr.pages.cosmetics.Visible = true
        Services_upvr.TweenService:Create(menu_upvr.pages.cosmetics.overlay, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            BackgroundTransparency = 0.3;
        }):Play()
        menu_upvr.pages.cosmetics.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.3, true)
        var7_upvw = false
    end;
}
ModuleScript ranked ranked
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:24
-- Luau version 6, Types version 3
-- Time taken: 0.004112 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local ranked_upvr = script.Parent.Parent:WaitForChild("pages", 100):WaitForChild("ranked", 100)
local tbl = {
    lifeTime = 3;
}
local var8_upvw = false
local tbl_upvr = {
    menu = _engine:load("BulkFade", "utils").CreateGroup(menu_upvr.menu:GetDescendants(), TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out));
}
menu_upvr.pages.ranked.overlay.BackgroundTransparency = 1
local BindableEvent_upvr = Instance.new("BindableEvent", script)
BindableEvent_upvr.Name = "back"
BindableEvent_upvr.Event:Connect(function() -- Line 35
    --[[ Upvalues[6]:
        [1]: ranked_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: var8_upvw (read and write)
        [4]: Services_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: tbl_upvr (readonly)
    ]]
    if ranked_upvr:GetAttribute("freeze") then
    else
        References_upvr.Main.sounds.UI.Click:Play()
        if not var8_upvw then
            var8_upvw = true
            Services_upvr.TweenService:Create(menu_upvr.pages.ranked.overlay, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {
                BackgroundTransparency = 1;
            }):Play()
            menu_upvr.pages.ranked.main:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.2, true)
            task.wait(0.15)
            menu_upvr.menu.Visible = true
            tbl_upvr.menu:FadeIn()
            script.Parent.Parent:SetAttribute("freeze", false)
            ranked_upvr:SetAttribute("toggle", false)
            task.wait(0.05)
            menu_upvr.pages.ranked.Visible = false
            var8_upvw = false
        end
    end
end)
menu_upvr.pages.ranked.main.top.back.back.MouseButton1Click:Connect(function() -- Line 61
    --[[ Upvalues[1]:
        [1]: BindableEvent_upvr (readonly)
    ]]
    BindableEvent_upvr:Fire()
end)
return {
    run = function(arg1) -- Line 69, Named "run"
        --[[ Upvalues[5]:
            [1]: tbl_upvr (readonly)
            [2]: var8_upvw (read and write)
            [3]: ranked_upvr (readonly)
            [4]: menu_upvr (readonly)
            [5]: Services_upvr (readonly)
        ]]
        tbl_upvr.menu:FadeOut()
        var8_upvw = true
        ranked_upvr:SetAttribute("toggle", true)
        script.Parent.Parent:SetAttribute("freeze", true)
        task.wait(0.15)
        menu_upvr.menu.Visible = false
        menu_upvr.pages.ranked.Visible = true
        Services_upvr.TweenService:Create(menu_upvr.pages.ranked.overlay, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            BackgroundTransparency = 0.3;
        }):Play()
        menu_upvr.pages.ranked.main:TweenPosition(UDim2.new(0.5, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.3, true)
        var8_upvw = false
    end;
}
ModuleScript backpack backpack
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:26
-- Luau version 6, Types version 3
-- Time taken: 0.056892 seconds

local _engine = _G._engine
local any_load_result1 = _engine:load("Maid")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = References_upvr.LocalPlayer
local main = References_upvr.PlayerGui:WaitForChild("main", 100)
local backpack_upvr = main:WaitForChild("backpack", 100)
local layout_upvr = main:WaitForChild("buttons", 100):WaitForChild("layout", 100)
local any_new_result1_upvr_7 = any_load_result1.new()
local module = {
    icons = {
        selected = "rbxasset://textures/ui/TopBar/inventoryOn.png";
        deselected = "rbxasset://textures/ui/TopBar/inventoryOff.png";
    };
    keymap = {
        [Enum.KeyCode.One] = 1;
        [Enum.KeyCode.Two] = 2;
        [Enum.KeyCode.Three] = 3;
        [Enum.KeyCode.Four] = 4;
        [Enum.KeyCode.Five] = 5;
        [Enum.KeyCode.Six] = 6;
        [Enum.KeyCode.Seven] = 7;
        [Enum.KeyCode.Eight] = 8;
        [Enum.KeyCode.Nine] = 9;
        [Enum.KeyCode.Zero] = 10;
    };
    tools = {};
    switching = false;
    clearOnRespawn = true;
    destroyed = false;
}
local any_new_result1_upvr_3 = any_load_result1.new()
local any_createCollisionGroup_result1_upvr = _engine:load("GuiCollisionService", "utils").createCollisionGroup()
local any_new_result1_upvr_4 = any_load_result1.new()
local any_new_result1_upvr_2 = _engine:load("Network").new()
function module.switch(arg1, arg2) -- Line 55
    --[[ Upvalues[8]:
        [1]: Services_upvr (readonly)
        [2]: backpack_upvr (readonly)
        [3]: layout_upvr (readonly)
        [4]: any_new_result1_upvr_3 (readonly)
        [5]: any_createCollisionGroup_result1_upvr (readonly)
        [6]: any_new_result1_upvr_4 (readonly)
        [7]: References_upvr (readonly)
        [8]: any_new_result1_upvr_2 (readonly)
    ]]
    local var37
    if typeof(arg2) ~= "boolean" then
        var37 = false
    else
        var37 = true
    end
    assert(var37, "backpack.toggleSwitch | boolean 't' expected, got "..typeof(arg2))
    if arg2 then
        arg1.switching = true
        var37 = Services_upvr
        var37.TweenService:Create(backpack_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0;
        }):Play()
        var37 = Services_upvr
        var37.TweenService:Create(backpack_upvr.background.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 0;
        }):Play()
        var37 = Services_upvr
        var37.TweenService:Create(layout_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
        }):Play()
        var37 = Services_upvr
        var37.TweenService:Create(layout_upvr.selected, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0;
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        var37 = Services_upvr
        var37.TweenService:Create(layout_upvr.deselected, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
        var37 = backpack_upvr.slots:GetChildren()
        local children, NONE_4 = backpack_upvr.slots:GetChildren()
        for _, v in next, children, NONE_4 do
            if v:IsA("Frame") then
                v.Visible = true
            end
        end
        children = arg1.tools
        for i_2_upvr, v_2_upvr in next, children do
            if i_2_upvr and v_2_upvr then
                local var46_upvw = false
                any_new_result1_upvr_3[i_2_upvr.."_mouseButton1Down"] = v_2_upvr.frame.button.MouseButton1Down:Connect(function() -- Line 78
                    --[[ Upvalues[8]:
                        [1]: v_2_upvr (readonly)
                        [2]: any_createCollisionGroup_result1_upvr (copied, readonly)
                        [3]: backpack_upvr (copied, readonly)
                        [4]: any_new_result1_upvr_4 (copied, readonly)
                        [5]: var46_upvw (read and write)
                        [6]: Services_upvr (copied, readonly)
                        [7]: arg1 (readonly)
                        [8]: i_2_upvr (readonly)
                    ]]
                    v_2_upvr.slot.ZIndex = 2
                    any_createCollisionGroup_result1_upvr:addHitter(v_2_upvr.frame)
                    for _, v_3 in next, backpack_upvr.slots:GetChildren() do
                        if v_3:IsA("Frame") then
                            any_createCollisionGroup_result1_upvr:addCollider(v_3)
                            any_new_result1_upvr_4[v_3.Name.."_touchBegan"] = any_createCollisionGroup_result1_upvr:getHitter(1).CollidersTouched.Event:Connect(function(arg1_2) -- Line 86
                                --[[ Upvalues[4]:
                                    [1]: var46_upvw (copied, read and write)
                                    [2]: Services_upvr (copied, readonly)
                                    [3]: arg1 (copied, readonly)
                                    [4]: backpack_upvr (copied, readonly)
                                ]]
                                if not var46_upvw then
                                    for _, v_4 in next, arg1_2 do
                                        var46_upvw = true
                                        Services_upvr.TweenService:Create(v_4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                            BackgroundTransparency = 0.7;
                                        }):Play()
                                        arg1.nearestSlot = v_4
                                        for _, v_5 in next, backpack_upvr.slots:GetChildren() do
                                            if v_5 and v_5:IsA("Frame") and v_5 ~= v_4 then
                                                Services_upvr.TweenService:Create(v_5, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                                    BackgroundTransparency = 0.9;
                                                }):Play()
                                            end
                                        end
                                        task.delay(0.25, function() -- Line 99
                                            --[[ Upvalues[1]:
                                                [1]: var46_upvw (copied, read and write)
                                            ]]
                                            var46_upvw = false
                                        end)
                                    end
                                end
                            end)
                        end
                    end
                    any_new_result1_upvr_4[i_2_upvr.."_renderStepped"] = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 108
                        --[[ Upvalues[2]:
                            [1]: Services_upvr (copied, readonly)
                            [2]: v_2_upvr (copied, readonly)
                        ]]
                        local any_GetMouseLocation_result1 = Services_upvr.UserInputService:GetMouseLocation()
                        local AbsolutePosition = v_2_upvr.slot.AbsolutePosition
                        v_2_upvr.frame:TweenPosition(UDim2.new(0, any_GetMouseLocation_result1.X - AbsolutePosition.X - v_2_upvr.frame.AbsoluteSize.X / 2, 0, any_GetMouseLocation_result1.Y - AbsolutePosition.Y - v_2_upvr.frame.AbsoluteSize.Y / 2 - 36), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.05, true)
                    end)
                end)
                any_new_result1_upvr_3[i_2_upvr.."_inputEnded"] = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_2) -- Line 116
                    --[[ Upvalues[9]:
                        [1]: v_2_upvr (readonly)
                        [2]: any_new_result1_upvr_4 (copied, readonly)
                        [3]: arg1 (readonly)
                        [4]: References_upvr (copied, readonly)
                        [5]: i_2_upvr (readonly)
                        [6]: any_new_result1_upvr_2 (copied, readonly)
                        [7]: any_createCollisionGroup_result1_upvr (copied, readonly)
                        [8]: backpack_upvr (copied, readonly)
                        [9]: Services_upvr (copied, readonly)
                    ]]
                    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
                    if arg1_3.UserInputType == Enum.UserInputType.MouseButton1 and v_2_upvr.slot.ZIndex == 2 and (arg2_2 or not arg2_2) then
                        any_new_result1_upvr_4:DoCleaning()
                        v_2_upvr.frame:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.01, true)
                        v_2_upvr.slot.ZIndex = 1
                        if arg1.nearestSlot then
                            local LayoutOrder = arg1.nearestSlot.LayoutOrder
                            arg1.nearestSlot.LayoutOrder = v_2_upvr.slot.LayoutOrder
                            local var98 = arg1
                            local var99
                            if var99 == 10 then
                                var98 = '0'
                            else
                                var99 = arg1.nearestSlot.LayoutOrder
                                var98 = tostring(var99)
                            end
                            var98.nearestSlot.Name = var98
                            v_2_upvr.slot.LayoutOrder = LayoutOrder
                            local var100 = v_2_upvr
                            if LayoutOrder == 10 then
                                var100 = '0'
                            else
                                var99 = LayoutOrder
                                var100 = tostring(var99)
                            end
                            var100.slot.Name = var100
                            var99 = v_2_upvr
                            var100 = var99.frame
                            local var101 = var100
                            if LayoutOrder == 10 then
                                var101 = '0'
                            else
                                var99 = LayoutOrder
                                var101 = tostring(var99)
                            end
                            var101.slot.Text = var101
                            var99 = v_2_upvr
                            var101 = var99.frame
                            local var102 = var101
                            if LayoutOrder == 10 then
                                var102 = '0'
                            else
                                var99 = LayoutOrder
                                var102 = tostring(var99)
                            end
                            var102.slotEquipped.Text = var102
                            var99 = References_upvr.Profile
                            var99 = i_2_upvr.."Slot"
                            var99 = v_2_upvr.slot.Name
                            var99.tools[var99].Value = tonumber(var99)
                            var99 = "replicateValue"
                            any_new_result1_upvr_2:send(var99, References_upvr.Profile.tools[i_2_upvr.."Slot"], tonumber(v_2_upvr.slot.Name))
                            var99 = "Frame"
                            if arg1.nearestSlot:FindFirstChildWhichIsA(var99) then
                                var99 = "Frame"
                                local var103 = var99
                                local instance = arg1.nearestSlot:FindFirstChildWhichIsA(var103)
                                if arg1.nearestSlot.LayoutOrder == 10 then
                                    var103 = '0'
                                else
                                    var103 = tostring(arg1.nearestSlot.LayoutOrder)
                                end
                                instance.slot.Text = var103
                                if arg1.nearestSlot.LayoutOrder == 10 then
                                else
                                end
                                instance.slotEquipped.Text = tostring(arg1.nearestSlot.LayoutOrder)
                                References_upvr.Profile.tools[instance.Name.."Slot"].Value = tonumber(arg1.nearestSlot.Name)
                                any_new_result1_upvr_2:send("replicateValue", References_upvr.Profile.tools[instance.Name.."Slot"], tonumber(arg1.nearestSlot.Name))
                            else
                                for _, v_6 in next, References_upvr.Profile.tools:GetChildren() do
                                    if v_6 and v_6.Value == LayoutOrder and v_6.Name ~= i_2_upvr.."Slot" then
                                        v_6.Value = arg1.nearestSlot.LayoutOrder
                                        any_new_result1_upvr_2:send("replicateValue", v_6, v_6.Value)
                                    end
                                end
                            end
                        end
                        arg1.nearestSlot = nil
                        if any_createCollisionGroup_result1_upvr:getHitters() then
                            for i_7, _ in next, any_createCollisionGroup_result1_upvr:getHitters() do
                                v_6 = any_createCollisionGroup_result1_upvr:removeHitter
                                v_6(i_7)
                            end
                        end
                        if any_createCollisionGroup_result1_upvr:getColliders() then
                            for i_8, _ in next, any_createCollisionGroup_result1_upvr:getColliders() do
                                v_6 = any_createCollisionGroup_result1_upvr:removeCollider
                                v_6(i_8)
                            end
                        end
                        for _, _ in next, backpack_upvr.slots:GetChildren() do
                            v_6 = _:IsA("Frame")
                            if v_6 then
                                v_6 = Services_upvr.TweenService
                                local _ = {
                                    BackgroundTransparency = 0.9;
                                }
                                v_6 = v_6:Create(_, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                                v_6()
                            end
                        end
                    end
                end)
            end
        end
    else
        if any_new_result1_upvr_3 then
            any_new_result1_upvr_3:DoCleaning()
        end
        if any_new_result1_upvr_4 then
            any_new_result1_upvr_4:DoCleaning()
        end
        if any_createCollisionGroup_result1_upvr:getHitters() then
            children = any_createCollisionGroup_result1_upvr:getHitters()
            local any_getHitters_result1, any_getHitters_result2 = any_createCollisionGroup_result1_upvr:getHitters()
            for i_13, _ in next, any_getHitters_result1, any_getHitters_result2 do
                any_createCollisionGroup_result1_upvr:removeHitter(i_13)
            end
        end
        if any_createCollisionGroup_result1_upvr:getColliders() then
            any_getHitters_result1 = any_createCollisionGroup_result1_upvr:getColliders()
            local any_getColliders_result1, any_getColliders_result2 = any_createCollisionGroup_result1_upvr:getColliders()
            for i_14, _ in next, any_getColliders_result1, any_getColliders_result2 do
                any_createCollisionGroup_result1_upvr:removeCollider(i_14)
            end
        end
        arg1.switching = false
        arg1.nearestSlot = nil
        any_getColliders_result1 = Services_upvr
        any_getColliders_result1.TweenService:Create(layout_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0;
        }):Play()
        any_getColliders_result1 = Services_upvr
        any_getColliders_result1.TweenService:Create(layout_upvr.selected, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
            ImageColor3 = Color3.fromRGB(35, 39, 50);
        }):Play()
        any_getColliders_result1 = Services_upvr
        any_getColliders_result1.TweenService:Create(layout_upvr.deselected, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 0;
            ImageColor3 = Color3.fromRGB(35, 39, 50);
        }):Play()
        any_getColliders_result1 = Services_upvr
        any_getColliders_result1.TweenService:Create(backpack_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageTransparency = 1;
        }):Play()
        any_getColliders_result1 = Services_upvr
        any_getColliders_result1.TweenService:Create(backpack_upvr.background.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Transparency = 1;
        }):Play()
        any_getColliders_result1 = backpack_upvr.slots:GetChildren()
        for _, v_15 in next, backpack_upvr.slots:GetChildren() do
            if v_15:IsA("Frame") and not v_15:FindFirstChildWhichIsA("Frame") then
                v_15.Visible = false
                v_15.ZIndex = 1
                v_15.BackgroundTransparency = 0.9
            elseif v_15:IsA("Frame") and v_15:FindFirstChildWhichIsA("Frame") then
                v_15:FindFirstChildWhichIsA("Frame").Position = UDim2.new(0, 0, 0, 0)
                v_15.ZIndex = 1
                v_15.BackgroundTransparency = 0.9
            end
        end
    end
end
local any_load_result1_2_upvr = _engine:load("GoodSignal")
function module.create(arg1, arg2) -- Line 224
    --[[ Upvalues[6]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: backpack_upvr (readonly)
        [4]: any_load_result1_2_upvr (readonly)
        [5]: any_new_result1_upvr_7 (readonly)
        [6]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local function INLINED_6() -- Internal function, doesn't exist in bytecode
        local var181
        return var181
    end
    local function INLINED_7() -- Internal function, doesn't exist in bytecode
        var181 = LocalPlayer_upvr.Team.Name
        return var181 == "Referee"
    end
    local function INLINED_8() -- Internal function, doesn't exist in bytecode
        var181 = arg2.Name
        return var181 == "Red"
    end
    local function INLINED_9() -- Internal function, doesn't exist in bytecode
        var181 = arg2.Name
        return var181 == "Yellow"
    end
    local function INLINED_10() -- Internal function, doesn't exist in bytecode
        var181 = arg2.Name
        return var181 == "Whistle"
    end
    if arg2:IsA("Tool") and not arg1.tools[arg2.Name] and INLINED_6() and INLINED_7() and (INLINED_8() or INLINED_9() or INLINED_10()) then
        var181 = References_upvr.Profile.tools:FindFirstChild(arg2.Name.."Slot")
        if not var181 then
            local IntValue_2 = Instance.new("IntValue")
            IntValue_2.Name = arg2.Name.."Slot"
            IntValue_2.Value = ({
                Red = 1;
                Yellow = 2;
                Whistle = 3;
            })[arg2.Name] or 1
            IntValue_2.Parent = References_upvr.Profile.tools
            var181 = IntValue_2
        end
        local SOME_2 = backpack_upvr.slots:FindFirstChild(tostring(var181.Value))
        if not SOME_2 then
        else
            if not LocalPlayer_upvr.Character then
            end
            SOME_2.Visible = true
            local any_new_result1_upvr_10 = any_load_result1_2_upvr.new(1)
            local any_new_result1_upvr_6 = any_load_result1_2_upvr.new(1)
            local clone_upvr = References_upvr.Main.ui.slot:Clone()
            clone_upvr.Parent = SOME_2
            clone_upvr.Name = arg2.Name
            clone_upvr.tool.Text = arg2.Name
            clone_upvr.toolEquipped.Text = arg2.Name
            clone_upvr.slot.Text = tostring(SOME_2.Name)
            clone_upvr.slotEquipped.Text = tostring(SOME_2.Name)
            any_new_result1_upvr_7:GiveTask(clone_upvr)
            any_new_result1_upvr_10:Connect(function() -- Line 265
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(clone_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.background.back, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.tool, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.slot, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.toolEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.slotEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 0;
                }):Play()
            end)
            any_new_result1_upvr_6:Connect(function() -- Line 275
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_upvr (readonly)
                ]]
                Services_upvr.TweenService:Create(clone_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.background.back, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 0.7;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.tool, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.slot, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.toolEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.slotEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 1;
                }):Play()
            end)
            local Humanoid_upvr_2 = LocalPlayer_upvr.CharacterAdded:Wait():WaitForChild("Humanoid", 100)
            any_new_result1_upvr_7[arg2.Name.."_mouseButton1Click"] = clone_upvr.button.MouseButton1Click:Connect(function() -- Line 285
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                    [3]: Humanoid_upvr_2 (readonly)
                ]]
                if not arg1.switching then
                    if not arg2:GetAttribute("equipped") then
                        Humanoid_upvr_2:EquipTool(arg2)
                        return
                    end
                    Humanoid_upvr_2:UnequipTools()
                end
            end)
            any_new_result1_upvr_7[arg2.Name.."_equipped"] = arg2.Equipped:Connect(function() -- Line 295
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: any_new_result1_upvr_10 (readonly)
                ]]
                arg2:SetAttribute("equipped", true)
                any_new_result1_upvr_10:Fire()
            end)
            any_new_result1_upvr_7[arg2.Name.."_unequipped"] = arg2.Unequipped:Connect(function() -- Line 300
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: any_new_result1_upvr_6 (readonly)
                ]]
                arg2:SetAttribute("equipped", false)
                any_new_result1_upvr_6:Fire()
            end)
            local tbl_29 = {}
            tbl_29.tool = arg2
            tbl_29.slot = SOME_2
            tbl_29.frame = clone_upvr
            tbl_29.equipped = any_new_result1_upvr_10
            tbl_29.unequipped = any_new_result1_upvr_6
            arg1.tools[arg2.Name] = tbl_29
        end
    end
    if References_upvr.Profile then
    end
    task.wait(0.1)
    local tools_2 = References_upvr.Profile:FindFirstChild("tools")
    if tools_2 then
        Humanoid_upvr_2 = arg2.Name
        any_new_result1_upvr_10 = "Slot"
        tools_2 = References_upvr.Profile:FindFirstChild("tools"):FindFirstChild(Humanoid_upvr_2..any_new_result1_upvr_10)
    end
    local var210 = tools_2
    if var210 then
        var210 = tools_2.Value
    end
    if var210 ~= nil then
        Humanoid_upvr_2 = backpack_upvr
        any_new_result1_upvr_6 = var210
        any_new_result1_upvr_10 = tostring(any_new_result1_upvr_6)
    end
    any_new_result1_upvr_6 = "Tool"
    Humanoid_upvr_2 = arg2:IsA(any_new_result1_upvr_6)
    if Humanoid_upvr_2 then
        any_new_result1_upvr_10 = arg1.tools
        any_new_result1_upvr_6 = arg2.Name
        Humanoid_upvr_2 = any_new_result1_upvr_10[any_new_result1_upvr_6]
        if not Humanoid_upvr_2 and tools_2 and Humanoid_upvr_2.slots:FindFirstChild(any_new_result1_upvr_10) then
            any_new_result1_upvr_10 = LocalPlayer_upvr
            Humanoid_upvr_2 = any_new_result1_upvr_10.Character
            local var211 = Humanoid_upvr_2
            if not var211 then
                any_new_result1_upvr_10 = LocalPlayer_upvr
                var211 = any_new_result1_upvr_10.CharacterAdded:Wait()
            end
            clone_upvr = "Humanoid"
            any_new_result1_upvr_10 = var211:WaitForChild(clone_upvr, 100)
            clone_upvr = backpack_upvr
            any_new_result1_upvr_6 = clone_upvr.slots:WaitForChild(tostring(References_upvr.Profile.tools[arg2.Name.."Slot"].Value), 100)
            local var212 = any_new_result1_upvr_6
            clone_upvr = true
            var212.Visible = clone_upvr
            clone_upvr = any_load_result1_2_upvr.new(1)
            local var213_upvr = clone_upvr
            local any_new_result1_upvr = any_load_result1_2_upvr.new(1)
            local clone_upvr_3 = References_upvr.Main.ui.slot:Clone()
            clone_upvr_3.Parent = var212
            clone_upvr_3.Name = arg2.Name
            clone_upvr_3.tool.Text = arg2.Name
            clone_upvr_3.toolEquipped.Text = arg2.Name
            clone_upvr_3.slot.Text = tostring(var212.Name)
            clone_upvr_3.slotEquipped.Text = tostring(var212.Name)
            any_new_result1_upvr_7:GiveTask(clone_upvr_3)
            var213_upvr:Connect(function() -- Line 346
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_upvr_3 (readonly)
                ]]
                Services_upvr.TweenService:Create(clone_upvr_3.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.background.back, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.tool, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.slot, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.toolEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.slotEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 0;
                }):Play()
            end)
            any_new_result1_upvr:Connect(function() -- Line 356
                --[[ Upvalues[2]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: clone_upvr_3 (readonly)
                ]]
                Services_upvr.TweenService:Create(clone_upvr_3.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.background.back, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundTransparency = 0.7;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.tool, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.slot, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.toolEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.slotEquipped, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                Services_upvr.TweenService:Create(clone_upvr_3.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Transparency = 1;
                }):Play()
            end)
            any_new_result1_upvr_7[arg2.Name.."_mouseButton1Click"] = clone_upvr_3.button.MouseButton1Click:Connect(function() -- Line 366
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: arg2 (readonly)
                    [3]: any_new_result1_upvr_10 (readonly)
                ]]
                if not arg1.switching then
                    if not arg2:GetAttribute("equipped") then
                        any_new_result1_upvr_10:EquipTool(arg2)
                        return
                    end
                    any_new_result1_upvr_10:UnequipTools()
                end
            end)
            any_new_result1_upvr_7[arg2.Name.."_equipped"] = arg2.Equipped:Connect(function() -- Line 376
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: var213_upvr (readonly)
                ]]
                arg2:SetAttribute("equipped", true)
                var213_upvr:Fire()
            end)
            any_new_result1_upvr_7[arg2.Name.."_unequipped"] = arg2.Unequipped:Connect(function() -- Line 381
                --[[ Upvalues[2]:
                    [1]: arg2 (readonly)
                    [2]: any_new_result1_upvr (readonly)
                ]]
                arg2:SetAttribute("equipped", false)
                any_new_result1_upvr:Fire()
            end)
            local tbl_10 = {}
            tbl_10.tool = arg2
            tbl_10.slot = var212
            tbl_10.frame = clone_upvr_3
            tbl_10.equipped = var213_upvr
            tbl_10.unequipped = any_new_result1_upvr
            arg1.tools[arg2.Name] = tbl_10
            return
        end
    end
end
function module.init(arg1) -- Line 398
    --[[ Upvalues[6]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
        [4]: layout_upvr (readonly)
        [5]: backpack_upvr (readonly)
        [6]: any_new_result1_upvr_7 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local getEffectiveInputMethod_result1 = (function() -- Line 400, Named "getEffectiveInputMethod"
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        local Profile = References_upvr.Profile
        if Profile and Profile.settings and Profile.settings.Visual and Profile.settings.Visual:FindFirstChild("Input Method") then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            local Value = Profile.settings.Visual:FindFirstChild("Input Method").Value
            if Value == "KBM" then
                return "KBM"
            end
            if Value == "Controller" then
                return "Controller"
            end
            if Value == "Mobile" then
                return "Touch"
            end
        end
        if Services_upvr.UserInputService.TouchEnabled then
            return "Touch"
        end
        if Services_upvr.UserInputService.GamepadEnabled then
            return "Controller"
        end
        return "KBM"
    end)()
    print("[BACKPACK DEBUG] Input method detected:", getEffectiveInputMethod_result1)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 11. Error Block 44 start (CF ANALYSIS FAILED)
    if not LocalPlayer_upvr.Team or LocalPlayer_upvr.Team.Name ~= "Referee" then
    end
    local Character = LocalPlayer_upvr.Character
    if not Character then
        Character = LocalPlayer_upvr.CharacterAdded:Wait()
    end
    while not References_upvr.Profile:FindFirstChild("tools") do
        task.wait()
    end
    if not arg1.backpackIcon and not script:GetAttribute("loaded") then
        layout_upvr.button.MouseEnter:Connect(function() -- Line 443
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: layout_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(layout_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        layout_upvr.button.MouseLeave:Connect(function() -- Line 448
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: layout_upvr (copied, readonly)
            ]]
            Services_upvr.TweenService:Create(layout_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        layout_upvr.button.MouseButton1Click:Connect(function() -- Line 452
            --[[ Upvalues[2]:
                [1]: References_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            if not arg1.switching then
                arg1:switch(true)
            else
                arg1:switch(false)
            end
        end)
        arg1.backpackIcon = layout_upvr
        script:SetAttribute("loaded", true)
    end
    Services_upvr.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
    backpack_upvr.Visible = true
    arg1.destroyed = false
    if LocalPlayer_upvr.Team and LocalPlayer_upvr.Team.Name == "Media" then
        for i_10, v_10 in next, backpack_upvr.slots:GetChildren() do
            if v_10:IsA("Frame") then
                v_10.Visible = false
            end
        end
    end
    if LocalPlayer_upvr.Team and LocalPlayer_upvr.Team.Name == "Referee" then
        local tbl_16 = {}
        i_10 = 3
        tbl_16[1] = 1
        tbl_16[2] = 2
        tbl_16[3] = i_10
        for _, v_11 in ipairs(tbl_16) do
            if not backpack_upvr.slots:FindFirstChild(tostring(v_11)) then
                local Frame = Instance.new("Frame")
                Frame.Name = tostring(v_11)
                Frame.Size = UDim2.new(0, 70, 0, 70)
                Frame.BackgroundTransparency = 0.9
                Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
                Frame.BorderSizePixel = 0
                Frame.Parent = backpack_upvr.slots
            end
        end
    end
    local _, _ = LocalPlayer_upvr:WaitForChild("Backpack", 100):GetChildren()
    -- KONSTANTERROR: [12] 11. Error Block 44 end (CF ANALYSIS FAILED)
end
function module.clear(arg1) -- Line 597
    --[[ Upvalues[2]:
        [1]: backpack_upvr (readonly)
        [2]: any_new_result1_upvr_7 (readonly)
    ]]
    arg1.switching = false
    arg1.destroyed = true
    backpack_upvr.Visible = false
    any_new_result1_upvr_7:DoCleaning()
    for i_12, v_12 in next, arg1.tools do
        if i_12 and v_12 then
            v_12.equipped:Destroy()
            v_12.unequipped:Destroy()
            v_12.slot.Visible = false
        end
    end
    table.clear(arg1.tools)
end
return module
ModuleScript voteFix voteFix
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:31
-- Luau version 6, Types version 3
-- Time taken: 0.012595 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local voteFix_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("voteFix", 100)
local module = {
    toggled = false;
}
local any_load_result1_upvr = _engine:load("Theme", "utils")
local any_new_result1_upvr = _engine:load("Network").new()
function module.init(arg1) -- Line 23
    --[[ Upvalues[5]:
        [1]: any_load_result1_upvr (readonly)
        [2]: voteFix_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: any_new_result1_upvr (readonly)
    ]]
    for _, v in next, {"right", "left"} do
        voteFix_upvr.progress.progress[v].circle.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, any_load_result1_upvr.Text), ColorSequenceKeypoint.new(0.5, any_load_result1_upvr.Text), ColorSequenceKeypoint.new(0.501, any_load_result1_upvr.Accent), ColorSequenceKeypoint.new(1, any_load_result1_upvr.Accent)})
    end
    for _, v_2_upvr in next, voteFix_upvr.buttons:GetChildren() do
        if v_2_upvr and v_2_upvr:IsA("TextButton") then
            v_2_upvr.MouseEnter:Connect(function() -- Line 36
                --[[ Upvalues[5]:
                    [1]: arg1 (readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: Services_upvr (copied, readonly)
                    [4]: v_2_upvr (readonly)
                    [5]: any_load_result1_upvr (copied, readonly)
                ]]
                if arg1.toggled then
                    References_upvr.Main.sounds.UI.Hover:Play()
                    Services_upvr.TweenService:Create(v_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundColor3 = any_load_result1_upvr.Accent;
                        TextColor3 = any_load_result1_upvr.Text;
                    }):Play()
                end
            end)
            v_2_upvr.MouseLeave:Connect(function() -- Line 42
                --[[ Upvalues[3]:
                    [1]: Services_upvr (copied, readonly)
                    [2]: v_2_upvr (readonly)
                    [3]: any_load_result1_upvr (copied, readonly)
                ]]
                Services_upvr.TweenService:Create(v_2_upvr, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = any_load_result1_upvr.Text;
                    TextColor3 = Color3.fromRGB(255, 255, 255);
                }):Play()
            end)
            v_2_upvr.MouseButton1Click:Connect(function() -- Line 45
                --[[ Upvalues[4]:
                    [1]: arg1 (readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: any_new_result1_upvr (copied, readonly)
                    [4]: v_2_upvr (readonly)
                ]]
                if arg1.toggled then
                    References_upvr.Main.sounds.UI.Click:Play()
                    any_new_result1_upvr:send("voteFix", v_2_upvr.Name)
                    arg1:toggle(false)
                end
            end)
        end
    end
    script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 55
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:toggle(script:GetAttribute("toggle"))
    end)
end
function module.toggle(arg1, arg2) -- Line 60
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: voteFix_upvr (readonly)
    ]]
    if arg2 then
        local any_GenerateGUID_result1_upvr = Services_upvr.HttpService:GenerateGUID(false)
        arg1.toggled = true
        arg1.session = any_GenerateGUID_result1_upvr
        voteFix_upvr.Visible = true
        Services_upvr.TweenService:Create(voteFix_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            GroupTransparency = 0;
        }):Play()
        Services_upvr.TweenService:Create(voteFix_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Transparency = 0;
        }):Play()
        for _, v_3 in next, {"right", "left"} do
            if v_3 == "right" then
                voteFix_upvr.progress.progress[v_3].circle.UIGradient.Rotation = 0
            else
                voteFix_upvr.progress.progress[v_3].circle.UIGradient.Rotation = 180
            end
        end
        task.spawn(function() -- Line 79
            --[[ Upvalues[4]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: voteFix_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            for i_4 = 15, 0, -1 do
                local var43
                if not var43 then break end
                var43 = arg1.session
                if var43 ~= any_GenerateGUID_result1_upvr then break end
                var43 = 1
                for _, v_4 in next, {"right", "left"} do
                    local var45
                    if v_4 == "left" then
                        var45 = math.clamp(math.clamp((15 - i_4) / 15, 0, 1) * 100 * 3.6, 0, 360)
                    end
                    if v_4 == "left" and 180 <= voteFix_upvr.progress.progress.right.circle.UIGradient.Rotation or v_4 == "right" then
                        if 168 < var45 and var45 <= 192 and v_4 == "right" or v_4 == "left" and 168 < var45 and var45 <= 192 then
                            Services_upvr.TweenService:Create(voteFix_upvr.progress.progress[v_4].circle.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {
                                Rotation = math.clamp(var45, 180, 360);
                            }):Play()
                            var43 = 0.5
                        else
                            local tbl = {}
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            tbl.Rotation = math.clamp(var45, 180, 360)
                            Services_upvr.TweenService:Create(voteFix_upvr.progress.progress[v_4].circle.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), tbl):Play()
                        end
                    end
                end
                task.wait(var43)
            end
        end)
        task.spawn(function() -- Line 112
            --[[ Upvalues[3]:
                [1]: arg1 (readonly)
                [2]: any_GenerateGUID_result1_upvr (readonly)
                [3]: voteFix_upvr (copied, readonly)
            ]]
            for i_6 = 15, 0, -1 do
                if not arg1.session then break end
                if arg1.session ~= any_GenerateGUID_result1_upvr then break end
                voteFix_upvr.progress.countdown.Text = tostring(i_6)
                task.wait(1)
            end
            if arg1.session and arg1.session == any_GenerateGUID_result1_upvr then
                i_6 = false
                arg1:toggle(i_6)
            end
        end)
    else
        any_GenerateGUID_result1_upvr = nil
        arg1.session = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            GroupTransparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(voteFix_upvr, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = Services_upvr.TweenService
        local _ = {
            Transparency = 1;
        }
        any_GenerateGUID_result1_upvr = any_GenerateGUID_result1_upvr:Create(voteFix_upvr.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
        any_GenerateGUID_result1_upvr()
        any_GenerateGUID_result1_upvr = task.wait
        any_GenerateGUID_result1_upvr(0.2)
        any_GenerateGUID_result1_upvr = next
        for _, v_5 in any_GenerateGUID_result1_upvr, {"right", "left"} do
            if v_5 == "right" then
                voteFix_upvr.progress.progress[v_5].circle.UIGradient.Rotation = 0
            else
                voteFix_upvr.progress.progress[v_5].circle.UIGradient.Rotation = 180
            end
        end
        any_GenerateGUID_result1_upvr = false
        arg1.toggled = any_GenerateGUID_result1_upvr
        any_GenerateGUID_result1_upvr = voteFix_upvr
        any_GenerateGUID_result1_upvr.Visible = false
    end
end
return module
ModuleScript playerList playerList
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:32
-- Luau version 6, Types version 3
-- Time taken: 0.024347 seconds

local _engine = _G._engine
local any_load_result1_upvr_3 = _engine:load("Maid")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local playerList_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("playerList", 100)
local list_upvr = playerList_upvr:WaitForChild("list", 100)
local module = {
    layoutOrder = {"Studio", "Home", "Home GK", "-Home GK", "Away", "Away GK", "-Away GK", "Selecting", "Fans"};
    getTeamName = function(arg1, arg2) -- Line 39, Named "getTeamName"
        --[[ Upvalues[1]:
            [1]: References_upvr (readonly)
        ]]
        for _, v in next, References_upvr.Main.kits:GetChildren() do
            if v then
                for _, v_2 in next, v:GetChildren() do
                    if string.lower(v_2.Name) == string.lower(arg2) then
                        return v_2.Name
                    end
                end
            end
        end
        return "Team"
    end;
}
local any_load_result1_upvr_2 = _engine:load("TeamService", "utils")
local config_upvr = References_upvr.Main.config
function module.newTeam(arg1, arg2) -- Line 53
    --[[ Upvalues[6]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: References_upvr (readonly)
        [3]: list_upvr (readonly)
        [4]: any_load_result1_upvr_2 (readonly)
        [5]: config_upvr (readonly)
        [6]: Services_upvr (readonly)
    ]]
    if arg2 and table.find(arg1.layoutOrder, arg2.Name) then
        local any_new_result1_upvr = any_load_result1_upvr_3.new()
        local clone_upvr = References_upvr.Main.ui.team:Clone()
        clone_upvr.Parent = list_upvr
        clone_upvr.Name = arg2.Name
        clone_upvr.bgFrame.BackgroundColor3 = arg2.TeamColor.Color
        for var28, v_3 in next, arg1.layoutOrder do
            if v_3 == arg2.Name then
                clone_upvr.LayoutOrder = var28
            end
        end
        if string.find(arg2.Name, "GK") then
            if string.find(arg2.Name, "Home") then
                var28 = "Home"
                clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam(var28)
                v_3 = arg1:getTeamName(config_upvr.Stats.Home.Team.Value)
                var28 = " GK"
                clone_upvr.bgFrame.teamName.Text = v_3..var28
                v_3 = config_upvr.Stats
                var28 = v_3.Home
                function var28() -- Line 73
                    --[[ Upvalues[4]:
                        [1]: clone_upvr (readonly)
                        [2]: any_load_result1_upvr_2 (copied, readonly)
                        [3]: arg1 (readonly)
                        [4]: config_upvr (copied, readonly)
                    ]]
                    clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam("Home")
                    clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats.Home.Team.Value).." GK"
                end
                any_new_result1_upvr[arg2.Name.."_nameChanged"] = var28.Team.Changed:Connect(var28)
                v_3 = config_upvr.Stats
                var28 = v_3.Home
                function var28() -- Line 78
                    --[[ Upvalues[4]:
                        [1]: clone_upvr (readonly)
                        [2]: any_load_result1_upvr_2 (copied, readonly)
                        [3]: arg1 (readonly)
                        [4]: config_upvr (copied, readonly)
                    ]]
                    clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam("Home")
                    clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats.Home.Team.Value).." GK"
                end
                any_new_result1_upvr[arg2.Name.."_kitTypeChanged"] = var28["Kit Type"].Changed:Connect(var28)
            else
                var28 = "Away"
                clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam(var28)
                v_3 = arg1:getTeamName(config_upvr.Stats.Away.Team.Value)
                var28 = " GK"
                clone_upvr.bgFrame.teamName.Text = v_3..var28
                v_3 = config_upvr.Stats
                var28 = v_3.Away
                function var28() -- Line 86
                    --[[ Upvalues[4]:
                        [1]: clone_upvr (readonly)
                        [2]: any_load_result1_upvr_2 (copied, readonly)
                        [3]: arg1 (readonly)
                        [4]: config_upvr (copied, readonly)
                    ]]
                    clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam("Away")
                    clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats.Away.Team.Value).." GK"
                end
                any_new_result1_upvr[arg2.Name.."_nameChanged"] = var28.Team.Changed:Connect(var28)
                v_3 = config_upvr.Stats
                var28 = v_3.Away
                function var28() -- Line 91
                    --[[ Upvalues[4]:
                        [1]: clone_upvr (readonly)
                        [2]: any_load_result1_upvr_2 (copied, readonly)
                        [3]: arg1 (readonly)
                        [4]: config_upvr (copied, readonly)
                    ]]
                    clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam("Away")
                    clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats.Away.Team.Value).." GK"
                end
                any_new_result1_upvr[arg2.Name.."_kitTypeChanged"] = var28["Kit Type"].Changed:Connect(var28)
            end
        elseif config_upvr.Stats:FindFirstChild(arg2.Name) then
            var28 = arg2.Name
            clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam(var28)
            v_3 = config_upvr.Stats[arg2.Name].Team
            var28 = v_3.Value
            clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(var28)
            v_3 = config_upvr.Stats
            var28 = v_3[arg2.Name]
            function var28() -- Line 100
                --[[ Upvalues[5]:
                    [1]: clone_upvr (readonly)
                    [2]: any_load_result1_upvr_2 (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: arg1 (readonly)
                    [5]: config_upvr (copied, readonly)
                ]]
                clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam(arg2.Name)
                clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats[arg2.Name].Team.Value)
            end
            any_new_result1_upvr[arg2.Name.."_nameChanged"] = var28.Team.Changed:Connect(var28)
            v_3 = config_upvr.Stats
            var28 = v_3[arg2.Name]
            function var28() -- Line 105
                --[[ Upvalues[5]:
                    [1]: clone_upvr (readonly)
                    [2]: any_load_result1_upvr_2 (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: arg1 (readonly)
                    [5]: config_upvr (copied, readonly)
                ]]
                clone_upvr.bgFrame.BackgroundColor3 = any_load_result1_upvr_2:getTeamColorFromTeam(arg2.Name)
                clone_upvr.bgFrame.teamName.Text = arg1:getTeamName(config_upvr.Stats[arg2.Name].Team.Value)
            end
            any_new_result1_upvr[arg2.Name.."_kitTypeChanged"] = var28["Kit Type"].Changed:Connect(var28)
        else
            clone_upvr.bgFrame.teamName.Text = arg2.Name
        end
        any_new_result1_upvr[arg2.Name.."_childAdded"] = clone_upvr.players.ChildAdded:Connect(function(arg1_2) -- Line 113
            --[[ Upvalues[1]:
                [1]: clone_upvr (readonly)
            ]]
            if arg1_2 then
                clone_upvr.players.Position = UDim2.new(0, 0, 0, 22)
            end
        end)
        any_new_result1_upvr[arg2.Name.."_childRemoved"] = clone_upvr.players.ChildRemoved:Connect(function(arg1_3) -- Line 119
            --[[ Upvalues[1]:
                [1]: clone_upvr (readonly)
            ]]
            if clone_upvr and clone_upvr:FindFirstChild("players") then
                if #clone_upvr.players:GetChildren() == 0 or #clone_upvr.players:GetChildren() == 1 and clone_upvr.players:GetChildren()[1]:IsA("UIListLayout") then
                    clone_upvr.players.Position = UDim2.new(0, 0, 0, 0)
                    return
                end
                clone_upvr.players.Position = UDim2.new(0, 0, 0, 22)
            end
        end)
        any_new_result1_upvr[arg2.Name.."_removed"] = Services_upvr.Teams.ChildRemoved:Connect(function(arg1_4) -- Line 129
            --[[ Upvalues[3]:
                [1]: arg2 (readonly)
                [2]: clone_upvr (readonly)
                [3]: any_new_result1_upvr (readonly)
            ]]
            if arg1_4 == arg2 then
                clone_upvr:Destroy()
                any_new_result1_upvr:DoCleaning()
            end
        end)
    end
end
local any_load_result1_upvr_5 = _engine:load("Whitelist", "utils")
local any_load_result1_upvr_4 = _engine:load("ContentCreators", "utils")
local any_load_result1_upvr = _engine:load("Flags", "utils")
function module.newPlayer(arg1, arg2) -- Line 138
    --[[ Upvalues[8]:
        [1]: list_upvr (readonly)
        [2]: any_load_result1_upvr_3 (readonly)
        [3]: References_upvr (readonly)
        [4]: any_load_result1_upvr_5 (readonly)
        [5]: any_load_result1_upvr_4 (readonly)
        [6]: playerList_upvr (readonly)
        [7]: any_load_result1_upvr (readonly)
        [8]: Services_upvr (readonly)
    ]]
    if arg2 then
        if list_upvr:FindFirstChild(arg2.Name, true) and arg2.UserId ~= 1285117793 then
            list_upvr:FindFirstChild(arg2.Name, true):Destroy()
        end
        local any_new_result1_upvr_2 = any_load_result1_upvr_3.new()
        local clone_upvr_2 = References_upvr.Main.ui.player:Clone()
        clone_upvr_2.Name = arg2.Name
        while clone_upvr_2 and not clone_upvr_2:FindFirstChild("bgFrame") do
            task.wait()
        end
        clone_upvr_2.bgFrame.playerName.Text = arg2.Name
        if table.find(any_load_result1_upvr_5, arg2.UserId) then
            clone_upvr_2.bgFrame.pins.tester.Visible = true
        end
        task.delay(2, function() -- Line 159
            --[[ Upvalues[3]:
                [1]: clone_upvr_2 (readonly)
                [2]: arg2 (readonly)
                [3]: any_load_result1_upvr_4 (copied, readonly)
            ]]
            if clone_upvr_2 and clone_upvr_2.Parent and clone_upvr_2:FindFirstChild("bgFrame") then
                local pcall_result1, pcall_result2 = pcall(function() -- Line 161
                    --[[ Upvalues[1]:
                        [1]: arg2 (copied, readonly)
                    ]]
                    return arg2:GetRankInGroup(13853690)
                end)
                if pcall_result1 and pcall_result2 then
                    if 4 <= pcall_result2 or arg2.UserId == 721467746 then
                        for _, v_4 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                            if v_4 then
                                v_4.Visible = false
                            end
                        end
                        clone_upvr_2.bgFrame.pins.developer.Visible = true
                    elseif 2 <= pcall_result2 then
                        for _, v_15 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                            if v_15 then
                                v_15.Visible = false
                            end
                        end
                        clone_upvr_2.bgFrame.pins.director.Visible = true
                        -- KONSTANTWARNING: GOTO [94] #66
                    end
                else
                    warn(string.format("Playerlist | An unexpected error occured while fetching user rank (%s)", pcall_result2))
                end
                if table.find(any_load_result1_upvr_4, arg2.UserId) then
                    for _, v_5 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                        if v_5 then
                            v_5.Visible = false
                        end
                    end
                    clone_upvr_2.bgFrame.pins.content.Visible = true
                end
                if clone_upvr_2.bgFrame.pins:FindFirstChild(arg2.Name) then
                    for _, v_6 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                        if v_6 then
                            v_6.Visible = false
                        end
                    end
                    clone_upvr_2.bgFrame.pins[arg2.Name].Visible = true
                end
            end
        end)
        if arg2:GetAttribute("hasRFPremium") then
            for _, v_7 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                if v_7 then
                    v_7.Visible = false
                end
            end
            clone_upvr_2.bgFrame.pins.premium.Visible = true
        end
        if _G._references.Main.cards.red:FindFirstChild(arg2.Name) then
            clone_upvr_2.bgFrame.cards.red.Visible = true
        elseif _G._references.Main.cards.yellow:FindFirstChild(arg2.Name) then
            clone_upvr_2.bgFrame.cards.yellow.Visible = true
        elseif _G._references.Main.cards.warning:FindFirstChild(arg2.Name) then
            clone_upvr_2.bgFrame.cards.warning.Visible = true
        end
        for _, v_8 in next, _G._references.Main.captains:GetChildren() do
            if v_8 and v_8.Value == arg2.Name then
                clone_upvr_2.bgFrame.captain.Visible = true
            end
        end
        any_new_result1_upvr_2._attributeChangedSignal = arg2:GetAttributeChangedSignal("hasRFPremium"):Connect(function() -- Line 232
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg2:GetAttribute("hasRFPremium") then
                for _, v_9 in next, clone_upvr_2.bgFrame.pins:GetChildren() do
                    if v_9 then
                        v_9.Visible = false
                    end
                end
                clone_upvr_2.bgFrame.pins.premium.Visible = true
            end
        end)
        any_new_result1_upvr_2._captainAdded = _G._references.Main.captains.ChildAdded:Connect(function(arg1_5) -- Line 244
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_5 and arg1_5.Value == arg2.Name then
                clone_upvr_2.bgFrame.captain.Visible = true
            end
        end)
        any_new_result1_upvr_2._warningAdded = _G._references.Main.cards.warning.ChildAdded:Connect(function(arg1_6) -- Line 250
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_6 and arg1_6.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.warning.Visible = true
            end
        end)
        any_new_result1_upvr_2._yellowCardAdded = _G._references.Main.cards.yellow.ChildAdded:Connect(function(arg1_7) -- Line 256
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_7 and arg1_7.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.warning.Visible = false
                clone_upvr_2.bgFrame.cards.yellow.Visible = true
            end
        end)
        any_new_result1_upvr_2._redCardAdded = _G._references.Main.cards.red.ChildAdded:Connect(function(arg1_8) -- Line 263
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_8 and arg1_8.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.warning.Visible = false
                clone_upvr_2.bgFrame.cards.yellow.Visible = false
                clone_upvr_2.bgFrame.cards.red.Visible = true
            end
        end)
        any_new_result1_upvr_2._captainRemoved = _G._references.Main.captains.ChildRemoved:Connect(function(arg1_9) -- Line 271
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_9 and arg1_9.Value == arg2.Name then
                clone_upvr_2.bgFrame.captain.Visible = false
            end
        end)
        any_new_result1_upvr_2._warningRemoved = _G._references.Main.cards.warning.ChildRemoved:Connect(function(arg1_10) -- Line 277
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_10 and arg1_10.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.warning.Visible = false
            end
        end)
        any_new_result1_upvr_2._yellowCardRemoved = _G._references.Main.cards.yellow.ChildRemoved:Connect(function(arg1_11) -- Line 283
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_11 and arg1_11.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.yellow.Visible = false
            end
        end)
        any_new_result1_upvr_2._redCardRemoved = _G._references.Main.cards.red.ChildRemoved:Connect(function(arg1_12) -- Line 289
            --[[ Upvalues[2]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
            ]]
            if arg1_12 and arg1_12.Name == arg2.Name then
                clone_upvr_2.bgFrame.cards.red.Visible = false
            end
        end)
        local function _() -- Line 295, Named "updateParent"
            --[[ Upvalues[3]:
                [1]: arg2 (readonly)
                [2]: list_upvr (copied, readonly)
                [3]: clone_upvr_2 (readonly)
            ]]
            if arg2.Team and list_upvr:FindFirstChild(arg2.Team.Name) then
                clone_upvr_2.Parent = list_upvr[arg2.Team.Name].players
            else
                clone_upvr_2.Parent = list_upvr
            end
        end
        local function createStat_upvr(arg1_13, arg2_2) -- Line 303, Named "createStat"
            --[[ Upvalues[5]:
                [1]: References_upvr (copied, readonly)
                [2]: clone_upvr_2 (readonly)
                [3]: playerList_upvr (copied, readonly)
                [4]: list_upvr (copied, readonly)
                [5]: any_new_result1_upvr_2 (readonly)
            ]]
            local clone_upvr_3 = References_upvr.Main.ui.leaderstats:Clone()
            clone_upvr_3.Parent = clone_upvr_2
            clone_upvr_3.Name = arg2_2.Name
            clone_upvr_3.LayoutOrder = arg1_13 + 1
            clone_upvr_3.label.Text = tostring(arg2_2.Value)
            playerList_upvr.Size = UDim2.new(0, clone_upvr_2.AbsoluteSize.X + 30, playerList_upvr.Size.Y.Scale, playerList_upvr.Size.Y.Offset)
            list_upvr.Size = UDim2.new(0, clone_upvr_2.AbsoluteSize.X + 30, list_upvr.Size.Y.Scale, list_upvr.Size.Y.Offset)
            for _, v_10 in next, list_upvr:GetChildren() do
                if v_10 and v_10:IsA("Frame") then
                    v_10.Size = UDim2.new(0, clone_upvr_2.AbsoluteSize.X, v_10.Size.Y.Scale, v_10.Size.Y.Offset)
                end
            end
            any_new_result1_upvr_2[clone_upvr_3.Name.."_changed"] = arg2_2.Changed:Connect(function() -- Line 319
                --[[ Upvalues[2]:
                    [1]: clone_upvr_3 (readonly)
                    [2]: arg2_2 (readonly)
                ]]
                clone_upvr_3.label.Text = tostring(arg2_2.Value)
            end)
        end
        if arg2:FindFirstChild("leaderstats") then
            for i_11, v_11 in next, arg2.leaderstats:GetChildren() do
                if v_11 then
                    createStat_upvr(i_11, v_11)
                end
            end
            any_new_result1_upvr_2.leaderstats_childAdded = arg2.leaderstats.ChildAdded:Connect(function(arg1_14) -- Line 331
                --[[ Upvalues[2]:
                    [1]: createStat_upvr (readonly)
                    [2]: arg2 (readonly)
                ]]
                if arg1_14 then
                    createStat_upvr(#arg2.leaderstats:GetChildren(), arg1_14)
                end
            end)
            -- KONSTANTWARNING: GOTO [444] #284
        end
        any_new_result1_upvr_2[arg2.Name.."_childAdded"] = arg2.ChildAdded:Connect(function(arg1_15) -- Line 337
            --[[ Upvalues[2]:
                [1]: createStat_upvr (readonly)
                [2]: any_new_result1_upvr_2 (readonly)
            ]]
            if arg1_15.Name == "leaderstats" then
                for i_12, v_12 in next, arg1_15:GetChildren() do
                    if v_12 then
                        createStat_upvr(i_12, v_12)
                    end
                end
                any_new_result1_upvr_2.leaderstats_childAdded = arg1_15.ChildAdded:Connect(function(arg1_16) -- Line 345
                    --[[ Upvalues[2]:
                        [1]: createStat_upvr (copied, readonly)
                        [2]: arg1_15 (readonly)
                    ]]
                    if arg1_16 then
                        createStat_upvr(#arg1_15:GetChildren(), arg1_16)
                    end
                end)
            end
        end)
        if arg2:FindFirstChild("Region") then
            clone_upvr_2.bgFrame.playerRegion.playerRegion.Text = any_load_result1_upvr[arg2.Region.Value].Emoji
        else
            any_new_result1_upvr_2[arg2.Name.."_regionAdded"] = arg2.ChildAdded:Connect(function(arg1_17) -- Line 357
                --[[ Upvalues[2]:
                    [1]: clone_upvr_2 (readonly)
                    [2]: any_load_result1_upvr (copied, readonly)
                ]]
                if arg1_17.Name == "Region" then
                    clone_upvr_2.bgFrame.playerRegion.playerRegion.Text = any_load_result1_upvr[arg1_17.Value].Emoji
                end
            end)
        end
        if arg2.Team and list_upvr:FindFirstChild(arg2.Team.Name) then
            clone_upvr_2.Parent = list_upvr[arg2.Team.Name].players
        else
            clone_upvr_2.Parent = list_upvr
        end
        any_new_result1_upvr_2[arg2.Name.."_teamChanged"] = arg2:GetPropertyChangedSignal("Team"):Connect(function() -- Line 366
            --[[ Upvalues[3]:
                [1]: arg2 (readonly)
                [2]: list_upvr (copied, readonly)
                [3]: clone_upvr_2 (readonly)
            ]]
            if arg2.Team and list_upvr:FindFirstChild(arg2.Team.Name) then
                clone_upvr_2.Parent = list_upvr[arg2.Team.Name].players
            else
                clone_upvr_2.Parent = list_upvr
            end
        end)
        any_new_result1_upvr_2[arg2.Name.."_removed"] = Services_upvr.Players.PlayerRemoving:Connect(function(arg1_18) -- Line 370
            --[[ Upvalues[3]:
                [1]: arg2 (readonly)
                [2]: clone_upvr_2 (readonly)
                [3]: any_new_result1_upvr_2 (readonly)
            ]]
            if arg1_18 == arg2 then
                clone_upvr_2:Destroy()
                any_new_result1_upvr_2:DoCleaning()
            end
        end)
    end
end
function module.init(arg1) -- Line 379
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: playerList_upvr (readonly)
    ]]
    if not Services_upvr.UserInputService.TouchEnabled then
        Services_upvr.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
        Services_upvr.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
        Services_upvr.UserInputService.InputBegan:Connect(function(arg1_19, arg2) -- Line 386
            --[[ Upvalues[1]:
                [1]: playerList_upvr (copied, readonly)
            ]]
            if not arg2 and arg1_19.KeyCode == Enum.KeyCode.Tab then
                playerList_upvr.Visible = not playerList_upvr.Visible
            end
        end)
        for _, v_13_upvr in next, Services_upvr.Teams:GetTeams() do
            task.spawn(function() -- Line 395
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: v_13_upvr (readonly)
                ]]
                arg1:newTeam(v_13_upvr)
            end)
        end
        Services_upvr.Teams.ChildAdded:Connect(function(arg1_20) -- Line 400
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            task.spawn(function() -- Line 401
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_20 (readonly)
                ]]
                arg1:newTeam(arg1_20)
            end)
        end)
        for _, v_14_upvr in next, Services_upvr.Players:GetPlayers() do
            task.spawn(function() -- Line 409
                --[[ Upvalues[2]:
                    [1]: arg1 (readonly)
                    [2]: v_14_upvr (readonly)
                ]]
                arg1:newPlayer(v_14_upvr)
            end)
        end
        Services_upvr.Players.PlayerAdded:Connect(function(arg1_21) -- Line 414
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            task.spawn(function() -- Line 415
                --[[ Upvalues[2]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_21 (readonly)
                ]]
                arg1:newPlayer(arg1_21)
            end)
        end)
    end
end
return module
ModuleScript celebrations celebrations
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:34
-- Luau version 6, Types version 3
-- Time taken: 0.010323 seconds

local engine = require(game:GetService("ReplicatedStorage").engine)
local any_new_result1_upvr_3 = engine:load("Maid").new()
local References_upvr = engine.References
local Services_upvr = engine.Services
local Profile = References_upvr.Profile
local Celebrations_upvr = References_upvr.Main.animations:WaitForChild("Celebrations", 100)
local clone_upvr = workspace.game.rigs:WaitForChild("previewer", 100):Clone()
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local pcall_result1, pcall_result2 = pcall(function() -- Line 20
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return _G._services.Players:GetCharacterAppearanceAsync(LocalPlayer_upvr.UserId)
end)
if pcall_result1 and pcall_result2 then
    for _, v in next, pcall_result2:GetChildren() do
        if v:IsA("Accessory") and not v:FindFirstChildWhichIsA("WrapLayer", true) then
            v.Parent = clone_upvr
        elseif v:IsA("BodyColors") then
            v.Parent = clone_upvr
        elseif v:IsA("Decal") and v.Name == "face" then
            clone_upvr.Head.face.Texture = v.Texture
        end
    end
end
if References_upvr.Main.boots:FindFirstChild(Profile.inventory.Current.Boots.Value) then
    for _, v_2 in next, clone_upvr.RightBoot:GetChildren() do
        if v_2 and v_2:IsA("SurfaceAppearance") then
            v_2:Destroy()
        end
    end
    for _, v_3 in next, clone_upvr.LeftBoot:GetChildren() do
        if v_3 and v_3:IsA("SurfaceAppearance") then
            v_3:Destroy()
        end
    end
    clone_upvr.RightBoot.TextureID = References_upvr.Main.boots[Profile.inventory.Current.Boots.Value].TextureID
    clone_upvr.LeftBoot.TextureID = References_upvr.Main.boots[Profile.inventory.Current.Boots.Value].TextureID
    if References_upvr.Main.boots[Profile.inventory.Current.Boots.Value]:FindFirstChild("SurfaceAppearance") then
        References_upvr.Main.boots[Profile.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr.RightBoot
        References_upvr.Main.boots[Profile.inventory.Current.Boots.Value].SurfaceAppearance:Clone().Parent = clone_upvr.LeftBoot
    end
end
local celebrations_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("celebrations", 100)
local module = {
    slots = 6;
    debounce = false;
}
local any_load_result1_upvr = engine:load("Viewport")
local any_new_result1_upvr = engine:load("Network").new()
function module.create(arg1, arg2) -- Line 68
    --[[ Upvalues[8]:
        [1]: celebrations_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: clone_upvr (readonly)
        [5]: Celebrations_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: any_new_result1_upvr_3 (readonly)
        [8]: any_new_result1_upvr (readonly)
    ]]
    if celebrations_upvr.scroll.main:FindFirstChild("grid") then
        celebrations_upvr.scroll.main.grid:Destroy()
    end
    local clone_upvr_2 = References_upvr.Main.ui.celebration:Clone()
    clone_upvr_2.Parent = celebrations_upvr.scroll.main
    clone_upvr_2.Name = arg2.Name
    clone_upvr_2.main.label.label.Text = arg2.Name
    clone_upvr_2.main.UIScale.Scale = 0
    local unpacked_value_1_upvr, unpacked_value_2_upvr = table.unpack(any_load_result1_upvr.new({
        _viewport = clone_upvr_2.main.viewport;
        _model = clone_upvr;
        _cameraOffset = CFrame.new(2.25, -0.4, -12) * CFrame.Angles(math.pi, 0.2, (-math.pi));
        _cameraFOV = 7;
        _animationData = {
            _id = Celebrations_upvr[clone_upvr_2.Name].AnimationId;
            _looped = true;
        };
        _return = "Camera";
    }))
    Services_upvr.TweenService:Create(clone_upvr_2.main.UIScale, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Scale = 1;
    }):Play()
    celebrations_upvr.scroll.CanvasSize = UDim2.new(0, 0, 0, celebrations_upvr.scroll.main.AbsoluteSize.Y + 2)
    any_new_result1_upvr_3[arg2.Name.."_mouseEnter"] = clone_upvr_2.main.button.MouseEnter:Connect(function() -- Line 95
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr_2 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Hover:Play()
        Services_upvr.TweenService:Create(clone_upvr_2.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(177, 177, 177);
        }):Play()
    end)
    any_new_result1_upvr_3[arg2.Name.."_mouseLeave"] = clone_upvr_2.main.button.MouseLeave:Connect(function() -- Line 100
        --[[ Upvalues[2]:
            [1]: Services_upvr (copied, readonly)
            [2]: clone_upvr_2 (readonly)
        ]]
        Services_upvr.TweenService:Create(clone_upvr_2.main.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            ImageColor3 = Color3.fromRGB(255, 255, 255);
        }):Play()
    end)
    any_new_result1_upvr_3[arg2.Name.."_renderStepped"] = _G._services.RunService.RenderStepped:Connect(function() -- Line 104
        --[[ Upvalues[2]:
            [1]: unpacked_value_1_upvr (readonly)
            [2]: unpacked_value_2_upvr (readonly)
        ]]
        unpacked_value_1_upvr.CFrame = CFrame.lookAt((unpacked_value_2_upvr.PrimaryPart.CFrame * workspace.game.cutscenes.celebrations.home.right.position.CFrame:ToObjectSpace(workspace.game.cutscenes.celebrations.home.right.corner.CFrame)).Position, unpacked_value_2_upvr.UpperTorso.CFrame.Position)
    end)
    any_new_result1_upvr_3[arg2.Name.."_mouseButton1Click"] = clone_upvr_2.main.button.MouseButton1Click:Connect(function() -- Line 109
        --[[ Upvalues[4]:
            [1]: References_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        References_upvr.Main.sounds.UI.Click:Play()
        if not arg1.debounce then
            arg1.debounce = true
            script:SetAttribute("toggle", false)
            any_new_result1_upvr:send("celebrate", arg2.Name)
        end
    end)
end
function module.init(arg1) -- Line 120
    --[[ Upvalues[3]:
        [1]: Celebrations_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: celebrations_upvr (readonly)
    ]]
    for _ = 1, math.floor(#Celebrations_upvr:GetChildren() / 2 + 0.5) * 2 do
        References_upvr.Main.ui.grid:Clone().Parent = celebrations_upvr.scroll.main
    end
    celebrations_upvr.Visible = false
    script:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 130
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:toggle(script:GetAttribute("toggle"))
    end)
end
local any_new_result1_upvr_2 = engine:load("Janitor").new()
function module.toggle(arg1, arg2) -- Line 135
    --[[ Upvalues[5]:
        [1]: celebrations_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_new_result1_upvr_3 (readonly)
        [4]: any_new_result1_upvr_2 (readonly)
        [5]: Celebrations_upvr (readonly)
    ]]
    if arg2 then
        celebrations_upvr.Visible = true
        celebrations_upvr:TweenPosition(UDim2.new(0, 10, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.25, true)
        for _, v_4 in next, References_upvr.Profile.inventory.Celebrations:GetChildren() do
            if v_4 and References_upvr.Main.animations.Celebrations:FindFirstChild(v_4.Name) then
                arg1:create(v_4)
            end
        end
    else
        celebrations_upvr:TweenPosition(UDim2.new(0, -350, 0.5, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.25, true)
        task.wait(0.2)
        celebrations_upvr.Visible = false
        arg1.debounce = false
        any_new_result1_upvr_3:DoCleaning()
        any_new_result1_upvr_2:clean(celebrations_upvr.scroll.main:GetChildren(), "UIGridLayout")
        for _ = 1, math.floor(#Celebrations_upvr:GetChildren() / 2 + 0.5) * 2 do
            References_upvr.Main.ui.grid:Clone().Parent = celebrations_upvr.scroll.main
        end
    end
end
return module
ModuleScript movementController movementController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:36
-- Luau version 6, Types version 3
-- Time taken: 0.064774 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local module = {
    sprintSpeed = 22;
    maxStamina = 100;
    transitionSpeed = 0.1;
    lastTick = 0;
    uses = 0;
    debounce = false;
    transition = false;
    jumping = false;
    active = false;
    clearOnRespawn = true;
    destroyed = false;
    relativeMoveDirection = function(arg1, arg2, arg3, arg4) -- Line 41, Named "relativeMoveDirection"
        if arg3 ~= nil then
            local LookVector = arg4.CFrame.LookVector
            local RightVector_4 = arg4.CFrame.RightVector
            local any_Dot_result1_7 = LookVector:Dot(arg3, LookVector)
            local any_Dot_result1_3 = RightVector_4:Dot(arg3, RightVector_4)
            if any_Dot_result1_7 <= 1 and 0.75 <= any_Dot_result1_7 then
                return "Front"
            end
            if -1 <= any_Dot_result1_7 and any_Dot_result1_7 <= -0.75 then
                return "Back"
            end
            if any_Dot_result1_3 <= 1 and 0.75 <= any_Dot_result1_3 then
                return "Right"
            end
            local var30
            if -1 <= any_Dot_result1_3 and any_Dot_result1_3 <= -0.75 then
                var30 = "Left"
                return var30
            end
            if any_Dot_result1_7 <= 1 then
                if 0.5 <= any_Dot_result1_7 and any_Dot_result1_3 <= 1 and 0.5 <= any_Dot_result1_3 then
                    var30 = "FrontRight"
                    return var30
                end
            end
            if any_Dot_result1_7 <= 1 then
                if 0.5 <= any_Dot_result1_7 and -1 <= any_Dot_result1_3 and any_Dot_result1_3 <= -0.5 then
                    var30 = "FrontLeft"
                    return var30
                end
            end
            if -1 <= any_Dot_result1_7 then
                if any_Dot_result1_7 <= -0.5 and any_Dot_result1_3 <= 1 and 0.5 <= any_Dot_result1_3 then
                    var30 = "BackRight"
                    return var30
                end
            end
            if -1 <= any_Dot_result1_7 then
                if any_Dot_result1_7 <= -0.5 and -1 <= any_Dot_result1_3 and any_Dot_result1_3 <= -0.5 then
                    var30 = "BackLeft"
                end
            end
            return var30
        end
    end;
    start = function(arg1, arg2) -- Line 73, Named "start"
        --[[ Upvalues[2]:
            [1]: Services_upvr (readonly)
            [2]: LocalPlayer_upvr (readonly)
        ]]
        assert(arg1.stamina, "Stamina:start() | You must call :init() before running :start() !")
        if arg1.stamina.Value - 1 <= 0 then
            arg1.stamina.Value = 0
            arg1.humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
            script:SetAttribute("sprinting", false)
            LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
            arg1.active = false
        else
            local stamina = arg1.stamina
            stamina.Value -= arg2
        end
    end;
    heal = function(arg1, arg2) -- Line 89, Named "heal"
        assert(arg1.stamina, "Stamina:heal() | You must call :init() before running :heal() !")
        if arg1.stamina.Value + 1 <= arg1.maxStamina then
            local stamina_2 = arg1.stamina
            stamina_2.Value += 1
        else
            arg1.stamina.Value = arg1.maxStamina
        end
    end;
}
local any_load_result1_upvr = _engine:load("Monetization", "utils")
local any_load_result1_upvr_2 = _engine:load("GamePassWhitelist", "utils")
local ClientEngine_upvr = script.Parent.Parent:WaitForChild("ClientEngine")
local mobile_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("mobile", 100)
local menu_upvr = script.Parent.Parent:WaitForChild("visuals", 100):WaitForChild("menu", 100)
local any_load_result1_upvr_3 = _engine:load("Maid")
local any_load_result1_upvr_5 = _engine:load("Sounds")
local any_load_result1_upvr_4 = _engine:load("ParticleEmitter")
function module.init(arg1) -- Line 99
    --[[ Upvalues[11]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: References_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: ClientEngine_upvr (readonly)
        [7]: mobile_upvr (readonly)
        [8]: menu_upvr (readonly)
        [9]: any_load_result1_upvr_3 (readonly)
        [10]: any_load_result1_upvr_5 (readonly)
        [11]: any_load_result1_upvr_4 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local Humanoid_upvr = LocalPlayer_upvr.Character:WaitForChild("Humanoid", 100)
    local HumanoidRootPart_upvr = LocalPlayer_upvr.Character:WaitForChild("HumanoidRootPart", 100)
    local any_userOwnsPass_result1 = any_load_result1_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_upvr.gamePasses["2x Stamina"].gamePassId)
    if not any_userOwnsPass_result1 then
        any_userOwnsPass_result1 = table.find(any_load_result1_upvr_2, LocalPlayer_upvr.UserId)
    end
    if not any_load_result1_upvr.userOwnsPass(LocalPlayer_upvr, any_load_result1_upvr.gamePasses["Infinite Stamina"].gamePassId) then
        local table_find_result1_upvr = table.find(any_load_result1_upvr_2, LocalPlayer_upvr.UserId)
    end
    if LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") then
        LocalPlayer_upvr.PlayerGui.UI:Destroy()
    end
    if References_upvr.Main.config.Time.Value == "Morning" or References_upvr.Main.config.Time.Value == "Noon" or References_upvr.Main.config.Time.Value == "Afternoon" then
        Services_upvr.TweenService:Create(Services_upvr.Lighting.ColorCorrection, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Saturation = tonumber(References_upvr.Main.weather[References_upvr.Main.config.Weather.Value].Day.ColorCorrection.Saturation.Value);
        }):Play()
    else
        Services_upvr.TweenService:Create(Services_upvr.Lighting.ColorCorrection, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Saturation = tonumber(References_upvr.Main.weather[References_upvr.Main.config.Weather.Value].Night.ColorCorrection.Saturation.Value);
        }):Play()
    end
    Services_upvr.TweenService:Create(References_upvr.Main.sounds.Player.Heartbeat, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        Volume = 0;
    }):Play()
    if any_userOwnsPass_result1 then
        arg1.maxStamina = 200
    end
    local clone_upvr = References_upvr.Main.sounds.Player.Breathing:Clone()
    clone_upvr.Parent = HumanoidRootPart_upvr
    clone_upvr:Play()
    clone_upvr.Volume = 0
    local any_LoadAnimation_result1_upvr = Humanoid_upvr:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Player.Run)
    any_LoadAnimation_result1_upvr:AdjustWeight(0)
    any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action2
    local var50
    if script:FindFirstChild("stamina") and not table_find_result1_upvr then
        var50 = script.stamina.Value
        script.stamina:Destroy()
    end
    local IntValue_upvr = Instance.new("IntValue", script)
    IntValue_upvr.Name = "stamina"
    IntValue_upvr.Value = var50
    local clone_4_upvr = References_upvr.Main.ui.UI:Clone()
    clone_4_upvr.Parent = LocalPlayer_upvr.PlayerGui
    clone_4_upvr.Adornee = LocalPlayer_upvr.Character:WaitForChild("HumanoidRootPart", 100)
    clone_4_upvr.Stamina.Bar:TweenSize(UDim2.new(1, 0, 1 - IntValue_upvr.Value / arg1.maxStamina), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.2, true)
    if table_find_result1_upvr then
        clone_4_upvr.Stamina.BackgroundColor3 = Color3.fromRGB(62, 174, 226)
        clone_4_upvr.Stamina.Infinite.Visible = true
    elseif any_userOwnsPass_result1 then
        clone_4_upvr.Stamina.BackgroundColor3 = Color3.fromRGB(104, 145, 156)
        clone_4_upvr.Stamina.Endurance.Visible = true
        task.spawn(function() -- Line 156
            --[[ Upvalues[1]:
                [1]: clone_4_upvr (readonly)
            ]]
            while clone_4_upvr.Parent and clone_4_upvr.Parent.Parent do
                local randint = math.random(1, 2)
                for _, v_upvr in next, clone_4_upvr.Stamina.Endurance:GetChildren() do
                    if v_upvr and v_upvr.Name == "Sparks "..tostring(randint) then
                        v_upvr.Visible = true
                        task.delay(math.random(3, 10) / 100, function() -- Line 170
                            --[[ Upvalues[1]:
                                [1]: v_upvr (readonly)
                            ]]
                            v_upvr.Visible = false
                        end)
                    end
                end
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                task.wait(math.random(3, 10) / 100 - 0.02)
                for _, v_2_upvr in next, clone_4_upvr.Stamina.Endurance:GetChildren() do
                    if v_2_upvr and v_2_upvr.Name == "Sparks "..tostring(3 - randint) then
                        v_2_upvr.Visible = true
                        task.delay(math.random(5, 7) / 100, function() -- Line 181
                            --[[ Upvalues[1]:
                                [1]: v_2_upvr (readonly)
                            ]]
                            v_2_upvr.Visible = false
                        end)
                    end
                end
                task.wait(math.random(5, 15) / 10)
            end
        end)
    end
    local function forceStop_upvr() -- Line 192, Named "forceStop"
        --[[ Upvalues[9]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: ClientEngine_upvr (copied, readonly)
            [4]: mobile_upvr (copied, readonly)
            [5]: Services_upvr (copied, readonly)
            [6]: Humanoid_upvr (readonly)
            [7]: menu_upvr (copied, readonly)
            [8]: References_upvr (copied, readonly)
            [9]: any_LoadAnimation_result1_upvr (readonly)
        ]]
        script:SetAttribute("sprinting", false)
        LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
        arg1.active = false
        arg1.jumping = false
        ClientEngine_upvr:SetAttribute("moveAcceleration", 10)
        mobile_upvr.contextActionSprintButton.actionIcon.ImageColor3 = Color3.fromRGB(255, 255, 255)
        Services_upvr.TweenService:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed;
        }):Play()
        if not menu_upvr:GetAttribute("enabled") and not workspace.game.debug:FindFirstChild(LocalPlayer_upvr.Name) and not References_upvr.Main.config.CelebrationInProgress.Value then
            Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
            }):Play()
        end
        any_LoadAnimation_result1_upvr:Stop(0.5)
        any_LoadAnimation_result1_upvr:AdjustWeight(0, 0.5)
    end
    arg1.maid = any_load_result1_upvr_3.new()
    arg1.billboard = clone_4_upvr
    arg1.stamina = IntValue_upvr
    arg1.humanoid = Humanoid_upvr
    arg1.rootPart = HumanoidRootPart_upvr
    arg1.uses = 0
    arg1.lastTick = tick()
    arg1.destroyed = false
    arg1.maid:GiveTask(clone_4_upvr)
    mobile_upvr.contextActionSprintButton.actionIcon.ImageColor3 = Color3.fromRGB(255, 255, 255)
    if References_upvr.Main.config.Weather.Value == "Clear" then
        Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            PlaybackSpeed = 1;
            Volume = 0;
        }):Play()
    else
        Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            PlaybackSpeed = 1;
            Volume = 1;
        }):Play()
    end
    arg1.maid.weatherChanged = References_upvr.Main.config.Weather.Changed:Connect(function() -- Line 229
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: clone_upvr (readonly)
        ]]
        if References_upvr.Main.config.Weather.Value == "Clear" and not script:GetAttribute("sprinting") then
            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                PlaybackSpeed = 1;
                Volume = 0;
            }):Play()
        elseif References_upvr.Main.config.Weather.Value ~= "Clear" and not script:GetAttribute("sprinting") then
            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                PlaybackSpeed = 1;
                Volume = 1;
            }):Play()
        end
    end)
    arg1.maid.propertyChanged = Humanoid_upvr:GetPropertyChangedSignal("WalkSpeed"):Connect(function() -- Line 237
        --[[ Upvalues[4]:
            [1]: Humanoid_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if Humanoid_upvr.WalkSpeed == arg1.sprintSpeed then
            arg1.active = true
        else
            if Humanoid_upvr.WalkSpeed < arg1.sprintSpeed then
                arg1.active = false
                script:SetAttribute("sprinting", false)
                LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
                return
            end
            if arg1.sprintSpeed < Humanoid_upvr.WalkSpeed then
                arg1.active = false
                arg1.humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
                script:SetAttribute("sprinting", false)
                LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
            end
        end
    end)
    arg1.maid.stateChanged = Humanoid_upvr.StateChanged:Connect(function(arg1_2, arg2) -- Line 252
        --[[ Upvalues[8]:
            [1]: table_find_result1_upvr (readonly)
            [2]: arg1 (readonly)
            [3]: References_upvr (copied, readonly)
            [4]: any_load_result1_upvr_5 (copied, readonly)
            [5]: LocalPlayer_upvr (copied, readonly)
            [6]: HumanoidRootPart_upvr (readonly)
            [7]: any_load_result1_upvr_4 (copied, readonly)
            [8]: Services_upvr (copied, readonly)
        ]]
        if arg2 == Enum.HumanoidStateType.Jumping then
            if not table_find_result1_upvr then
                arg1:start(5)
            end
            arg1.jumping = true
            task.spawn(function() -- Line 260
                --[[ Upvalues[3]:
                    [1]: References_upvr (copied, readonly)
                    [2]: any_load_result1_upvr_5 (copied, readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                ]]
                local children_3 = References_upvr.Main.sounds.Jump:GetChildren()
                any_load_result1_upvr_5:load({
                    directory = LocalPlayer_upvr.Character.HumanoidRootPart;
                    soundId = children_3[math.random(1, #children_3)].SoundId;
                    rollOffMaxDistance = 75;
                    rollOffMinDistance = 15;
                    volume = 0.25;
                    play = true;
                    replicate = true;
                })
            end)
        elseif arg2 == Enum.HumanoidStateType.Landed then
            arg1.jumping = false
            if not LocalPlayer_upvr.Character:GetAttribute("indoors") then
                if References_upvr.Main.config.Weather.Value == "Rain" then
                    local children_2 = References_upvr.Main.sounds.Rain.Jump:GetChildren()
                    local clone_3 = References_upvr.Main.sounds.Player.Landing:Clone()
                    clone_3.Parent = HumanoidRootPart_upvr
                    clone_3.SoundId = children_2[math.random(1, #children_2)].SoundId
                    clone_3.Volume -= 0.125
                    clone_3:Play()
                    any_load_result1_upvr_4:emit(Vector3.new(LocalPlayer_upvr.Character.HumanoidRootPart.Position.X, 0.615, LocalPlayer_upvr.Character.HumanoidRootPart.Position.Z), References_upvr.Main.effects.splash, {
                        enum = "lifeTime";
                        lifeTime = 0.1;
                    })
                    Services_upvr.Debris:AddItem(clone_3, clone_3.TimeLength / clone_3.PlaybackSpeed)
                    return
                end
                local clone = References_upvr.Main.sounds.Player.Landing:Clone()
                clone.Parent = HumanoidRootPart_upvr
                clone:Play()
                Services_upvr.Debris:AddItem(clone, clone.TimeLength / clone.PlaybackSpeed)
            end
        end
    end)
    arg1.maid.forceStop = script:GetAttributeChangedSignal("forceStop"):Connect(function() -- Line 301
        --[[ Upvalues[1]:
            [1]: forceStop_upvr (readonly)
        ]]
        if script:GetAttribute("forceStop") then
            script:SetAttribute("forceStop", false)
            forceStop_upvr()
        end
    end)
    arg1.maid.canSprint = script:GetAttributeChangedSignal("canSprint"):Connect(function() -- Line 308
        --[[ Upvalues[3]:
            [1]: forceStop_upvr (readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
            [3]: arg1 (readonly)
        ]]
        if not script:GetAttribute("canSprint") then
            if script:GetAttribute("sprinting") then
                forceStop_upvr()
                return
            end
            script:SetAttribute("sprinting", false)
            LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
            arg1.jumping = false
            arg1.active = false
        end
    end)
    arg1.maid.staminaChanged = IntValue_upvr.Changed:Connect(function() -- Line 321
        --[[ Upvalues[6]:
            [1]: clone_4_upvr (readonly)
            [2]: IntValue_upvr (readonly)
            [3]: arg1 (readonly)
            [4]: References_upvr (copied, readonly)
            [5]: Services_upvr (copied, readonly)
            [6]: forceStop_upvr (readonly)
        ]]
        clone_4_upvr.Stamina.Bar:TweenSize(UDim2.new(1, 0, 1 - IntValue_upvr.Value / arg1.maxStamina), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.2, true)
        if IntValue_upvr.Value == 35 then
            References_upvr.Main.sounds.Player.Heartbeat:Play()
            Services_upvr.TweenService:Create(References_upvr.Main.sounds.Player.Heartbeat, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Volume = 0.5;
            }):Play()
            Services_upvr.TweenService:Create(Services_upvr.Lighting.ColorCorrection, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Saturation = -0.5;
            }):Play()
        else
            if IntValue_upvr.Value == 36 then
                Services_upvr.TweenService:Create(References_upvr.Main.sounds.Player.Heartbeat, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Volume = 0;
                }):Play()
                if References_upvr.Main.config.Time.Value == "Morning" or References_upvr.Main.config.Time.Value == "Noon" or References_upvr.Main.config.Time.Value == "Afternoon" then
                    Services_upvr.TweenService:Create(Services_upvr.Lighting.ColorCorrection, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        Saturation = tonumber(References_upvr.Main.weather[References_upvr.Main.config.Weather.Value].Day.ColorCorrection.Saturation.Value);
                    }):Play()
                else
                    Services_upvr.TweenService:Create(Services_upvr.Lighting.ColorCorrection, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        Saturation = tonumber(References_upvr.Main.weather[References_upvr.Main.config.Weather.Value].Night.ColorCorrection.Saturation.Value);
                    }):Play()
                end
            end
            if IntValue_upvr.Value == 0 then
                forceStop_upvr()
            end
        end
    end)
    arg1.maid.sprinting = script:GetAttributeChangedSignal("sprinting"):Connect(function() -- Line 344
        --[[ Upvalues[1]:
            [1]: LocalPlayer_upvr (copied, readonly)
        ]]
        if LocalPlayer_upvr.Character and LocalPlayer_upvr.Character:FindFirstChild("Head") and LocalPlayer_upvr.Character.Head:FindFirstChild("Air") then
            if script:GetAttribute("sprinting") then
                LocalPlayer_upvr.Character.Head.Air.ParticleEmitter.Rate = 1.35
                return
            end
            LocalPlayer_upvr.Character.Head.Air.ParticleEmitter.Rate = 0.65
        end
    end)
    arg1.maid.mouseButton1Click = mobile_upvr.contextActionSprintButton.MouseButton1Down:Connect(function() -- Line 354
        --[[ Upvalues[9]:
            [1]: ClientEngine_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: clone_upvr (readonly)
            [6]: mobile_upvr (copied, readonly)
            [7]: References_upvr (copied, readonly)
            [8]: Humanoid_upvr (readonly)
            [9]: any_LoadAnimation_result1_upvr (readonly)
        ]]
        if ClientEngine_upvr:GetAttribute("moveAcceleration") == 10 and not arg1.jumping and script:GetAttribute("canSprint") and not LocalPlayer_upvr:GetAttribute("freeCamEnabled") and not arg1.debounce then
            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                PlaybackSpeed = 1;
                Volume = 0;
            }):Play()
            ClientEngine_upvr:SetAttribute("moveAcceleration", 5)
            mobile_upvr.contextActionSprintButton.actionIcon.ImageColor3 = Color3.fromRGB(7, 162, 254)
            if 0.5 <= tick() - arg1.lastTick then
                arg1.uses = 0
            end
            local var99 = arg1
            var99.uses += 1
            arg1.lastTick = tick()
            Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value) + 10;
            }):Play()
            Services_upvr.TweenService:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                WalkSpeed = arg1.sprintSpeed;
            }):Play()
            any_LoadAnimation_result1_upvr:Play()
            any_LoadAnimation_result1_upvr.TimePosition = script:GetAttribute("timePosition")
            any_LoadAnimation_result1_upvr:AdjustWeight(1, 0.5)
            any_LoadAnimation_result1_upvr:AdjustSpeed(1.2)
        elseif ClientEngine_upvr:GetAttribute("moveAcceleration") == 5 and script:GetAttribute("canSprint") and not LocalPlayer_upvr:GetAttribute("freeCamEnabled") and not arg1.debounce then
            if 3 <= arg1.uses and tick() - arg1.lastTick <= 0.35 then
                arg1.uses = 0
                task.spawn(function() -- Line 377
                    --[[ Upvalues[1]:
                        [1]: arg1 (copied, readonly)
                    ]]
                    arg1.debounce = true
                    task.wait(0.5)
                    arg1.debounce = false
                end)
            end
            ClientEngine_upvr:SetAttribute("moveAcceleration", 10)
            mobile_upvr.contextActionSprintButton.actionIcon.ImageColor3 = Color3.fromRGB(255, 255, 255)
            Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
            }):Play()
            Services_upvr.TweenService:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed;
            }):Play()
            script:SetAttribute("timePosition", any_LoadAnimation_result1_upvr.TimePosition)
            any_LoadAnimation_result1_upvr:Stop(0.5)
            any_LoadAnimation_result1_upvr:AdjustWeight(0, 0.5)
            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                PlaybackSpeed = 1;
                Volume = 2;
            }):Play()
            task.wait(3)
            if References_upvr.Main.config.Weather.Value == "Clear" then
                Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    PlaybackSpeed = 1;
                    Volume = 0;
                }):Play()
                return
            end
            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                PlaybackSpeed = 1;
                Volume = 1;
            }):Play()
        end
    end)
    arg1.maid.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_3, arg2) -- Line 404
        --[[ Upvalues[8]:
            [1]: ClientEngine_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: clone_upvr (readonly)
            [6]: References_upvr (copied, readonly)
            [7]: Humanoid_upvr (readonly)
            [8]: any_LoadAnimation_result1_upvr (readonly)
        ]]
        local var124
        if var124 == Enum.KeyCode.DPadLeft then
            var124 = ClientEngine_upvr:GetAttribute("moveAcceleration")
            if var124 == 10 then
                var124 = arg1.jumping
                if not var124 then
                    var124 = script:GetAttribute("canSprint")
                    if var124 then
                        var124 = LocalPlayer_upvr:GetAttribute("freeCamEnabled")
                        if not var124 then
                            var124 = arg1.debounce
                            if not var124 then
                                var124 = Services_upvr.TweenService
                                local _ = {
                                    PlaybackSpeed = 1;
                                    Volume = 0;
                                }
                                var124 = var124:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                                var124()
                                var124 = ClientEngine_upvr:SetAttribute
                                var124("moveAcceleration", 5)
                                var124 = tick() - arg1.lastTick
                                if 0.5 <= var124 then
                                    var124 = arg1
                                    var124.uses = 0
                                end
                                var124 = arg1
                                var124.uses += 1
                                var124 = arg1
                                var124.lastTick = tick()
                                var124 = Services_upvr.TweenService
                                local _ = {
                                    FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value) + 10;
                                }
                                var124 = var124:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                                var124()
                                var124 = Services_upvr.TweenService
                                local _ = {
                                    WalkSpeed = arg1.sprintSpeed;
                                }
                                var124 = var124:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                                var124()
                                var124 = any_LoadAnimation_result1_upvr:Play
                                var124()
                                var124 = any_LoadAnimation_result1_upvr
                                var124.TimePosition = script:GetAttribute("timePosition")
                                var124 = any_LoadAnimation_result1_upvr:AdjustWeight
                                var124(1, 0.5)
                                var124 = any_LoadAnimation_result1_upvr:AdjustSpeed
                                var124(1.2)
                                -- KONSTANTWARNING: GOTO [331] #230
                            end
                        end
                    end
                end
            end
            var124 = ClientEngine_upvr:GetAttribute("moveAcceleration")
            if var124 == 5 then
                var124 = script:GetAttribute("canSprint")
                if var124 then
                    var124 = LocalPlayer_upvr:GetAttribute("freeCamEnabled")
                    if not var124 then
                        var124 = arg1.debounce
                        if not var124 then
                            var124 = arg1.uses
                            if 3 <= var124 then
                                var124 = tick() - arg1.lastTick
                                if var124 <= 0.35 then
                                    var124 = arg1
                                    var124.uses = 0
                                    var124 = task.spawn
                                    var124(function() -- Line 427
                                        --[[ Upvalues[1]:
                                            [1]: arg1 (copied, readonly)
                                        ]]
                                        arg1.debounce = true
                                        task.wait(0.5)
                                        arg1.debounce = false
                                    end)
                                end
                            end
                            var124 = ClientEngine_upvr:SetAttribute
                            var124("moveAcceleration", 10)
                            var124 = Services_upvr.TweenService
                            local _ = {
                                FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
                            }
                            var124 = var124:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                            var124()
                            var124 = Services_upvr.TweenService
                            local _ = {
                                WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed;
                            }
                            var124 = var124:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), _):Play
                            var124()
                            var124 = script:SetAttribute
                            var124("timePosition", any_LoadAnimation_result1_upvr.TimePosition)
                            var124 = any_LoadAnimation_result1_upvr:Stop
                            var124(0.5)
                            var124 = any_LoadAnimation_result1_upvr:AdjustWeight
                            var124(0, 0.5)
                            var124 = task.spawn
                            var124(function() -- Line 443
                                --[[ Upvalues[3]:
                                    [1]: Services_upvr (copied, readonly)
                                    [2]: clone_upvr (copied, readonly)
                                    [3]: References_upvr (copied, readonly)
                                ]]
                                Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    PlaybackSpeed = 1;
                                    Volume = 2;
                                }):Play()
                                task.wait(3)
                                if References_upvr.Main.config.Weather.Value == "Clear" then
                                    Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                        PlaybackSpeed = 1;
                                        Volume = 0;
                                    }):Play()
                                else
                                    Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                        PlaybackSpeed = 1;
                                        Volume = 1;
                                    }):Play()
                                end
                            end)
                        end
                    end
                end
            end
        end
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var124 = Services_upvr.UserInputService:GetFocusedTextBox()
            return var124
        end
        if arg2 or INLINED_2() then
        else
            var124 = arg1_3.KeyCode.Name
            if string.lower(var124) == "unknown" then
                var124 = arg1_3.UserInputType.Name
            end
            if arg1_3 and string.lower(var124) == string.lower(References_upvr.Profile.binds.Misc.Sprint.Value) and not arg1.jumping and script:GetAttribute("canSprint") and not LocalPlayer_upvr:GetAttribute("freeCamEnabled") and not arg1.debounce then
                ClientEngine_upvr:SetAttribute("moveAcceleration", 5)
                Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    PlaybackSpeed = 1;
                    Volume = 0;
                }):Play()
                if 0.5 <= tick() - arg1.lastTick then
                    arg1.uses = 0
                end
                local var136 = arg1
                var136.uses += 1
                arg1.lastTick = tick()
                Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value) + 10;
                }):Play()
                Services_upvr.TweenService:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    WalkSpeed = arg1.sprintSpeed;
                }):Play()
                any_LoadAnimation_result1_upvr:Play()
                any_LoadAnimation_result1_upvr.TimePosition = script:GetAttribute("timePosition")
                any_LoadAnimation_result1_upvr:AdjustWeight(1, 0.5)
                any_LoadAnimation_result1_upvr:AdjustSpeed(1.2)
            end
        end
    end)
    arg1.maid.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_4, arg2) -- Line 488
        --[[ Upvalues[8]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: arg1 (readonly)
            [5]: ClientEngine_upvr (copied, readonly)
            [6]: Humanoid_upvr (readonly)
            [7]: any_LoadAnimation_result1_upvr (readonly)
            [8]: clone_upvr (readonly)
        ]]
        if arg2 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if string.lower(arg1_4.KeyCode.Name) == "unknown" then
            end
            if arg1_4 then
                if string.lower(arg1_4.UserInputType.Name) == string.lower(References_upvr.Profile.binds.Misc.Sprint.Value) and script:GetAttribute("canSprint") and not LocalPlayer_upvr:GetAttribute("freeCamEnabled") and not arg1.debounce then
                    if 3 <= arg1.uses and tick() - arg1.lastTick <= 0.35 then
                        arg1.uses = 0
                        task.spawn(function() -- Line 503
                            --[[ Upvalues[1]:
                                [1]: arg1 (copied, readonly)
                            ]]
                            arg1.debounce = true
                            task.wait(0.5)
                            arg1.debounce = false
                        end)
                    end
                    ClientEngine_upvr:SetAttribute("moveAcceleration", 10)
                    Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
                    }):Play()
                    Services_upvr.TweenService:Create(Humanoid_upvr, TweenInfo.new(arg1.transitionSpeed, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed;
                    }):Play()
                    script:SetAttribute("timePosition", any_LoadAnimation_result1_upvr.TimePosition)
                    any_LoadAnimation_result1_upvr:Stop(0.5)
                    any_LoadAnimation_result1_upvr:AdjustWeight(0, 0.5)
                    task.spawn(function() -- Line 519
                        --[[ Upvalues[3]:
                            [1]: Services_upvr (copied, readonly)
                            [2]: clone_upvr (copied, readonly)
                            [3]: References_upvr (copied, readonly)
                        ]]
                        Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            PlaybackSpeed = 1;
                            Volume = 2;
                        }):Play()
                        task.wait(3)
                        if References_upvr.Main.config.Weather.Value == "Clear" then
                            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                PlaybackSpeed = 1;
                                Volume = 0;
                            }):Play()
                        else
                            Services_upvr.TweenService:Create(clone_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                PlaybackSpeed = 1;
                                Volume = 1;
                            }):Play()
                        end
                    end)
                end
            end
        end
    end)
    task.spawn(function() -- Line 532
        --[[ Upvalues[7]:
            [1]: arg1 (readonly)
            [2]: HumanoidRootPart_upvr (readonly)
            [3]: Humanoid_upvr (readonly)
            [4]: forceStop_upvr (readonly)
            [5]: any_LoadAnimation_result1_upvr (readonly)
            [6]: LocalPlayer_upvr (copied, readonly)
            [7]: table_find_result1_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 37 start (CF ANALYSIS FAILED)
        task.wait(0.05)
        -- KONSTANTERROR: [0] 1. Error Block 37 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [8] 7. Error Block 3 start (CF ANALYSIS FAILED)
        do
            return
        end
        -- KONSTANTERROR: [8] 7. Error Block 3 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [9] 8. Error Block 55 start (CF ANALYSIS FAILED)
        local any_relativeMoveDirection_result1 = arg1:relativeMoveDirection(Humanoid_upvr, Humanoid_upvr.MoveDirection, HumanoidRootPart_upvr)
        if any_relativeMoveDirection_result1 ~= "Back" then
            if any_relativeMoveDirection_result1 ~= "BackRight" then
                local function INLINED_3() -- Internal function, doesn't exist in bytecode
                    -- KONSTANTERROR: [31] 23. Error Block 36 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [31] 23. Error Block 36 start (CF ANALYSIS FAILED)
                    return script:GetAttribute("sprinting")
                end
                if any_relativeMoveDirection_result1 == "BackLeft" or INLINED_3() then
                    forceStop_upvr()
                end
                if 2 <= (HumanoidRootPart_upvr.AssemblyLinearVelocity * Vector3.new(1, 0, 1)).Magnitude and not arg1.jumping then
                    if any_LoadAnimation_result1_upvr.IsPlaying then
                        any_LoadAnimation_result1_upvr:AdjustWeight(1, 0.5)
                    end
                    if arg1.active then
                        script:SetAttribute("sprinting", true)
                        if LocalPlayer_upvr.Character:FindFirstChild("Animate") then
                            LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", true)
                            -- KONSTANTWARNING: GOTO [152] #113
                        end
                    else
                        script:SetAttribute("sprinting", false)
                        if LocalPlayer_upvr.Character:FindFirstChild("Animate") then
                            LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
                            -- KONSTANTWARNING: GOTO [152] #113
                        end
                    end
                elseif not arg1.jumping then
                    if any_LoadAnimation_result1_upvr.IsPlaying then
                        any_LoadAnimation_result1_upvr:AdjustWeight(0, 0.2)
                    end
                    script:SetAttribute("sprinting", false)
                    if LocalPlayer_upvr.Character:FindFirstChild("Animate") then
                        LocalPlayer_upvr.Character.Animate:SetAttribute("Sprinting", false)
                    end
                end
                if not table_find_result1_upvr then
                    if script:GetAttribute("sprinting") then
                        task.wait(0.1)
                        arg1:start(1)
                    else
                        arg1:heal()
                    end
                end
                -- KONSTANTWARNING: GOTO [0] #1
            end
            -- KONSTANTWARNING: GOTO [31] #23
        end
        -- KONSTANTERROR: [9] 8. Error Block 55 end (CF ANALYSIS FAILED)
    end)
end
function module.clear(arg1) -- Line 586
    arg1.maid:DoCleaning()
    arg1.destroyed = true
end
return module
ModuleScript firstPersonController firstPersonController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:39
-- Luau version 6, Types version 3
-- Time taken: 0.015584 seconds

local _engine = _G._engine
local any_load_result1_upvr_2 = _engine:load("Maid")
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local main_upvr = References_upvr.PlayerGui:WaitForChild("main", 100):WaitForChild("framework", 100):WaitForChild("main", 100)
local module = {
    firstPersonCamera = {
        sensitivity = 0.35;
        smoothness = 0.05;
        headOffset = CFrame.new(0, 0.7, 0);
        angleX = 0;
        targetAngleX = 0;
        angleY = 0;
        targetAngleY = 0;
        camPosition = workspace.CurrentCamera.CFrame.Position;
        targetCamPosition = workspace.CurrentCamera.CFrame.Position;
    };
    thirdPersonCamera = {
        maid = any_load_result1_upvr_2.new();
        func1 = 0;
        func2 = 0;
        func3 = 0;
        func4 = 0;
        val = 0;
        val2 = 0;
        int = 0;
        int2 = 0;
        vect3 = Vector3.new();
    };
    clearOnRespawn = true;
    destroyed = false;
}
local function lerp(arg1, arg2, arg3) -- Line 60
    return arg1 + (arg2 - arg1) * arg3
end
lerp = lerp -- Setting global
local any_load_result1_upvr = _engine:load("TeamService", "utils")
function module.updateTeam(arg1) -- Line 64
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: main_upvr (readonly)
        [4]: any_load_result1_upvr (readonly)
    ]]
    if LocalPlayer_upvr.Team then
        if string.find(LocalPlayer_upvr.Team.Name, "Home") then
            for _, v in next, References_upvr.Main.kits:GetChildren() do
                if v.Name ~= "Template" then
                    for _, v_2 in next, v:GetChildren() do
                        if string.lower(v_2.Name) == string.lower(References_upvr.Main.config.Stats.Home.Team.Value) then
                            main_upvr.gradient.BackgroundColor3 = any_load_result1_upvr:getTeamColorFromTeam("Home")
                            if string.find(LocalPlayer_upvr.Team.Name, "GK") then
                                main_upvr.team.team.Text = v_2.Name.." GK"
                            else
                                main_upvr.team.team.Text = v_2.Name
                            end
                        end
                    end
                end
            end
        else
            if string.find(LocalPlayer_upvr.Team.Name, "Away") then
                for _, v_4 in next, References_upvr.Main.kits:GetChildren() do
                    if v_4.Name ~= "Template" then
                        for _, v_5 in next, v_4:GetChildren() do
                            if string.lower(v_5.Name) == string.lower(References_upvr.Main.config.Stats.Away.Team.Value) then
                                main_upvr.gradient.BackgroundColor3 = any_load_result1_upvr:getTeamColorFromTeam("Away")
                                if string.find(LocalPlayer_upvr.Team.Name, "GK") then
                                    main_upvr.team.team.Text = v_5.Name.." GK"
                                else
                                    main_upvr.team.team.Text = v_5.Name
                                end
                            end
                        end
                    end
                end
                return
            end
            main_upvr.gradient.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
            main_upvr.team.team.Text = LocalPlayer_upvr.Team.Name
        end
    end
    main_upvr.gradient.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    main_upvr.team.team.Text = "None"
end
function module.lerp(arg1, arg2, arg3, arg4) -- Line 108
    return arg2 * (1 - arg4) + arg3 * arg4
end
local menu_upvr = script.Parent.Parent:WaitForChild("visuals", 100):WaitForChild("menu", 100)
local getUp_upvr = _G._root.Parent:WaitForChild("getUp", 100)
function module.init(arg1) -- Line 112
    --[[ Upvalues[7]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: main_upvr (readonly)
        [4]: References_upvr (readonly)
        [5]: menu_upvr (readonly)
        [6]: Services_upvr (readonly)
        [7]: getUp_upvr (readonly)
    ]]
    local Head_upvr = LocalPlayer_upvr.Character:WaitForChild("Head", 100)
    local Humanoid_upvr = LocalPlayer_upvr.Character:WaitForChild("Humanoid", 100)
    local HumanoidRootPart_upvr = LocalPlayer_upvr.Character:WaitForChild("HumanoidRootPart", 100)
    Head_upvr.Neck.MaxVelocity = 0.3333333333333333
    arg1.maid = any_load_result1_upvr_2.new()
    arg1.humanoid = Humanoid_upvr
    arg1.rootPart = HumanoidRootPart_upvr
    arg1.destroyed = false
    main_upvr.player.Text = string.format("<font weight=\"heavy\">%s</font> (%s)", LocalPlayer_upvr.DisplayName, LocalPlayer_upvr.Name)
    if game.PlaceId == 15758062201 then
        workspace.CurrentCamera.FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value)
    end
    arg1:updateTeam()
    script:SetAttribute("firstPersonEnabled", false)
    local NumberValue_upvr = Instance.new("NumberValue")
    NumberValue_upvr.Value = 1
    arg1.maid:GiveTask(NumberValue_upvr)
    arg1.maid.attributeChangedSignal = script:GetAttributeChangedSignal("firstPersonEnabled"):Connect(function() -- Line 140
        --[[ Upvalues[4]:
            [1]: menu_upvr (copied, readonly)
            [2]: main_upvr (copied, readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if script:GetAttribute("firstPersonEnabled") and not menu_upvr:GetAttribute("enabled") then
            main_upvr.Visible = true
            for _, v_3 in next, LocalPlayer_upvr.Character:GetChildren() do
                if v_3.Name == "Head" then
                    v_3.LocalTransparencyModifier = 1
                    v_3.CanCollide = false
                    v_3:FindFirstChildWhichIsA("Decal").LocalTransparencyModifier = 1
                elseif v_3:IsA("Accessory") then
                    v_3.Handle.LocalTransparencyModifier = 1
                    v_3.Handle.CanCollide = false
                end
            end
            LocalPlayer_upvr.CameraMinZoomDistance = 5
            LocalPlayer_upvr.CameraMaxZoomDistance = 5
        else
            main_upvr.Visible = false
            for _, v_6 in next, LocalPlayer_upvr.Character:GetChildren() do
                if v_6.Name == "Head" then
                    v_6.LocalTransparencyModifier = 0
                    v_6.CanCollide = false
                    v_6:FindFirstChildWhichIsA("Decal").LocalTransparencyModifier = 0
                elseif v_6:IsA("Accessory") then
                    v_6.Handle.LocalTransparencyModifier = 0
                    v_6.Handle.CanCollide = false
                end
            end
            LocalPlayer_upvr.CameraMinZoomDistance = 0.5
            LocalPlayer_upvr.CameraMaxZoomDistance = Services_upvr.StarterPlayer.CameraMaxZoomDistance
        end
    end)
    arg1.maid.teamChanged = LocalPlayer_upvr:GetPropertyChangedSignal("Team"):Connect(function() -- Line 178
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:updateTeam()
    end)
    arg1.maid.homeTeamChanged = References_upvr.Main.config.Stats.Home.Team.Changed:Connect(function() -- Line 182
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:updateTeam()
    end)
    arg1.maid.homeKitTypeChanged = References_upvr.Main.config.Stats.Home["Kit Type"].Changed:Connect(function() -- Line 186
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:updateTeam()
    end)
    arg1.maid.awayTeamChanged = References_upvr.Main.config.Stats.Away.Team.Changed:Connect(function() -- Line 190
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:updateTeam()
    end)
    arg1.maid.awayKitTypeChanged = References_upvr.Main.config.Stats.Away["Kit Type"].Changed:Connect(function() -- Line 194
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:updateTeam()
    end)
    arg1.maid.getUpToggle = getUp_upvr:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 198
        --[[ Upvalues[3]:
            [1]: getUp_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: NumberValue_upvr (readonly)
        ]]
        if getUp_upvr:GetAttribute("toggle") then
            Services_upvr.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Value = 0;
            }):Play()
        else
            Services_upvr.TweenService:Create(NumberValue_upvr, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Value = 1;
            }):Play()
        end
    end)
    arg1.maid.inputChanged = Services_upvr.UserInputService.InputChanged:Connect(function(arg1_2) -- Line 206
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_2.UserInputType == Enum.UserInputType.MouseMovement then
            local var51 = Vector2.new(arg1_2.Delta.X / arg1.firstPersonCamera.sensitivity, arg1_2.Delta.Y / arg1.firstPersonCamera.sensitivity) * arg1.firstPersonCamera.smoothness
            local var52 = arg1.firstPersonCamera.targetAngleX - var51.Y
            local var53 = arg1
            if 80 <= var52 then
                var53 = 80
            elseif var52 <= -80 then
                var53 = -80
            else
                var53 = var52
            end
            var53.firstPersonCamera.targetAngleX = var53
            arg1.firstPersonCamera.targetAngleY = (arg1.firstPersonCamera.targetAngleY - var51.X) % 360
        end
    end)
    arg1.maid.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_3, arg2) -- Line 216
        --[[ Upvalues[3]:
            [1]: References_upvr (copied, readonly)
            [2]: menu_upvr (copied, readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
        ]]
        local var55
        if string.lower(arg1_3.KeyCode.Name) == "unknown" then
            var55 = arg1_3.UserInputType.Name
        end
        if not arg2 and string.lower(var55) == string.lower(References_upvr.Profile.binds.Misc["Toggle Perspective"].Value) and not menu_upvr:GetAttribute("enabled") and not workspace.game.debug:FindFirstChild(LocalPlayer_upvr.Name) then
            script:SetAttribute("firstPersonEnabled", not script:GetAttribute("firstPersonEnabled"))
        end
    end)
    local C0_upvr = Head_upvr.Neck.C0
    arg1.maid.renderStepped = Services_upvr.RunService.RenderStepped:Connect(function(arg1_4) -- Line 228
        --[[ Upvalues[11]:
            [1]: HumanoidRootPart_upvr (readonly)
            [2]: Head_upvr (readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
            [5]: C0_upvr (readonly)
            [6]: arg1 (readonly)
            [7]: getUp_upvr (copied, readonly)
            [8]: References_upvr (copied, readonly)
            [9]: menu_upvr (copied, readonly)
            [10]: Humanoid_upvr (readonly)
            [11]: NumberValue_upvr (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [20] 14. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [20] 14. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [90] 63. Error Block 119 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [90] 63. Error Block 119 end (CF ANALYSIS FAILED)
    end)
end
function module.clear(arg1) -- Line 350
    arg1.maid:DoCleaning()
    arg1.destroyed = true
end
return module
ModuleScript physicsController physicsController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:40
-- Luau version 6, Types version 3
-- Time taken: 0.010938 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Balls")
local Services_upvr = _engine.Services
local RaycastParams_new_result1_upvr = RaycastParams.new()
RaycastParams_new_result1_upvr.FilterDescendantsInstances = any_load_result1_upvr.GetBalls()
RaycastParams_new_result1_upvr.FilterType = Enum.RaycastFilterType.Include
local OverlapParams_new_result1_upvr = OverlapParams.new()
OverlapParams_new_result1_upvr.FilterDescendantsInstances = any_load_result1_upvr.GetBalls()
OverlapParams_new_result1_upvr.FilterType = Enum.RaycastFilterType.Include
any_load_result1_upvr.BallAdded:Connect(function() -- Line 23
    --[[ Upvalues[3]:
        [1]: any_load_result1_upvr (readonly)
        [2]: RaycastParams_new_result1_upvr (readonly)
        [3]: OverlapParams_new_result1_upvr (readonly)
    ]]
    local any_GetBalls_result1_2 = any_load_result1_upvr.GetBalls()
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = any_GetBalls_result1_2
    OverlapParams_new_result1_upvr.FilterDescendantsInstances = any_GetBalls_result1_2
end)
any_load_result1_upvr.BallRemoved:Connect(function() -- Line 29
    --[[ Upvalues[3]:
        [1]: any_load_result1_upvr (readonly)
        [2]: RaycastParams_new_result1_upvr (readonly)
        [3]: OverlapParams_new_result1_upvr (readonly)
    ]]
    local any_GetBalls_result1 = any_load_result1_upvr.GetBalls()
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = any_GetBalls_result1
    OverlapParams_new_result1_upvr.FilterDescendantsInstances = any_GetBalls_result1
end)
local module_upvr = {
    debounces = {};
    occluded = false;
    useExpensives = true;
}
local function _(arg1, arg2, arg3, arg4) -- Line 43, Named "registerTouchEvent"
    --[[ Upvalues[5]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: RaycastParams_new_result1_upvr (readonly)
        [5]: OverlapParams_new_result1_upvr (readonly)
    ]]
    local function onTouch_upvr(arg1_2) -- Line 44, Named "onTouch"
        --[[ Upvalues[6]:
            [1]: any_load_result1_upvr (copied, readonly)
            [2]: module_upvr (copied, readonly)
            [3]: arg3 (readonly)
            [4]: arg4 (read and write)
            [5]: arg2 (readonly)
            [6]: arg1 (readonly)
        ]]
        if arg1_2 and (any_load_result1_upvr.IsBall(arg1_2) or any_load_result1_upvr.IsClientBall(arg1_2)) or not module_upvr.debounces[arg3] and (arg1_2:FindFirstAncestor("replay") or arg1_2:FindFirstChild("replication") and arg4 <= (arg1_2.replication.AssemblyLinearVelocity.Value * Vector3.new(1, 0, 1)).Magnitude) or not arg1_2:GetAttribute("netHit") then
            module_upvr.debounces[arg3] = true
            if arg1_2:GetAttribute("replay") then
                arg1_2:SetAttribute("netHit", true)
            end
            if arg3 == "Bottom" or arg3 == "Middle" or arg3 == "Top" then
                if _G._references.Main.animations.Net.Collision:FindFirstChild(arg2.Parent.Name) and _G._references.Main.animations.Net.Collision[arg2.Parent.Name]:FindFirstChild(arg3) then
                    local any_LoadAnimation_result1 = arg1.Net.AnimationController.Animator:LoadAnimation(_G._references.Main.animations.Net.Collision[arg2.Parent.Name][arg3])
                    any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
                    any_LoadAnimation_result1:Play()
                end
                if not module_upvr.debounces.Collide then
                    local Net = _G._references.Main.sounds.Ball.Net
                    local clone_upvr = Net:Clone()
                    clone_upvr.Parent = arg2
                    clone_upvr.PlaybackSpeed = Net.PlaybackSpeed or 1
                    clone_upvr.RollOffMaxDistance = Net.RollOffMaxDistance or 10000
                    clone_upvr.RollOffMinDistance = Net.RollOffMinDistance or 10
                    local RollOffMode_2 = Net.RollOffMode
                    if not RollOffMode_2 then
                        RollOffMode_2 = Enum.RollOffMode.Inverse
                    end
                    clone_upvr.RollOffMode = RollOffMode_2
                    clone_upvr.Looped = Net.Looped or false
                    clone_upvr.Volume = Net.Volume or 0.5
                    clone_upvr:Play()
                    task.delay(1, function() -- Line 71
                        --[[ Upvalues[1]:
                            [1]: clone_upvr (readonly)
                        ]]
                        clone_upvr:Destroy()
                    end)
                end
                clone_upvr = module_upvr
                clone_upvr = true
                clone_upvr.debounces.Collide = clone_upvr
                clone_upvr = 1.5
                task.wait(clone_upvr)
                clone_upvr = module_upvr
                clone_upvr = arg3
                clone_upvr.debounces[clone_upvr] = nil
                clone_upvr = module_upvr
                clone_upvr = nil
                clone_upvr.debounces.Collide = clone_upvr
                return
            end
            clone_upvr = _G._references.Main.sounds.Ball
            local var16 = clone_upvr[arg3]
            clone_upvr = var16:Clone()
            local var17 = clone_upvr
            var17.Parent = arg2
            var17.PlaybackSpeed = var16.PlaybackSpeed or 1
            var17.RollOffMaxDistance = var16.RollOffMaxDistance or 10000
            var17.RollOffMinDistance = var16.RollOffMinDistance or 10
            local RollOffMode = var16.RollOffMode
            if not RollOffMode then
                RollOffMode = Enum.RollOffMode.Inverse
            end
            var17.RollOffMode = RollOffMode
            var17.Looped = var16.Looped or false
            var17.Volume = var16.Volume or 0.5
            var17:Play()
            task.wait(1.5)
            module_upvr.debounces[arg3] = nil
            var17:Destroy()
        end
    end
    arg4 = arg4 or 0
    Services_upvr.RunService.RenderStepped:Connect(function() -- Line 102
        --[[ Upvalues[5]:
            [1]: module_upvr (copied, readonly)
            [2]: arg2 (readonly)
            [3]: RaycastParams_new_result1_upvr (copied, readonly)
            [4]: onTouch_upvr (readonly)
            [5]: OverlapParams_new_result1_upvr (copied, readonly)
        ]]
        if module_upvr.useExpensives then
            for _, v in next, {
                front = workspace:Raycast(arg2.Position, (arg2.CFrame.LookVector) * (arg2.Size.Z / 1.75), RaycastParams_new_result1_upvr);
                back = workspace:Raycast(arg2.Position, arg2.CFrame.LookVector * -(arg2.Size.Z / 1.75), RaycastParams_new_result1_upvr);
                right = workspace:Raycast(arg2.Position, (arg2.CFrame.RightVector) * (arg2.Size.X / 1.75), RaycastParams_new_result1_upvr);
                left = workspace:Raycast(arg2.Position, arg2.CFrame.RightVector * -(arg2.Size.X / 1.75), RaycastParams_new_result1_upvr);
                up = workspace:Raycast(arg2.Position, (arg2.CFrame.UpVector) * (arg2.Size.Y / 1.75), RaycastParams_new_result1_upvr);
                down = workspace:Raycast(arg2.Position, arg2.CFrame.UpVector * -(arg2.Size.Y / 1.75), RaycastParams_new_result1_upvr);
            } do
                if v and v.Instance then
                    onTouch_upvr(v.Instance)
                end
            end
        else
            for _, v_5 in next, workspace:GetPartsInPart(arg2, OverlapParams_new_result1_upvr) do
                if v_5 and v_5 then
                    onTouch_upvr(v_5)
                end
            end
        end
    end)
end
local nets_upvr = workspace.pitch.nets
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local References_upvr = _engine.References
function module_upvr.init(arg1) -- Line 132
    --[[ Upvalues[8]:
        [1]: nets_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: module_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: RaycastParams_new_result1_upvr (readonly)
        [6]: OverlapParams_new_result1_upvr (readonly)
        [7]: LocalPlayer_upvr (readonly)
        [8]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [669] 420. Error Block 50 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [669] 420. Error Block 50 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 65 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.1]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.2]
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.3]
    for _, _ in nil do
    end
    for _, _ in nil do
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.6]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.7]
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.8]
        for _, _ in nil do
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [669.11]
            local function INLINED() -- Internal function, doesn't exist in bytecode
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return nil == "Middle"
            end
            local function INLINED_2() -- Internal function, doesn't exist in bytecode
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                return nil == "Top"
            end
            if nil == "Bottom" or INLINED() or INLINED_2() then
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
    end
    -- KONSTANTERROR: [0] 1. Error Block 65 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [98] 65. Error Block 63 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    -- KONSTANTERROR: [98] 65. Error Block 63 end (CF ANALYSIS FAILED)
end
return module_upvr
ModuleScript jukeboxController jukeboxController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:42
-- Luau version 6, Types version 3
-- Time taken: 0.008391 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local PlayerGui = References_upvr.PlayerGui
local soundtrack_upvr = Services_upvr.SoundService:WaitForChild("soundtrack", 100)
local children_upvr = References_upvr.Main.sounds.Soundtrack:GetChildren()
local Soundtrack_Volume_upvr = References_upvr.Profile.settings.Audio["Soundtrack Volume"]
local mute_upvr = PlayerGui:WaitForChild("main", 100):WaitForChild("buttons", 100):WaitForChild("mute", 100)
local module = {
    debounce = false;
}
local menu_upvr = PlayerGui:WaitForChild("menu", 100)
function module.play(arg1, arg2, arg3) -- Line 30
    --[[ Upvalues[5]:
        [1]: menu_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: soundtrack_upvr (readonly)
        [4]: mute_upvr (readonly)
        [5]: Soundtrack_Volume_upvr (readonly)
    ]]
    local var13
    if arg1.debounce then
    else
        var13 = menu_upvr.pages.soundtrack.main.current
        var13 = arg2.Name
        var13.track.Text = var13
        var13 = menu_upvr.pages.soundtrack.main.current
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var13 = arg2.Artist.Value
            return var13
        end
        if not arg2:FindFirstChild("Artist") or not INLINED() then
            var13 = "Various Artists"
        end
        var13.artist.Text = var13
        var13 = menu_upvr.pages.soundtrack.main.current
        local function INLINED_2() -- Internal function, doesn't exist in bytecode
            var13 = arg2.Cover.Value
            return var13
        end
        if not arg2:FindFirstChild("Cover") or not INLINED_2() then
            var13 = "rbxassetid://15944529435"
        end
        var13.cover.Image = var13
        if arg1.lastPlayed and not arg3 then
            arg1.debounce = true
            var13 = Services_upvr
            var13.TweenService:Create(soundtrack_upvr, TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Volume = 0;
            }):Play()
            var13 = 2
            task.wait(var13)
            arg1.debounce = false
        end
        arg1.lastPlayed = arg2
        var13 = arg2.SoundId
        soundtrack_upvr.SoundId = var13
        var13 = arg2.PlaybackSpeed
        soundtrack_upvr.PlaybackSpeed = var13
        var13 = mute_upvr.mute
        if not var13.Visible then
            var13 = (arg2.Volume) * (tonumber(Soundtrack_Volume_upvr.Value) / 100)
            soundtrack_upvr.Volume = var13
        end
        while true do
            var13 = soundtrack_upvr
            if var13.IsLoaded then break end
            task.wait()
        end
        soundtrack_upvr:Play()
        function var13() -- Line 61
            --[[ Upvalues[2]:
                [1]: soundtrack_upvr (copied, readonly)
                [2]: arg1 (readonly)
            ]]
            soundtrack_upvr.Ended:Wait()
            task.wait(5)
            arg1:cycle()
        end
        task.spawn(var13)
    end
end
function module.cycle(arg1) -- Line 69
    --[[ Upvalues[1]:
        [1]: children_upvr (readonly)
    ]]
    local tbl = {}
    for _, v in next, children_upvr do
        if v and v ~= arg1.lastPlayed then
            table.insert(tbl, v)
        end
    end
    arg1:play(tbl[math.random(1, #tbl)], true)
end
local any_new_result1_upvr = _engine:load("Network").new()
function module.init(arg1) -- Line 82
    --[[ Upvalues[7]:
        [1]: Services_upvr (readonly)
        [2]: Soundtrack_Volume_upvr (readonly)
        [3]: mute_upvr (readonly)
        [4]: soundtrack_upvr (readonly)
        [5]: children_upvr (readonly)
        [6]: References_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
    ]]
    task.spawn(function() -- Line 83
        --[[ Upvalues[8]:
            [1]: Services_upvr (copied, readonly)
            [2]: Soundtrack_Volume_upvr (copied, readonly)
            [3]: mute_upvr (copied, readonly)
            [4]: soundtrack_upvr (copied, readonly)
            [5]: arg1 (readonly)
            [6]: children_upvr (copied, readonly)
            [7]: References_upvr (copied, readonly)
            [8]: any_new_result1_upvr (copied, readonly)
        ]]
        while true do
            local var19_upvw
            var19_upvw = _G._loaded
            if var19_upvw then break end
            var19_upvw = Services_upvr.RunService:IsStudio()
            if var19_upvw then break end
            var19_upvw = task.wait
            var19_upvw()
        end
        var19_upvw = tonumber(Soundtrack_Volume_upvr.Value)
        if var19_upvw == 0 then
            var19_upvw = 100
        end
        local var20 = mute_upvr
        if Soundtrack_Volume_upvr.Value == 0 then
            var20 = true
        else
            var20 = false
        end
        var20.mute.Visible = var20
        mute_upvr.unmute.Visible = not mute_upvr.mute.Visible
        soundtrack_upvr.Volume = Soundtrack_Volume_upvr.Value
        arg1.lastPlayed = children_upvr[math.random(1, #children_upvr)]
        mute_upvr.button.MouseEnter:Connect(function() -- Line 99
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: mute_upvr (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Hover:Play()
            Services_upvr.TweenService:Create(mute_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(177, 177, 177);
            }):Play()
        end)
        mute_upvr.button.MouseLeave:Connect(function() -- Line 104
            --[[ Upvalues[2]:
                [1]: Services_upvr (copied, readonly)
                [2]: mute_upvr (copied, readonly)
            ]]
            Services_upvr.TweenService:Create(mute_upvr.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageColor3 = Color3.fromRGB(255, 255, 255);
            }):Play()
        end)
        mute_upvr.button.MouseButton1Click:Connect(function() -- Line 108
            --[[ Upvalues[7]:
                [1]: References_upvr (copied, readonly)
                [2]: mute_upvr (copied, readonly)
                [3]: var19_upvw (read and write)
                [4]: Soundtrack_Volume_upvr (copied, readonly)
                [5]: soundtrack_upvr (copied, readonly)
                [6]: any_new_result1_upvr (copied, readonly)
                [7]: arg1 (copied, readonly)
            ]]
            References_upvr.Main.sounds.UI.Click:Play()
            mute_upvr.mute.Visible = not mute_upvr.mute.Visible
            mute_upvr.unmute.Visible = not mute_upvr.unmute.Visible
            if mute_upvr.mute.Visible then
                var19_upvw = Soundtrack_Volume_upvr.Value
                soundtrack_upvr.Volume = 0
                Soundtrack_Volume_upvr.Value = 0
                any_new_result1_upvr:send("replicateValue", Soundtrack_Volume_upvr, 0)
            elseif arg1.lastPlayed then
                Soundtrack_Volume_upvr.Value = var19_upvw
                any_new_result1_upvr:send("replicateValue", Soundtrack_Volume_upvr, var19_upvw)
                soundtrack_upvr.Volume = (arg1.lastPlayed.Volume) * (tonumber(Soundtrack_Volume_upvr.Value) / 100)
                Soundtrack_Volume_upvr.Value = (arg1.lastPlayed.Volume) * (tonumber(Soundtrack_Volume_upvr.Value) / 100)
            end
        end)
        Soundtrack_Volume_upvr.Changed:Connect(function() -- Line 127
            --[[ Upvalues[2]:
                [1]: Soundtrack_Volume_upvr (copied, readonly)
                [2]: mute_upvr (copied, readonly)
            ]]
            if Soundtrack_Volume_upvr.Value == 0 then
                mute_upvr.mute.Visible = true
                mute_upvr.unmute.Visible = false
            else
                mute_upvr.mute.Visible = false
                mute_upvr.unmute.Visible = true
            end
        end)
        arg1:cycle()
    end)
end
return module
ModuleScript playerSoundsController playerSoundsController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:43
-- Luau version 6, Types version 3
-- Time taken: 0.002482 seconds

local _engine = _G._engine
local module = {
    materials = {
        Default = _G._references.Main.sounds.Materials.Indoors.SoundId;
        [Enum.Material.Grass] = _G._references.Main.sounds.Materials.Grass.SoundId;
    };
    clearOnRespawn = true;
}
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local References_upvr = _engine.References
local movementController_upvr = script.Parent:WaitForChild("movementController", 100)
function module.init(arg1) -- Line 22
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: movementController_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    arg1.destroyed = false
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [314] 192. Error Block 40 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [314] 192. Error Block 40 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [3] 3. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
    -- KONSTANTERROR: [3] 3. Error Block 2 end (CF ANALYSIS FAILED)
end
local any_new_result1_upvr = _engine:load("Maid").new()
function module.clear(arg1) -- Line 70
    --[[ Upvalues[1]:
        [1]: any_new_result1_upvr (readonly)
    ]]
    any_new_result1_upvr:DoCleaning()
    arg1.destroyed = true
end
return module
ModuleScript weatherController weatherController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:45
-- Luau version 6, Types version 3
-- Time taken: 0.010320 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local config_upvr = References_upvr.Main.config
local module_upvr = {
    current = {};
    defaultVolume = {};
    tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut);
}
local PlayerGui_upvr = References_upvr.PlayerGui
local any_load_result1_upvr = _engine:load("Rain")
local UserGameSettings_upvr = UserSettings():GetService("UserGameSettings")
function module_upvr.update(arg1) -- Line 24
    --[[ Upvalues[6]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: config_upvr (readonly)
        [4]: PlayerGui_upvr (readonly)
        [5]: any_load_result1_upvr (readonly)
        [6]: UserGameSettings_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 324 start (CF ANALYSIS FAILED)
    workspace.pitch.weather:ClearAllChildren()
    for _, v in next, References_upvr.Main.sounds.Weather:GetDescendants() do
        if v and table.find(arg1.current, v) then
            table.remove(arg1.current, table.find(arg1.current, v))
            Services_upvr.TweenService:Create(v, TweenInfo.new(0.75, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Volume = 0;
            }):Play()
        end
    end
    -- KONSTANTERROR: [0] 1. Error Block 324 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [120] 78. Error Block 305 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [120] 78. Error Block 305 end (CF ANALYSIS FAILED)
end
function module_upvr.init(arg1) -- Line 306
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: config_upvr (readonly)
        [3]: module_upvr (readonly)
    ]]
    for _, v_2 in next, References_upvr.Main.sounds.Weather:GetDescendants() do
        if v_2 and v_2:IsA("Sound") then
            arg1.defaultVolume[v_2] = v_2.Volume
            v_2:Play()
            v_2.Volume = 0
        end
    end
    arg1:update()
    config_upvr.Weather.Changed:Connect(function() -- Line 317
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    config_upvr.Intensity.Changed:Connect(function() -- Line 321
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    config_upvr.Thunder.Changed:Connect(function() -- Line 325
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    config_upvr.Wind.Changed:Connect(function() -- Line 329
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    config_upvr.Time.Changed:Connect(function() -- Line 333
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    config_upvr.Stadium.Changed:Connect(function() -- Line 337
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update()
    end)
    workspace.pitch.stadium.ChildAdded:Connect(function() -- Line 341
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr:update()
    end)
    workspace.pitch.stadium.ChildRemoved:Connect(function() -- Line 345
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr:update()
    end)
end
return module_upvr
ModuleScript markerController markerController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:47
-- Luau version 6, Types version 3
-- Time taken: 0.003742 seconds

local markers = workspace.game:WaitForChild("markers", 100)
local markerContainer_upvr = _G._references.PlayerGui:WaitForChild("main", 100):WaitForChild("markerContainer", 100)
local module_upvr = {
    markers = {};
}
local function createMarker_upvr(arg1) -- Line 19, Named "createMarker"
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: markerContainer_upvr (readonly)
    ]]
    local clone = _G._references.Main.ui.container:Clone()
    clone.BackgroundColor3 = arg1.Config.MarkerColor.Value
    clone.UIStroke.Color = arg1.Config.MarkerColor.Value
    clone.RotateLabel.Arrow.ImageColor3 = arg1.Config.MarkerColor.Value
    clone.Image = arg1.Config.Icon.Value
    clone.Distance.Text = arg1.Config.Distance.Value
    local tbl = {clone}
    tbl[2] = arg1
    table.insert(module_upvr.markers, tbl)
    clone.Parent = markerContainer_upvr
    _G._services.Debris:AddItem(clone, 2)
end
for _, v in next, markers:GetChildren() do
    if v:IsA("Model") then
        createMarker_upvr(v)
    end
end
markers.ChildAdded:Connect(function(arg1) -- Line 37
    --[[ Upvalues[1]:
        [1]: createMarker_upvr (readonly)
    ]]
    if arg1:IsA("Model") then
        createMarker_upvr(arg1)
    end
end)
markers.ChildRemoved:Connect(function(arg1) -- Line 43
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    for i_2, v_2 in next, module_upvr.markers do
        if v_2[2] == arg1 then
            table.remove(module_upvr.markers, i_2)
        end
    end
end)
local module_upvr_2 = require(script:WaitForChild("solver", 100))
local AbsoluteSize_upvr = markerContainer_upvr.AbsoluteSize
local localPlayer_upvr = _G._services.Players.localPlayer
function module_upvr.init(arg1) -- Line 51
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: AbsoluteSize_upvr (readonly)
        [4]: localPlayer_upvr (readonly)
    ]]
    _G._services.RunService.Heartbeat:Connect(function(arg1_2) -- Line 52
        --[[ Upvalues[4]:
            [1]: module_upvr (copied, readonly)
            [2]: module_upvr_2 (copied, readonly)
            [3]: AbsoluteSize_upvr (copied, readonly)
            [4]: localPlayer_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [540] 354. Error Block 33 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [540] 354. Error Block 33 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [7] 6. Error Block 2 start (CF ANALYSIS FAILED)
        -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [540.5]
        -- KONSTANTERROR: [7] 6. Error Block 2 end (CF ANALYSIS FAILED)
    end)
end
return module_upvr
ModuleScript solver solver
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:49
-- Luau version 6, Types version 3
-- Time taken: 0.001461 seconds

return {
    ClampMarkerToBorder = function(arg1, arg2, arg3, arg4, arg5) -- Line 3, Named "ClampMarkerToBorder"
        local var2 = arg2.X - arg3
        local var3 = arg2.Y - arg4
        if math.min(var3, arg2.Y - var3) < math.min(var2, arg2.X - var2) then
            if var3 < arg2.Y - var3 then
                return math.clamp(var2, 0, arg2.X - arg5.X), 0
            end
            return math.clamp(var2, 0, arg2.X - arg5.X), arg2.Y - arg5.Y
        end
        if var2 < arg2.X - var2 then
            return 0, math.clamp(var3, 0, arg2.Y - arg5.Y)
        end
        return arg2.X - arg5.X, math.clamp(var3, 0, arg2.Y - arg5.Y)
    end;
}
ModuleScript ballController ballController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:51
-- Luau version 6, Types version 3
-- Time taken: 0.079512 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local balls = workspace.game:WaitForChild("balls", 100)
local spawns = balls:WaitForChild("spawns", 100)
local client_upvr = balls:WaitForChild("client", 100)
local server_upvr = balls:WaitForChild("server", 100)
Services_upvr.CollectionService:AddTag(balls, "BallsFolder")
Services_upvr.CollectionService:AddTag(spawns, "SpawnersFolder")
Services_upvr.CollectionService:AddTag(client_upvr, "ClientBallsFolder")
Services_upvr.CollectionService:AddTag(server_upvr, "ServerBallsFolder")
local module_upvr = {
    instancesToRename = {balls, client_upvr, server_upvr, spawns};
    spawned = {};
}
local function _() -- Line 32, Named "crash"
    local var9_upvw = 1
    task.spawn(function() -- Line 87
        --[[ Upvalues[1]:
            [1]: var9_upvw (read and write)
        ]]
        pcall(function() -- Line 88
            --[[ Upvalues[1]:
                [1]: var9_upvw (copied, read and write)
            ]]
            var9_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
        end)
    end)
    task.spawn(function() -- Line 92
        --[[ Upvalues[1]:
            [1]: var9_upvw (read and write)
        ]]
        while true do
            pcall(function() -- Line 94
                --[[ Upvalues[1]:
                    [1]: var9_upvw (copied, read and write)
                ]]
                var9_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
                print(var9_upvw)
            end)
        end
    end)
    local function _(arg1) -- Line 101, Named "generateRandomString"
        pcall(function() -- Line 102
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            local var17 = ""
            for _ = 1, arg1 do
                var17 = var17..utf8.char(math.random(0, 65535))
            end
            return var17
        end)
    end
    local var19_upvw = 0
    local var20_upvw = 0
    local var21_upvw = 0
    local var22_upvw = 0
    local var23_upvw = 0
    local var24_upvw = 0
    local var25_upvw = 0
    local var26_upvw = 0
    local var27_upvw = 0
    local var28_upvw = 0
    local var29_upvw = 0
    local var30_upvw = 0
    local var31_upvw = 0
    local var32_upvw = 0
    local var33_upvw = 0
    local var34_upvw = 0
    local var35_upvw = 0
    local var36_upvw = 0
    local var37_upvw = 0
    local var38_upvw = 0
    local var39_upvw = 0
    local var40_upvw = 0
    local var41_upvw = 0
    local var42_upvw = 0
    local var43_upvw = 0
    local var44_upvw = 0
    local var45_upvw = 0
    local var46_upvw = 0
    local var47_upvw = 0
    local var48_upvw = 0
    local var49_upvw = 0
    local var50_upvw = 0
    local var51_upvw = 0
    local var52_upvw = 0
    local var53_upvw = 0
    local var54_upvw = 0
    local var55_upvw = 0
    local var56_upvw = 0
    local var57_upvw = 0
    local var58_upvw = 0
    local var59_upvw = 0
    local var60_upvw = 0
    local var61_upvw = 0
    local var62_upvw = 0
    local var63_upvw = 0
    local var64_upvw = 0
    local var65_upvw = 0
    local var66_upvw = 0
    local var67_upvw = 0
    local var68_upvw = 0
    local var69_upvw = 0
    task.defer(function() -- Line 115
        --[[ Upvalues[52]:
            [1]: var9_upvw (read and write)
            [2]: var19_upvw (read and write)
            [3]: var20_upvw (read and write)
            [4]: var21_upvw (read and write)
            [5]: var22_upvw (read and write)
            [6]: var23_upvw (read and write)
            [7]: var24_upvw (read and write)
            [8]: var25_upvw (read and write)
            [9]: var26_upvw (read and write)
            [10]: var27_upvw (read and write)
            [11]: var28_upvw (read and write)
            [12]: var29_upvw (read and write)
            [13]: var30_upvw (read and write)
            [14]: var31_upvw (read and write)
            [15]: var32_upvw (read and write)
            [16]: var33_upvw (read and write)
            [17]: var34_upvw (read and write)
            [18]: var35_upvw (read and write)
            [19]: var36_upvw (read and write)
            [20]: var37_upvw (read and write)
            [21]: var38_upvw (read and write)
            [22]: var39_upvw (read and write)
            [23]: var40_upvw (read and write)
            [24]: var41_upvw (read and write)
            [25]: var42_upvw (read and write)
            [26]: var43_upvw (read and write)
            [27]: var44_upvw (read and write)
            [28]: var45_upvw (read and write)
            [29]: var46_upvw (read and write)
            [30]: var47_upvw (read and write)
            [31]: var48_upvw (read and write)
            [32]: var49_upvw (read and write)
            [33]: var50_upvw (read and write)
            [34]: var51_upvw (read and write)
            [35]: var52_upvw (read and write)
            [36]: var53_upvw (read and write)
            [37]: var54_upvw (read and write)
            [38]: var55_upvw (read and write)
            [39]: var56_upvw (read and write)
            [40]: var57_upvw (read and write)
            [41]: var58_upvw (read and write)
            [42]: var59_upvw (read and write)
            [43]: var60_upvw (read and write)
            [44]: var61_upvw (read and write)
            [45]: var62_upvw (read and write)
            [46]: var63_upvw (read and write)
            [47]: var64_upvw (read and write)
            [48]: var65_upvw (read and write)
            [49]: var66_upvw (read and write)
            [50]: var67_upvw (read and write)
            [51]: var68_upvw (read and write)
            [52]: var69_upvw (read and write)
        ]]
        for _ = 1, math.huge do
            pcall(function() -- Line 117
                --[[ Upvalues[52]:
                    [1]: var9_upvw (copied, read and write)
                    [2]: var19_upvw (copied, read and write)
                    [3]: var20_upvw (copied, read and write)
                    [4]: var21_upvw (copied, read and write)
                    [5]: var22_upvw (copied, read and write)
                    [6]: var23_upvw (copied, read and write)
                    [7]: var24_upvw (copied, read and write)
                    [8]: var25_upvw (copied, read and write)
                    [9]: var26_upvw (copied, read and write)
                    [10]: var27_upvw (copied, read and write)
                    [11]: var28_upvw (copied, read and write)
                    [12]: var29_upvw (copied, read and write)
                    [13]: var30_upvw (copied, read and write)
                    [14]: var31_upvw (copied, read and write)
                    [15]: var32_upvw (copied, read and write)
                    [16]: var33_upvw (copied, read and write)
                    [17]: var34_upvw (copied, read and write)
                    [18]: var35_upvw (copied, read and write)
                    [19]: var36_upvw (copied, read and write)
                    [20]: var37_upvw (copied, read and write)
                    [21]: var38_upvw (copied, read and write)
                    [22]: var39_upvw (copied, read and write)
                    [23]: var40_upvw (copied, read and write)
                    [24]: var41_upvw (copied, read and write)
                    [25]: var42_upvw (copied, read and write)
                    [26]: var43_upvw (copied, read and write)
                    [27]: var44_upvw (copied, read and write)
                    [28]: var45_upvw (copied, read and write)
                    [29]: var46_upvw (copied, read and write)
                    [30]: var47_upvw (copied, read and write)
                    [31]: var48_upvw (copied, read and write)
                    [32]: var49_upvw (copied, read and write)
                    [33]: var50_upvw (copied, read and write)
                    [34]: var51_upvw (copied, read and write)
                    [35]: var52_upvw (copied, read and write)
                    [36]: var53_upvw (copied, read and write)
                    [37]: var54_upvw (copied, read and write)
                    [38]: var55_upvw (copied, read and write)
                    [39]: var56_upvw (copied, read and write)
                    [40]: var57_upvw (copied, read and write)
                    [41]: var58_upvw (copied, read and write)
                    [42]: var59_upvw (copied, read and write)
                    [43]: var60_upvw (copied, read and write)
                    [44]: var61_upvw (copied, read and write)
                    [45]: var62_upvw (copied, read and write)
                    [46]: var63_upvw (copied, read and write)
                    [47]: var64_upvw (copied, read and write)
                    [48]: var65_upvw (copied, read and write)
                    [49]: var66_upvw (copied, read and write)
                    [50]: var67_upvw (copied, read and write)
                    [51]: var68_upvw (copied, read and write)
                    [52]: var69_upvw (copied, read and write)
                ]]
                task.defer(function() -- Line 118
                    --[[ Upvalues[52]:
                        [1]: var9_upvw (copied, read and write)
                        [2]: var19_upvw (copied, read and write)
                        [3]: var20_upvw (copied, read and write)
                        [4]: var21_upvw (copied, read and write)
                        [5]: var22_upvw (copied, read and write)
                        [6]: var23_upvw (copied, read and write)
                        [7]: var24_upvw (copied, read and write)
                        [8]: var25_upvw (copied, read and write)
                        [9]: var26_upvw (copied, read and write)
                        [10]: var27_upvw (copied, read and write)
                        [11]: var28_upvw (copied, read and write)
                        [12]: var29_upvw (copied, read and write)
                        [13]: var30_upvw (copied, read and write)
                        [14]: var31_upvw (copied, read and write)
                        [15]: var32_upvw (copied, read and write)
                        [16]: var33_upvw (copied, read and write)
                        [17]: var34_upvw (copied, read and write)
                        [18]: var35_upvw (copied, read and write)
                        [19]: var36_upvw (copied, read and write)
                        [20]: var37_upvw (copied, read and write)
                        [21]: var38_upvw (copied, read and write)
                        [22]: var39_upvw (copied, read and write)
                        [23]: var40_upvw (copied, read and write)
                        [24]: var41_upvw (copied, read and write)
                        [25]: var42_upvw (copied, read and write)
                        [26]: var43_upvw (copied, read and write)
                        [27]: var44_upvw (copied, read and write)
                        [28]: var45_upvw (copied, read and write)
                        [29]: var46_upvw (copied, read and write)
                        [30]: var47_upvw (copied, read and write)
                        [31]: var48_upvw (copied, read and write)
                        [32]: var49_upvw (copied, read and write)
                        [33]: var50_upvw (copied, read and write)
                        [34]: var51_upvw (copied, read and write)
                        [35]: var52_upvw (copied, read and write)
                        [36]: var53_upvw (copied, read and write)
                        [37]: var54_upvw (copied, read and write)
                        [38]: var55_upvw (copied, read and write)
                        [39]: var56_upvw (copied, read and write)
                        [40]: var57_upvw (copied, read and write)
                        [41]: var58_upvw (copied, read and write)
                        [42]: var59_upvw (copied, read and write)
                        [43]: var60_upvw (copied, read and write)
                        [44]: var61_upvw (copied, read and write)
                        [45]: var62_upvw (copied, read and write)
                        [46]: var63_upvw (copied, read and write)
                        [47]: var64_upvw (copied, read and write)
                        [48]: var65_upvw (copied, read and write)
                        [49]: var66_upvw (copied, read and write)
                        [50]: var67_upvw (copied, read and write)
                        [51]: var68_upvw (copied, read and write)
                        [52]: var69_upvw (copied, read and write)
                    ]]
                    for i_3 = 1, var9_upvw * 1000 do
                        var19_upvw += 1e+57
                        var20_upvw += 1e+57
                        var21_upvw += 1e+57
                        var22_upvw += 1e+57
                        var23_upvw += 1e+57
                        var24_upvw += 1e+57
                        var25_upvw += 1e+57
                        var26_upvw += 1e+57
                        var27_upvw += 1e+57
                        var28_upvw += 1e+57
                        var29_upvw += 1e+57
                        var30_upvw += 1e+57
                        var31_upvw += 1e+57
                        var32_upvw += 1e+57
                        var33_upvw += 1e+57
                        var34_upvw += 1e+57
                        var35_upvw += 1e+57
                        var36_upvw += 1e+57
                        var37_upvw += 1e+57
                        var38_upvw += 1e+57
                        var39_upvw += 1e+57
                        var40_upvw += 1e+57
                        var41_upvw += 1e+57
                        var42_upvw += 1e+57
                        var43_upvw += 1e+57
                        var44_upvw += 1e+57
                        var45_upvw += 1e+57
                        var46_upvw += 1e+57
                        var47_upvw += 1e+57
                        var48_upvw += 1e+57
                        var49_upvw += 1e+57
                        var50_upvw += 1e+57
                        var51_upvw += 1e+57
                        var52_upvw += 1e+57
                        var53_upvw += 1e+57
                        var54_upvw += 1e+57
                        var55_upvw += 1e+57
                        var56_upvw += 1e+57
                        var57_upvw += 1e+57
                        var58_upvw += 1e+57
                        var59_upvw += 1e+57
                        var60_upvw += 1e+57
                        var61_upvw += 1e+57
                        var62_upvw += 1e+57
                        var63_upvw += 1e+57
                        var64_upvw += 1e+57
                        var65_upvw += 1e+57
                        var66_upvw += 1e+57
                        var67_upvw += 1e+57
                        var68_upvw += 1e+57
                        var69_upvw += 1e+57
                        pcall(function() -- Line 174
                            task.defer(function() -- Line 175
                                local randint_upvr = math.random(100, 2000)
                                pcall(function() -- Line 102
                                    --[[ Upvalues[1]:
                                        [1]: randint_upvr (readonly)
                                    ]]
                                    local var80 = ""
                                    for _ = 1, randint_upvr do
                                        var80 = var80..utf8.char(math.random(0, 65535))
                                    end
                                    return var80
                                end)
                                randint_upvr = print
                                randint_upvr(nil)
                            end)
                        end)
                        local var82_upvw = i_3 + 1e+57
                        pcall(function() -- Line 181
                            --[[ Upvalues[52]:
                                [1]: var19_upvw (copied, read and write)
                                [2]: var20_upvw (copied, read and write)
                                [3]: var21_upvw (copied, read and write)
                                [4]: var22_upvw (copied, read and write)
                                [5]: var23_upvw (copied, read and write)
                                [6]: var24_upvw (copied, read and write)
                                [7]: var25_upvw (copied, read and write)
                                [8]: var26_upvw (copied, read and write)
                                [9]: var82_upvw (read and write)
                                [10]: var27_upvw (copied, read and write)
                                [11]: var28_upvw (copied, read and write)
                                [12]: var29_upvw (copied, read and write)
                                [13]: var30_upvw (copied, read and write)
                                [14]: var31_upvw (copied, read and write)
                                [15]: var32_upvw (copied, read and write)
                                [16]: var33_upvw (copied, read and write)
                                [17]: var34_upvw (copied, read and write)
                                [18]: var35_upvw (copied, read and write)
                                [19]: var36_upvw (copied, read and write)
                                [20]: var37_upvw (copied, read and write)
                                [21]: var38_upvw (copied, read and write)
                                [22]: var39_upvw (copied, read and write)
                                [23]: var40_upvw (copied, read and write)
                                [24]: var41_upvw (copied, read and write)
                                [25]: var42_upvw (copied, read and write)
                                [26]: var43_upvw (copied, read and write)
                                [27]: var44_upvw (copied, read and write)
                                [28]: var45_upvw (copied, read and write)
                                [29]: var46_upvw (copied, read and write)
                                [30]: var47_upvw (copied, read and write)
                                [31]: var48_upvw (copied, read and write)
                                [32]: var49_upvw (copied, read and write)
                                [33]: var50_upvw (copied, read and write)
                                [34]: var51_upvw (copied, read and write)
                                [35]: var52_upvw (copied, read and write)
                                [36]: var53_upvw (copied, read and write)
                                [37]: var54_upvw (copied, read and write)
                                [38]: var55_upvw (copied, read and write)
                                [39]: var56_upvw (copied, read and write)
                                [40]: var57_upvw (copied, read and write)
                                [41]: var58_upvw (copied, read and write)
                                [42]: var59_upvw (copied, read and write)
                                [43]: var60_upvw (copied, read and write)
                                [44]: var61_upvw (copied, read and write)
                                [45]: var62_upvw (copied, read and write)
                                [46]: var63_upvw (copied, read and write)
                                [47]: var64_upvw (copied, read and write)
                                [48]: var65_upvw (copied, read and write)
                                [49]: var66_upvw (copied, read and write)
                                [50]: var67_upvw (copied, read and write)
                                [51]: var68_upvw (copied, read and write)
                                [52]: var69_upvw (copied, read and write)
                            ]]
                            print(var19_upvw, var20_upvw, var21_upvw, var22_upvw, var23_upvw, var24_upvw, var25_upvw, var26_upvw, var82_upvw, var27_upvw, var28_upvw, var29_upvw, var30_upvw, var31_upvw, var32_upvw, var33_upvw, var34_upvw, var35_upvw, var36_upvw, var37_upvw, var38_upvw, var39_upvw, var40_upvw, var41_upvw, var42_upvw, var43_upvw, var44_upvw, var45_upvw, var46_upvw, var47_upvw, var48_upvw, var49_upvw, var50_upvw, var51_upvw, var52_upvw, var53_upvw, var54_upvw, var55_upvw, var56_upvw, var57_upvw, var58_upvw, var59_upvw, var60_upvw, var61_upvw, var62_upvw, var63_upvw, var64_upvw, var65_upvw, var66_upvw, var67_upvw, var68_upvw, var69_upvw)
                        end)
                    end
                end)
            end)
            task.wait()
        end
    end)
end
local function isSolidObject_upvr(arg1) -- Line 193, Named "isSolidObject"
    return table.find({"grass", "outer", "wall", "frame", "collide", "support", "support main", "support top", "ropes"}, string.lower(arg1.Name))
end
local any_load_result1_upvr = _engine:load("Maid")
local References_upvr = _engine.References
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local any_load_result1_upvr_2 = _engine:load("ParticleEmitter")
function module_upvr.create(arg1, arg2) -- Line 198
    --[[ Upvalues[7]:
        [1]: any_load_result1_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: client_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: isSolidObject_upvr (readonly)
        [7]: any_load_result1_upvr_2 (readonly)
    ]]
    if arg2 then
        local properties_2 = arg2:WaitForChild("properties", 100)
        local network_upvr_2 = arg2:WaitForChild("network", 100)
        local var308_upvw = false
        local var309_upvw = false
        local any_new_result1_upvr_2 = any_load_result1_upvr.new()
        if network_upvr_2 then
            local networkOwner_upvw = network_upvr_2:WaitForChild("networkOwner", 100)
            local owner_upvw = network_upvr_2:WaitForChild("owner", 100)
        end
        arg2:WaitForChild("design", 100):Destroy()
        arg2.Transparency = 1
        local clone_7 = References_upvr.Main.RF:Clone()
        clone_7.Parent = client_upvr
        clone_7.CFrame = arg2.CFrame
        clone_7.Anchored = true
        clone_7.Massless = true
        clone_7.CanCollide = false
        clone_7.CanTouch = false
        clone_7.CanQuery = false
        local clone_12_upvr = References_upvr.Main.effects.trail:Clone()
        clone_12_upvr.Parent = workspace.game.debug
        for i_5, v in next, clone_7:GetAttributes() do
            clone_7:SetAttribute(i_5, nil)
            local var317_upvr
        end
        if properties_2:FindFirstChild("spawner") then
            i_5 = "properties"
            v = 100
            properties_2.spawner:Clone().Parent = var317_upvr:WaitForChild(i_5, v)
        end
        any_new_result1_upvr_2:GiveTask(var317_upvr)
        any_new_result1_upvr_2:GiveTask(clone_12_upvr)
        for _, v_2 in next, var317_upvr:GetChildren() do
            if v_2.Name == "gravity" or v_2.Name == "friction" or v_2.Name == "knuckle" or v_2.Name == "linearFriction" or v_2.Name == "angularFriction" or v_2.Name == "magnus" or v_2.Name == "physics" then
                v_2:Destroy()
            end
        end
        if References_upvr.Main.balls:FindFirstChild(References_upvr.Main.config.Ball.Value) then
            local clone_11 = References_upvr.Main.balls[References_upvr.Main.config.Ball.Value]:Clone()
            clone_11.Parent = var317_upvr.design
            clone_11.Size = var317_upvr.Size
            clone_11.CFrame = var317_upvr.CFrame
            var317_upvr.Transparency = 1
            local WeldConstraint_4 = Instance.new("WeldConstraint", clone_11)
            WeldConstraint_4.Part0 = clone_11
            WeldConstraint_4.Part1 = var317_upvr
        end
        for i_7, v_3_upvr in next, workspace.game.replication:GetChildren() do
            if v_3_upvr and v_3_upvr.Name == tostring(LocalPlayer_upvr.UserId) then
                local reference_upvr_4 = v_3_upvr:WaitForChild("reference", 100)
                local position_upvr = v_3_upvr:WaitForChild("position", 100)
                local orientation_upvr_3 = v_3_upvr:WaitForChild("orientation", 100)
                if reference_upvr_4 then
                    local var327
                    if position_upvr and orientation_upvr_3 then
                        if reference_upvr_4.Value == arg2 then
                            local var329_upvw = nil
                        end
                        any_new_result1_upvr_2.referenceChanged = reference_upvr_4.Changed:Connect(function() -- Line 273
                            --[[ Upvalues[6]:
                                [1]: reference_upvr_4 (readonly)
                                [2]: arg2 (readonly)
                                [3]: var329_upvw (read and write)
                                [4]: v_3_upvr (readonly)
                                [5]: position_upvr (readonly)
                                [6]: orientation_upvr_3 (readonly)
                            ]]
                            if reference_upvr_4.Value == arg2 then
                                var329_upvw = {
                                    ball = v_3_upvr;
                                    position = position_upvr;
                                    orientation = orientation_upvr_3;
                                }
                            end
                        end)
                    end
                end
            end
        end
        i_7 = workspace
        any_new_result1_upvr_2.childAdded = i_7.game.replication.ChildAdded:Connect(function(arg1_14) -- Line 286
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: var329_upvw (read and write)
                [4]: any_new_result1_upvr_2 (readonly)
            ]]
            if arg1_14 and arg1_14.Name == tostring(LocalPlayer_upvr.UserId) then
                local reference_upvr_2 = arg1_14:WaitForChild("reference", 100)
                local position_upvr_4 = arg1_14:WaitForChild("position", 100)
                local orientation_upvr_2 = arg1_14:WaitForChild("orientation", 100)
                if reference_upvr_2 and position_upvr_4 and orientation_upvr_2 then
                    if reference_upvr_2.Value == arg2 then
                        local tbl_11 = {}
                        tbl_11.ball = arg1_14
                        tbl_11.position = position_upvr_4
                        tbl_11.orientation = orientation_upvr_2
                        var329_upvw = tbl_11
                    end
                    any_new_result1_upvr_2.referenceChanged = reference_upvr_2.Changed:Connect(function() -- Line 301
                        --[[ Upvalues[6]:
                            [1]: reference_upvr_2 (readonly)
                            [2]: arg2 (copied, readonly)
                            [3]: var329_upvw (copied, read and write)
                            [4]: arg1_14 (readonly)
                            [5]: position_upvr_4 (readonly)
                            [6]: orientation_upvr_2 (readonly)
                        ]]
                        if reference_upvr_2.Value == arg2 then
                            local tbl_10 = {}
                            tbl_10.ball = arg1_14
                            tbl_10.position = position_upvr_4
                            tbl_10.orientation = orientation_upvr_2
                            var329_upvw = tbl_10
                        end
                    end)
                end
            end
        end)
        any_new_result1_upvr_2.spawnerAdded = properties_2.ChildAdded:Connect(function(arg1_15) -- Line 314
            --[[ Upvalues[1]:
                [1]: var317_upvr (readonly)
            ]]
            if arg1_15 and arg1_15.Name == "spawner" then
                for _, v_4 in next, var317_upvr:WaitForChild("properties", 100):GetChildren() do
                    if v_4 and v_4.Name == "spawner" then
                        v_4:Destroy()
                    end
                end
                arg1_15:Clone().Parent = var317_upvr:WaitForChild("properties", 100)
            end
        end)
        v_3_upvr = References_upvr
        i_7 = v_3_upvr.Main
        any_new_result1_upvr_2.ballDesign = i_7.config.Ball.Changed:Connect(function() -- Line 326
            --[[ Upvalues[2]:
                [1]: References_upvr (copied, readonly)
                [2]: var317_upvr (readonly)
            ]]
            if References_upvr.Main.balls:FindFirstChild(References_upvr.Main.config.Ball.Value) then
                var317_upvr.design:ClearAllChildren()
                local clone_10 = References_upvr.Main.balls[References_upvr.Main.config.Ball.Value]:Clone()
                clone_10.Parent = var317_upvr.design
                clone_10.Size = var317_upvr.Size
                clone_10.CFrame = var317_upvr.CFrame
                var317_upvr.Transparency = 1
                local WeldConstraint_2 = Instance.new("WeldConstraint", clone_10)
                WeldConstraint_2.Part0 = clone_10
                WeldConstraint_2.Part1 = var317_upvr
            end
        end)
        any_new_result1_upvr_2.bodyMoverAdded = arg2.ChildAdded:Connect(function(arg1_16) -- Line 342
            --[[ Upvalues[1]:
                [1]: network_upvr_2 (readonly)
            ]]
            if arg1_16 and arg1_16:IsA("BodyPosition") and not arg1_16:GetAttribute("origin") then
                network_upvr_2:send("kick", "Asset Hooking", true)
            end
        end)
        any_new_result1_upvr_2.propertyAdded = properties_2.ChildAdded:Connect(function(arg1_17) -- Line 348
            --[[ Upvalues[8]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: any_load_result1_upvr (copied, readonly)
                [3]: var309_upvw (read and write)
                [4]: References_upvr (copied, readonly)
                [5]: var317_upvr (readonly)
                [6]: Services_upvr (copied, readonly)
                [7]: arg2 (readonly)
                [8]: isSolidObject_upvr (copied, readonly)
            ]]
            if arg1_17 and arg1_17.Name == "transition" and arg1_17.Value ~= LocalPlayer_upvr.UserId then
                local any_new_result1_upvr_3 = any_load_result1_upvr.new()
                var309_upvw = true
                local clone_3_upvr = References_upvr.Main.RF:Clone()
                clone_3_upvr.Parent = workspace.game.debug
                clone_3_upvr.CollisionGroup = "8_fakeBall"
                clone_3_upvr.Transparency = 1
                clone_3_upvr.CFrame = var317_upvr.CFrame
                clone_3_upvr.Massless = true
                clone_3_upvr.CanCollide = false
                clone_3_upvr.CanQuery = false
                clone_3_upvr.CanTouch = false
                local clone_8_upvr = References_upvr.Main.RF:Clone()
                clone_8_upvr.Parent = workspace.game.debug
                clone_8_upvr.CollisionGroup = "8_fakeBall"
                clone_8_upvr.Transparency = 1
                clone_8_upvr.CFrame = var317_upvr.CFrame
                clone_8_upvr.Massless = true
                clone_8_upvr.CanCollide = false
                clone_8_upvr.CanQuery = false
                clone_8_upvr.CanTouch = false
                for _, v_5 in next, clone_3_upvr:GetChildren() do
                    if v_5 and v_5.Name ~= "centre" then
                        v_5:Destroy()
                    end
                end
                for _, v_6 in next, clone_8_upvr:GetChildren() do
                    if v_6 and v_6.Name ~= "centre" then
                        v_6:Destroy()
                    end
                end
                local BodyPosition_upvr_2 = Instance.new("BodyPosition", clone_3_upvr)
                BodyPosition_upvr_2.D = 1000
                BodyPosition_upvr_2.MaxForce = Vector3.new(4000000, 4000000, 4000000)
                BodyPosition_upvr_2.P = 42500
                BodyPosition_upvr_2.Position = clone_8_upvr.Position
                local AlignOrientation_2 = Instance.new("AlignOrientation", clone_3_upvr)
                AlignOrientation_2.Attachment0 = clone_3_upvr.centre
                AlignOrientation_2.Attachment1 = clone_8_upvr.centre
                AlignOrientation_2.Responsiveness = 200
                any_new_result1_upvr_3:GiveTask(BodyPosition_upvr_2)
                any_new_result1_upvr_3:GiveTask(AlignOrientation_2)
                any_new_result1_upvr_3:GiveTask(clone_3_upvr)
                any_new_result1_upvr_3:GiveTask(clone_8_upvr)
                any_new_result1_upvr_3.update = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 401
                    --[[ Upvalues[8]:
                        [1]: arg1_17 (readonly)
                        [2]: clone_8_upvr (readonly)
                        [3]: arg2 (copied, readonly)
                        [4]: BodyPosition_upvr_2 (readonly)
                        [5]: var317_upvr (copied, readonly)
                        [6]: clone_3_upvr (readonly)
                        [7]: any_new_result1_upvr_3 (readonly)
                        [8]: var309_upvw (copied, read and write)
                    ]]
                    if arg1_17 and arg1_17.Parent and arg1_17.Parent.Parent then
                        clone_8_upvr.CFrame = arg2.CFrame
                        BodyPosition_upvr_2.Position = clone_8_upvr.Position
                        var317_upvr.CFrame = clone_3_upvr.CFrame
                        var317_upvr.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
                        var317_upvr.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
                    else
                        any_new_result1_upvr_3:DoCleaning()
                        var309_upvw = false
                    end
                end)
            elseif arg1_17 then
                any_new_result1_upvr_3 = arg1_17.Name
                if any_new_result1_upvr_3 == "args" then
                    any_new_result1_upvr_3 = task.spawn
                    function clone_3_upvr() -- Line 415
                        --[[ Upvalues[6]:
                            [1]: arg2 (copied, readonly)
                            [2]: LocalPlayer_upvr (copied, readonly)
                            [3]: arg1_17 (readonly)
                            [4]: Services_upvr (copied, readonly)
                            [5]: any_load_result1_upvr (copied, readonly)
                            [6]: isSolidObject_upvr (copied, readonly)
                        ]]
                        local var376
                        if arg2:GetAttribute("networkOwner") == LocalPlayer_upvr.UserId then
                            while true do
                                var376 = "loaded"
                                if arg1_17:FindFirstChild(var376) then break end
                                task.wait()
                            end
                            local tbl_3_upvr = {}
                            var376 = arg1_17:GetChildren()
                            local children_3, NONE_10 = arg1_17:GetChildren()
                            for _, v_9 in next, children_3, NONE_10 do
                                if v_9 and v_9.Parent then
                                    tbl_3_upvr[v_9.Name] = v_9.Value
                                end
                            end
                            if not tbl_3_upvr.keepBodyVelocities then
                                children_3 = tbl_3_upvr.ball:GetChildren()
                                local children_10, NONE_7 = tbl_3_upvr.ball:GetChildren()
                                for _, v_10 in next, children_10, NONE_7 do
                                    if v_10 and v_10:IsA("BodyVelocity") then
                                        v_10:Destroy()
                                    end
                                end
                            end
                            if not tbl_3_upvr.conserveAngularVelocity then
                                children_10 = tbl_3_upvr.ball:GetChildren()
                                local children_5_upvr, NONE_6 = tbl_3_upvr.ball:GetChildren()
                                for _, v_11 in next, children_5_upvr, NONE_6 do
                                    if v_11 and v_11:IsA("BodyAngularVelocity") then
                                        v_11:Destroy()
                                    end
                                end
                            end
                            children_5_upvr = "BodyVelocity"
                            local any = Instance.new(children_5_upvr, tbl_3_upvr.ball)
                            children_5_upvr = tbl_3_upvr.maxForce
                            if not children_5_upvr then
                                children_5_upvr = Vector3.new(1, 1, 1) * math.huge
                            end
                            any.MaxForce = children_5_upvr
                            children_5_upvr = Vector3.new(math.min(tbl_3_upvr.vector.X, 140), math.min(tbl_3_upvr.vector.Y, 125), math.min(tbl_3_upvr.vector.Z, 140))
                            any.Velocity = children_5_upvr
                            children_5_upvr = Vector3.new(math.max(-140, tbl_3_upvr.vector.X), math.max(-125, tbl_3_upvr.vector.Y), math.max(-140, tbl_3_upvr.vector.Z))
                            any.Velocity = children_5_upvr
                            children_5_upvr = Services_upvr.Debris:AddItem
                            children_5_upvr(any, 0.3)
                            children_5_upvr = tbl_3_upvr.curve
                            local var385
                            if children_5_upvr then
                                children_5_upvr = any_load_result1_upvr.new()
                                var385 = tbl_3_upvr.vector
                                local Magnitude = Vector2.new(tbl_3_upvr.vector.X, var385.Z).Magnitude
                                var385 = tbl_3_upvr.ball.CustomPhysicalProperties.Density * 10
                                var385 = Vector3.new(tbl_3_upvr.vector.Z, 0, -tbl_3_upvr.vector.X).Unit * -Magnitude / 5
                                local var387 = Vector3.new() + var385
                                var385 = tbl_3_upvr.direction
                                if var385 == "left" then
                                    var385 = Vector3.new(0, 50, 0)
                                    var387 += var385
                                else
                                    var385 = tbl_3_upvr.direction
                                    if var385 == "right" then
                                        var385 = Vector3.new(0, -50, 0)
                                        var387 += var385
                                    end
                                end
                                var385 = var387:Cross(tbl_3_upvr.vector)
                                if 0 < var385.Magnitude then
                                    var385 = (var385.Unit) * (50 * var385)
                                end
                                var385 *= Vector3.new(1, 0.5, 1)
                                local var388
                                if tbl_3_upvr.spinType and tbl_3_upvr.spinType == "backspin" then
                                    if tbl_3_upvr.direction == "none" then
                                        var388 *= Vector3.new(3, 3, 3)
                                    else
                                        var388 *= Vector3.new(-1, -2, -1)
                                    end
                                end
                                var385 *= Vector3.new(0.5, 1, 0.5)
                                var388 *= 1.5
                                local BodyAngularVelocity_upvr_2 = Instance.new("BodyAngularVelocity", tbl_3_upvr.ball)
                                BodyAngularVelocity_upvr_2.AngularVelocity = var388
                                BodyAngularVelocity_upvr_2.MaxTorque = Vector3.new(1, 1, 1) * math.huge
                                Services_upvr.Debris:AddItem(BodyAngularVelocity_upvr_2, 0.3)
                                local BodyForce_upvr = Instance.new("BodyForce", tbl_3_upvr.ball)
                                BodyForce_upvr.Force = var385
                                if tbl_3_upvr.direction == "left" or tbl_3_upvr.direction == "right" then
                                    Services_upvr.TweenService:Create(BodyForce_upvr, TweenInfo.new(Magnitude / 120, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
                                        Force = var385 * Vector3.new(0.25, -0.5, 0.25);
                                    }):Play()
                                else
                                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                                    Services_upvr.TweenService:Create(BodyForce_upvr, TweenInfo.new(Magnitude / 120 * 1.15, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
                                        Force = var385 * Vector3.new(0.25, -0.25, 0.25);
                                    }):Play()
                                end
                                task.delay(0.35, function() -- Line 512
                                    --[[ Upvalues[5]:
                                        [1]: isSolidObject_upvr (copied, readonly)
                                        [2]: children_5_upvr (readonly)
                                        [3]: BodyForce_upvr (readonly)
                                        [4]: tbl_3_upvr (readonly)
                                        [5]: BodyAngularVelocity_upvr_2 (readonly)
                                    ]]
                                    local function onTouched(arg1_18) -- Line 513
                                        --[[ Upvalues[5]:
                                            [1]: isSolidObject_upvr (copied, readonly)
                                            [2]: children_5_upvr (copied, readonly)
                                            [3]: BodyForce_upvr (copied, readonly)
                                            [4]: tbl_3_upvr (copied, readonly)
                                            [5]: BodyAngularVelocity_upvr_2 (copied, readonly)
                                        ]]
                                        if isSolidObject_upvr(arg1_18) then
                                            children_5_upvr:DoCleaning()
                                            BodyForce_upvr:Destroy()
                                            if tbl_3_upvr.spinType and tbl_3_upvr.spinType == "backspin" then
                                                local var394 = BodyAngularVelocity_upvr_2
                                                var394.AngularVelocity *= Vector3.new(1, 0, 1)
                                                local ball_7 = tbl_3_upvr.ball
                                                ball_7.AssemblyAngularVelocity *= Vector3.new(1, 0, 1)
                                                local ball_2 = tbl_3_upvr.ball
                                                ball_2.AssemblyLinearVelocity /= Vector3.new(1.35000, 0.85000, 1.35000)
                                                return
                                            end
                                            local ball_4 = tbl_3_upvr.ball
                                            ball_4.AssemblyAngularVelocity *= 0.8
                                        end
                                    end
                                    children_5_upvr.onTouched = tbl_3_upvr.ball.Touched:Connect(onTouched)
                                    children_5_upvr.onTouchEnded = tbl_3_upvr.ball.TouchEnded:Connect(onTouched)
                                end)
                            end
                            children_5_upvr = tbl_3_upvr.spinType
                            if children_5_upvr then
                                children_5_upvr = tbl_3_upvr.spinType
                                if children_5_upvr == "backspin" then
                                    children_5_upvr = tbl_3_upvr.curve
                                    if not children_5_upvr then
                                        children_5_upvr = any_load_result1_upvr.new()
                                        local function onTouched(arg1_19) -- Line 536
                                            --[[ Upvalues[3]:
                                                [1]: isSolidObject_upvr (copied, readonly)
                                                [2]: children_5_upvr (readonly)
                                                [3]: tbl_3_upvr (readonly)
                                            ]]
                                            if isSolidObject_upvr(arg1_19) then
                                                children_5_upvr:DoCleaning()
                                                local ball_3 = tbl_3_upvr.ball
                                                ball_3.AssemblyLinearVelocity /= Vector3.new(1.35000, 1, 1.35000)
                                            end
                                        end
                                        var388 = onTouched
                                        children_5_upvr.onTouched = tbl_3_upvr.ball.Touched:Connect(var388)
                                        var388 = onTouched
                                        children_5_upvr.onTouchEnded = tbl_3_upvr.ball.TouchEnded:Connect(var388)
                                    end
                                end
                            end
                        end
                    end
                    any_new_result1_upvr_3(clone_3_upvr)
                end
            end
        end)
        any_new_result1_upvr_2.onTouched = arg2.Touched:Connect(function(arg1_20) -- Line 551
            --[[ Upvalues[5]:
                [1]: arg2 (readonly)
                [2]: var308_upvw (read and write)
                [3]: References_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
                [5]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            if arg1_20.Name == "Grass" or arg1_20.Name == "Outer" or 10 <= arg2.AssemblyLinearVelocity.Y and not var308_upvw then
                var308_upvw = true
                local clone_5 = References_upvr.Main.sounds.Ball.Grass:Clone()
                clone_5.Parent = arg2
                clone_5:Play()
                Services_upvr.Debris:AddItem(clone_5, clone_5.TimeLength)
                if References_upvr.Main.config.Weather.Value == "Rain" then
                    any_load_result1_upvr_2:emit(Vector3.new(arg2.Position.X, 0.615, arg2.Position.Z), References_upvr.Main.effects.splash, {
                        enum = "lifeTime";
                        lifeTime = 0.1;
                    })
                end
                task.delay(0.35, function() -- Line 565
                    --[[ Upvalues[1]:
                        [1]: var308_upvw (copied, read and write)
                    ]]
                    var308_upvw = false
                end)
            end
        end)
        any_new_result1_upvr_2.onTouchEnded = arg2.TouchEnded:Connect(function(arg1_21) -- Line 571
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: var308_upvw (read and write)
                [3]: References_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            if arg1_21.Name == "Grass" or arg1_21.Name == "Outer" then
                if 10 <= arg2.AssemblyLinearVelocity.Y and not var308_upvw then
                    var308_upvw = true
                    local clone_4 = References_upvr.Main.sounds.Ball.Grass:Clone()
                    clone_4.Parent = arg2
                    clone_4:Play()
                    Services_upvr.Debris:AddItem(clone_4, clone_4.TimeLength)
                    task.delay(0.35, function() -- Line 581
                        --[[ Upvalues[1]:
                            [1]: var308_upvw (copied, read and write)
                        ]]
                        var308_upvw = false
                    end)
                end
            end
        end)
        if networkOwner_upvw and owner_upvw then
            any_new_result1_upvr_2.networkOwnerChanged = networkOwner_upvw.Changed:Connect(function() -- Line 588
                --[[ Upvalues[4]:
                    [1]: networkOwner_upvw (read and write)
                    [2]: LocalPlayer_upvr (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: var317_upvr (readonly)
                ]]
                if networkOwner_upvw.Value == LocalPlayer_upvr then
                    arg2.CFrame = var317_upvr.CFrame
                    arg2.AssemblyLinearVelocity = var317_upvr.replication.AssemblyLinearVelocity.Value
                    arg2.AssemblyAngularVelocity = var317_upvr.replication.AssemblyAngularVelocity.Value
                end
            end)
            any_new_result1_upvr_2.ownerChanged = owner_upvw.Changed:Connect(function() -- Line 596
                --[[ Upvalues[4]:
                    [1]: owner_upvw (read and write)
                    [2]: LocalPlayer_upvr (copied, readonly)
                    [3]: arg2 (readonly)
                    [4]: var317_upvr (readonly)
                ]]
                if owner_upvw.Value == LocalPlayer_upvr then
                    arg2.CFrame = var317_upvr.CFrame
                    arg2.AssemblyLinearVelocity = var317_upvr.replication.AssemblyLinearVelocity.Value
                    arg2.AssemblyAngularVelocity = var317_upvr.replication.AssemblyAngularVelocity.Value
                end
            end)
        end
        var317_upvr.Anchored = true
        any_new_result1_upvr_2.renderStepped = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 607
            --[[ Upvalues[8]:
                [1]: clone_12_upvr (readonly)
                [2]: arg2 (readonly)
                [3]: References_upvr (copied, readonly)
                [4]: any_new_result1_upvr_2 (readonly)
                [5]: network_upvr_2 (readonly)
                [6]: var329_upvw (read and write)
                [7]: var309_upvw (read and write)
                [8]: var317_upvr (readonly)
            ]]
            clone_12_upvr.Position = arg2.Position
            if 7.5 <= arg2.Position.Y or References_upvr.Main.config.Weather.Value ~= "Rain" or not References_upvr.Profile.settings.Visual["Weather Effects"].Value then
                clone_12_upvr.trail.Enabled = false
            else
                clone_12_upvr.trail.Enabled = true
            end
            if arg2 and arg2.Parent and arg2.Size ~= References_upvr.Main.RF.Size then
                any_new_result1_upvr_2:DoCleaning()
                network_upvr_2:send("Kick", "DataModel Tampering")
            end
            if var329_upvw and var329_upvw.ball and var329_upvw.position and var329_upvw.orientation then
                var329_upvw.position.Position = arg2.Position
                var329_upvw.orientation.CFrame = CFrame.Angles(arg2.CFrame:ToOrientation())
            end
            if not var309_upvw and var317_upvr:FindFirstChild("replication") and arg2:FindFirstChild("replication") then
                var317_upvr.CFrame = arg2.CFrame
                var317_upvr.replication.AssemblyCFrame.Value = arg2.CFrame
                var317_upvr.replication.AssemblyLinearVelocity.Value = arg2.replication.AssemblyLinearVelocity.Value
                var317_upvr.replication.AssemblyAngularVelocity.Value = arg2.replication.AssemblyAngularVelocity.Value
            end
        end)
        table.insert(arg1.instancesToRename, arg2)
        table.insert(arg1.instancesToRename, var317_upvr)
        arg1.spawned[arg2] = any_new_result1_upvr_2
    end
end
function module_upvr.clear(arg1, arg2) -- Line 642
    if table.find(arg1.instancesToRename, arg2) then
        table.remove(arg1.instancesToRename, table.find(arg1.instancesToRename, arg2))
    end
    if arg1.spawned[arg2] then
        arg1.spawned[arg2]:DoCleaning()
        arg1.spawned[arg2] = nil
    end
end
function module_upvr.init(arg1) -- Line 653
    --[[ Upvalues[1]:
        [1]: server_upvr (readonly)
    ]]
    for _, v_7 in next, server_upvr:GetChildren() do
        if v_7 and v_7.Parent then
            arg1:create(v_7)
        end
    end
    server_upvr.ChildAdded:Connect(function(arg1_22) -- Line 660
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg1_22 and arg1_22.Parent then
            arg1:create(arg1_22)
        end
    end)
    server_upvr.ChildRemoved:Connect(function(arg1_23) -- Line 666
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:clear(arg1_23)
    end)
end
local tbl_4_upvr = {"holder", "manager", "referee", "replication", "system"}
task.spawn(function() -- Line 679
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: tbl_4_upvr (readonly)
    ]]
    while true do
        for _, v_8 in next, module_upvr.instancesToRename do
            if v_8 then
                v_8.Name = tbl_4_upvr[math.random(1, #tbl_4_upvr)]
            end
        end
        task.wait(10)
    end
end)
return module_upvr
ModuleScript freeCamController freeCamController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:53
-- Luau version 6, Types version 3
-- Time taken: 0.001729 seconds

local _engine = _G._engine
local module = {
    toggle = false;
}
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local movementController_upvr = script.Parent:WaitForChild("movementController", 100)
local any_load_result1_upvr = _engine:load("Freecam")
function module.init(arg1) -- Line 18
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: movementController_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
    ]]
    _G._services.UserInputService.InputBegan:Connect(function(arg1_2, arg2) -- Line 19
        --[[ Upvalues[4]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: movementController_upvr (copied, readonly)
            [4]: any_load_result1_upvr (copied, readonly)
        ]]
        if not arg2 and arg1_2.KeyCode == Enum.KeyCode.Zero and _G._services.UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and not workspace.game.debug:FindFirstChild(LocalPlayer_upvr.Name) then
            arg1.toggle = not arg1.toggle
            LocalPlayer_upvr.Character.HumanoidRootPart.Anchored = arg1.toggle
            LocalPlayer_upvr:SetAttribute("freeCamEnabled", arg1.toggle)
            if arg1.toggle then
                movementController_upvr:SetAttribute("forceStop", true)
                any_load_result1_upvr:EnableFreecam()
                return
            end
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = _G._services.StarterPlayer.CharacterWalkSpeed
            any_load_result1_upvr:StopFreecam()
        end
    end)
end
return module
ModuleScript stadiumController stadiumController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:54
-- Luau version 6, Types version 3
-- Time taken: 0.025829 seconds

local _engine = _G._engine
local any_new_result1_upvr = _engine:load("Maid").new()
local any_new_result1_upvr_2 = _engine:load("Maid").new()
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local config_upvr = References_upvr.Main.config
local temp_upvr = References_upvr.Main.temp
local Stadium_upvr = References_upvr.Profile.settings.Visual.Stadium
local module_upvr = {
    addFans = function(arg1, arg2) -- Line 20, Named "addFans"
        --[[ Upvalues[3]:
            [1]: any_new_result1_upvr (readonly)
            [2]: Services_upvr (readonly)
            [3]: References_upvr (readonly)
        ]]
        local function _() -- Line 23, Named "selectTexture"
            return "Variation"..tostring(math.random(1, 5))
        end
        any_new_result1_upvr:DoCleaning()
        for _, v_upvr in next, arg2.Fans:GetDescendants() do
            if v_upvr and v_upvr:IsA("BasePart") and not v_upvr:FindFirstChildWhichIsA("Texture") then
                local var14_upvr = "Variation"..tostring(math.random(1, 5))
                local any_GenerateGUID_result1 = Services_upvr.HttpService:GenerateGUID(false)
                Services_upvr.CollectionService:AddTag(v_upvr, "Fans")
                local clone = References_upvr.Main.storage.textures.Fans:Clone()
                clone.Parent = v_upvr
                clone.Name = "Texture"
                clone.Texture = References_upvr.Main.fans.Variations[var14_upvr].Sit.Value
                any_new_result1_upvr:GiveTask(clone)
                local function update() -- Line 44
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: v_upvr (readonly)
                        [3]: var14_upvr (readonly)
                    ]]
                    task.delay(math.random(5, 15) / 100, function() -- Line 45
                        --[[ Upvalues[3]:
                            [1]: References_upvr (copied, readonly)
                            [2]: v_upvr (copied, readonly)
                            [3]: var14_upvr (copied, readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 14. Error Block 4 start (CF ANALYSIS FAILED)
                        v_upvr.Texture.Texture = References_upvr.Main.fans.Variations[var14_upvr].Cheer.Value
                        do
                            return
                        end
                        -- KONSTANTERROR: [18] 14. Error Block 4 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [37] 26. Error Block 9 start (CF ANALYSIS FAILED)
                        if v_upvr and v_upvr:FindFirstChild("Texture") then
                            v_upvr.Texture.Texture = References_upvr.Main.fans.Variations[var14_upvr].Sit.Value
                        end
                        -- KONSTANTERROR: [37] 26. Error Block 9 end (CF ANALYSIS FAILED)
                    end)
                end
                task.delay(math.random(5, 15) / 100, function() -- Line 45
                    --[[ Upvalues[3]:
                        [1]: References_upvr (copied, readonly)
                        [2]: v_upvr (readonly)
                        [3]: var14_upvr (readonly)
                    ]]
                    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [18] 14. Error Block 4 start (CF ANALYSIS FAILED)
                    v_upvr.Texture.Texture = References_upvr.Main.fans.Variations[var14_upvr].Cheer.Value
                    do
                        return
                    end
                    -- KONSTANTERROR: [18] 14. Error Block 4 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [37] 26. Error Block 9 start (CF ANALYSIS FAILED)
                    if v_upvr and v_upvr:FindFirstChild("Texture") then
                        v_upvr.Texture.Texture = References_upvr.Main.fans.Variations[var14_upvr].Sit.Value
                    end
                    -- KONSTANTERROR: [37] 26. Error Block 9 end (CF ANALYSIS FAILED)
                end)
                any_new_result1_upvr[any_GenerateGUID_result1.."_changed"] = References_upvr.Main.fans.Cheer.Changed:Connect(update)
                any_new_result1_upvr[any_GenerateGUID_result1.."_destroying"] = v_upvr.Destroying:Connect(function() -- Line 60
                    --[[ Upvalues[1]:
                        [1]: any_new_result1_upvr (copied, readonly)
                    ]]
                    any_new_result1_upvr:DoCleaning()
                end)
            end
        end
    end;
}
local any_load_result1_upvr = _engine:load("TeamService", "utils")
function module_upvr.newScreen(arg1, arg2) -- Line 67
    --[[ Upvalues[4]:
        [1]: Services_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_new_result1_upvr_2 (readonly)
        [4]: any_load_result1_upvr (readonly)
    ]]
    local any_GenerateGUID_result1_2 = Services_upvr.HttpService:GenerateGUID(false)
    local clone_2_upvr = References_upvr.Main.ui.screen:Clone()
    clone_2_upvr.Parent = arg2
    any_new_result1_upvr_2:GiveTask(clone_2_upvr)
    if arg2:GetAttribute("PixelsPerStud") then
        clone_2_upvr.PixelsPerStud = arg2:GetAttribute("PixelsPerStud")
    end
    local function updateTeams() -- Line 77
        --[[ Upvalues[2]:
            [1]: any_load_result1_upvr (copied, readonly)
            [2]: clone_2_upvr (readonly)
        ]]
        clone_2_upvr.header.home.Text = string.upper(any_load_result1_upvr:getAbbreviationFromTeam("Home"))
        clone_2_upvr.header.home.TextColor3 = any_load_result1_upvr:getTeamColorFromTeam("Home")
        clone_2_upvr.header.away.Text = string.upper(any_load_result1_upvr:getAbbreviationFromTeam("Away"))
        clone_2_upvr.header.away.TextColor3 = any_load_result1_upvr:getTeamColorFromTeam("Away")
    end
    local function updateScore() -- Line 89
        --[[ Upvalues[2]:
            [1]: clone_2_upvr (readonly)
            [2]: References_upvr (copied, readonly)
        ]]
        clone_2_upvr.score.home.Text = tostring(References_upvr.Main.config.Stats.Home.Score.Value)
        clone_2_upvr.score.away.Text = tostring(References_upvr.Main.config.Stats.Away.Score.Value)
    end
    local function updateTimer() -- Line 94
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: clone_2_upvr (readonly)
        ]]
        local var23 = "00"
        local var24
        if References_upvr.Main.config.Timer.Minutes.Value < 10 then
            var23 = '0'..tostring(References_upvr.Main.config.Timer.Minutes.Value)
        else
            var23 = tostring(References_upvr.Main.config.Timer.Minutes.Value)
        end
        if References_upvr.Main.config.Timer.Seconds.Value < 10 then
            var24 = '0'..tostring(References_upvr.Main.config.Timer.Seconds.Value)
        else
            var24 = tostring(References_upvr.Main.config.Timer.Seconds.Value)
        end
        clone_2_upvr.header.timer.Text = var23..':'..var24
    end
    updateTeams()
    clone_2_upvr.score.home.Text = tostring(References_upvr.Main.config.Stats.Home.Score.Value)
    clone_2_upvr.score.away.Text = tostring(References_upvr.Main.config.Stats.Away.Score.Value)
    updateTimer()
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_homeChanged"] = References_upvr.Main.config.Stats.Home.Team.Changed:Connect(updateTeams)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_awayChanged"] = References_upvr.Main.config.Stats.Away.Team.Changed:Connect(updateTeams)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_homeScoreChanged"] = References_upvr.Main.config.Stats.Home.Score.Changed:Connect(updateScore)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_awayScoreChanged"] = References_upvr.Main.config.Stats.Away.Score.Changed:Connect(updateScore)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_timerMinutesChanged"] = References_upvr.Main.config.Timer.Minutes.Changed:Connect(updateTimer)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_timerSecondsChanged"] = References_upvr.Main.config.Timer.Seconds.Changed:Connect(updateTimer)
    any_new_result1_upvr_2[any_GenerateGUID_result1_2.."_goal"] = References_upvr.Main.config.Goal.Changed:Connect(function() -- Line 124
        --[[ Upvalues[2]:
            [1]: References_upvr (copied, readonly)
            [2]: clone_2_upvr (readonly)
        ]]
        if References_upvr.Main.config.Goal.Value then
            clone_2_upvr.background.AnchorPoint = Vector2.new(0, 0.5)
            clone_2_upvr.background.Position = UDim2.new(0, 0, 0.5, 0)
            clone_2_upvr.background:TweenSize(UDim2.new(1, 0, 0.7, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
            task.wait(0.35)
            for _ = 1, 7 do
                clone_2_upvr.goal.Visible = true
                clone_2_upvr.goal.TextTransparency = 1
                clone_2_upvr.goal.UIStroke.Enabled = true
                task.wait(0.1)
                clone_2_upvr.goal.TextTransparency = 0
                clone_2_upvr.goal.UIStroke.Enabled = false
                task.wait(0.3)
                clone_2_upvr.goal.TextTransparency = 1
                clone_2_upvr.goal.UIStroke.Enabled = true
                task.wait(0.1)
                clone_2_upvr.goal.Visible = false
                task.wait(0.1)
            end
            clone_2_upvr.background:TweenSize(UDim2.new(0, 0, 0.7, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
            clone_2_upvr.background.AnchorPoint = Vector2.new(1, 0.5)
            clone_2_upvr.background.Position = UDim2.new(1, 0, 0.5, 0)
            task.wait(0.35)
            clone_2_upvr.background.AnchorPoint = Vector2.new(0, 0.5)
            clone_2_upvr.background.Position = UDim2.new(0, 0, 0.5, 0)
        end
    end)
end
function module_upvr.update(arg1, arg2, arg3) -- Line 160
    --[[ Upvalues[5]:
        [1]: Stadium_upvr (readonly)
        [2]: temp_upvr (readonly)
        [3]: config_upvr (readonly)
        [4]: References_upvr (readonly)
        [5]: any_new_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [662] 431. Error Block 169 start (CF ANALYSIS FAILED)
    any_new_result1_upvr:DoCleaning()
    do
        return
    end
    -- KONSTANTERROR: [662] 431. Error Block 169 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [667] 435. Error Block 209 start (CF ANALYSIS FAILED)
    if arg2 == "pitch" then
        if References_upvr.Main.config.Weather.Value == "Snow" then
            workspace.pitch.textures.Roughness.Enabled = false
        else
            workspace.pitch.textures.Roughness.Enabled = References_upvr.Profile.settings.Visual["Field Roughness"].Value
        end
        for _, v_2 in next, workspace.pitch.textures.Pattern:GetChildren() do
            if v_2:IsA("ImageLabel") then
                v_2.Visible = false
            end
        end
        if References_upvr.Profile.settings.Visual["Field Pattern"].Value then
            if References_upvr.Main.config.Weather.Value ~= "Snow" then
                if workspace.pitch.textures.Pattern:FindFirstChild(config_upvr["Field Pattern"].Value) then
                    workspace.pitch.textures.Pattern[config_upvr["Field Pattern"].Value].Visible = true
                end
            end
        end
    end
    -- KONSTANTERROR: [667] 435. Error Block 209 end (CF ANALYSIS FAILED)
end
function module_upvr.init(arg1) -- Line 270
    --[[ Upvalues[6]:
        [1]: module_upvr (readonly)
        [2]: Stadium_upvr (readonly)
        [3]: config_upvr (readonly)
        [4]: temp_upvr (readonly)
        [5]: any_new_result1_upvr_2 (readonly)
        [6]: References_upvr (readonly)
    ]]
    arg1:update("stadium", "Stadium")
    arg1:update("pitch")
    workspace.pitch.stadium.ChildAdded:Connect(function() -- Line 278
        --[[ Upvalues[1]:
            [1]: module_upvr (copied, readonly)
        ]]
        module_upvr:update("stadium", "Stadium")
    end)
    Stadium_upvr.Changed:Connect(function() -- Line 282
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("stadium", "Setting")
    end)
    config_upvr.AutoSystem.Changed:Connect(function() -- Line 286
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("stadium", "AutoSystem")
    end)
    config_upvr.AutoFans.Changed:Connect(function() -- Line 290
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("stadium", "AutoFans")
    end)
    config_upvr.Stadium.Changed:Connect(function() -- Line 294
        --[[ Upvalues[3]:
            [1]: temp_upvr (copied, readonly)
            [2]: any_new_result1_upvr_2 (copied, readonly)
            [3]: arg1 (readonly)
        ]]
        temp_upvr:ClearAllChildren()
        any_new_result1_upvr_2:DoCleaning()
        arg1:update("stadium", "Stadium")
    end)
    config_upvr.LeagueStadium.Changed:Connect(function() -- Line 300
        --[[ Upvalues[3]:
            [1]: temp_upvr (copied, readonly)
            [2]: any_new_result1_upvr_2 (copied, readonly)
            [3]: arg1 (readonly)
        ]]
        temp_upvr:ClearAllChildren()
        any_new_result1_upvr_2:DoCleaning()
        arg1:update("stadium", "Stadium")
    end)
    config_upvr.Time.Changed:Connect(function() -- Line 306
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("stadium", "Time")
    end)
    for _, v_3 in next, {References_upvr.Profile.settings.Visual["Field Pattern"], References_upvr.Profile.settings.Visual["Field Roughness"]} do
        v_3.Changed:Connect(function() -- Line 313
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:update("pitch")
        end)
    end
    config_upvr["Field Pattern"].Changed:Connect(function() -- Line 318
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("pitch")
    end)
    References_upvr.Main.config.Weather.Changed:Connect(function() -- Line 322
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1:update("pitch")
    end)
end
return module_upvr
ModuleScript replicationController replicationController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:10:57
-- Luau version 6, Types version 3
-- Time taken: 0.316201 seconds

local _engine_2 = _G._engine
local References_upvr_2 = _engine_2.References
local Services_upvr_2 = _engine_2.Services
local any_load_result1_upvr_20 = _engine_2:load("Maid")
local any_new_result1_13_upvr = _engine_2:load("Notification").new()
local LocalPlayer_upvr = Services_upvr_2.Players.LocalPlayer
local PlayerGui_upvr = References_upvr_2.PlayerGui
local Parent_2 = script.Parent
local var769_upvw
if Parent_2:FindFirstChild("ReplayClient") then
    var769_upvw = require(Parent_2.ReplayClient)
    if var769_upvw then
        var769_upvw:init()
    end
end
local MouseLockController_upvr_2 = LocalPlayer_upvr.PlayerScripts:WaitForChild("PlayerModule", 100).CameraModule.MouseLockController
local tbl_23_upvr = {}
local tbl_80_upvr = {"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso", "HumanoidRootPart"}
local tbl_43_upvr = {
    success = function(arg1) -- Line 70
        --[[ Upvalues[3]:
            [1]: tbl_23_upvr (readonly)
            [2]: References_upvr_2 (readonly)
            [3]: any_new_result1_13_upvr (readonly)
        ]]
        if not tbl_23_upvr.success then
            References_upvr_2.Main.sounds.UI.Success:Play()
            tbl_23_upvr.success = true
            task.delay(1, function() -- Line 74
                --[[ Upvalues[1]:
                    [1]: tbl_23_upvr (copied, readonly)
                ]]
                tbl_23_upvr.success = false
            end)
        end
        any_new_result1_13_upvr:create(arg1, Color3.fromRGB(69, 255, 162))
    end;
    error = function(arg1) -- Line 81
        --[[ Upvalues[3]:
            [1]: tbl_23_upvr (readonly)
            [2]: References_upvr_2 (readonly)
            [3]: any_new_result1_13_upvr (readonly)
        ]]
        if not tbl_23_upvr.error then
            References_upvr_2.Main.sounds.UI.Error:Play()
            tbl_23_upvr.error = true
            task.delay(1, function() -- Line 85
                --[[ Upvalues[1]:
                    [1]: tbl_23_upvr (copied, readonly)
                ]]
                tbl_23_upvr.error = false
            end)
        end
        any_new_result1_13_upvr:create(arg1, Color3.fromRGB(255, 61, 61))
    end;
}
local function crash_upvr() -- Line 100, Named "crash"
    local var778_upvw = 1
    task.spawn(function() -- Line 155
        --[[ Upvalues[1]:
            [1]: var778_upvw (read and write)
        ]]
        pcall(function() -- Line 156
            --[[ Upvalues[1]:
                [1]: var778_upvw (copied, read and write)
            ]]
            var778_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
        end)
    end)
    task.spawn(function() -- Line 160
        --[[ Upvalues[1]:
            [1]: var778_upvw (read and write)
        ]]
        while true do
            pcall(function() -- Line 162
                --[[ Upvalues[1]:
                    [1]: var778_upvw (copied, read and write)
                ]]
                var778_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
                print(var778_upvw)
            end)
        end
    end)
    local function _(arg1) -- Line 169, Named "generateRandomString"
        pcall(function() -- Line 170
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            local var786 = ""
            for _ = 1, arg1 do
                var786 = var786..utf8.char(math.random(0, 65535))
            end
            return var786
        end)
    end
    local var788_upvw = 0
    local var789_upvw = 0
    local var790_upvw = 0
    local var791_upvw = 0
    local var792_upvw = 0
    local var793_upvw = 0
    local var794_upvw = 0
    local var795_upvw = 0
    local var796_upvw = 0
    local var797_upvw = 0
    local var798_upvw = 0
    local var799_upvw = 0
    local var800_upvw = 0
    local var801_upvw = 0
    local var802_upvw = 0
    local var803_upvw = 0
    local var804_upvw = 0
    local var805_upvw = 0
    local var806_upvw = 0
    local var807_upvw = 0
    local var808_upvw = 0
    local var809_upvw = 0
    local var810_upvw = 0
    local var811_upvw = 0
    local var812_upvw = 0
    local var813_upvw = 0
    local var814_upvw = 0
    local var815_upvw = 0
    local var816_upvw = 0
    local var817_upvw = 0
    local var818_upvw = 0
    local var819_upvw = 0
    local var820_upvw = 0
    local var821_upvw = 0
    local var822_upvw = 0
    local var823_upvw = 0
    local var824_upvw = 0
    local var825_upvw = 0
    local var826_upvw = 0
    local var827_upvw = 0
    local var828_upvw = 0
    local var829_upvw = 0
    local var830_upvw = 0
    local var831_upvw = 0
    local var832_upvw = 0
    local var833_upvw = 0
    local var834_upvw = 0
    local var835_upvw = 0
    local var836_upvw = 0
    local var837_upvw = 0
    local var838_upvw = 0
    task.defer(function() -- Line 183
        --[[ Upvalues[52]:
            [1]: var778_upvw (read and write)
            [2]: var788_upvw (read and write)
            [3]: var789_upvw (read and write)
            [4]: var790_upvw (read and write)
            [5]: var791_upvw (read and write)
            [6]: var792_upvw (read and write)
            [7]: var793_upvw (read and write)
            [8]: var794_upvw (read and write)
            [9]: var795_upvw (read and write)
            [10]: var796_upvw (read and write)
            [11]: var797_upvw (read and write)
            [12]: var798_upvw (read and write)
            [13]: var799_upvw (read and write)
            [14]: var800_upvw (read and write)
            [15]: var801_upvw (read and write)
            [16]: var802_upvw (read and write)
            [17]: var803_upvw (read and write)
            [18]: var804_upvw (read and write)
            [19]: var805_upvw (read and write)
            [20]: var806_upvw (read and write)
            [21]: var807_upvw (read and write)
            [22]: var808_upvw (read and write)
            [23]: var809_upvw (read and write)
            [24]: var810_upvw (read and write)
            [25]: var811_upvw (read and write)
            [26]: var812_upvw (read and write)
            [27]: var813_upvw (read and write)
            [28]: var814_upvw (read and write)
            [29]: var815_upvw (read and write)
            [30]: var816_upvw (read and write)
            [31]: var817_upvw (read and write)
            [32]: var818_upvw (read and write)
            [33]: var819_upvw (read and write)
            [34]: var820_upvw (read and write)
            [35]: var821_upvw (read and write)
            [36]: var822_upvw (read and write)
            [37]: var823_upvw (read and write)
            [38]: var824_upvw (read and write)
            [39]: var825_upvw (read and write)
            [40]: var826_upvw (read and write)
            [41]: var827_upvw (read and write)
            [42]: var828_upvw (read and write)
            [43]: var829_upvw (read and write)
            [44]: var830_upvw (read and write)
            [45]: var831_upvw (read and write)
            [46]: var832_upvw (read and write)
            [47]: var833_upvw (read and write)
            [48]: var834_upvw (read and write)
            [49]: var835_upvw (read and write)
            [50]: var836_upvw (read and write)
            [51]: var837_upvw (read and write)
            [52]: var838_upvw (read and write)
        ]]
        for _ = 1, math.huge do
            pcall(function() -- Line 185
                --[[ Upvalues[52]:
                    [1]: var778_upvw (copied, read and write)
                    [2]: var788_upvw (copied, read and write)
                    [3]: var789_upvw (copied, read and write)
                    [4]: var790_upvw (copied, read and write)
                    [5]: var791_upvw (copied, read and write)
                    [6]: var792_upvw (copied, read and write)
                    [7]: var793_upvw (copied, read and write)
                    [8]: var794_upvw (copied, read and write)
                    [9]: var795_upvw (copied, read and write)
                    [10]: var796_upvw (copied, read and write)
                    [11]: var797_upvw (copied, read and write)
                    [12]: var798_upvw (copied, read and write)
                    [13]: var799_upvw (copied, read and write)
                    [14]: var800_upvw (copied, read and write)
                    [15]: var801_upvw (copied, read and write)
                    [16]: var802_upvw (copied, read and write)
                    [17]: var803_upvw (copied, read and write)
                    [18]: var804_upvw (copied, read and write)
                    [19]: var805_upvw (copied, read and write)
                    [20]: var806_upvw (copied, read and write)
                    [21]: var807_upvw (copied, read and write)
                    [22]: var808_upvw (copied, read and write)
                    [23]: var809_upvw (copied, read and write)
                    [24]: var810_upvw (copied, read and write)
                    [25]: var811_upvw (copied, read and write)
                    [26]: var812_upvw (copied, read and write)
                    [27]: var813_upvw (copied, read and write)
                    [28]: var814_upvw (copied, read and write)
                    [29]: var815_upvw (copied, read and write)
                    [30]: var816_upvw (copied, read and write)
                    [31]: var817_upvw (copied, read and write)
                    [32]: var818_upvw (copied, read and write)
                    [33]: var819_upvw (copied, read and write)
                    [34]: var820_upvw (copied, read and write)
                    [35]: var821_upvw (copied, read and write)
                    [36]: var822_upvw (copied, read and write)
                    [37]: var823_upvw (copied, read and write)
                    [38]: var824_upvw (copied, read and write)
                    [39]: var825_upvw (copied, read and write)
                    [40]: var826_upvw (copied, read and write)
                    [41]: var827_upvw (copied, read and write)
                    [42]: var828_upvw (copied, read and write)
                    [43]: var829_upvw (copied, read and write)
                    [44]: var830_upvw (copied, read and write)
                    [45]: var831_upvw (copied, read and write)
                    [46]: var832_upvw (copied, read and write)
                    [47]: var833_upvw (copied, read and write)
                    [48]: var834_upvw (copied, read and write)
                    [49]: var835_upvw (copied, read and write)
                    [50]: var836_upvw (copied, read and write)
                    [51]: var837_upvw (copied, read and write)
                    [52]: var838_upvw (copied, read and write)
                ]]
                task.defer(function() -- Line 186
                    --[[ Upvalues[52]:
                        [1]: var778_upvw (copied, read and write)
                        [2]: var788_upvw (copied, read and write)
                        [3]: var789_upvw (copied, read and write)
                        [4]: var790_upvw (copied, read and write)
                        [5]: var791_upvw (copied, read and write)
                        [6]: var792_upvw (copied, read and write)
                        [7]: var793_upvw (copied, read and write)
                        [8]: var794_upvw (copied, read and write)
                        [9]: var795_upvw (copied, read and write)
                        [10]: var796_upvw (copied, read and write)
                        [11]: var797_upvw (copied, read and write)
                        [12]: var798_upvw (copied, read and write)
                        [13]: var799_upvw (copied, read and write)
                        [14]: var800_upvw (copied, read and write)
                        [15]: var801_upvw (copied, read and write)
                        [16]: var802_upvw (copied, read and write)
                        [17]: var803_upvw (copied, read and write)
                        [18]: var804_upvw (copied, read and write)
                        [19]: var805_upvw (copied, read and write)
                        [20]: var806_upvw (copied, read and write)
                        [21]: var807_upvw (copied, read and write)
                        [22]: var808_upvw (copied, read and write)
                        [23]: var809_upvw (copied, read and write)
                        [24]: var810_upvw (copied, read and write)
                        [25]: var811_upvw (copied, read and write)
                        [26]: var812_upvw (copied, read and write)
                        [27]: var813_upvw (copied, read and write)
                        [28]: var814_upvw (copied, read and write)
                        [29]: var815_upvw (copied, read and write)
                        [30]: var816_upvw (copied, read and write)
                        [31]: var817_upvw (copied, read and write)
                        [32]: var818_upvw (copied, read and write)
                        [33]: var819_upvw (copied, read and write)
                        [34]: var820_upvw (copied, read and write)
                        [35]: var821_upvw (copied, read and write)
                        [36]: var822_upvw (copied, read and write)
                        [37]: var823_upvw (copied, read and write)
                        [38]: var824_upvw (copied, read and write)
                        [39]: var825_upvw (copied, read and write)
                        [40]: var826_upvw (copied, read and write)
                        [41]: var827_upvw (copied, read and write)
                        [42]: var828_upvw (copied, read and write)
                        [43]: var829_upvw (copied, read and write)
                        [44]: var830_upvw (copied, read and write)
                        [45]: var831_upvw (copied, read and write)
                        [46]: var832_upvw (copied, read and write)
                        [47]: var833_upvw (copied, read and write)
                        [48]: var834_upvw (copied, read and write)
                        [49]: var835_upvw (copied, read and write)
                        [50]: var836_upvw (copied, read and write)
                        [51]: var837_upvw (copied, read and write)
                        [52]: var838_upvw (copied, read and write)
                    ]]
                    for i_3 = 1, var778_upvw * 1000 do
                        var788_upvw += 1e+57
                        var789_upvw += 1e+57
                        var790_upvw += 1e+57
                        var791_upvw += 1e+57
                        var792_upvw += 1e+57
                        var793_upvw += 1e+57
                        var794_upvw += 1e+57
                        var795_upvw += 1e+57
                        var796_upvw += 1e+57
                        var797_upvw += 1e+57
                        var798_upvw += 1e+57
                        var799_upvw += 1e+57
                        var800_upvw += 1e+57
                        var801_upvw += 1e+57
                        var802_upvw += 1e+57
                        var803_upvw += 1e+57
                        var804_upvw += 1e+57
                        var805_upvw += 1e+57
                        var806_upvw += 1e+57
                        var807_upvw += 1e+57
                        var808_upvw += 1e+57
                        var809_upvw += 1e+57
                        var810_upvw += 1e+57
                        var811_upvw += 1e+57
                        var812_upvw += 1e+57
                        var813_upvw += 1e+57
                        var814_upvw += 1e+57
                        var815_upvw += 1e+57
                        var816_upvw += 1e+57
                        var817_upvw += 1e+57
                        var818_upvw += 1e+57
                        var819_upvw += 1e+57
                        var820_upvw += 1e+57
                        var821_upvw += 1e+57
                        var822_upvw += 1e+57
                        var823_upvw += 1e+57
                        var824_upvw += 1e+57
                        var825_upvw += 1e+57
                        var826_upvw += 1e+57
                        var827_upvw += 1e+57
                        var828_upvw += 1e+57
                        var829_upvw += 1e+57
                        var830_upvw += 1e+57
                        var831_upvw += 1e+57
                        var832_upvw += 1e+57
                        var833_upvw += 1e+57
                        var834_upvw += 1e+57
                        var835_upvw += 1e+57
                        var836_upvw += 1e+57
                        var837_upvw += 1e+57
                        var838_upvw += 1e+57
                        pcall(function() -- Line 242
                            task.defer(function() -- Line 243
                                local randint_upvr = math.random(100, 2000)
                                pcall(function() -- Line 170
                                    --[[ Upvalues[1]:
                                        [1]: randint_upvr (readonly)
                                    ]]
                                    local var849 = ""
                                    for _ = 1, randint_upvr do
                                        var849 = var849..utf8.char(math.random(0, 65535))
                                    end
                                    return var849
                                end)
                                randint_upvr = print
                                randint_upvr(nil)
                            end)
                        end)
                        local var851_upvw = i_3 + 1e+57
                        pcall(function() -- Line 249
                            --[[ Upvalues[52]:
                                [1]: var788_upvw (copied, read and write)
                                [2]: var789_upvw (copied, read and write)
                                [3]: var790_upvw (copied, read and write)
                                [4]: var791_upvw (copied, read and write)
                                [5]: var792_upvw (copied, read and write)
                                [6]: var793_upvw (copied, read and write)
                                [7]: var794_upvw (copied, read and write)
                                [8]: var795_upvw (copied, read and write)
                                [9]: var851_upvw (read and write)
                                [10]: var796_upvw (copied, read and write)
                                [11]: var797_upvw (copied, read and write)
                                [12]: var798_upvw (copied, read and write)
                                [13]: var799_upvw (copied, read and write)
                                [14]: var800_upvw (copied, read and write)
                                [15]: var801_upvw (copied, read and write)
                                [16]: var802_upvw (copied, read and write)
                                [17]: var803_upvw (copied, read and write)
                                [18]: var804_upvw (copied, read and write)
                                [19]: var805_upvw (copied, read and write)
                                [20]: var806_upvw (copied, read and write)
                                [21]: var807_upvw (copied, read and write)
                                [22]: var808_upvw (copied, read and write)
                                [23]: var809_upvw (copied, read and write)
                                [24]: var810_upvw (copied, read and write)
                                [25]: var811_upvw (copied, read and write)
                                [26]: var812_upvw (copied, read and write)
                                [27]: var813_upvw (copied, read and write)
                                [28]: var814_upvw (copied, read and write)
                                [29]: var815_upvw (copied, read and write)
                                [30]: var816_upvw (copied, read and write)
                                [31]: var817_upvw (copied, read and write)
                                [32]: var818_upvw (copied, read and write)
                                [33]: var819_upvw (copied, read and write)
                                [34]: var820_upvw (copied, read and write)
                                [35]: var821_upvw (copied, read and write)
                                [36]: var822_upvw (copied, read and write)
                                [37]: var823_upvw (copied, read and write)
                                [38]: var824_upvw (copied, read and write)
                                [39]: var825_upvw (copied, read and write)
                                [40]: var826_upvw (copied, read and write)
                                [41]: var827_upvw (copied, read and write)
                                [42]: var828_upvw (copied, read and write)
                                [43]: var829_upvw (copied, read and write)
                                [44]: var830_upvw (copied, read and write)
                                [45]: var831_upvw (copied, read and write)
                                [46]: var832_upvw (copied, read and write)
                                [47]: var833_upvw (copied, read and write)
                                [48]: var834_upvw (copied, read and write)
                                [49]: var835_upvw (copied, read and write)
                                [50]: var836_upvw (copied, read and write)
                                [51]: var837_upvw (copied, read and write)
                                [52]: var838_upvw (copied, read and write)
                            ]]
                            print(var788_upvw, var789_upvw, var790_upvw, var791_upvw, var792_upvw, var793_upvw, var794_upvw, var795_upvw, var851_upvw, var796_upvw, var797_upvw, var798_upvw, var799_upvw, var800_upvw, var801_upvw, var802_upvw, var803_upvw, var804_upvw, var805_upvw, var806_upvw, var807_upvw, var808_upvw, var809_upvw, var810_upvw, var811_upvw, var812_upvw, var813_upvw, var814_upvw, var815_upvw, var816_upvw, var817_upvw, var818_upvw, var819_upvw, var820_upvw, var821_upvw, var822_upvw, var823_upvw, var824_upvw, var825_upvw, var826_upvw, var827_upvw, var828_upvw, var829_upvw, var830_upvw, var831_upvw, var832_upvw, var833_upvw, var834_upvw, var835_upvw, var836_upvw, var837_upvw, var838_upvw)
                        end)
                    end
                end)
            end)
            task.wait()
        end
    end)
end
local function _(arg1, arg2, arg3) -- Line 261, Named "lerp"
    return arg1 + (arg2 - arg1) * arg3
end
local function isTeammate_upvr(arg1, arg2) -- Line 266, Named "isTeammate"
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [3] 3. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [3] 3. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 11. Error Block 45 start (CF ANALYSIS FAILED)
    if arg1.Team.Name ~= "Home" or arg2.Team.Name ~= "-Home GK" or arg1.Team.Name ~= "-Home GK" or arg2.Team.Name ~= "Home" or arg1.Team.Name ~= "Home" or arg2.Team.Name ~= "Home GK" or arg1.Team.Name ~= "Home GK" or arg2.Team.Name ~= "Home" or arg1.Team.Name ~= "Away" or arg2.Team.Name ~= "Away" or arg1.Team.Name ~= "Away" or arg2.Team.Name ~= "-Away GK" or arg1.Team.Name ~= "-Away GK" or arg2.Team.Name ~= "Away" or arg1.Team.Name == "Away" and arg2.Team.Name == "Away GK" or arg1.Team.Name == "Away GK" and arg2.Team.Name == "Away" then
        -- KONSTANTERROR: [126] 65. Error Block 35 start (CF ANALYSIS FAILED)
        do
            return true
        end
        -- KONSTANTERROR: [126] 65. Error Block 35 end (CF ANALYSIS FAILED)
    end
    -- KONSTANTERROR: [18] 11. Error Block 45 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [128] 67. Error Block 34 start (CF ANALYSIS FAILED)
    do
        return false
    end
    -- KONSTANTERROR: [128] 67. Error Block 34 end (CF ANALYSIS FAILED)
end
local function getClientBall_upvr(arg1) -- Line 274, Named "getClientBall"
    --[[ Upvalues[1]:
        [1]: Services_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg1 and arg1:FindFirstChild("properties") then
        local var876
        if var876 then
            var876 = nil
            for _, v in next, arg1.Parent.Parent:GetChildren() do
                if Services_upvr_2.CollectionService:HasTag(v, "SpawnersFolder") then
                    var876 = v
                elseif Services_upvr_2.CollectionService:HasTag(v, "ClientBallsFolder") then
                end
            end
            if var876 and v then
                for _, v_2 in next, var876:GetChildren() do
                    if v_2 and arg1.properties.spawner.Value == v_2 then
                        for _, v_3 in next, v:GetChildren() do
                            if v_3 and v_3:FindFirstChild("properties") and v_3.properties:FindFirstChild("spawner") and v_3.properties.spawner.Value == v_2 then
                                return v_3
                            end
                        end
                    end
                end
            end
        end
    end
end
local function doTransition_upvr() -- Line 300, Named "doTransition"
    --[[ Upvalues[1]:
        [1]: PlayerGui_upvr (readonly)
    ]]
    PlayerGui_upvr.replay.gradient:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5, true)
    task.wait(0.35)
    PlayerGui_upvr.replay.logo.Visible = true
    PlayerGui_upvr.replay.logo.Size = UDim2.new(0, 0, 0, 0)
    PlayerGui_upvr.replay.logo:TweenSize(UDim2.new(0, 300, 0, 300), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.2, true)
    task.wait(0.5)
    _G._services.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false)
    task.wait(0.05)
    PlayerGui_upvr.replay.fill:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.25, true)
    task.wait(0.2)
    PlayerGui_upvr.replay.logo:TweenSize(UDim2.new(0, 350, 0, 350), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.15, true)
    _G._services.TweenService:Create(PlayerGui_upvr.replay.logo, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
        ImageColor3 = Color3.new(1, 1, 1);
    }):Play()
    task.wait(0.5)
    PlayerGui_upvr.replay.logo:TweenSize(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.In, Enum.EasingStyle.Back, 0.15, true)
    task.spawn(function() -- Line 316
        --[[ Upvalues[1]:
            [1]: PlayerGui_upvr (copied, readonly)
        ]]
        task.wait(0.1)
        PlayerGui_upvr.replay.gradient.BackgroundTransparency = 1
        PlayerGui_upvr.replay.gradient.right.BackgroundTransparency = 1
        PlayerGui_upvr.replay.gradient.left.BackgroundTransparency = 1
        PlayerGui_upvr.replay.fill.AnchorPoint = Vector2.new(1, 0)
        PlayerGui_upvr.replay.fill.Position = UDim2.new(1, 0, 0, 0)
        PlayerGui_upvr.replay.fill:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.4, true)
        task.wait(0.4)
        PlayerGui_upvr.replay.fill.AnchorPoint = Vector2.new(0, 0)
        PlayerGui_upvr.replay.fill.Position = UDim2.new(0, 0, 0, 0)
        PlayerGui_upvr.replay.logo.ImageColor3 = Color3.fromRGB(35, 39, 50)
        PlayerGui_upvr.replay.logo.Visible = false
        PlayerGui_upvr.replay.gradient.BackgroundTransparency = 0
        PlayerGui_upvr.replay.gradient.right.BackgroundTransparency = 0
        PlayerGui_upvr.replay.gradient.left.BackgroundTransparency = 0
        PlayerGui_upvr.replay.gradient.Position = UDim2.new(-1, -700, 0, 0)
    end)
end
local module_6 = {}
local any_load_result1_upvr_27 = _engine_2:load("Sounds")
local any_load_result1_upvr_6 = _engine_2:load("SmartBone")
local var888_upvw = false
local var889_upvw = false
local any_load_result1_upvr_25 = _engine_2:load("TeamService", "utils")
local any_new_result1_upvr_2 = _engine_2:load("Network").new()
local any_new_result1_upvr_5 = any_load_result1_upvr_20.new()
local module_upvr = require(Parent_2:WaitForChild("jukeboxController", 100))
local any_load_result1_upvr_21 = _engine_2:load("Balls")
local visuals_upvr = script.Parent.Parent:WaitForChild("visuals", 100)
local any_load_result1_upvr_24 = _engine_2:load("Walkout")
local var897_upvw = false
local any_load_result1_upvr_19 = _engine_2:load("PartToRegion3", "utils")
local any_load_result1_upvr_15 = _engine_2:load("Freekick")
local any_load_result1_upvr_26 = _engine_2:load("Goalkick")
local any_load_result1_upvr_30 = _engine_2:load("ThrowIn")
local any_load_result1_upvr_17 = _engine_2:load("Corner")
local any_load_result1_upvr_7 = _engine_2:load("Penalty")
local any_load_result1_upvr_2 = _engine_2:load("Shootout")
local _root_upvr_2 = _G._root
local movementController_upvr = Parent_2:WaitForChild("movementController", 100)
local mouse_upvr = LocalPlayer_upvr:GetMouse()
local BoundKeys_upvr = MouseLockController_upvr_2:WaitForChild("BoundKeys", 100)
local any_new_result1_8_upvr = any_load_result1_upvr_20.new()
local any_load_result1_upvr_3 = _engine_2:load("ThumbnailService", "utils")
local any_load_result1_upvr_23 = _engine_2:load("LightningBolt")
local module_9_upvr = require(References_upvr_2.Classes.LightningBolt:WaitForChild("LightningSparks", 100))
local module_8_upvr = require(References_upvr_2.Classes.LightningBolt:WaitForChild("LightningExplosion", 100))
local var914_upvw = false
local var915_upvw = false
local tbl_11_upvr = {}
local any_load_result1_upvr_4 = _engine_2:load("Take")
local module_10_upvr = require(LocalPlayer_upvr.PlayerScripts:WaitForChild("PlayerModule"))
local ClientEngine_upvr = References_upvr_2.PlayerScripts:WaitForChild("ClientEngine", 100)
function module_6.init(arg1, arg2) -- Line 345
    --[[ Upvalues[48]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr_27 (readonly)
        [3]: any_load_result1_upvr_6 (readonly)
        [4]: tbl_43_upvr (readonly)
        [5]: any_new_result1_13_upvr (readonly)
        [6]: getClientBall_upvr (readonly)
        [7]: var888_upvw (read and write)
        [8]: Services_upvr_2 (readonly)
        [9]: References_upvr_2 (readonly)
        [10]: PlayerGui_upvr (readonly)
        [11]: var889_upvw (read and write)
        [12]: any_load_result1_upvr_25 (readonly)
        [13]: any_new_result1_upvr_2 (readonly)
        [14]: any_new_result1_upvr_5 (readonly)
        [15]: module_upvr (readonly)
        [16]: var769_upvw (read and write)
        [17]: doTransition_upvr (readonly)
        [18]: any_load_result1_upvr_21 (readonly)
        [19]: visuals_upvr (readonly)
        [20]: any_load_result1_upvr_24 (readonly)
        [21]: var897_upvw (read and write)
        [22]: any_load_result1_upvr_19 (readonly)
        [23]: any_load_result1_upvr_15 (readonly)
        [24]: any_load_result1_upvr_26 (readonly)
        [25]: any_load_result1_upvr_30 (readonly)
        [26]: any_load_result1_upvr_17 (readonly)
        [27]: any_load_result1_upvr_7 (readonly)
        [28]: any_load_result1_upvr_2 (readonly)
        [29]: _root_upvr_2 (readonly)
        [30]: movementController_upvr (readonly)
        [31]: MouseLockController_upvr_2 (readonly)
        [32]: mouse_upvr (readonly)
        [33]: BoundKeys_upvr (readonly)
        [34]: any_new_result1_8_upvr (readonly)
        [35]: any_load_result1_upvr_20 (readonly)
        [36]: isTeammate_upvr (readonly)
        [37]: any_load_result1_upvr_3 (readonly)
        [38]: any_load_result1_upvr_23 (readonly)
        [39]: module_9_upvr (readonly)
        [40]: module_8_upvr (readonly)
        [41]: var914_upvw (read and write)
        [42]: var915_upvw (read and write)
        [43]: tbl_11_upvr (readonly)
        [44]: any_load_result1_upvr_4 (readonly)
        [45]: module_10_upvr (readonly)
        [46]: ClientEngine_upvr (readonly)
        [47]: crash_upvr (readonly)
        [48]: tbl_80_upvr (readonly)
    ]]
    for i_46, v_40 in next, {
        sound = function(arg1_65) -- Line 347
            --[[ Upvalues[2]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: any_load_result1_upvr_27 (copied, readonly)
            ]]
            if arg1_65.exclude ~= LocalPlayer_upvr then
                any_load_result1_upvr_27:load(arg1_65)
            end
        end;
        updateSmartBone = function() -- Line 353
            --[[ Upvalues[1]:
                [1]: any_load_result1_upvr_6 (copied, readonly)
            ]]
            any_load_result1_upvr_6.Start()
        end;
        notification = function(arg1_66, arg2_22) -- Line 357
            --[[ Upvalues[2]:
                [1]: tbl_43_upvr (copied, readonly)
                [2]: any_new_result1_13_upvr (copied, readonly)
            ]]
            if tbl_43_upvr[arg2_22] then
                tbl_43_upvr[arg2_22](arg1_66)
            else
                any_new_result1_13_upvr:create(arg1_66, Color3.fromRGB(255, 255, 255))
            end
        end;
        ballModel = function(arg1_67) -- Line 365
            --[[ Upvalues[2]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: getClientBall_upvr (copied, readonly)
            ]]
            if arg1_67.exclude ~= LocalPlayer_upvr then
                local getClientBall_upvr_result1 = getClientBall_upvr(arg1_67.ball)
                if getClientBall_upvr_result1 and getClientBall_upvr_result1.Parent and getClientBall_upvr_result1:FindFirstChild("design") and getClientBall_upvr_result1:WaitForChild("design", 100):FindFirstChildWhichIsA("BasePart") then
                    getClientBall_upvr_result1:WaitForChild("design", 100):FindFirstChildWhichIsA("BasePart").Transparency = arg1_67.transparency
                end
            end
        end;
        goal = function(arg1_68, arg2_23, arg3) -- Line 379
            --[[ Upvalues[4]:
                [1]: var888_upvw (copied, read and write)
                [2]: Services_upvr_2 (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: PlayerGui_upvr (copied, readonly)
            ]]
            if var888_upvw then
            else
                for _, v_41 in next, Services_upvr_2.Players:GetPlayers() do
                    if v_41 then
                        if string.lower(v_41.Name) == string.lower(arg1_68) then
                            local SOME_4 = References_upvr_2.Profiles:WaitForChild(tostring(v_41.UserId))
                            if SOME_4 then
                                PlayerGui_upvr.main.goal.goals.goals.Text = tostring(SOME_4.stats.Goals.Value)
                            end
                        end
                    end
                end
                var888_upvw = true
                PlayerGui_upvr.main.goal.Visible = true
                PlayerGui_upvr.main.goal.background.Visible = false
                PlayerGui_upvr.main.goal.scorer.Visible = false
                PlayerGui_upvr.main.goal.scorer.player.Text = string.upper(arg1_68)
                if arg3 then
                    PlayerGui_upvr.main.goal.assist.player.Text = string.upper(arg3)
                end
                PlayerGui_upvr.main.goal.goal.main.background:TweenPosition(UDim2.new(1.25, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 2, true)
                task.wait(0.85)
                PlayerGui_upvr.main.goal.goal.main.label:TweenPosition(UDim2.new(0.825, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 1.35, true)
                task.wait(0.15)
                PlayerGui_upvr.main.goal.background.Visible = true
                task.wait(0.85)
                PlayerGui_upvr.main.goal.goal.main.label['3'].TextTransparency = 1
                PlayerGui_upvr.main.goal.goal.main.label['2'].UIStroke.Transparency = 1
                PlayerGui_upvr.main.goal.goal.main.label:TweenPosition(UDim2.new(0.7, 0, 0, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.4, true)
                Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.goal.goal.main.label['1'], TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                task.wait(0.4)
                PlayerGui_upvr.main.goal.scorer.Visible = true
                PlayerGui_upvr.main.goal.scorer.icon.Position = UDim2.new(0, -35, 0.5, 0)
                PlayerGui_upvr.main.goal.scorer.player.Position = UDim2.new(1, 230, 0.5, 0)
                PlayerGui_upvr.main.goal.scorer.icon:TweenPosition(UDim2.new(0, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                PlayerGui_upvr.main.goal.scorer.player:TweenPosition(UDim2.new(1, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                task.wait(5)
                PlayerGui_upvr.main.goal.scorer.icon:TweenPosition(UDim2.new(0, -35, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                PlayerGui_upvr.main.goal.scorer.player:TweenPosition(UDim2.new(1, 230, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                task.wait(0.25)
                if arg3 then
                    PlayerGui_upvr.main.goal.assist.Visible = true
                    PlayerGui_upvr.main.goal.assist.icon.Position = UDim2.new(0, -40, 0.5, 0)
                    PlayerGui_upvr.main.goal.assist.player.Position = UDim2.new(1, 230, 0.5, 0)
                    PlayerGui_upvr.main.goal.assist.icon:TweenPosition(UDim2.new(0, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                    PlayerGui_upvr.main.goal.assist.player:TweenPosition(UDim2.new(1, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                else
                    PlayerGui_upvr.main.goal.goals.Visible = true
                    PlayerGui_upvr.main.goal.goals.label.Position = UDim2.new(-0.77, 0, 0.5, 0)
                    PlayerGui_upvr.main.goal.goals.goals.Position = UDim2.new(1.26, 0, 0.5, 0)
                    PlayerGui_upvr.main.goal.goals.label:TweenPosition(UDim2.new(0, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                    PlayerGui_upvr.main.goal.goals.goals:TweenPosition(UDim2.new(1, 0, 0.5, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quint, 0.25, true)
                end
                task.wait(4)
                PlayerGui_upvr.main.goal.assist.icon:TweenPosition(UDim2.new(0, -40, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                PlayerGui_upvr.main.goal.assist.player:TweenPosition(UDim2.new(1, 230, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                PlayerGui_upvr.main.goal.goals.label:TweenPosition(UDim2.new(-0.77, 0, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                PlayerGui_upvr.main.goal.goals.goals:TweenPosition(UDim2.new(1.26, 0, 0.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quint, 0.25, true)
                task.wait(0.25)
                PlayerGui_upvr.main.goal.background:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.3, true)
                task.wait(0.35)
                PlayerGui_upvr.main.goal.Visible = false
                PlayerGui_upvr.main.goal.scorer.icon.Position = UDim2.new(0, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.scorer.player.Position = UDim2.new(1, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.assist.icon.Position = UDim2.new(0, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.assist.player.Position = UDim2.new(1, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.goals.label.Position = UDim2.new(0, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.goals.goals.Position = UDim2.new(1, 0, 0.5, 0)
                PlayerGui_upvr.main.goal.goal.main.label['3'].TextTransparency = 0
                PlayerGui_upvr.main.goal.goal.main.label['2'].UIStroke.Transparency = 0
                PlayerGui_upvr.main.goal.goal.main.label['1'].TextTransparency = 0
                PlayerGui_upvr.main.goal.goal.main.label.Position = UDim2.new(0, 0, 0, 0)
                PlayerGui_upvr.main.goal.goal.main.background.Position = UDim2.new(-0.25, 0, 0, 0)
                PlayerGui_upvr.main.goal.background.Size = UDim2.new(1, 0, 1, 0)
                PlayerGui_upvr.main.goal.assist.Visible = false
                PlayerGui_upvr.main.goal.goals.Visible = false
                var888_upvw = false
            end
        end;
        stats = function(arg1_69, arg2_24, arg3) -- Line 481
            --[[ Upvalues[3]:
                [1]: var889_upvw (copied, read and write)
                [2]: PlayerGui_upvr (copied, readonly)
                [3]: any_load_result1_upvr_25 (copied, readonly)
            ]]
            if var889_upvw then
            else
                var889_upvw = true
                PlayerGui_upvr.main.stats.Visible = true
                PlayerGui_upvr.main.stats.background.Visible = false
                PlayerGui_upvr.main.stats.home.Visible = false
                PlayerGui_upvr.main.stats.away.Visible = false
                PlayerGui_upvr.main.stats.title.Visible = false
                PlayerGui_upvr.main.stats.fill.layer1:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.075)
                PlayerGui_upvr.main.stats.fill.layer2:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.15)
                PlayerGui_upvr.main.stats.title.Text = string.upper(arg1_69)
                PlayerGui_upvr.main.stats.home.Text = tostring(arg2_24)
                PlayerGui_upvr.main.stats.away.Text = tostring(arg3)
                PlayerGui_upvr.main.stats.home.TextColor3 = any_load_result1_upvr_25:getTeamColorFromTeam("Home")
                PlayerGui_upvr.main.stats.away.TextColor3 = any_load_result1_upvr_25:getTeamColorFromTeam("Away")
                PlayerGui_upvr.main.stats.background.Visible = true
                PlayerGui_upvr.main.stats.home.Visible = true
                PlayerGui_upvr.main.stats.away.Visible = true
                PlayerGui_upvr.main.stats.title.Visible = true
                PlayerGui_upvr.main.stats.fill.layer1.AnchorPoint = Vector2.new(1, 0)
                PlayerGui_upvr.main.stats.fill.layer1.Position = UDim2.new(1, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.AnchorPoint = Vector2.new(1, 0)
                PlayerGui_upvr.main.stats.fill.layer2.Position = UDim2.new(1, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.075)
                PlayerGui_upvr.main.stats.fill.layer1:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.15)
                PlayerGui_upvr.main.stats.fill.layer1.AnchorPoint = Vector2.new(0, 0)
                PlayerGui_upvr.main.stats.fill.layer1.Position = UDim2.new(0, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.AnchorPoint = Vector2.new(0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.Position = UDim2.new(0, 0, 0, 0)
                task.wait(5.25)
                PlayerGui_upvr.main.stats.fill.layer1:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.075)
                PlayerGui_upvr.main.stats.fill.layer2:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.15)
                PlayerGui_upvr.main.stats.background.Visible = false
                PlayerGui_upvr.main.stats.home.Visible = false
                PlayerGui_upvr.main.stats.away.Visible = false
                PlayerGui_upvr.main.stats.title.Visible = false
                PlayerGui_upvr.main.stats.fill.layer1.AnchorPoint = Vector2.new(1, 0)
                PlayerGui_upvr.main.stats.fill.layer1.Position = UDim2.new(1, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.AnchorPoint = Vector2.new(1, 0)
                PlayerGui_upvr.main.stats.fill.layer2.Position = UDim2.new(1, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.075)
                PlayerGui_upvr.main.stats.fill.layer1:TweenSize(UDim2.new(0, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                task.wait(0.15)
                PlayerGui_upvr.main.stats.fill.layer1.AnchorPoint = Vector2.new(0, 0)
                PlayerGui_upvr.main.stats.fill.layer1.Position = UDim2.new(0, 0, 0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.AnchorPoint = Vector2.new(0, 0)
                PlayerGui_upvr.main.stats.fill.layer2.Position = UDim2.new(0, 0, 0, 0)
                PlayerGui_upvr.main.stats.background.Visible = true
                PlayerGui_upvr.main.stats.home.Visible = true
                PlayerGui_upvr.main.stats.away.Visible = true
                PlayerGui_upvr.main.stats.title.Visible = true
                PlayerGui_upvr.main.stats.Visible = false
                var889_upvw = false
            end
        end;
        disableCollider = function() -- Line 560
            workspace.game.shootout.Collide.CanCollide = false
        end;
        resetCollider = function(arg1_70) -- Line 564
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            if not table.find(arg1_70, LocalPlayer_upvr) then
                workspace.game.shootout.Collide.CanCollide = true
            end
        end;
        penalties = function() -- Line 570
            --[[ Upvalues[4]:
                [1]: any_load_result1_upvr_25 (copied, readonly)
                [2]: PlayerGui_upvr (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local tbl_13 = {
                home = any_load_result1_upvr_25:getTeamColorFromTeam("Home");
                away = any_load_result1_upvr_25:getTeamColorFromTeam("Away");
            }
            local tbl_24 = {
                home = any_load_result1_upvr_25:getAbbreviationFromTeam("Home");
                away = any_load_result1_upvr_25:getAbbreviationFromTeam("Away");
            }
            local penalties_upvr_2 = PlayerGui_upvr.main.penalties
            for _, v_4 in next, {"Home", "Away"} do
                penalties_upvr_2.top[string.lower(v_4)].label.Text = tbl_24[string.lower(v_4)]
                penalties_upvr_2.top[string.lower(v_4)].score.Text = tostring(References_upvr_2.Main.config.Stats[v_4].Score.Value)
                penalties_upvr_2.top[string.lower(v_4)].label.TextColor3 = tbl_13[string.lower(v_4)]
                penalties_upvr_2.top[string.lower(v_4)].score.TextColor3 = tbl_13[string.lower(v_4)]
            end
            penalties_upvr_2.Visible = true
            Services_upvr_2.TweenService:Create(penalties_upvr_2, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 0;
                Position = UDim2.new(0.5, 0, 0.5, 0);
            }):Play()
            task.wait(0.2)
            for _, v_5_upvr in next, {"Home", "Away"} do
                task.spawn(function() -- Line 594
                    --[[ Upvalues[4]:
                        [1]: References_upvr_2 (copied, readonly)
                        [2]: v_5_upvr (readonly)
                        [3]: penalties_upvr_2 (readonly)
                        [4]: Services_upvr_2 (copied, readonly)
                    ]]
                    for i_10, v_6 in next, References_upvr_2.Main.config.Penalties.Takers[v_5_upvr]:GetChildren() do
                        if v_6 then
                            local clone = References_upvr_2.Main.ui["penaltyTaker"..v_5_upvr]:Clone()
                            clone.Name = tostring(i_10)
                            clone.LayoutOrder = i_10
                            if v_5_upvr == "Home" then
                                clone.main.Position = UDim2.new(-1, 0, 0, 0)
                            else
                                clone.main.Position = UDim2.new(1, 0, 0, 0)
                            end
                            clone.main.player.Text = v_6.Name
                            clone.main.number.Text = tostring(v_6.Value)
                            clone.main.player.TextTransparency = 1
                            clone.main.number.TextTransparency = 1
                            clone.main.divider.BackgroundTransparency = 1
                            clone.Parent = penalties_upvr_2[string.lower(v_5_upvr)]
                            Services_upvr_2.TweenService:Create(clone.main.player, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextTransparency = 0;
                            }):Play()
                            Services_upvr_2.TweenService:Create(clone.main.number, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                TextTransparency = 0;
                            }):Play()
                            Services_upvr_2.TweenService:Create(clone.main.divider, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                BackgroundTransparency = 0;
                            }):Play()
                            clone.main:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
                            task.wait(0.25)
                        end
                    end
                end)
            end
            task.wait(7)
            for _, v_7 in next, {"Home", "Away"} do
                for _, v_8_upvr in next, penalties_upvr_2[string.lower(v_7)]:GetChildren() do
                    if v_8_upvr and v_8_upvr:IsA("Frame") then
                        Services_upvr_2.TweenService:Create(v_8_upvr.main.player, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextTransparency = 1;
                        }):Play()
                        Services_upvr_2.TweenService:Create(v_8_upvr.main.number, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            TextTransparency = 1;
                        }):Play()
                        Services_upvr_2.TweenService:Create(v_8_upvr.main.divider, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            BackgroundTransparency = 1;
                        }):Play()
                        if v_7 == "Home" then
                            v_8_upvr.main:TweenPosition(UDim2.new(-1, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
                        else
                            v_8_upvr.main:TweenPosition(UDim2.new(1, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
                        end
                        task.delay(0.4, function() -- Line 638
                            --[[ Upvalues[1]:
                                [1]: v_8_upvr (readonly)
                            ]]
                            v_8_upvr:Destroy()
                        end)
                    end
                end
            end
            task.wait(0.2)
            Services_upvr_2.TweenService:Create(penalties_upvr_2, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 1;
                Position = UDim2.new(0.5, 0, 0.5, 20);
            }):Play()
            task.wait(0.25)
            penalties_upvr_2.Visible = false
        end;
        scorers = function(arg1_71) -- Line 651
            --[[ Upvalues[4]:
                [1]: any_load_result1_upvr_25 (copied, readonly)
                [2]: PlayerGui_upvr (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local tbl_68 = {
                home = any_load_result1_upvr_25:getTeamColorFromTeam("Home");
                away = any_load_result1_upvr_25:getTeamColorFromTeam("Away");
            }
            local scorers_upvr = PlayerGui_upvr.main.scorers
            for _, v_9 in next, {"Home", "Away"} do
                scorers_upvr[string.lower(v_9)].main.label.Text = string.upper(References_upvr_2.Main.config.Stats[v_9].Team.Value)
                scorers_upvr[string.lower(v_9)].main.score.Text = tostring(References_upvr_2.Main.config.Stats[v_9].Score.Value)
                scorers_upvr[string.lower(v_9)].main.label.TextColor3 = tbl_68[string.lower(v_9)]
                scorers_upvr[string.lower(v_9)].main.score.TextColor3 = tbl_68[string.lower(v_9)]
                for i_14, v_10 in next, References_upvr_2.Main.config.Scorers[v_9]:GetChildren() do
                    if v_10 and i_14 <= 4 then
                        local clone_15 = References_upvr_2.Main.ui["scorer"..v_9]:Clone()
                        clone_15.Parent = scorers_upvr[string.lower(v_9)].scorers.list
                        clone_15.scorer.Text = string.upper(v_10.Name)
                        clone_15.time.Text = tostring(v_10.Value).."'"
                        clone_15.scorer.TextTransparency = 1
                        clone_15.time.TextTransparency = 1
                        clone_15.divider.BackgroundTransparency = 1
                    end
                end
            end
            scorers_upvr.status.label.Text = string.upper(arg1_71)
            scorers_upvr.Visible = true
            Services_upvr_2.TweenService:Create(scorers_upvr.background, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            Services_upvr_2.TweenService:Create(scorers_upvr.background.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0;
            }):Play()
            task.wait(0.1)
            Services_upvr_2.TweenService:Create(scorers_upvr.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            task.wait(0.2)
            scorers_upvr.home.main:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            scorers_upvr.away.main:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            Services_upvr_2.TweenService:Create(scorers_upvr.status.background, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            Services_upvr_2.TweenService:Create(scorers_upvr.status.background.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 0;
            }):Play()
            scorers_upvr.status:TweenSize(UDim2.new(0, 200, 0, 30), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            task.wait(0.2)
            Services_upvr_2.TweenService:Create(scorers_upvr.status.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 0;
            }):Play()
            for _, v_11_upvr in next, {"home", "away"} do
                task.spawn(function() -- Line 698
                    --[[ Upvalues[3]:
                        [1]: Services_upvr_2 (copied, readonly)
                        [2]: scorers_upvr (readonly)
                        [3]: v_11_upvr (readonly)
                    ]]
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_11_upvr].main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 0;
                    }):Play()
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_11_upvr].main.score, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 0;
                    }):Play()
                    if 1 < #scorers_upvr[v_11_upvr].scorers.list:GetChildren() then
                        Services_upvr_2.TweenService:Create(scorers_upvr[v_11_upvr].scorers.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            ImageTransparency = 0;
                        }):Play()
                        Services_upvr_2.TweenService:Create(scorers_upvr[v_11_upvr].scorers.background.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                            Transparency = 0;
                        }):Play()
                        scorers_upvr[v_11_upvr].scorers:TweenSize(UDim2.new(1, -50, 0, math.clamp(scorers_upvr[v_11_upvr].scorers.list.AbsoluteSize.Y, 0, 140)), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                        task.wait(0.15)
                        for _, v_12 in next, scorers_upvr[v_11_upvr].scorers.list:GetChildren() do
                            if v_12 and v_12:IsA("Frame") then
                                Services_upvr_2.TweenService:Create(v_12.scorer, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextTransparency = 0;
                                }):Play()
                                Services_upvr_2.TweenService:Create(v_12.time, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextTransparency = 0;
                                }):Play()
                                Services_upvr_2.TweenService:Create(v_12.divider, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    BackgroundTransparency = 0;
                                }):Play()
                            end
                        end
                    end
                end)
            end
            task.wait(7)
            for _, v_13_upvr in next, {"home", "away"} do
                task.spawn(function() -- Line 723
                    --[[ Upvalues[3]:
                        [1]: scorers_upvr (readonly)
                        [2]: v_13_upvr (readonly)
                        [3]: Services_upvr_2 (copied, readonly)
                    ]]
                    for _, v_14_upvr in next, scorers_upvr[v_13_upvr].scorers.list:GetChildren() do
                        if v_14_upvr then
                            if v_14_upvr:IsA("Frame") then
                                Services_upvr_2.TweenService:Create(v_14_upvr.scorer, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextTransparency = 1;
                                }):Play()
                                Services_upvr_2.TweenService:Create(v_14_upvr.time, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    TextTransparency = 1;
                                }):Play()
                                Services_upvr_2.TweenService:Create(v_14_upvr.divider, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                    BackgroundTransparency = 1;
                                }):Play()
                                task.delay(0.2, function() -- Line 729
                                    --[[ Upvalues[1]:
                                        [1]: v_14_upvr (readonly)
                                    ]]
                                    v_14_upvr:Destroy()
                                end)
                            end
                        end
                    end
                    task.wait(0.15)
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_13_upvr].main.label, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 1;
                    }):Play()
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_13_upvr].main.score, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        TextTransparency = 1;
                    }):Play()
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_13_upvr].scorers.background, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        ImageTransparency = 1;
                    }):Play()
                    Services_upvr_2.TweenService:Create(scorers_upvr[v_13_upvr].scorers.background.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        Transparency = 1;
                    }):Play()
                    scorers_upvr[v_13_upvr].scorers:TweenSize(UDim2.new(1, -50, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.15, true)
                end)
            end
            Services_upvr_2.TweenService:Create(scorers_upvr.status.label, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                TextTransparency = 1;
            }):Play()
            task.wait(0.2)
            scorers_upvr.home.main:TweenPosition(UDim2.new(1, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            scorers_upvr.away.main:TweenPosition(UDim2.new(-1, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            Services_upvr_2.TweenService:Create(scorers_upvr.status.background, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 1;
            }):Play()
            Services_upvr_2.TweenService:Create(scorers_upvr.status.background.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 1;
            }):Play()
            scorers_upvr.status:TweenSize(UDim2.new(0, 200, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.2, true)
            task.wait(0.1)
            Services_upvr_2.TweenService:Create(scorers_upvr.logo, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 1;
            }):Play()
            task.wait(0.1)
            Services_upvr_2.TweenService:Create(scorers_upvr.background, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 1;
            }):Play()
            Services_upvr_2.TweenService:Create(scorers_upvr.background.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Transparency = 1;
            }):Play()
            task.wait(0.2)
            scorers_upvr.Visible = false
        end;
        ballSelection = function() -- Line 764
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.ballSelection.toggled then
                arg2.visuals.ballSelection:toggle(true)
            end
        end;
        stadiumSelection = function() -- Line 770
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.stadiumSelection.toggled then
                arg2.visuals.stadiumSelection:toggle(true)
            end
        end;
        teamSelection = function() -- Line 776
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.teamSelection.toggled then
                arg2.visuals.teamSelection:toggle(true)
            end
        end;
        matchSettings = function() -- Line 782
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.matchSettings.toggled then
                arg2.visuals.matchSettings:toggle(true)
            end
        end;
        voteKick = function(arg1_72) -- Line 788
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.voteKick.toggled then
                arg2.visuals.voteKick:toggle(arg1_72)
            end
        end;
        voteKickEnd = function() -- Line 794
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if arg2.visuals.voteKick.toggled then
                arg2.visuals.voteKick:toggle(false)
            end
        end;
        voteFix = function() -- Line 800
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.voteFix.toggled then
                arg2.visuals.voteFix:toggle(true)
            end
        end;
        voteFixEnd = function() -- Line 806
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if arg2.visuals.voteFix.toggled then
                arg2.visuals.voteFix:toggle(false)
            end
        end;
        bootSelection = function() -- Line 812
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.bootSelection.toggled then
                arg2.visuals.bootSelection:toggle(true)
            end
        end;
        accessorySelection = function() -- Line 818
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not arg2.visuals.accessorySelection.toggled then
                arg2.visuals.accessorySelection:toggle(true)
            end
        end;
        registerTeleporter = function(arg1_73, arg2_25, arg3) -- Line 824
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: any_new_result1_upvr_2 (copied, readonly)
                [3]: any_new_result1_upvr_5 (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            if LocalPlayer_upvr == arg1_73 then
            else
                if arg3 == "kickoff" then
                    local function onTouch(arg1_74) -- Line 830
                        --[[ Upvalues[2]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        if arg1_74 and arg1_74.Parent then
                            if arg1_74.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_74.Parent == LocalPlayer_upvr.Character then
                                any_new_result1_upvr_2:send("pitchTeleporter")
                            end
                        end
                    end
                    local function onTouchRegion_upvr(arg1_75, arg2_26) -- Line 836, Named "onTouchRegion"
                        --[[ Upvalues[2]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        if arg1_75 and arg1_75.Parent then
                            if arg1_75.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_75.Parent == LocalPlayer_upvr.Character then
                                if LocalPlayer_upvr.Team and string.find(LocalPlayer_upvr.Team.Name, "Home") and arg2_26.Name == "Away" then
                                    any_new_result1_upvr_2:send("pitchTeleporter")
                                    return
                                end
                                if LocalPlayer_upvr.Team and string.find(LocalPlayer_upvr.Team.Name, "Away") and arg2_26.Name == "Home" then
                                    any_new_result1_upvr_2:send("pitchTeleporter")
                                end
                            end
                        end
                    end
                    for _, v_42 in next, arg2_25.Area:GetChildren() do
                        if v_42 and v_42:IsA("BasePart") then
                            local any_GenerateGUID_result1_5 = _G._services.HttpService:GenerateGUID(false)
                            any_new_result1_upvr_5[any_GenerateGUID_result1_5.."_onTouched"] = v_42.Touched:Connect(onTouch)
                            any_new_result1_upvr_5[any_GenerateGUID_result1_5.."_onTouchEnded"] = v_42.TouchEnded:Connect(onTouch)
                        end
                    end
                    any_new_result1_upvr_5._onTouchedRegionHome = arg2_25.Home.Touched:Connect(function(arg1_76) -- Line 854
                        --[[ Upvalues[2]:
                            [1]: onTouchRegion_upvr (readonly)
                            [2]: arg2_25 (readonly)
                        ]]
                        onTouchRegion_upvr(arg1_76, arg2_25.Home)
                    end)
                    any_new_result1_upvr_5._onTouchedRegionHome = arg2_25.Home.TouchEnded:Connect(function(arg1_77) -- Line 857
                        --[[ Upvalues[2]:
                            [1]: onTouchRegion_upvr (readonly)
                            [2]: arg2_25 (readonly)
                        ]]
                        onTouchRegion_upvr(arg1_77, arg2_25.Home)
                    end)
                    for _, v_43 in next, arg2_25.Home:GetTouchingParts() do
                        onTouchRegion_upvr(v_43, arg2_25.Home)
                        local var1138_upvr
                    end
                    any_new_result1_upvr_5._onTouchedRegionAway = arg2_25.Away.Touched:Connect(function(arg1_78) -- Line 864
                        --[[ Upvalues[2]:
                            [1]: var1138_upvr (readonly)
                            [2]: arg2_25 (readonly)
                        ]]
                        var1138_upvr(arg1_78, arg2_25.Away)
                    end)
                    any_new_result1_upvr_5._onTouchedRegionAway = arg2_25.Away.TouchEnded:Connect(function(arg1_79) -- Line 867
                        --[[ Upvalues[2]:
                            [1]: var1138_upvr (readonly)
                            [2]: arg2_25 (readonly)
                        ]]
                        var1138_upvr(arg1_79, arg2_25.Away)
                    end)
                    for _, v_44 in next, arg2_25.Away:GetTouchingParts() do
                        var1138_upvr(v_44, arg2_25.Away)
                        local _
                    end
                    return
                end
                if arg3 == "penalty" then
                    local function onTouch(arg1_80) -- Line 877
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: arg2_25 (readonly)
                            [3]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [31] 21. Error Block 18 start (CF ANALYSIS FAILED)
                        local function INLINED() -- Internal function, doesn't exist in bytecode
                            -- KONSTANTERROR: [40] 27. Error Block 16 end (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [40] 27. Error Block 16 start (CF ANALYSIS FAILED)
                            return arg2_25.Team.Value == "away"
                        end
                        if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or INLINED() and LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
                            any_new_result1_upvr_2:send("partTeleport", arg2_25.GK)
                        else
                            any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                            -- KONSTANTERROR: [31] 21. Error Block 18 end (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [73] 50. Error Block 14 start (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [73] 50. Error Block 14 end (CF ANALYSIS FAILED)
                        end
                    end
                    local function onTouchGK(arg1_81) -- Line 887
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: arg2_25 (readonly)
                            [3]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        if arg1_81 and arg1_81.Parent then
                            if arg1_81.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_81.Parent == LocalPlayer_upvr.Character and arg2_25.Detector.CanCollide and (LocalPlayer_upvr.TeamColor == BrickColor.new("Storm blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Crimson")) then
                                any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                            end
                        end
                    end
                    for _, v_45 in next, arg2_25.Area:GetChildren() do
                        if v_45 and v_45:IsA("BasePart") then
                            local any_GenerateGUID_result1 = _G._services.HttpService:GenerateGUID(false)
                            any_new_result1_upvr_5[any_GenerateGUID_result1.."_onTouched"] = v_45.Touched:Connect(onTouch)
                            any_new_result1_upvr_5[any_GenerateGUID_result1.."_onTouchEnded"] = v_45.TouchEnded:Connect(onTouch)
                        end
                    end
                    any_new_result1_upvr_5._gkTouched = arg2_25.Box.Touched:Connect(onTouchGK)
                    any_new_result1_upvr_5._gkTouchEnded = arg2_25.Box.TouchEnded:Connect(onTouchGK)
                    return
                end
                if arg3 == "default" then
                    local function onTouch(arg1_82) -- Line 909
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: any_new_result1_upvr_2 (copied, readonly)
                            [3]: arg2_25 (readonly)
                        ]]
                        if arg1_82 and arg1_82.Parent then
                            if arg1_82.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_82.Parent == LocalPlayer_upvr.Character then
                                any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                            end
                        end
                    end
                    for _, v_46 in next, arg2_25.Area:GetChildren() do
                        if v_46 and v_46:IsA("BasePart") then
                            any_new_result1_upvr_5[_G._services.HttpService:GenerateGUID(false).."_onTouched"] = v_46.Touched:Connect(onTouch)
                            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                            any_new_result1_upvr_5[_G._services.HttpService:GenerateGUID(false).."_onTouchEnded"] = v_46.TouchEnded:Connect(onTouch)
                        end
                    end
                    return
                end
                if arg3 == "shootout" then
                    local function onTouch(arg1_83) -- Line 926
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: arg2_25 (readonly)
                            [3]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [31] 21. Error Block 18 start (CF ANALYSIS FAILED)
                        local function INLINED_2() -- Internal function, doesn't exist in bytecode
                            -- KONSTANTERROR: [40] 27. Error Block 16 end (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [40] 27. Error Block 16 start (CF ANALYSIS FAILED)
                            return arg2_25.Team.Value == "away"
                        end
                        if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or INLINED_2() and LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
                            any_new_result1_upvr_2:send("partTeleport", arg2_25.GK)
                        else
                            any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                            -- KONSTANTERROR: [31] 21. Error Block 18 end (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [73] 50. Error Block 14 start (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [73] 50. Error Block 14 end (CF ANALYSIS FAILED)
                        end
                    end
                    local function onTouchGK(arg1_84) -- Line 936
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: arg2_25 (readonly)
                            [3]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        if arg1_84 and arg1_84.Parent then
                            if arg1_84.Parent:FindFirstChildWhichIsA("Humanoid") and arg1_84.Parent == LocalPlayer_upvr.Character and arg2_25.Detector.CanCollide and (LocalPlayer_upvr.TeamColor == BrickColor.new("Storm blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Crimson")) then
                                any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                            end
                        end
                    end
                    local function onTouchDetector(arg1_85) -- Line 944
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: arg2_25 (readonly)
                            [3]: any_new_result1_upvr_2 (copied, readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [1] 2. Error Block 2 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 3 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [11] 9. Error Block 4 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [18] 13. Error Block 5 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [31] 21. Error Block 16 start (CF ANALYSIS FAILED)
                        local function INLINED_3() -- Internal function, doesn't exist in bytecode
                            -- KONSTANTERROR: [40] 27. Error Block 15 end (CF ANALYSIS FAILED)
                            -- KONSTANTERROR: [40] 27. Error Block 15 start (CF ANALYSIS FAILED)
                            return arg2_25.Team.Value == "home"
                        end
                        if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or INLINED_3() and LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
                            any_new_result1_upvr_2:send("partTeleport", arg2_25.Teleport)
                        end
                        -- KONSTANTERROR: [31] 21. Error Block 16 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [64] 43. Error Block 13 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [64] 43. Error Block 13 end (CF ANALYSIS FAILED)
                    end
                    for _, v_47 in next, arg2_25.Area:GetChildren() do
                        if v_47 and v_47:IsA("BasePart") then
                            local any_GenerateGUID_result1_4 = _G._services.HttpService:GenerateGUID(false)
                            any_new_result1_upvr_5[any_GenerateGUID_result1_4.."_onTouched"] = v_47.Touched:Connect(onTouch)
                            any_new_result1_upvr_5[any_GenerateGUID_result1_4.."_onTouchEnded"] = v_47.TouchEnded:Connect(onTouch)
                        end
                    end
                    any_new_result1_upvr_5._gkTouched = arg2_25.Box.Touched:Connect(onTouchGK)
                    any_new_result1_upvr_5._gkTouchEnded = arg2_25.Box.TouchEnded:Connect(onTouchGK)
                    any_new_result1_upvr_5._detectorTouched = workspace.game.shootout.Detector.Touched:Connect(onTouchDetector)
                    any_new_result1_upvr_5._detectorTouchEnded = workspace.game.shootout.Detector.TouchEnded:Connect(onTouchDetector)
                end
            end
        end;
        clearTeleporter = function() -- Line 971
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_5 (copied, readonly)
            ]]
            any_new_result1_upvr_5:DoCleaning()
        end;
        playTrack = function(arg1_86) -- Line 975
            --[[ Upvalues[1]:
                [1]: module_upvr (copied, readonly)
            ]]
            module_upvr:play(arg1_86)
        end;
        displayAward = function(arg1_87, arg2_27) -- Line 979
            --[[ Upvalues[3]:
                [1]: References_upvr_2 (copied, readonly)
                [2]: PlayerGui_upvr (copied, readonly)
                [3]: Services_upvr_2 (copied, readonly)
            ]]
            if arg1_87 == "TGE_Shines" then
                References_upvr_2.Main.sounds.UI.Shines:Play()
            elseif arg1_87 == "TGE_Silver" then
                References_upvr_2.Main.sounds.UI.Silver:Play()
            end
            PlayerGui_upvr.main.item.Visible = true
            PlayerGui_upvr.main.screen.Visible = true
            if arg2_27 then
                arg2_27:Destroy()
            end
            Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.screen, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 0.3;
            }):Play()
            local clone_13_upvr = References_upvr_2.Main.storage[arg1_87]:Clone()
            clone_13_upvr.Parent = PlayerGui_upvr.main.item
            local clone_upvr = References_upvr_2.Main.storage[arg1_87]:Clone()
            clone_upvr.Parent = workspace.game.debug
            clone_upvr.CFrame = clone_13_upvr.CFrame * CFrame.new(0, -50, 0)
            local CFrame = clone_upvr.CFrame
            local Camera_3 = Instance.new("Camera", PlayerGui_upvr.main.item)
            Camera_3.CFrame = clone_13_upvr.CFrame * CFrame.new(0, 10, -7) * CFrame.fromEulerAnglesXYZ(0, math.pi, 0)
            PlayerGui_upvr.main.item.CurrentCamera = Camera_3
            local tick_result1_upvr_2 = tick()
            Services_upvr_2.TweenService:Create(clone_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                CFrame = CFrame * CFrame.new(0, 10, 0);
            }):Play()
            task.wait(0.2)
            Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.aura, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 0;
            }):Play()
            Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.aura.sunburst, TweenInfo.new(2.8, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
                Rotation = 450;
            }):Play()
            task.wait(4.3)
            Services_upvr_2.TweenService:Create(clone_upvr, TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
                CFrame = CFrame;
            }):Play()
            Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.screen, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                BackgroundTransparency = 1;
            }):Play()
            Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.aura, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 1;
            }):Play()
            task.wait(0.5)
            PlayerGui_upvr.main.aura.sunburst.Rotation = 0
            PlayerGui_upvr.main.item.Visible = false
            PlayerGui_upvr.main.screen.Visible = false
            Services_upvr_2.RunService.RenderStepped:Connect(function() -- Line 1014
                --[[ Upvalues[3]:
                    [1]: tick_result1_upvr_2 (readonly)
                    [2]: clone_13_upvr (readonly)
                    [3]: clone_upvr (readonly)
                ]]
                clone_13_upvr.CFrame = clone_upvr.CFrame * CFrame.new(0, 50, 0) * CFrame.Angles(0, 0, 0.2617993877991494) * CFrame.Angles(0, math.clamp((tick() - tick_result1_upvr_2) / 5, 0, 1) * 6.1086523819801535, 0)
            end):Disconnect()
            clone_upvr:Destroy()
            clone_13_upvr:Destroy()
            Camera_3:Destroy()
        end;
        collisionGroup = function(arg1_88, arg2_28, arg3) -- Line 1044
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            if arg3 and LocalPlayer_upvr == arg3 then
            else
                arg1_88.CollisionGroup = arg2_28
            end
        end;
        endReplay = function(arg1_89, arg2_29) -- Line 1051
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            local StringValue_5 = Instance.new("StringValue")
            StringValue_5.Name = "end"
            StringValue_5.Value = arg1_89
            if arg2_29 then
                for i_19, v_15 in next, arg2_29 do
                    if i_19 and v_15 then
                        StringValue_5:SetAttribute(i_19, v_15)
                    end
                end
            end
            StringValue_5.Parent = LocalPlayer_upvr.PlayerScripts.replay
        end;
        playReplay = function(arg1_90) -- Line 1067
            --[[ Upvalues[2]:
                [1]: var769_upvw (copied, read and write)
                [2]: doTransition_upvr (copied, readonly)
            ]]
            if var769_upvw then
                var769_upvw:play(arg1_90, doTransition_upvr)
            end
        end;
        stopReplay = function() -- Line 1073
            --[[ Upvalues[1]:
                [1]: var769_upvw (copied, read and write)
            ]]
            if var769_upvw then
                var769_upvw:stop()
            end
        end;
        replay = function(arg1_91, arg2_30, arg3) -- Line 1079
            --[[ Upvalues[7]:
                [1]: doTransition_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: any_load_result1_upvr_21 (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
                [5]: any_new_result1_upvr_2 (copied, readonly)
                [6]: PlayerGui_upvr (copied, readonly)
                [7]: References_upvr_2 (copied, readonly)
            ]]
            doTransition_upvr()
            local referee_3 = workspace.game.referee
            local tbl_20 = {}
            local tbl_81 = {}
            for _, v_16 in next, workspace.spawns.spawn:GetChildren() do
                if v_16 and v_16.Name == "spawn" then
                    table.insert(tbl_81, v_16)
                end
            end
            for _, v_17 in next, any_load_result1_upvr_21.GetBalls() do
                if v_17 then
                    ({})[v_17] = v_17.CFrame
                    v_17.CFrame = workspace.game.holder.Teleport.CFrame
                end
            end
            for _, v_18 in next, Services_upvr_2.Players:GetPlayers() do
                if v_18 and v_18.Character and v_18.Character:FindFirstChild("HumanoidRootPart") then
                    if not tbl_20[v_18] then
                        tbl_20[v_18] = {}
                    end
                    for _, v_19 in next, v_18.Character:GetDescendants() do
                        if v_19 and (v_19:IsA("BasePart") or v_19:IsA("Decal") or v_19:IsA("Texture")) then
                            tbl_20[v_18][v_19] = v_19.Transparency
                            v_19.Transparency = 1
                        end
                    end
                end
            end
            any_new_result1_upvr_2:send("partTeleport", tbl_81[math.random(1, #tbl_81)], CFrame.new(0, 3.5, 0))
            referee_3.Parent = _G._references.Main
            PlayerGui_upvr.main.Enabled = false
            References_upvr_2.Main.fans.Cheer.Value = false
            local StringValue_4 = Instance.new("StringValue")
            StringValue_4.Name = "play"
            StringValue_4.Value = arg1_91
            StringValue_4:SetAttribute("side", arg2_30)
            StringValue_4:SetAttribute("speed", arg3)
            StringValue_4.Parent = LocalPlayer_upvr.PlayerScripts.replay
            while StringValue_4.Parent do
                task.wait()
            end
            doTransition_upvr()
            for _, v_20 in next, workspace.game.debug:GetChildren() do
                if v_20 and v_20.Name == LocalPlayer_upvr.Name and v_20:IsA("BoolValue") and v_20:GetAttribute("replay") then
                    v_20:Destroy()
                end
            end
            workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
            workspace.CurrentCamera.FieldOfView = tonumber(References_upvr_2.Profile.settings.Visual["Field of View"].Value)
            References_upvr_2.Main.fans.Cheer.Value = false
            for i_25, v_21 in next, {} do
                if i_25 and v_21 then
                    i_25.CFrame = v_21
                    i_25.Anchored = false
                    i_25:SetAttribute("replay", nil)
                    i_25:SetAttribute("netHit", nil)
                    if i_25:FindFirstChild("replication") and i_25.replication:FindFirstChild("AssemblyLinearVelocity") then
                        i_25.replication.AssemblyLinearVelocity.Value = Vector3.new(0, 0, 0)
                    end
                end
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            end
            for _, v_22 in next, Services_upvr_2.Players:GetPlayers() do
                if v_22 and v_22.Character and v_22.Character:FindFirstChild("HumanoidRootPart") and tbl_20[v_22] then
                    for i_27, v_23 in next, tbl_20[v_22] do
                        if i_27 and v_23 then
                            i_27.Transparency = v_23
                        end
                    end
                end
            end
            referee_3.Parent = workspace.game
            LocalPlayer_upvr.Character:SetPrimaryPartCFrame(LocalPlayer_upvr.Character.PrimaryPart.CFrame)
            PlayerGui_upvr.main.Enabled = true
            _G._services.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, true)
        end;
        cutscene = function(arg1_92, arg2_31, arg3) -- Line 1175
            --[[ Upvalues[7]:
                [1]: visuals_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: PlayerGui_upvr (copied, readonly)
                [5]: Services_upvr_2 (copied, readonly)
                [6]: any_load_result1_upvr_24 (copied, readonly)
                [7]: doTransition_upvr (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            if arg1_92 == "penalty" and not visuals_upvr.menu:GetAttribute("enabled") then
                local BoolValue_upvr_4 = Instance.new("BoolValue", workspace.game.debug)
                BoolValue_upvr_4.Name = LocalPlayer_upvr.Name
                BoolValue_upvr_4.Value = true
                workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
                workspace.CurrentCamera.CFrame = arg2_31.cutsceneSettings.CameraOrigin.Value.CFrame
                workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                local var1211_upvw
                var1211_upvw = _G._services.RunService.RenderStepped:Connect(function(arg1_93) -- Line 1186
                    --[[ Upvalues[4]:
                        [1]: arg2_31 (readonly)
                        [2]: var1211_upvw (read and write)
                        [3]: BoolValue_upvr_4 (readonly)
                        [4]: References_upvr_2 (copied, readonly)
                    ]]
                    if not arg2_31.cutsceneSettings.LockOnTarget.Value then
                        var1211_upvw:Disconnect()
                        BoolValue_upvr_4:Destroy()
                        workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
                        workspace.CurrentCamera.FieldOfView = tonumber(References_upvr_2.Profile.settings.Visual["Field of View"].Value)
                    else
                        workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                        workspace.CurrentCamera.CFrame = CFrame.lookAt(arg2_31.cutsceneSettings.CameraOrigin.Value.CFrame.Position - Vector3.new(0, 1, 0), arg2_31.cutsceneSettings.LockOnTarget.Value.PrimaryPart.CFrame.Position)
                    end
                end)
            else
                if arg1_92 == "walkout" and not visuals_upvr.menu:GetAttribute("enabled") then
                    PlayerGui_upvr.main.overlay.color.Visible = true
                    Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.overlay.color, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 0;
                    }):Play()
                    task.wait(1)
                    task.spawn(function() -- Line 1204
                        --[[ Upvalues[1]:
                            [1]: any_load_result1_upvr_24 (copied, readonly)
                        ]]
                        any_load_result1_upvr_24.new()
                    end)
                    Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.overlay.color, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                        BackgroundTransparency = 1;
                    }):Play()
                    task.wait(0.5)
                    PlayerGui_upvr.main.overlay.color.Visible = false
                    return
                end
                if arg1_92 == "celebration" then
                    local var1215_upvw
                    if not visuals_upvr.menu:GetAttribute("enabled") then
                        local children_3 = arg3.angles['1']:GetChildren()
                        var1215_upvw = arg3.angles
                        local children_14 = var1215_upvw['2']:GetChildren()
                        var1215_upvw = arg2_31[children_3[1].Name]
                        local BoolValue_upvr_5 = Instance.new("BoolValue", workspace.game.debug)
                        BoolValue_upvr_5.Name = LocalPlayer_upvr.Name
                        BoolValue_upvr_5.Value = true
                        if 1 < #children_3 then
                            var1215_upvw = arg2_31[children_3[math.random(1, #children_3)].Name]
                        end
                        if 1 < #children_14 then
                        end
                        if LocalPlayer_upvr.PlayerGui and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") then
                            LocalPlayer_upvr.PlayerGui.UI.Enabled = false
                        end
                        workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
                        workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                        local any_Connect_result1_upvw = _G._services.RunService.RenderStepped:Connect(function(arg1_94) -- Line 1237
                            --[[ Upvalues[3]:
                                [1]: arg2_31 (readonly)
                                [2]: arg3 (readonly)
                                [3]: var1215_upvw (read and write)
                            ]]
                            workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                            if not arg2_31.special:FindFirstChild(arg3.Name) then
                                workspace.CurrentCamera.CFrame = CFrame.lookAt(var1215_upvw.CFrame.Position, arg2_31.cutsceneSettings.LockOnTarget.Value.CFrame.Position)
                            end
                        end)
                        if arg2_31.special:FindFirstChild(arg3.Name) then
                            workspace.CurrentCamera.CFrame = arg2_31.special[arg3.Name].start.CFrame
                            Services_upvr_2.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(tonumber(arg3.duration.Value + 0.35), Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                CFrame = arg2_31.special[arg3.Name].finish.CFrame;
                            }):Play()
                        end
                        task.wait(tonumber(arg3.duration.Value) * 0.2666666667)
                        if any_Connect_result1_upvw then
                            any_Connect_result1_upvw:Disconnect()
                        end
                        local var1223_upvw = arg2_31[children_14[math.random(1, #children_14)].Name]
                        local Value_upvr_3 = arg2_31.cutsceneSettings.LockOnTarget.Value
                        any_Connect_result1_upvw = _G._services.RunService.RenderStepped:Connect(function(arg1_95) -- Line 1255
                            --[[ Upvalues[9]:
                                [1]: arg2_31 (readonly)
                                [2]: any_Connect_result1_upvw (read and write)
                                [3]: arg3 (readonly)
                                [4]: BoolValue_upvr_5 (readonly)
                                [5]: var1223_upvw (read and write)
                                [6]: Value_upvr_3 (readonly)
                                [7]: doTransition_upvr (copied, readonly)
                                [8]: LocalPlayer_upvr (copied, readonly)
                                [9]: References_upvr_2 (copied, readonly)
                            ]]
                            if not arg2_31.cutsceneSettings.LockOnTarget.Value then
                                any_Connect_result1_upvw:Disconnect()
                                if not arg2_31.special:FindFirstChild(arg3.Name) then
                                    task.spawn(function() -- Line 1260
                                        --[[ Upvalues[5]:
                                            [1]: any_Connect_result1_upvw (copied, read and write)
                                            [2]: BoolValue_upvr_5 (copied, readonly)
                                            [3]: arg2_31 (copied, readonly)
                                            [4]: var1223_upvw (copied, read and write)
                                            [5]: Value_upvr_3 (copied, readonly)
                                        ]]
                                        any_Connect_result1_upvw = _G._services.RunService.RenderStepped:Connect(function(arg1_96) -- Line 1261
                                            --[[ Upvalues[5]:
                                                [1]: BoolValue_upvr_5 (copied, readonly)
                                                [2]: arg2_31 (copied, readonly)
                                                [3]: var1223_upvw (copied, read and write)
                                                [4]: Value_upvr_3 (copied, readonly)
                                                [5]: any_Connect_result1_upvw (copied, read and write)
                                            ]]
                                            if BoolValue_upvr_5 and BoolValue_upvr_5.Parent then
                                                workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                                                workspace.CurrentCamera.CFrame = CFrame.lookAt(var1223_upvw.CFrame.Position, Value_upvr_3.CFrame.Position)
                                            else
                                                any_Connect_result1_upvw:Disconnect()
                                            end
                                        end)
                                    end)
                                end
                                doTransition_upvr()
                                BoolValue_upvr_5:Destroy()
                                task.wait(0.001)
                                if LocalPlayer_upvr.PlayerGui and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") then
                                    LocalPlayer_upvr.PlayerGui.UI.Enabled = true
                                end
                                workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
                                workspace.CurrentCamera.FieldOfView = tonumber(References_upvr_2.Profile.settings.Visual["Field of View"].Value)
                                task.wait(0.25)
                                _G._services.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, true)
                            else
                                workspace.CurrentCamera.FieldOfView = tonumber(arg2_31.cutsceneSettings.CameraFieldOfView.Value)
                                if not arg2_31.special:FindFirstChild(arg3.Name) then
                                    workspace.CurrentCamera.CFrame = CFrame.lookAt(var1223_upvw.CFrame.Position, arg2_31.cutsceneSettings.LockOnTarget.Value.CFrame.Position)
                                end
                            end
                        end)
                    end
                end
            end
        end;
        offside = function(arg1_97) -- Line 1296
            --[[ Upvalues[5]:
                [1]: var897_upvw (copied, read and write)
                [2]: doTransition_upvr (copied, readonly)
                [3]: PlayerGui_upvr (copied, readonly)
                [4]: any_load_result1_upvr_19 (copied, readonly)
                [5]: any_new_result1_upvr_2 (copied, readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 40 start (CF ANALYSIS FAILED)
            if var897_upvw then return end
            var897_upvw = true
            doTransition_upvr()
            PlayerGui_upvr.replay.offside.viewport:ClearAllChildren()
            for _, v_24 in next, arg1_97:GetChildren() do
                if v_24 then
                    if v_24.Parent then
                        local clone_12 = v_24:Clone()
                        clone_12.Parent = PlayerGui_upvr.replay.offside.viewport
                        if clone_12.Name == "line" then
                            clone_12.Size = Vector3.new(0.001, clone_12.Size.Y, clone_12.Size.Z)
                        end
                    end
                end
            end
            local Camera = Instance.new("Camera", PlayerGui_upvr.replay.offside.viewport)
            Camera.FieldOfView = 70
            Camera.CameraType = Enum.CameraType.Scriptable
            if PlayerGui_upvr.replay.offside.viewport.attacker.HumanoidRootPart.Position.Z <= 0 then
                Camera.CFrame = workspace.game.cameras.offsideHomeStart.CFrame
                local line_6 = PlayerGui_upvr.replay.offside.viewport.line
                line_6.Position += Vector3.new(0, 0, 1)
                local line_7 = arg1_97.line
                line_7.Position += Vector3.new(0, 0, 1)
                if PlayerGui_upvr.replay.offside.viewport.attacker.HumanoidRootPart.Position.X <= PlayerGui_upvr.replay.offside.viewport.defender.HumanoidRootPart.Position.X then
                    workspace.game.cameras.offsideHomeFinal.Position = Vector3.new(PlayerGui_upvr.replay.offside.viewport.attacker.HumanoidRootPart.Position.X - 50, workspace.game.cameras.offsideHomeFinal.Position.Y, arg1_97.line.Position.Z + 0.001)
                else
                    workspace.game.cameras.offsideHomeFinal.Position = Vector3.new(PlayerGui_upvr.replay.offside.viewport.defender.HumanoidRootPart.Position.X - 50, workspace.game.cameras.offsideHomeFinal.Position.Y, arg1_97.line.Position.Z + 0.001)
                end
                -- KONSTANTWARNING: GOTO [429] #246
            end
            -- KONSTANTERROR: [0] 1. Error Block 40 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [263] 154. Error Block 36 start (CF ANALYSIS FAILED)
            Camera.CFrame = workspace.game.cameras.offsideAwayStart.CFrame
            local line_9 = PlayerGui_upvr.replay.offside.viewport.line
            line_9.Position -= Vector3.new(0, 0, 1)
            local line_3 = arg1_97.line
            line_3.Position -= Vector3.new(0, 0, 1)
            if PlayerGui_upvr.replay.offside.viewport.defender.HumanoidRootPart.Position.X <= PlayerGui_upvr.replay.offside.viewport.attacker.HumanoidRootPart.Position.X then
                workspace.game.cameras.offsideAwayFinal.Position = Vector3.new(PlayerGui_upvr.replay.offside.viewport.attacker.HumanoidRootPart.Position.X + 50, workspace.game.cameras.offsideAwayFinal.Position.Y, arg1_97.line.Position.Z - 0.001)
                -- KONSTANTWARNING: GOTO [429] #246
            end
            -- KONSTANTERROR: [263] 154. Error Block 36 end (CF ANALYSIS FAILED)
        end;
        quickFoul = function(arg1_98) -- Line 1382
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_2 (copied, readonly)
            ]]
            arg1_98.Detector.CanCollide = false
            any_new_result1_upvr_2:send("partTeleport", arg1_98.Player)
        end;
        freeKick = function(arg1_99, arg2_32) -- Line 1387
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_15 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1388
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_32 (readonly)
                    [3]: any_load_result1_upvr_15 (copied, readonly)
                    [4]: arg1_99 (readonly)
                ]]
                local any_GetServerBallFolder_result1_7 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1_7 then
                    for _, v_25 in next, any_GetServerBallFolder_result1_7:GetChildren() do
                        if v_25 and v_25:IsA("BasePart") and v_25:FindFirstChild("properties") then
                            if v_25.properties:FindFirstChild("spawner") and v_25.properties.spawner.Value == arg2_32 then
                                any_load_result1_upvr_15.new(arg1_99, v_25)
                            end
                        end
                    end
                end
            end)
        end;
        goalKick = function(arg1_100, arg2_33) -- Line 1401
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_26 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1402
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_33 (readonly)
                    [3]: any_load_result1_upvr_26 (copied, readonly)
                    [4]: arg1_100 (readonly)
                ]]
                local any_GetServerBallFolder_result1_12 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1_12 then
                    for _, v_26 in next, any_GetServerBallFolder_result1_12:GetChildren() do
                        if v_26 and v_26:IsA("BasePart") and v_26:FindFirstChild("properties") then
                            if v_26.properties:FindFirstChild("spawner") and v_26.properties.spawner.Value == arg2_33 then
                                any_load_result1_upvr_26.new(arg1_100, v_26)
                            end
                        end
                    end
                end
            end)
        end;
        throwIn = function(arg1_101, arg2_34) -- Line 1415
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_30 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1416
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_34 (readonly)
                    [3]: any_load_result1_upvr_30 (copied, readonly)
                    [4]: arg1_101 (readonly)
                ]]
                local any_GetServerBallFolder_result1 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1 then
                    for _, v_27 in next, any_GetServerBallFolder_result1:GetChildren() do
                        if v_27 and v_27:IsA("BasePart") and v_27:FindFirstChild("properties") then
                            if v_27.properties:FindFirstChild("spawner") and v_27.properties.spawner.Value == arg2_34 then
                                any_load_result1_upvr_30.new(arg1_101, v_27)
                            end
                        end
                    end
                end
            end)
        end;
        corner = function(arg1_102, arg2_35) -- Line 1429
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_17 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1430
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_35 (readonly)
                    [3]: any_load_result1_upvr_17 (copied, readonly)
                    [4]: arg1_102 (readonly)
                ]]
                local any_GetServerBallFolder_result1_6 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1_6 then
                    for _, v_28 in next, any_GetServerBallFolder_result1_6:GetChildren() do
                        if v_28 and v_28:IsA("BasePart") and v_28:FindFirstChild("properties") then
                            if v_28.properties:FindFirstChild("spawner") and v_28.properties.spawner.Value == arg2_35 then
                                any_load_result1_upvr_17.new(arg1_102, v_28)
                            end
                        end
                    end
                end
            end)
        end;
        penalty = function(arg1_103, arg2_36) -- Line 1443
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_7 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1444
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_36 (readonly)
                    [3]: any_load_result1_upvr_7 (copied, readonly)
                    [4]: arg1_103 (readonly)
                ]]
                local any_GetServerBallFolder_result1_9 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1_9 then
                    for _, v_29 in next, any_GetServerBallFolder_result1_9:GetChildren() do
                        if v_29 and v_29:IsA("BasePart") and v_29:FindFirstChild("properties") then
                            if v_29.properties:FindFirstChild("spawner") and v_29.properties.spawner.Value == arg2_36 then
                                any_load_result1_upvr_7.new(arg1_103, v_29)
                            end
                        end
                    end
                end
            end)
        end;
        shootout = function(arg1_104, arg2_37) -- Line 1457
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_21 (copied, readonly)
                [2]: any_load_result1_upvr_2 (copied, readonly)
            ]]
            task.spawn(function() -- Line 1458
                --[[ Upvalues[4]:
                    [1]: any_load_result1_upvr_21 (copied, readonly)
                    [2]: arg2_37 (readonly)
                    [3]: any_load_result1_upvr_2 (copied, readonly)
                    [4]: arg1_104 (readonly)
                ]]
                local any_GetServerBallFolder_result1_8 = any_load_result1_upvr_21.GetServerBallFolder()
                if any_GetServerBallFolder_result1_8 then
                    for _, v_30 in next, any_GetServerBallFolder_result1_8:GetChildren() do
                        if v_30 and v_30:IsA("BasePart") and v_30:FindFirstChild("properties") then
                            if v_30.properties:FindFirstChild("spawner") and v_30.properties.spawner.Value == arg2_37 then
                                any_load_result1_upvr_2.new(arg1_104, v_30)
                            end
                        end
                    end
                end
            end)
        end;
        forceDisable = function(arg1_105) -- Line 1471
            --[[ Upvalues[1]:
                [1]: _root_upvr_2 (copied, readonly)
            ]]
            _root_upvr_2:SetAttribute("forceDisable", arg1_105)
        end;
        globalOverride = function(arg1_106) -- Line 1475
            --[[ Upvalues[1]:
                [1]: _root_upvr_2 (copied, readonly)
            ]]
            _root_upvr_2:SetAttribute("globalOverride", arg1_106)
        end;
        canSprint = function(arg1_107) -- Line 1479
            --[[ Upvalues[1]:
                [1]: movementController_upvr (copied, readonly)
            ]]
            movementController_upvr:SetAttribute("canSprint", arg1_107)
        end;
        advantageStart = function() -- Line 1483
            --[[ Upvalues[1]:
                [1]: PlayerGui_upvr (copied, readonly)
            ]]
            PlayerGui_upvr.main.advantage.Visible = true
            PlayerGui_upvr.main.advantage.bar.progress.Size = UDim2.new(0, 0, 1, 0)
            PlayerGui_upvr.main.advantage.bar.progress:TweenSize(UDim2.new(1, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 5, true)
            task.delay(5, function() -- Line 1488
                --[[ Upvalues[1]:
                    [1]: PlayerGui_upvr (copied, readonly)
                ]]
                if PlayerGui_upvr.main.advantage.Visible then
                    PlayerGui_upvr.main.advantage.Visible = false
                end
            end)
        end;
        advantageEnd = function() -- Line 1495
            --[[ Upvalues[1]:
                [1]: PlayerGui_upvr (copied, readonly)
            ]]
            PlayerGui_upvr.main.advantage.Visible = false
        end;
        updateCounter = function() -- Line 1499
            --[[ Upvalues[4]:
                [1]: References_upvr_2 (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: Services_upvr_2 (copied, readonly)
                [4]: PlayerGui_upvr (copied, readonly)
            ]]
            local SOME = References_upvr_2.Main.event:WaitForChild(LocalPlayer_upvr.Name, 100)
            if SOME:GetAttribute("quest1") then
                Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.event.quests.icons['1'], TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = Color3.fromRGB(85, 255, 127);
                }):Play()
            end
            if SOME:GetAttribute("quest2") then
                Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.event.quests.icons['2'], TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = Color3.fromRGB(85, 255, 127);
                }):Play()
            end
            if SOME:GetAttribute("quest3") then
                Services_upvr_2.TweenService:Create(PlayerGui_upvr.main.event.quests.icons['3'], TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    BackgroundColor3 = Color3.fromRGB(85, 255, 127);
                }):Play()
            end
            PlayerGui_upvr.main.event.quests.progress.progress:TweenSize(UDim2.new((SOME:GetAttribute("silvers") or 0) / 3, 0, 1, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, 0.35, true)
            PlayerGui_upvr.main.event.counter.silvers.count.Text = tostring(SOME:GetAttribute("silvers") or 0)
            PlayerGui_upvr.main.event.counter.shines.count.Text = tostring(SOME:GetAttribute("shines") or 0)
        end;
        shiftLock = function(arg1_108) -- Line 1542
            --[[ Upvalues[5]:
                [1]: MouseLockController_upvr_2 (copied, readonly)
                [2]: _root_upvr_2 (copied, readonly)
                [3]: mouse_upvr (copied, readonly)
                [4]: BoundKeys_upvr (copied, readonly)
                [5]: References_upvr_2 (copied, readonly)
            ]]
            if not arg1_108 then
                MouseLockController_upvr_2:SetAttribute("forceDisable", true)
                _root_upvr_2:SetAttribute("disableMouseLock", true)
                mouse_upvr.Icon = ""
                BoundKeys_upvr.Value = ""
                return true
            end
            BoundKeys_upvr.Value = References_upvr_2.Profile.binds.Misc["Mouse Lock"].Value
            MouseLockController_upvr_2:SetAttribute("forceEnable", true)
            _root_upvr_2:SetAttribute("disableMouseLock", true)
            mouse_upvr.Icon = ""
        end;
        startPitchWear = function(arg1_109, arg2_38) -- Line 1557
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: References_upvr_2 (copied, readonly)
                [3]: any_new_result1_8_upvr (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            if LocalPlayer_upvr ~= arg1_109 then
                for _, v_31 in next, arg2_38 do
                    if arg1_109.Character:FindFirstChild(v_31) then
                        local var1296_upvr = arg1_109.Character[v_31]
                        local clone_4_upvr = References_upvr_2.Main.effects.wear:Clone()
                        clone_4_upvr.Parent = workspace.game.debug
                        clone_4_upvr.Name = arg1_109.Name.."_wear"
                        clone_4_upvr.CFrame = CFrame.new(Vector3.new(var1296_upvr.Position.X, 0.568, var1296_upvr.Position.Z)) * (arg1_109.Character.HumanoidRootPart.CFrame - arg1_109.Character.HumanoidRootPart.CFrame.Position)
                        any_new_result1_8_upvr[var1296_upvr.Name.."_update"] = Services_upvr_2.RunService.RenderStepped:Connect(function() -- Line 1569
                            --[[ Upvalues[2]:
                                [1]: clone_4_upvr (readonly)
                                [2]: var1296_upvr (readonly)
                            ]]
                            clone_4_upvr.attachment1.WorldPosition = Vector3.new(var1296_upvr.Position.X, 0.371, var1296_upvr.Position.Z)
                        end)
                    end
                end
            end
        end;
        endPitchWear = function(arg1_110) -- Line 1577
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: any_new_result1_8_upvr (copied, readonly)
                [3]: any_load_result1_upvr_20 (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            if LocalPlayer_upvr ~= arg1_110 then
                any_new_result1_8_upvr:DoCleaning()
                for _, v_32_upvr in next, workspace.game.debug:GetChildren() do
                    if v_32_upvr.Name == arg1_110.Name.."_wear" then
                        task.delay(20, function() -- Line 1583
                            --[[ Upvalues[3]:
                                [1]: any_load_result1_upvr_20 (copied, readonly)
                                [2]: Services_upvr_2 (copied, readonly)
                                [3]: v_32_upvr (readonly)
                            ]]
                            local any_new_result1_4 = any_load_result1_upvr_20.new()
                            local NumberValue_upvr_2 = Instance.new("NumberValue")
                            NumberValue_upvr_2.Value = 0
                            any_new_result1_4:GiveTask(NumberValue_upvr_2)
                            Services_upvr_2.TweenService:Create(NumberValue_upvr_2, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                                Value = 1;
                            }):Play()
                            any_new_result1_4.tween = Services_upvr_2.RunService.RenderStepped:Connect(function() -- Line 1592
                                --[[ Upvalues[2]:
                                    [1]: v_32_upvr (copied, readonly)
                                    [2]: NumberValue_upvr_2 (readonly)
                                ]]
                                if v_32_upvr:FindFirstChild("beam") then
                                    v_32_upvr.beam.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, NumberValue_upvr_2.Value), NumberSequenceKeypoint.new(0.5, NumberValue_upvr_2.Value), NumberSequenceKeypoint.new(1, NumberValue_upvr_2.Value)})
                                end
                            end)
                            task.wait(1.15)
                            any_new_result1_4:DoCleaning()
                            task.wait(1)
                            v_32_upvr:Destroy()
                        end)
                    end
                end
            end
        end;
        celebration = function(arg1_111) -- Line 1613
            --[[ Upvalues[1]:
                [1]: visuals_upvr (copied, readonly)
            ]]
            if arg1_111 == "start" then
                visuals_upvr.celebrations:SetAttribute("toggle", true)
            else
                visuals_upvr.celebrations:SetAttribute("toggle", false)
            end
        end;
        shutdown = function() -- Line 1621
            --[[ Upvalues[2]:
                [1]: References_upvr_2 (copied, readonly)
                [2]: Services_upvr_2 (copied, readonly)
            ]]
            References_upvr_2.PlayerGui.kick.Enabled = true
            References_upvr_2.PlayerGui.kick.main.title.Text = "RECONNECTING"
            References_upvr_2.PlayerGui.kick.main.description.Text = "Migrating to latest update"
            Services_upvr_2.TweenService:Create(References_upvr_2.PlayerGui.kick.background, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            task.wait(0.25)
            Services_upvr_2.TweenService:Create(References_upvr_2.PlayerGui.kick.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 0;
                Position = UDim2.new(0.5, 0, 0.5, 0);
            }):Play()
            Services_upvr_2.RunService.RenderStepped:Connect(function() -- Line 1629
                --[[ Upvalues[1]:
                    [1]: Services_upvr_2 (copied, readonly)
                ]]
                Services_upvr_2.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)
            end)
        end;
        kick = function(arg1_112) -- Line 1634
            --[[ Upvalues[2]:
                [1]: References_upvr_2 (copied, readonly)
                [2]: Services_upvr_2 (copied, readonly)
            ]]
            References_upvr_2.PlayerGui.kick.Enabled = true
            References_upvr_2.PlayerGui.kick.main.description.Text = string.format("You have been kicked // %s", arg1_112 or "Unspecified reason")
            Services_upvr_2.TweenService:Create(References_upvr_2.PlayerGui.kick.background, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                ImageTransparency = 0;
            }):Play()
            task.wait(0.25)
            Services_upvr_2.TweenService:Create(References_upvr_2.PlayerGui.kick.main, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                GroupTransparency = 0;
                Position = UDim2.new(0.5, 0, 0.5, 0);
            }):Play()
            Services_upvr_2.RunService.RenderStepped:Connect(function() -- Line 1641
                --[[ Upvalues[1]:
                    [1]: Services_upvr_2 (copied, readonly)
                ]]
                Services_upvr_2.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)
            end)
            for _, v_33 in next, Services_upvr_2.ReplicatedStorage:GetChildren() do
                if v_33:IsA("Folder") then
                    v_33:Destroy()
                end
            end
            for _, v_34 in next, Services_upvr_2.AssetService:GetChildren() do
                if v_34 then
                    v_34:Destroy()
                end
            end
            for _, v_35 in next, Services_upvr_2.MaterialService:GetChildren() do
                if v_35 then
                    v_35:Destroy()
                end
            end
            for _, v_36 in next, workspace:GetChildren() do
                if v_36:IsA("Folder") then
                    v_36:Destroy()
                end
            end
        end;
        alert = function() -- Line 1670
            --[[ Upvalues[4]:
                [1]: PlayerGui_upvr (copied, readonly)
                [2]: any_load_result1_upvr_20 (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            if not PlayerGui_upvr:FindFirstChild("Alert") then
                local any_new_result1_upvr = any_load_result1_upvr_20.new()
                local clone_14 = References_upvr_2.Main.ui.alert:Clone()
                clone_14.Parent = PlayerGui_upvr
                if Services_upvr_2.UserInputService.TouchEnabled then
                    clone_14.main.button.Text = "Tap to dismiss"
                elseif Services_upvr_2.UserInputService.GamepadEnabled then
                    clone_14.main.button.Text = "Press A to dismiss"
                    any_new_result1_upvr.inputBegan = Services_upvr_2.UserInputService.InputBegan:Connect(function(arg1_113, arg2_39) -- Line 1681
                        --[[ Upvalues[2]:
                            [1]: References_upvr_2 (copied, readonly)
                            [2]: any_new_result1_upvr (readonly)
                        ]]
                        if arg2_39 or not arg2_39 then
                            if arg1_113.KeyCode == Enum.KeyCode.ButtonA then
                                References_upvr_2.Main.sounds.UI.Click:Play()
                                References_upvr_2.Main.sounds.UI.Alert:Stop()
                                any_new_result1_upvr:DoCleaning()
                            end
                        end
                    end)
                end
                References_upvr_2.Main.sounds.UI.Alert:Play()
                any_new_result1_upvr:GiveTask(clone_14)
                any_new_result1_upvr.mouseButton1Click = clone_14.main.button.MouseButton1Click:Connect(function() -- Line 1693
                    --[[ Upvalues[2]:
                        [1]: References_upvr_2 (copied, readonly)
                        [2]: any_new_result1_upvr (readonly)
                    ]]
                    References_upvr_2.Main.sounds.UI.Click:Play()
                    References_upvr_2.Main.sounds.UI.Alert:Stop()
                    any_new_result1_upvr:DoCleaning()
                end)
            end
        end;
        marker = function(arg1_114, arg2_40) -- Line 1701
            --[[ Upvalues[6]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: isTeammate_upvr (copied, readonly)
                [3]: References_upvr_2 (copied, readonly)
                [4]: any_load_result1_upvr_25 (copied, readonly)
                [5]: any_load_result1_upvr_3 (copied, readonly)
                [6]: Services_upvr_2 (copied, readonly)
            ]]
            if LocalPlayer_upvr ~= arg1_114 and arg1_114.Character and arg1_114.Character:FindFirstChild("HumanoidRootPart") and isTeammate_upvr(LocalPlayer_upvr, arg1_114) then
                local children_8, _ = workspace.game.markers:GetChildren()
                local var1347
                for _, v_37 in next, children_8, var1347 do
                    if v_37.Name == arg1_114.Name then
                        v_37:Destroy()
                    end
                end
                var1347 = References_upvr_2.Main
                local clone_9 = var1347.ui.marker:Clone()
                var1347 = arg2_40.X
                local vector3_2 = Vector3.new(var1347, clone_9.PrimaryPart.Position.Y, arg2_40.Z)
                var1347 = arg1_114.TeamColor.Color
                if arg1_114.Team and string.find(arg1_114.Team.Name, "Home") then
                    var1347 = any_load_result1_upvr_25:getTeamColorFromTeam("Home")
                elseif arg1_114.Team and string.find(arg1_114.Team.Name, "Away") then
                    var1347 = any_load_result1_upvr_25:getTeamColorFromTeam("Away")
                end
                clone_9.Template.Cross.Cross.ImageColor3 = var1347
                clone_9.Beam.Beam.Color = ColorSequence.new(var1347, var1347)
                clone_9.Config.Icon.Value = any_load_result1_upvr_3:get(arg1_114.UserId)
                clone_9.Config.MarkerColor.Value = var1347
                clone_9.Config.Distance.Value = math.floor((vector3_2 - arg1_114.Character.HumanoidRootPart.Position).Magnitude + 0.5)
                clone_9.Config.Position.Value = clone_9.PrimaryPart.Position
                clone_9.Parent = workspace.game.markers
                clone_9:SetPrimaryPartCFrame(CFrame.new(vector3_2))
                clone_9.Name = arg1_114.Name
                clone_9.Config.Enabled.Value = true
                Services_upvr_2.Debris:AddItem(clone_9, 2)
            end
        end;
        lightning = function(arg1_115) -- Line 1738
            --[[ Upvalues[6]:
                [1]: References_upvr_2 (copied, readonly)
                [2]: Services_upvr_2 (copied, readonly)
                [3]: any_load_result1_upvr_23 (copied, readonly)
                [4]: module_9_upvr (copied, readonly)
                [5]: module_8_upvr (copied, readonly)
                [6]: any_load_result1_upvr_27 (copied, readonly)
            ]]
            local Part_upvr = Instance.new("Part", workspace.game.debug)
            Part_upvr.Size = Vector3.new(0.10000, 0.10000, 0.10000)
            Part_upvr.Anchored = true
            Part_upvr.CanCollide = false
            Part_upvr.Locked = true
            Part_upvr.Transparency = 1
            Part_upvr.CFrame = CFrame.new(arg1_115)
            local clone_6_upvr = References_upvr_2.Main.effects.burn:Clone()
            clone_6_upvr.Parent = workspace.game.debug
            clone_6_upvr.Position = Vector3.new(arg1_115.X, 0.373, arg1_115.Z)
            Services_upvr_2.Lighting.ColorCorrection.Brightness = 0.05
            task.delay(0.125, function() -- Line 1752
                --[[ Upvalues[1]:
                    [1]: Services_upvr_2 (copied, readonly)
                ]]
                Services_upvr_2.Lighting.ColorCorrection.Brightness = 0
            end)
            local Attachment = Instance.new("Attachment", Part_upvr)
            Attachment.WorldPosition = arg1_115 + Vector3.new(0, 200, 0)
            local Attachment_3 = Instance.new("Attachment", Part_upvr)
            Attachment_3.WorldPosition = arg1_115
            local any_new_result1_6_upvr = any_load_result1_upvr_23.new(Attachment, Attachment_3, 16)
            any_new_result1_6_upvr.AnimationSpeed = 20
            any_new_result1_6_upvr.PulseSpeed = 10
            any_new_result1_6_upvr.PulseLength = 10
            any_new_result1_6_upvr.FadeLength = 0.25
            any_new_result1_6_upvr.Color = Color3.fromRGB(255, 221, 221)
            if (Part_upvr.Position - workspace.CurrentCamera.CFrame.Position * Vector3.new(1, 0, 1)).Magnitude <= 85 then
                any_load_result1_upvr_27:load({
                    directory = Part_upvr;
                    soundId = References_upvr_2.Main.sounds.Weather.Thunder["Lightning Close"].SoundId;
                    rollOffMaxDistance = 500000;
                    rollOffMinDistance = 50;
                    volume = 1;
                    play = true;
                })
            else
                any_load_result1_upvr_27:load({
                    directory = Part_upvr;
                    soundId = References_upvr_2.Main.sounds.Weather.Thunder["Lightning Far"].SoundId;
                    rollOffMaxDistance = 50000;
                    rollOffMinDistance = 50;
                    volume = 1;
                    play = true;
                })
            end
            local any_new_result1_upvr_3 = module_9_upvr.new(any_new_result1_6_upvr)
            local any_new_result1_2_upvr = module_8_upvr.new(arg1_115, 0.1, 10, Color3.fromRGB(255, 255, 255), Color3.fromRGB(255, 255, 255))
            task.delay(0.2, function() -- Line 1792
                --[[ Upvalues[3]:
                    [1]: any_new_result1_6_upvr (readonly)
                    [2]: any_new_result1_upvr_3 (readonly)
                    [3]: any_new_result1_2_upvr (readonly)
                ]]
                any_new_result1_6_upvr:Destroy()
                any_new_result1_upvr_3:Destroy()
                any_new_result1_2_upvr:Destroy()
            end)
            task.delay(5, function() -- Line 1798
                --[[ Upvalues[3]:
                    [1]: Part_upvr (readonly)
                    [2]: Services_upvr_2 (copied, readonly)
                    [3]: clone_6_upvr (readonly)
                ]]
                Part_upvr:Destroy()
                Services_upvr_2.TweenService:Create(clone_6_upvr.SurfaceGui.ImageLabel, TweenInfo.new(10, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    ImageTransparency = 1;
                }):Play()
                task.wait(10)
                clone_6_upvr:Destroy()
            end)
        end;
        levelUp = function(arg1_116) -- Line 1806
            --[[ Upvalues[3]:
                [1]: var914_upvw (copied, read and write)
                [2]: References_upvr_2 (copied, readonly)
                [3]: PlayerGui_upvr (copied, readonly)
            ]]
            if not var914_upvw then
                var914_upvw = true
                References_upvr_2.Main.sounds.UI.Swipe:Play()
                PlayerGui_upvr.main.levelUp.Visible = true
                PlayerGui_upvr.main.levelUp.level.TextTransparency = 1
                PlayerGui_upvr.main.levelUp.level.Text = tostring(arg1_116)
                PlayerGui_upvr.main.levelUp.level.Position = UDim2.new(0.5, 0, 1, 10)
                PlayerGui_upvr.main.levelUp.label.Position = UDim2.new(0.5, -20, 0, 0)
                _G._services.TweenService:Create(PlayerGui_upvr.main.levelUp.label, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Position = UDim2.new(0.5, 0, 0, 0);
                }):Play()
                _G._services.TweenService:Create(PlayerGui_upvr.main.levelUp.label.UIGradient, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Offset = Vector2.new(1, 0);
                }):Play()
                task.wait(0.25)
                _G._services.TweenService:Create(PlayerGui_upvr.main.levelUp.level, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 0;
                    Position = UDim2.new(0.5, 0, 1, -10);
                }):Play()
                task.wait(3)
                _G._services.TweenService:Create(PlayerGui_upvr.main.levelUp.level, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                    Position = UDim2.new(0.5, 0, 1, 10);
                }):Play()
                task.wait(0.25)
                _G._services.TweenService:Create(PlayerGui_upvr.main.levelUp.label, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    TextTransparency = 1;
                }):Play()
                task.wait(0.25)
                PlayerGui_upvr.main.levelUp.level.TextTransparency = 0
                PlayerGui_upvr.main.levelUp.level.Position = UDim2.new(0.5, 0, 1, -10)
                PlayerGui_upvr.main.levelUp.label.Position = UDim2.new(0.5, 0, 0, 0)
                PlayerGui_upvr.main.levelUp.label.TextTransparency = 0
                PlayerGui_upvr.main.levelUp.label.UIGradient.Offset = Vector2.new(-1, 0)
                PlayerGui_upvr.main.levelUp.Visible = false
                var914_upvw = false
            end
        end;
        message = function(arg1_117, arg2_41) -- Line 1840
            --[[ Upvalues[2]:
                [1]: var915_upvw (copied, read and write)
                [2]: PlayerGui_upvr (copied, readonly)
            ]]
            if not var915_upvw then
                var915_upvw = true
                PlayerGui_upvr.main.message.label.Text = arg1_117
                PlayerGui_upvr.main.message.label.UIGradient.Rotation = 0
                PlayerGui_upvr.main.message.label.UIGradient.Offset = Vector2.new(-1, 0)
                PlayerGui_upvr.main.message.label.Size = UDim2.new(0, PlayerGui_upvr.main.message.AbsoluteSize.X, 0, PlayerGui_upvr.main.message.AbsoluteSize.Y)
                _G._services.TweenService:Create(PlayerGui_upvr.main.message.label.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Offset = Vector2.new(1, 0);
                }):Play()
                task.wait(arg2_41 or 3.5)
                PlayerGui_upvr.main.message.label.UIGradient.Offset = Vector2.new(-1, 0)
                PlayerGui_upvr.main.message.label.UIGradient.Rotation = 180
                _G._services.TweenService:Create(PlayerGui_upvr.main.message.label.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Offset = Vector2.new(1, 0);
                }):Play()
                task.wait(0.6)
                PlayerGui_upvr.main.message.label.UIGradient.Offset = Vector2.new(-1, 0)
                PlayerGui_upvr.main.message.label.UIGradient.Rotation = 0
                var915_upvw = false
            end
        end;
        takePrompt = function(arg1_118) -- Line 1862
            --[[ Upvalues[4]:
                [1]: tbl_11_upvr (copied, readonly)
                [2]: References_upvr_2 (copied, readonly)
                [3]: LocalPlayer_upvr (copied, readonly)
                [4]: any_load_result1_upvr_4 (copied, readonly)
            ]]
            if not tbl_11_upvr[arg1_118.Name] and not References_upvr_2.Main.cards.red:FindFirstChild(LocalPlayer_upvr.Name) then
                tbl_11_upvr[arg1_118.Name] = any_load_result1_upvr_4.new(arg1_118)
            end
        end;
        takeClear = function(arg1_119) -- Line 1869
            --[[ Upvalues[1]:
                [1]: tbl_11_upvr (copied, readonly)
            ]]
            if tbl_11_upvr[arg1_119] then
                tbl_11_upvr[arg1_119]:clear()
                tbl_11_upvr[arg1_119] = nil
            end
        end;
        bindMovement = function(arg1_120) -- Line 1876
            --[[ Upvalues[2]:
                [1]: module_10_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
            ]]
            if arg1_120 == "freeze" then
                local any_GetControls_result1_3 = module_10_upvr:GetControls()
                if any_GetControls_result1_3 then
                    any_GetControls_result1_3:Disable()
                end
                LocalPlayer_upvr.Character:SetAttribute("freezeMovement", true)
                _G._services.ContextActionService:BindAction("freezeMovement", function() -- Line 1887
                    return Enum.ContextActionResult.Sink
                end, false, unpack(Enum.PlayerActions:GetEnumItems()))
            else
                local any_GetControls_result1_2 = module_10_upvr:GetControls()
                if any_GetControls_result1_2 then
                    any_GetControls_result1_2:Enable()
                end
                LocalPlayer_upvr.Character:SetAttribute("freezeMovement", nil)
                _G._services.ContextActionService:UnbindAction("freezeMovement")
            end
        end;
        moveTo = function(arg1_121) -- Line 1903
            --[[ Upvalues[2]:
                [1]: any_load_result1_upvr_20 (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
            ]]
            local any_new_result1_3_upvr = any_load_result1_upvr_20.new()
            LocalPlayer_upvr.Character.Humanoid:SetAttribute("moveTo", true)
            LocalPlayer_upvr.Character.Humanoid:MoveTo(arg1_121)
            any_new_result1_3_upvr.moveToFinished = LocalPlayer_upvr.Character.Humanoid.MoveToFinished:Connect(function(arg1_122) -- Line 1909
                --[[ Upvalues[1]:
                    [1]: any_new_result1_3_upvr (readonly)
                ]]
                if arg1_122 == true then
                    any_new_result1_3_upvr:DoCleaning()
                    return true
                end
            end)
            for _ = 1, 10 do
                if not any_new_result1_3_upvr.moveToFinished then break end
                task.wait(0.5)
            end
            if any_new_result1_3_upvr.moveToFinished then
                any_new_result1_3_upvr:DoCleaning()
                return true
            end
        end;
        trip = function() -- Line 1930
            --[[ Upvalues[1]:
                [1]: ClientEngine_upvr (copied, readonly)
            ]]
            ClientEngine_upvr:SetAttribute("Ragdoll", true)
            task.wait(math.random(1.5, 3))
            ClientEngine_upvr:SetAttribute("Ragdoll", false)
        end;
        pull = function() -- Line 1936
            --[[ Upvalues[3]:
                [1]: movementController_upvr (copied, readonly)
                [2]: LocalPlayer_upvr (copied, readonly)
                [3]: Services_upvr_2 (copied, readonly)
            ]]
            movementController_upvr:SetAttribute("canSprint", false)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr_2.StarterPlayer.CharacterWalkSpeed - 5
            task.wait(math.random(2, 3))
            movementController_upvr:SetAttribute("canSprint", true)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr_2.StarterPlayer.CharacterWalkSpeed
        end;
        ragdoll = function() -- Line 1946
            --[[ Upvalues[1]:
                [1]: ClientEngine_upvr (copied, readonly)
            ]]
            ClientEngine_upvr:SetAttribute("Ragdoll", true)
        end;
        unragdoll = function() -- Line 1950
            --[[ Upvalues[1]:
                [1]: ClientEngine_upvr (copied, readonly)
            ]]
            ClientEngine_upvr:SetAttribute("Ragdoll", false)
        end;
        handshake = function(arg1_123) -- Line 1954
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: crash_upvr (copied, readonly)
                [3]: tbl_80_upvr (copied, readonly)
                [4]: Services_upvr_2 (copied, readonly)
            ]]
            -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
            local Character_2 = LocalPlayer_upvr.Character
            if not Character_2 then
                for _ = 1, 60 do
                    if LocalPlayer_upvr.Character then
                        Character_2 = LocalPlayer_upvr.Character
                    end
                    task.wait(1)
                end
                if not Character_2 then
                    crash_upvr()
                end
            end
            local tbl_50 = {}
            for _, v_38 in pairs(LocalPlayer_upvr.Character:GetChildren()) do
                if not tbl_50[v_38.Name] then
                end
                if v_38:IsA("BasePart") then
                    for _, v_39 in pairs(tbl_80_upvr) do
                        if string.match(v_38.Name, v_39) then
                            tbl_50[v_38.Name] = {v_38.Size.X, v_38.Size.Y, v_38.Size.Z}
                        end
                    end
                end
            end
            if LocalPlayer_upvr.Character.Parent ~= workspace then
            end
            local module_4 = {}
            module_4.key = arg1_123
            module_4.WalkSpeed = LocalPlayer_upvr.Character.Humanoid.WalkSpeed
            module_4.limbSizes = nil
            return Services_upvr_2.HttpService:JSONEncode(module_4)
        end;
    } do
        any_new_result1_upvr_2:add(i_46, v_40)
    end
end
return module_6
ModuleScript ReplayClient ReplayClient
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:00
-- Luau version 6, Types version 3
-- Time taken: 0.062477 seconds

local module = {}
local engine = require(game:GetService("ReplicatedStorage").engine)
local _services_upvr = _G._services
local var4_upvw
local tbl_5_upvw = {}
local var6_upvw
local var7_upvw = false
local tbl_11_upvr = {}
local tbl_9_upvw = {}
local var10_upvw
local var11_upvw
local var12_upvw
local var13_upvw
local var14_upvw = false
local var15_upvw
local var16_upvw = false
local var17_upvw = false
local var18_upvw = false
local var19_upvw = false
local var20_upvw
local var21_upvw
local function _() -- Line 34, Named "storeBallTemplate"
    --[[ Upvalues[1]:
        [1]: var10_upvw (read and write)
    ]]
    if var10_upvw then
    else
        local pcall_result1, pcall_result2 = pcall(function() -- Line 39
            if game:GetService("ReplicatedStorage").game and game:GetService("ReplicatedStorage").game.Replay then
                return game:GetService("ReplicatedStorage").game.Replay:FindFirstChild("Template")
            end
            return nil
        end)
        if pcall_result1 and pcall_result2 and pcall_result2:IsA("MeshPart") then
            var10_upvw = pcall_result2
        end
    end
end
local function findPartByPath_upvr(arg1, arg2) -- Line 51, Named "findPartByPath"
    local tbl_4 = {}
    local _, any_gmatch_result2, any_gmatch_result3 = arg2:gmatch("([^%.]+)")
    local var35
    for i in var35, any_gmatch_result2, any_gmatch_result3 do
        table.insert(tbl_4, i)
    end
    var35 = #tbl_4
    if var35 == 0 then
        var35 = nil
        return var35
    end
    var35 = arg1
    for _, v in ipairs(tbl_4) do
        local var39 = var35
        if var39 then
            var39 = var35:FindFirstChild(v)
        end
        var35 = var39
        if not var35 then
            return nil
        end
    end
    if var35 and (var35:IsA("BasePart") or var35:IsA("MeshPart")) then
        return var35
    end
    return nil
end
local function storePlayerCharacter_upvr(arg1) -- Line 76, Named "storePlayerCharacter"
    --[[ Upvalues[1]:
        [1]: tbl_11_upvr (readonly)
    ]]
    if tbl_11_upvr[arg1.UserId] then
        local var40 = tbl_11_upvr[arg1.UserId]
        if var40 and var40.Parent and var40:FindFirstChild("HumanoidRootPart") then return end
        tbl_11_upvr[arg1.UserId] = nil
    end
    if arg1 and arg1.Character and arg1.Character:FindFirstChild("HumanoidRootPart") then
        arg1.Character.Archivable = true
        tbl_11_upvr[arg1.UserId] = arg1.Character
    end
end
local function createGhostPlayer_upvr(arg1, arg2) -- Line 92, Named "createGhostPlayer"
    --[[ Upvalues[4]:
        [1]: tbl_5_upvw (read and write)
        [2]: _services_upvr (readonly)
        [3]: tbl_11_upvr (readonly)
        [4]: findPartByPath_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 217 start (CF ANALYSIS FAILED)
    if tbl_5_upvw[arg1] then
        tbl_5_upvw[arg1]:Destroy()
    end
    local any_GetPlayerByUserId_result1 = _services_upvr.Players:GetPlayerByUserId(arg1)
    local var66
    if tbl_11_upvr[arg1] then
        var66 = tbl_11_upvr[arg1]
        if var66 and var66.Parent and var66:FindFirstChild("HumanoidRootPart") then
        else
            tbl_11_upvr[arg1] = nil
            var66 = nil
        end
    end
    if not var66 and any_GetPlayerByUserId_result1 and any_GetPlayerByUserId_result1.Character and any_GetPlayerByUserId_result1.Character then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        any_GetPlayerByUserId_result1.Character.Archivable = true
    end
    -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
    if not any_GetPlayerByUserId_result1.Character or not any_GetPlayerByUserId_result1.Character.Parent or not any_GetPlayerByUserId_result1.Character:FindFirstChild("HumanoidRootPart") then
        return nil
    end
    local Character_2_upvw = any_GetPlayerByUserId_result1.Character
    local pcall_result1_2, pcall_result2_2 = pcall(function() -- Line 120
        --[[ Upvalues[1]:
            [1]: Character_2_upvw (read and write)
        ]]
        Character_2_upvw.Archivable = true
        return Character_2_upvw:Clone()
    end)
    if not pcall_result1_2 or not pcall_result2_2 then
        return nil
    end
    pcall_result2_2.Name = "ReplayPlayer_"..arg1
    pcall_result2_2.Parent = workspace
    if Character_2_upvw then
        for _, v_2 in ipairs({"Shirt", "Pants"}) do
            local SOME_2 = Character_2_upvw:FindFirstChild(v_2)
            if SOME_2 then
                local SOME_3 = pcall_result2_2:FindFirstChild(v_2)
                if SOME_3 then
                    SOME_3:Destroy()
                end
                SOME_2:Clone().Parent = pcall_result2_2
            end
        end
    end
    for _, v_3 in ipairs(pcall_result2_2:GetDescendants()) do
        if v_3:IsA("BasePart") then
            v_3.Anchored = true
            v_3.CanCollide = false
            v_3.CastShadow = false
            v_3.CanTouch = false
            v_3.CanQuery = false
            v_3.LocalTransparencyModifier = 0
        elseif v_3:IsA("Humanoid") then
            v_3.PlatformStand = true
            v_3.Health = 100
            v_3.MaxHealth = 100
            v_3.WalkSpeed = 0
            v_3.JumpPower = 0
            v_3.AutoRotate = false
            v_3.RequiresNeck = false
            v_3.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
            v_3.NameDisplayDistance = 0
            v_3:ChangeState(Enum.HumanoidStateType.Physics)
        elseif v_3:IsA("Script") or v_3:IsA("LocalScript") then
            v_3:Destroy()
        elseif v_3:IsA("BodyVelocity") or v_3:IsA("BodyAngularVelocity") or v_3:IsA("BodyPosition") or v_3:IsA("AlignPosition") or v_3:IsA("AlignOrientation") then
            v_3:Destroy()
        elseif v_3:IsA("TouchTransmitter") then
            v_3:Destroy()
        elseif v_3:IsA("BillboardGui") or v_3:IsA("SurfaceGui") or v_3.Name:lower():find("name") or v_3.Parent.Name == "Head" then
            v_3:Destroy()
        end
    end
    local ipairs_result1, ipairs_result2, ipairs_result3_10 = ipairs(pcall_result2_2:GetChildren())
    -- KONSTANTERROR: [0] 1. Error Block 217 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [357] 263. Error Block 84 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [357] 263. Error Block 84 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [268] 201. Error Block 219 start (CF ANALYSIS FAILED)
    if v_3:Destroy() then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if v_3.Parent ~= "LayeredShirt" then
        else
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
        if v_3.Parent and "name" then
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if not v_3:Destroy() then
            -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [357.15]
            for _, _ in "name", v_2 do
                -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [357.18]
                if nil then
                end
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
            end
            -- KONSTANTWARNING: GOTO [357] #263
        end
    else
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x3)
        if v_3:Destroy() and (v_3:Destroy() == "LeftBoot" or v_3:Destroy() == "RightBoot") then
        end
    end
    -- KONSTANTERROR: [268] 201. Error Block 219 end (CF ANALYSIS FAILED)
end
local function stopReplay_upvr() -- Line 294, Named "stopReplay"
    --[[ Upvalues[15]:
        [1]: var6_upvw (read and write)
        [2]: _services_upvr (readonly)
        [3]: var4_upvw (read and write)
        [4]: tbl_5_upvw (read and write)
        [5]: tbl_9_upvw (read and write)
        [6]: var11_upvw (read and write)
        [7]: var12_upvw (read and write)
        [8]: var15_upvw (read and write)
        [9]: var21_upvw (read and write)
        [10]: var16_upvw (read and write)
        [11]: var17_upvw (read and write)
        [12]: var18_upvw (read and write)
        [13]: var19_upvw (read and write)
        [14]: var20_upvw (read and write)
        [15]: var7_upvw (read and write)
    ]]
    if var6_upvw then
        var6_upvw:Disconnect()
        var6_upvw = nil
    end
    local LocalPlayer = _services_upvr.Players.LocalPlayer
    local var101
    if LocalPlayer then
        var101 = LocalPlayer.Character
        if not var101 then
            var101 = LocalPlayer.CharacterAdded:Wait()
            local var102
        end
        if var101 then
            var102 = var101:FindFirstChildOfClass("Humanoid")
            if not var102 then
                var102 = var101:WaitForChild("Humanoid")
            end
            if var102 then
                workspace.CurrentCamera.CameraSubject = var102
            end
        end
    end
    if var4_upvw then
        var4_upvw:Destroy()
        var4_upvw = nil
    end
    for _, v_5 in pairs(tbl_5_upvw) do
        if v_5 and v_5.Parent then
            v_5:Destroy()
        end
    end
    tbl_5_upvw = {}
    for _, v_6 in pairs(tbl_9_upvw) do
        if v_6 and v_6.character and v_6.character.Parent then
            for i_8, v_7 in pairs(v_6.parts) do
                if i_8 and i_8.Parent then
                    if i_8:IsA("BasePart") then
                        i_8.Transparency = v_7
                        i_8.LocalTransparencyModifier = 0
                    elseif i_8:IsA("Decal") or i_8:IsA("Texture") then
                        i_8.Transparency = v_7
                    end
                end
            end
            for i_9, v_8 in pairs(v_6.jerseyTexts) do
                if i_9 and i_9.Parent then
                    if i_9:IsA("SurfaceGui") then
                        i_9.Enabled = v_8.enabled
                    elseif i_9:IsA("TextLabel") then
                        i_9.TextTransparency = v_8.textTransparency
                        i_9.TextStrokeTransparency = v_8.textStrokeTransparency
                    end
                end
            end
        end
    end
    tbl_9_upvw = {}
    if var11_upvw and var12_upvw ~= nil then
        var11_upvw.Visible = var12_upvw
        var11_upvw = nil
        var12_upvw = nil
    end
    if var15_upvw and var15_upvw.Parent then
        var15_upvw:Destroy()
    end
    var15_upvw = nil
    if var21_upvw and var21_upvw.Parent then
        var21_upvw:Destroy()
    end
    var21_upvw = nil
    var16_upvw = false
    var17_upvw = false
    var18_upvw = false
    var19_upvw = false
    var20_upvw = nil
    replayStartTime = nil -- Setting global
    var7_upvw = false
end
local function createGhostBall_upvr(arg1) -- Line 376, Named "createGhostBall"
    --[[ Upvalues[2]:
        [1]: var4_upvw (read and write)
        [2]: var10_upvw (read and write)
    ]]
    if var4_upvw then
        var4_upvw:Destroy()
    end
    if var10_upvw then
        var4_upvw = var10_upvw:Clone()
        var4_upvw.Name = "ReplayBall"
        var4_upvw.Parent = workspace
        var4_upvw.Anchored = true
        var4_upvw.CanCollide = false
        var4_upvw.CanTouch = false
        var4_upvw.CanQuery = false
        local var115 = arg1
        if not var115 then
            var115 = CFrame.new(0, 5, 0)
        end
        var4_upvw.CFrame = var115
    else
        local Folder = Instance.new("Folder")
        Folder.Name = "ReplayBall"
        Folder.Parent = workspace
        local Part = Instance.new("Part")
        Part.Name = "Ball"
        Part.Shape = Enum.PartType.Ball
        Part.Size = Vector3.new(1.5, 1.5, 1.5)
        Part.Material = Enum.Material.SmoothPlastic
        Part.Color = Color3.fromRGB(255, 255, 255)
        Part.Anchored = true
        Part.CanCollide = false
        local var118 = arg1
        if not var118 then
            var118 = CFrame.new(0, 5, 0)
        end
        Part.CFrame = var118
        Part.Parent = Folder
        var4_upvw = Folder
    end
    return var4_upvw
end
local TweenService_upvr = game:GetService("TweenService")
local any_load_result1_upvr = engine:load("FormatNumber", "utils")
local RunService_upvr = game:GetService("RunService")
local function playReplay_upvr(arg1) -- Line 412, Named "playReplay"
    --[[ Upvalues[24]:
        [1]: var7_upvw (read and write)
        [2]: var14_upvw (read and write)
        [3]: _services_upvr (readonly)
        [4]: var11_upvw (read and write)
        [5]: var12_upvw (read and write)
        [6]: TweenService_upvr (readonly)
        [7]: var4_upvw (read and write)
        [8]: createGhostBall_upvr (readonly)
        [9]: createGhostPlayer_upvr (readonly)
        [10]: var15_upvw (read and write)
        [11]: var16_upvw (read and write)
        [12]: var17_upvw (read and write)
        [13]: var18_upvw (read and write)
        [14]: var19_upvw (read and write)
        [15]: var20_upvw (read and write)
        [16]: tbl_9_upvw (read and write)
        [17]: tbl_5_upvw (read and write)
        [18]: findPartByPath_upvr (readonly)
        [19]: var21_upvw (read and write)
        [20]: any_load_result1_upvr (readonly)
        [21]: var6_upvw (read and write)
        [22]: RunService_upvr (readonly)
        [23]: stopReplay_upvr (readonly)
        [24]: var13_upvw (read and write)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 188 start (CF ANALYSIS FAILED)
    if not arg1 or not arg1.ball or #arg1.ball == 0 then return end
    local ball_2 = arg1.ball
    if not arg1.players then
        local tbl_12 = {}
    end
    var7_upvw = true
    var14_upvw = false
    local LocalPlayer_2 = _services_upvr.Players.LocalPlayer
    local var236
    if LocalPlayer_2 and LocalPlayer_2.PlayerGui then
        local function INLINED_4() -- Internal function, doesn't exist in bytecode
            var236 = LocalPlayer_2.PlayerGui:FindFirstChild("main"):FindFirstChild("goalreplay")
            return var236
        end
        if LocalPlayer_2.PlayerGui:FindFirstChild("main") and INLINED_4() and (var236:IsA("Frame") or var236:IsA("GuiBase2d")) then
            var11_upvw = var236
            var12_upvw = var236.Visible
            var236.Visible = true
            local Logo_upvr = var236:FindFirstChild("Logo")
            local background_upvr = var236:FindFirstChild("background")
            local label_upvr = var236:FindFirstChild("label")
            task.spawn(function() -- Line 436
                --[[ Upvalues[4]:
                    [1]: Logo_upvr (readonly)
                    [2]: TweenService_upvr (copied, readonly)
                    [3]: background_upvr (readonly)
                    [4]: label_upvr (readonly)
                ]]
                if Logo_upvr then
                    Logo_upvr.ImageTransparency = 1
                    TweenService_upvr:Create(Logo_upvr, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                        ImageTransparency = 0;
                    }):Play()
                end
                if background_upvr then
                    background_upvr.Visible = true
                    background_upvr.ImageTransparency = 0
                    background_upvr.Size = UDim2.new(0, 0, 0.812, 0)
                    TweenService_upvr:Create(background_upvr, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                        Size = UDim2.new(0.8, 0, 0.812, 0);
                    }):Play()
                end
                if label_upvr then
                    task.wait(0.6)
                    label_upvr.TextTransparency = 1
                    TweenService_upvr:Create(label_upvr, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
                        TextTransparency = 0;
                    }):Play()
                end
            end)
        end
    end
    var236 = ball_2[1]
    var236 = createGhostBall_upvr
    Logo_upvr = var236.cframe
    var236 = var236(Logo_upvr)
    var4_upvw = var236
    var236 = var4_upvw
    if not var236 then
        var236 = false
        var7_upvw = var236
        return
    end
    var236 = nil
    Logo_upvr = var4_upvw
    label_upvr = "BasePart"
    Logo_upvr = Logo_upvr:IsA(label_upvr)
    local function INLINED_5() -- Internal function, doesn't exist in bytecode
        Logo_upvr = Logo_upvr:IsA(label_upvr)
        label_upvr = "MeshPart"
        Logo_upvr = var4_upvw
        return Logo_upvr
    end
    if Logo_upvr or INLINED_5() then
        var236 = var4_upvw
    else
        Logo_upvr = var4_upvw
        label_upvr = "BasePart"
        Logo_upvr = Logo_upvr:FindFirstChildWhichIsA(label_upvr)
        var236 = Logo_upvr
        if not var236 then
            Logo_upvr = var4_upvw
            label_upvr = "Model"
            Logo_upvr = Logo_upvr:IsA(label_upvr)
            if Logo_upvr then
                background_upvr = var4_upvw
                Logo_upvr = background_upvr.PrimaryPart
                if Logo_upvr then
                    Logo_upvr = var4_upvw
                    var236 = Logo_upvr.PrimaryPart
                end
            end
        end
    end
    if var236 then
        background_upvr = workspace
        Logo_upvr = background_upvr.CurrentCamera
        Logo_upvr.CameraSubject = var236
    else
        background_upvr = workspace
        Logo_upvr = background_upvr.CurrentCamera
        background_upvr = var4_upvw
        Logo_upvr.CameraSubject = background_upvr
    end
    Logo_upvr = #tbl_12
    background_upvr = 0
    if background_upvr < Logo_upvr then
        Logo_upvr = tbl_12[1]
        if Logo_upvr then
            background_upvr = tbl_12[1]
            Logo_upvr = background_upvr.players
            if Logo_upvr then
                Logo_upvr = 0
                background_upvr = pairs
                label_upvr = tbl_12[1].players
                background_upvr = background_upvr(label_upvr)
                local background_upvr_result1, background_upvr_result2, background_upvr_result3 = background_upvr(label_upvr)
                for i_10, v_9 in background_upvr_result1, background_upvr_result2, background_upvr_result3 do
                    createGhostPlayer_upvr(i_10, v_9)
                    Logo_upvr += 1
                    local var248
                end
            end
        end
    end
    var15_upvw = nil
    var16_upvw = false
    var17_upvw = false
    var18_upvw = false
    var19_upvw = false
    var20_upvw = nil
    tbl_9_upvw = {}
    background_upvr_result2 = _services_upvr
    background_upvr_result1 = background_upvr_result2.Players:GetPlayers()
    local ipairs_result1_8, ipairs_result2_3, ipairs_result3_3 = ipairs(background_upvr_result1)
    for _, v_10 in ipairs_result1_8, ipairs_result2_3, ipairs_result3_3 do
        if v_10 then
            if v_10.Character then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if v_10.Character.Parent == workspace then
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    local Character = v_10.Character
                    if not Character:GetAttribute("ReplayGhost") and not string.find(Character.Name, "ReplayPlayer_") then
                        local tbl_8 = {
                            character = Character;
                            parts = {};
                            jerseyTexts = {};
                        }
                        for _, v_11 in ipairs(Character:GetDescendants()) do
                            if v_11:IsA("BasePart") then
                                tbl_8.parts[v_11] = v_11.Transparency
                                v_11.Transparency = 1
                                v_11.LocalTransparencyModifier = 1
                            elseif v_11:IsA("Decal") or v_11:IsA("Texture") then
                                tbl_8.parts[v_11] = v_11.Transparency
                                v_11.Transparency = 1
                            end
                        end
                        for _, v_12 in ipairs(Character:GetChildren()) do
                            if v_12:IsA("Accessory") then
                                local Handle = v_12:FindFirstChild("Handle")
                                if Handle and Handle:IsA("BasePart") then
                                    if not tbl_8.parts[Handle] then
                                        tbl_8.parts[Handle] = Handle.Transparency
                                    end
                                    Handle.Transparency = 1
                                    Handle.LocalTransparencyModifier = 1
                                end
                            end
                        end
                        local Gloves = Character:FindFirstChild("Gloves")
                        if Gloves then
                            for _, v_13 in ipairs(Gloves:GetDescendants()) do
                                if v_13:IsA("BasePart") or v_13:IsA("MeshPart") then
                                    if not tbl_8.parts[v_13] then
                                        tbl_8.parts[v_13] = v_13.Transparency
                                    end
                                    v_13.Transparency = 1
                                    v_13.LocalTransparencyModifier = 1
                                end
                            end
                        end
                        local Accessories = Character:FindFirstChild("Accessories")
                        if Accessories then
                            for _, v_14 in ipairs(Accessories:GetDescendants()) do
                                if v_14:IsA("BasePart") or v_14:IsA("MeshPart") then
                                    if not tbl_8.parts[v_14] then
                                        tbl_8.parts[v_14] = v_14.Transparency
                                    end
                                    v_14.Transparency = 1
                                    v_14.LocalTransparencyModifier = 1
                                end
                            end
                        end
                        local Jersey = Character:FindFirstChild("Jersey")
                        if Jersey then
                            if Jersey:IsA("BasePart") then
                                local jersey = Jersey:FindFirstChild("jersey")
                                if jersey then
                                    if jersey:IsA("SurfaceGui") then
                                        for _, v_15 in ipairs(jersey:GetDescendants()) do
                                            if v_15:IsA("TextLabel") then
                                                if not tbl_8.jerseyTexts[v_15] then
                                                    tbl_8.jerseyTexts[v_15] = {
                                                        textTransparency = v_15.TextTransparency;
                                                        textStrokeTransparency = v_15.TextStrokeTransparency;
                                                    }
                                                end
                                                v_15.TextTransparency = 1
                                                v_15.TextStrokeTransparency = 1
                                            end
                                        end
                                    end
                                end
                            end
                        end
                        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                        tbl_9_upvw[v_10.UserId] = tbl_8
                    end
                end
            end
        end
    end
    function ipairs_result2_3(arg1_3) -- Line 583, Named "detectKickMoments"
        for i_17 = 2, #arg1_3 do
            local var276 = arg1_3[i_17 - 1]
            local var277 = arg1_3[i_17]
            if var276.time and var277.time and var276.cframe then
                if var277.cframe then
                    local var278 = var277.time - var276.time
                    if 0 < var278 then
                        local var279 = (var277.cframe.Position - var276.cframe.Position).Magnitude / var278
                        if 60 < var279 then
                            table.insert({}, {
                                time = var277.time;
                                velocity = var279;
                                slowStartTime = var277.time - 0.5;
                                normalResumeTime = var277.time + 0.2;
                                frameIndex = i_17;
                                position = var277.cframe.Position;
                            })
                        end
                    end
                end
            end
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        return {}
    end
    ipairs_result3_3 = ball_2
    ipairs_result2_3 = ipairs_result2_3(ipairs_result3_3)
    ipairs_result3_3 = nil
    local _ = #ball_2
    -- KONSTANTERROR: [0] 1. Error Block 188 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [515] 376. Error Block 101 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [515] 376. Error Block 101 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [460] 341. Error Block 94 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [460] 341. Error Block 94 end (CF ANALYSIS FAILED)
end
local any_new_result1_upvr = engine:load("Network").new()
function module.init(arg1) -- Line 1359
    --[[ Upvalues[6]:
        [1]: var10_upvw (read and write)
        [2]: _services_upvr (readonly)
        [3]: storePlayerCharacter_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
        [5]: playReplay_upvr (readonly)
        [6]: stopReplay_upvr (readonly)
    ]]
    task.spawn(function() -- Line 1360
        --[[ Upvalues[3]:
            [1]: var10_upvw (copied, read and write)
            [2]: _services_upvr (copied, readonly)
            [3]: storePlayerCharacter_upvr (copied, readonly)
        ]]
        while true do
            if var10_upvw then
            else
                local pcall_result1_3, pcall_result2_3 = pcall(function() -- Line 39
                    if game:GetService("ReplicatedStorage").game and game:GetService("ReplicatedStorage").game.Replay then
                        return game:GetService("ReplicatedStorage").game.Replay:FindFirstChild("Template")
                    end
                    return nil
                end)
                if pcall_result1_3 and pcall_result2_3 and pcall_result2_3:IsA("MeshPart") then
                    var10_upvw = pcall_result2_3
                end
            end
            for _, v_16 in ipairs(_services_upvr.Players:GetPlayers()) do
                storePlayerCharacter_upvr(v_16)
            end
            task.wait(1)
        end
    end)
    _services_upvr.Players.PlayerAdded:Connect(function(arg1_4) -- Line 1370
        --[[ Upvalues[1]:
            [1]: storePlayerCharacter_upvr (copied, readonly)
        ]]
        task.spawn(function() -- Line 1371
            --[[ Upvalues[2]:
                [1]: storePlayerCharacter_upvr (copied, readonly)
                [2]: arg1_4 (readonly)
            ]]
            task.wait(2)
            storePlayerCharacter_upvr(arg1_4)
        end)
    end)
    any_new_result1_upvr:add("playReplay", function(arg1_5) -- Line 1377
        --[[ Upvalues[1]:
            [1]: playReplay_upvr (copied, readonly)
        ]]
        playReplay_upvr(arg1_5)
    end)
    any_new_result1_upvr:add("stopReplay", function() -- Line 1381
        --[[ Upvalues[1]:
            [1]: stopReplay_upvr (copied, readonly)
        ]]
        stopReplay_upvr()
    end)
end
function module.play(arg1, arg2, arg3) -- Line 1386
    --[[ Upvalues[2]:
        [1]: var13_upvw (read and write)
        [2]: playReplay_upvr (readonly)
    ]]
    var13_upvw = arg3
    playReplay_upvr(arg2)
end
function module.stop(arg1) -- Line 1391
    --[[ Upvalues[3]:
        [1]: var13_upvw (read and write)
        [2]: var14_upvw (read and write)
        [3]: stopReplay_upvr (readonly)
    ]]
    var13_upvw = nil
    var14_upvw = false
    stopReplay_upvr()
end
function module.clear(arg1) -- Line 1397
    --[[ Upvalues[1]:
        [1]: stopReplay_upvr (readonly)
    ]]
    stopReplay_upvr()
end
return module
ModuleScript AngleBarController AngleBarController
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:01
-- Luau version 6, Types version 3
-- Time taken: 0.002161 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local module = {}
local Profile_upvr = _engine.References.Profile
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.init(arg1) -- Line 11
    --[[ Upvalues[3]:
        [1]: Profile_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    task.wait(1)
    local function updateAngleBar() -- Line 14
        --[[ Upvalues[2]:
            [1]: Profile_upvr (copied, readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [5] 4. Error Block 2 start (CF ANALYSIS FAILED)
        do
            return
        end
        -- KONSTANTERROR: [5] 4. Error Block 2 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 5. Error Block 3 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [6] 5. Error Block 3 end (CF ANALYSIS FAILED)
    end
    Services_upvr.RunService.RenderStepped:Connect(updateAngleBar)
    if _G._root then
        _G._root:GetAttributeChangedSignal("AngleBarEnabled"):Connect(updateAngleBar)
        _G._root:GetAttributeChangedSignal("CurrentLookAngle_0_60"):Connect(updateAngleBar)
    end
end
return module
ModuleScript ragdoll ragdoll
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:03
-- Luau version 6, Types version 3
-- Time taken: 0.001760 seconds

local module = {}
local ClientEngine_upvr = script.Parent.Parent:WaitForChild("ClientEngine", 100)
local LocalPlayer_upvr = _G._engine.Services.Players.LocalPlayer
function module.toggle(arg1, arg2, arg3) -- Line 22
    --[[ Upvalues[2]:
        [1]: ClientEngine_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [7] 7. Error Block 17 start (CF ANALYSIS FAILED)
    if arg3 then
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = false
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = false
    end
    if arg3 then
    else
    end
    ClientEngine_upvr:SetAttribute("IsHolding", nil)
    ClientEngine_upvr:SetAttribute("Ragdoll", true)
    do
        return
    end
    -- KONSTANTERROR: [7] 7. Error Block 17 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [44] 34. Error Block 13 start (CF ANALYSIS FAILED)
    if ClientEngine_upvr:GetAttribute("Ragdoll") then
        ClientEngine_upvr:SetAttribute("IsHolding", nil)
        ClientEngine_upvr:SetAttribute("Ragdoll", false)
    end
    -- KONSTANTERROR: [44] 34. Error Block 13 end (CF ANALYSIS FAILED)
end
return module
ModuleScript collisions collisions
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:05
-- Luau version 6, Types version 3
-- Time taken: 0.002398 seconds

local Services_upvr = _G._engine.Services
local module = {}
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
function module.toggle(arg1, arg2, arg3) -- Line 14
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if arg2 == "all" then
        for _, v in next, LocalPlayer_upvr.Character:GetChildren() do
            if v:IsA("BasePart") and v.Name ~= "PostCollider" then
                v.CollisionGroup = arg3 or "Default"
            end
        end
    else
        if arg2 == "reset" then
            for _, v_2 in next, LocalPlayer_upvr.Character:GetChildren() do
                if v_2:IsA("BasePart") and Services_upvr.StarterPlayer.StarterCharacter:FindFirstChild(v_2.Name) then
                    v_2.CollisionGroup = Services_upvr.StarterPlayer.StarterCharacter[v_2.Name].CollisionGroup
                end
            end
            return
        end
        for _, v_3 in next, arg2 do
            if LocalPlayer_upvr.Character:FindFirstChild(v_3) then
                LocalPlayer_upvr.Character[v_3].CollisionGroup = arg3 or "Default"
            end
        end
    end
end
return module
ModuleScript getUp getUp
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:06
-- Luau version 6, Types version 3
-- Time taken: 0.016542 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local module = {}
local module_upvr = require(script:WaitForChild("raycast", 100))
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local References_upvr = _engine.References
local any_new_result1_upvr_2 = _engine:load("Network").new()
local module_2_upvr = require(script.Parent:WaitForChild("collisions", 100))
local any_load_result1_upvr = _engine:load("Sounds")
local any_new_result1_upvr = _engine:load("Maid").new()
local movementController_upvr = script.Parent.Parent:WaitForChild("controllers", 100):WaitForChild("movementController", 100)
function module.start(arg1, arg2) -- Line 27
    --[[ Upvalues[9]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: any_new_result1_upvr_2 (readonly)
        [5]: module_2_upvr (readonly)
        [6]: any_load_result1_upvr (readonly)
        [7]: any_new_result1_upvr (readonly)
        [8]: Services_upvr (readonly)
        [9]: movementController_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local any_raycast_result1 = module_upvr:raycast()
    local Animator = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100)
    local CFrame = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame
    local RaycastParams_new_result1_2 = RaycastParams.new()
    RaycastParams_new_result1_2.FilterType = Enum.RaycastFilterType.Exclude
    RaycastParams_new_result1_2.FilterDescendantsInstances = {LocalPlayer_upvr.Character, workspace.game}
    local workspace_Raycast_result1 = workspace:Raycast(CFrame.Position, Vector3.new(0, -5, 0), RaycastParams_new_result1_2)
    local var35_upvw
    if workspace_Raycast_result1 and workspace_Raycast_result1.Position then
        var35_upvw = CFrame.new(Vector3.new(CFrame.Position.X, workspace_Raycast_result1.Position.Y + 2.2, CFrame.Position.Z)) * CFrame.new(Vector3.new(), workspace.CurrentCamera.CFrame.LookVector * Vector3.new(1, 0, 1))
    end
    local any_LoadAnimation_result1 = Animator:LoadAnimation(References_upvr.Main.animations.GetUp.GetUp)
    any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
    for _, v in next, Animator:GetPlayingAnimationTracks() do
        if v and References_upvr.Main.animations.Tools:FindFirstChild(v.Name, true) then
            v:Stop(0)
        end
    end
    any_new_result1_upvr_2:send("getUpBinder", true)
    LocalPlayer_upvr.Character.HumanoidRootPart.Anchored = true
    LocalPlayer_upvr.Character.LowerTorso.Anchored = true
    LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
    LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
    local clone_upvr = References_upvr.Main.rigs.FakeTorso:Clone()
    clone_upvr.Parent = workspace.game.debug
    clone_upvr:SetPrimaryPartCFrame(CFrame)
    clone_upvr.Humanoid.PlatformStand = false
    clone_upvr.Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
    if any_raycast_result1 == "Front" then
        local FakeTorso_upvr = References_upvr.Main.animations.GetUp.FakeTorso
        task.delay(0.05, function() -- Line 70
            --[[ Upvalues[2]:
                [1]: clone_upvr (readonly)
                [2]: FakeTorso_upvr (readonly)
            ]]
            clone_upvr.Humanoid.Animator:LoadAnimation(FakeTorso_upvr):Play(0.1, nil, 1.1)
        end)
    else
        task.delay(0.05, function() -- Line 74
            --[[ Upvalues[2]:
                [1]: clone_upvr (readonly)
                [2]: FakeTorso_upvr (readonly)
            ]]
            clone_upvr.Humanoid.Animator:LoadAnimation(FakeTorso_upvr):Play(0.1)
        end)
    end
    LocalPlayer_upvr.Character.Humanoid.WalkSpeed = 0
    LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
    module_2_upvr:toggle("all", "9_getUp")
    for i_2, v_2 in next, {"UpperLeg", "LowerLeg", "Foot"} do
        local var44 = "Right"..v_2
        local var45 = "Left"..v_2
        if LocalPlayer_upvr.Character:FindFirstChild(var44) then
            LocalPlayer_upvr.Character[var44].CanCollide = false
        end
        if LocalPlayer_upvr.Character:FindFirstChild(var45) then
            LocalPlayer_upvr.Character[var45].CanCollide = false
        end
    end
    if any_raycast_result1 == "Front" then
        i_2 = nil
        v_2 = 1.1
        any_LoadAnimation_result1:Play(0.1, i_2, v_2)
    else
        any_LoadAnimation_result1:Play(0.1)
    end
    task.spawn(function() -- Line 103
        --[[ Upvalues[3]:
            [1]: any_load_result1_upvr (copied, readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
        ]]
        any_load_result1_upvr:load({
            directory = LocalPlayer_upvr.Character.HumanoidRootPart;
            soundId = References_upvr.Main.sounds.Player.GetUp.SoundId;
            rollOffMaxDistance = 100;
            rollOffMinDistance = 15;
            volume = 0.25;
            play = true;
            replicate = true;
        })
    end)
    local AlignOrientation_upvr = Instance.new("AlignOrientation")
    AlignOrientation_upvr.Mode = Enum.OrientationAlignmentMode.OneAttachment
    AlignOrientation_upvr.Attachment0 = LocalPlayer_upvr.Character.LowerTorso:FindFirstChild("RootRigAttachment")
    AlignOrientation_upvr.MaxTorque = 100000
    AlignOrientation_upvr.Responsiveness = 200
    AlignOrientation_upvr.Enabled = true
    AlignOrientation_upvr.RigidityEnabled = true
    AlignOrientation_upvr.ReactionTorqueEnabled = false
    AlignOrientation_upvr.Parent = LocalPlayer_upvr.Character.LowerTorso:FindFirstChild("RootRigAttachment")
    AlignOrientation_upvr.CFrame = CFrame
    local AlignPosition_upvr = Instance.new("AlignPosition")
    AlignPosition_upvr.Mode = Enum.PositionAlignmentMode.OneAttachment
    AlignPosition_upvr.Attachment0 = LocalPlayer_upvr.Character.LowerTorso:FindFirstChild("RootRigAttachment")
    AlignPosition_upvr.MaxForce = 100000
    AlignPosition_upvr.Responsiveness = 200
    AlignPosition_upvr.Enabled = true
    AlignPosition_upvr.RigidityEnabled = true
    AlignPosition_upvr.ReactionForceEnabled = false
    AlignPosition_upvr.Parent = LocalPlayer_upvr.Character.LowerTorso:FindFirstChild("RootRigAttachment")
    AlignPosition_upvr.Position = CFrame.Position
    any_new_result1_upvr:GiveTask(AlignOrientation_upvr)
    any_new_result1_upvr:GiveTask(AlignPosition_upvr)
    any_new_result1_upvr:GiveTask(clone_upvr)
    if workspace.pitch.nets:FindFirstChildOfClass("Model") then
        local CFrame_upvr = LocalPlayer_upvr.Character.LowerTorso.CFrame
        local tick_result1_upvr = tick()
        local tick_result1_upvw = tick()
        any_new_result1_upvr.renderStepped = Services_upvr.RunService.RenderStepped:Connect(function(arg1_2) -- Line 146
            --[[ Upvalues[8]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: clone_upvr (readonly)
                [3]: CFrame_upvr (readonly)
                [4]: tick_result1_upvr (readonly)
                [5]: tick_result1_upvw (read and write)
                [6]: var35_upvw (read and write)
                [7]: AlignPosition_upvr (readonly)
                [8]: AlignOrientation_upvr (readonly)
            ]]
            local RaycastParams_new_result1 = RaycastParams.new()
            RaycastParams_new_result1.FilterType = Enum.RaycastFilterType.Exclude
            RaycastParams_new_result1.RespectCanCollide = true
            RaycastParams_new_result1:AddToFilter({LocalPlayer_upvr.Character, clone_upvr, workspace.pitch.main, workspace.game.regions, workspace.pitch.textures})
            local any_ToEulerAnglesYXZ_result1, any_ToEulerAnglesYXZ_result2, any_ToEulerAnglesYXZ_result3 = clone_upvr.FakeTorso.CFrame:ToEulerAnglesYXZ()
            local var64
            for i_3, v_3 in next, {workspace:Raycast(LocalPlayer_upvr.Character.HumanoidRootPart.Position, LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 5, RaycastParams_new_result1), workspace:Raycast(LocalPlayer_upvr.Character.HumanoidRootPart.Position, LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.UpVector * 5, RaycastParams_new_result1)} do
                if v_3 and v_3.Instance and v_3.Instance.Parent.Name ~= "physics" then
                end
            end
            if not nil and 0.008333333333333333 <= tick() - tick_result1_upvw then
                i_3 = 0
                v_3 = -0.1
                var35_upvw *= CFrame.new(0, i_3, v_3)
                tick_result1_upvw = tick()
            end
            i_3 = math.clamp((tick() - tick_result1_upvr) * 1.7, 0, 1)
            i_3 = math.clamp((tick() - tick_result1_upvr) * 1.3, 0, 1)
            local any_Lerp_result1 = CFrame_upvr:Lerp(CFrame.new(CFrame_upvr.Position) * CFrame.Angles(any_ToEulerAnglesYXZ_result1, any_ToEulerAnglesYXZ_result2, any_ToEulerAnglesYXZ_result3), i_3):Lerp(var35_upvw, i_3)
            i_3 = LocalPlayer_upvr
            i_3.Character.HumanoidRootPart.Anchored = false
            i_3 = LocalPlayer_upvr
            i_3.Character.LowerTorso.Anchored = false
            AlignPosition_upvr.Position = any_Lerp_result1.Position
            AlignOrientation_upvr.CFrame = any_Lerp_result1
        end)
    end
    if 0.1 > any_LoadAnimation_result1.Length or not (any_LoadAnimation_result1.Length - 0.2) then
    end
    task.wait(0.95)
    LocalPlayer_upvr.Character.HumanoidRootPart.Anchored = false
    any_new_result1_upvr:DoCleaning()
    LocalPlayer_upvr.Character.Humanoid.PlatformStand = false
    LocalPlayer_upvr.Character.Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
    module_2_upvr:toggle("reset")
    any_new_result1_upvr_2:send("getUpBinder", false)
    if LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") then
        LocalPlayer_upvr.PlayerGui.UI.Enabled = true
    end
    if arg2.holding.ball then
        if arg2.holding.animation then
            arg2.holding.animation:Stop(0.3)
        end
        arg2.holding.animation = LocalPlayer_upvr.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Ball[References_upvr.Profile.inventory.Current["Ball Hold"].Value])
        arg2.holding.animation.Priority = Enum.AnimationPriority.Action4
        arg2.holding.animation:Play(0.2)
    end
    LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
    LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
    LocalPlayer_upvr.Character.Humanoid.AutoRotate = true
    LocalPlayer_upvr.Character.Collide.CanCollide = true
    LocalPlayer_upvr.Character.Torso.CanCollide = true
    _G._root:SetAttribute("ragdoll", false)
    _G._root:SetAttribute("ignoreRoot", false)
    movementController_upvr:SetAttribute("canSprint", true)
    script:SetAttribute("toggle", false)
    workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Humanoid
end
return module
ModuleScript raycast raycast
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:08
-- Luau version 6, Types version 3
-- Time taken: 0.001560 seconds

local module = {}
local References_upvr = _G._engine.References
function module.raycast(arg1) -- Line 14
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    local Character = References_upvr.LocalPlayer.Character
    local Position = Character.HumanoidRootPart.Position
    local RaycastParams_new_result1 = RaycastParams.new()
    RaycastParams_new_result1.FilterDescendantsInstances = {Character}
    RaycastParams_new_result1.FilterType = Enum.RaycastFilterType.Exclude
    RaycastParams_new_result1.IgnoreWater = true
    if workspace:Raycast(Position, Character.HumanoidRootPart.CFrame.LookVector * -3.5, RaycastParams_new_result1) then
        return "Back"
    end
    if workspace:Raycast(Position, Character.HumanoidRootPart.CFrame.LookVector * 3.5, RaycastParams_new_result1) then
        return "Front"
    end
    return "Back"
end
return module
ModuleScript config config
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:09
-- Luau version 6, Types version 3
-- Time taken: 0.003120 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local module = {}
local References_upvr = _engine.References
function module.getRelativeDirection(arg1, arg2, arg3) -- Line 15
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    References_upvr.Main.rigs.FakeTorso:Clone().Parent = workspace.game.debug
    local UpVector = workspace.CurrentCamera.CFrame * CFrame.new(1, 0, 1):ToObjectSpace(arg2).UpVector
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [83] 58. Error Block 118 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [83] 58. Error Block 118 end (CF ANALYSIS FAILED)
end
return module
ModuleScript motors motors
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:11
-- Luau version 6, Types version 3
-- Time taken: 0.000311 seconds

return {}
ModuleScript root root
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:14
-- Luau version 6, Types version 3
-- Time taken: 0.270138 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local main_upvr = References_upvr.PlayerGui:WaitForChild("main", 100)
local mobile_upvr = main_upvr:WaitForChild("mobile", 100)
local gamepad_upvr = main_upvr:WaitForChild("gamepad", 100)
local getUp_upvr = script.Parent:WaitForChild("getUp", 100)
local any_load_result1_upvr = _engine:load("Maid")
local any_load_result1_upvr_7 = _engine:load("Sounds")
local any_load_result1_upvr_8 = _engine:load("Balls")
local any_load_result1_upvr_2 = _engine:load("MouseLock")
local any_new_result1_upvr = _engine:load("Network").new()
local any_new_result1_upvr_6 = _engine:load("Notification").new()
local visuals = script.Parent.Parent:WaitForChild("visuals")
local module_upvr_3 = require(visuals:WaitForChild("menu"):WaitForChild("pages"):WaitForChild("settings"):WaitForChild("settings"))
local controllers_upvr = script.Parent.Parent:WaitForChild("controllers")
local menu_upvr_2 = visuals:WaitForChild("menu", 100)
local module_upvr = require(visuals:WaitForChild("backpack", 100))
local RaycastParams_new_result1_3 = RaycastParams.new()
RaycastParams_new_result1_3.FilterType = Enum.RaycastFilterType.Include
RaycastParams_new_result1_3.FilterDescendantsInstances = {workspace.pitch}
local tbl_13_upvr = {"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso", "HumanoidRootPart"}
local function _(arg1) -- Line 56, Named "normalizeSkillName"
    if type(arg1) ~= "string" then
        return nil
    end
    return string.lower(arg1):gsub("%s+", ""):gsub("[^%w]", "")
end
local function _(arg1, arg2) -- Line 67, Named "categoriesMatch"
    if not arg1 or not arg2 then
        return false
    end
    if string.lower(arg1) ~= string.lower(arg2) then
    else
    end
    return true
end
local module_upvr_2 = {
    toolOrder = {"Kick", "Skills", "Tackle", "Pass", "GK", "Dribble"};
    toolData = {};
    mobileTools = {
        Kick = {"Kick", "Driven", "Power Shot", "Header", "Finesse", "Volley", "Rabona", "Bicycle", "Trivela", "Scorpion", "Diving Header", "Scissor", "Karate", "Side Kick Right", "Side Kick Left"};
        Dribble = {"Dribble", "Precision", "Tap Right", "Tap Left", "Flick Up", "Drag Back", "Chop Right", "Chop Left", "Stop Ball"};
        Skills = {"Ball Roll", "Rainbow", "Side Flick", "Left Step Over", "Right Step Over", "Fake", "Roulette"};
        Tackle = {"Tackle", "Slide Tackle", "Low Tackle", "Chest Control", "Block", "Chest Stop", "Straight Slide Tackle"};
        Pass = {"Pass", "Side Pass Right", "Side Pass Left", "Lob Pass", "Lob Pass Right", "Lob Pass Left", "Backheel Pass", "Pass Request", "Chop Pass"};
        GK = {"Clear", "Catch", "High Dive", "Low Dive", "Reflex", "Punch", "Throw", "Drop Ball"};
    };
    gamepadKeymap = {
        outfield = {
            [Enum.KeyCode.ButtonY] = "Dribble";
            [Enum.KeyCode.ButtonB] = "Kick";
            [Enum.KeyCode.ButtonX] = "Lob Pass";
            [Enum.KeyCode.ButtonR2] = "Tap Right";
            [Enum.KeyCode.ButtonL2] = "Tap Left";
            [Enum.KeyCode.ButtonR1] = "Header";
            [Enum.KeyCode.ButtonL1] = "Chest Control";
        };
        goalkeeper = {
            [Enum.KeyCode.ButtonY] = "Catch";
            [Enum.KeyCode.ButtonB] = "Clear";
            [Enum.KeyCode.ButtonX] = "Throw";
            [Enum.KeyCode.ButtonR1] = "Low Dive";
            [Enum.KeyCode.ButtonR2] = "High Dive";
            [Enum.KeyCode.ButtonL2] = "Punch";
            [Enum.KeyCode.ButtonL1] = "Reflex";
        };
        misc = {
            [Enum.KeyCode.ButtonL3] = "Mouse Lock";
            [Enum.KeyCode.DPadDown] = "Switch Foot";
            [Enum.KeyCode.DPadRight] = "Ball Camera";
        };
    };
    gamepadBinds = {};
    viewportSize = {
        size = {
            min = 850;
            max = 1523;
        };
        scale = {
            min = 0.6;
            max = 1;
        };
    };
    solidObjects = {"grass", "outer", "wall", "frame", "support", "support main", "support top", "ropes"};
    holding = {
        maid = any_load_result1_upvr.new();
        animation = nil;
        session = nil;
        ball = nil;
    };
    friction = {
        maid = any_load_result1_upvr.new();
    };
    wear = {
        maid = any_load_result1_upvr.new();
    };
    mouseLock = {
        maid = any_load_result1_upvr.new();
    };
    ballCam = {
        toggle = false;
        debounce = false;
    };
    magnus = {
        right = {
            L = 2.25;
            R = 4.25;
        };
        left = {
            L = 4.25;
            R = 2.25;
        };
        none = {
            L = 1.25;
            R = 1.25;
        };
    };
    ragdoll = require(script.Parent:WaitForChild("ragdoll", 100));
    collisions = require(script.Parent:WaitForChild("collisions", 100));
    getUpSystem = require(getUp_upvr);
    movementController = controllers_upvr:WaitForChild("movementController");
    maid = any_load_result1_upvr.new();
    originalLimbSizes = {};
}
local function cancelRotation() -- Line 228
end
module_upvr_2.cancelRotation = cancelRotation
local function cancelMovement() -- Line 229
end
module_upvr_2.cancelMovement = cancelMovement
module_upvr_2.settingsConfig = module_upvr_3
module_upvr_2.angleBarSkillContext = nil
function module_upvr_2.SetAngleBarSkillContext(arg1, arg2, arg3) -- Line 233
    if not arg2 then
    else
        if type(arg3) ~= "string" then
            local _
        else
        end
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") ~= "backspin" then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") ~= "topspin" then
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") ~= "knuckle" then
                else
                end
            end
        end
        if true and arg1.angleBarSkillContext and arg1.angleBarSkillContext.originalSkill then
            local tbl_2 = {}
            tbl_2.category = arg2
            tbl_2.skill = arg3
            tbl_2.originalSkill = arg1.angleBarSkillContext.originalSkill
            arg1.angleBarSkillContext = tbl_2
            return
        end
        local tbl_12 = {}
        tbl_12.category = arg2
        tbl_12.skill = arg3
        tbl_12.originalSkill = arg3
        arg1.angleBarSkillContext = tbl_12
    end
end
function module_upvr_2.GetAngleBarSkillContext(arg1) -- Line 256
    return arg1.angleBarSkillContext
end
function module_upvr_2.ClearAngleBarSkillContext(arg1) -- Line 260
    arg1.angleBarSkillContext = nil
end
function module_upvr_2.IsAngleBarEnabledForTool(arg1, arg2, arg3, arg4) -- Line 264
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var63
    local function INLINED_9() -- Internal function, doesn't exist in bytecode
        var63 = _G._root:GetAttribute("AngleBarEnabled")
        return var63
    end
    if not var63 or not INLINED_9() then
        var63 = false
        return var63
    end
    local function INLINED_10() -- Internal function, doesn't exist in bytecode
        var63 = string.lower(arg2)
        return var63
    end
    if type(arg2) ~= "string" or not INLINED_10() then
        var63 = nil
    end
    if type(arg3) ~= "string" then
        local _
    else
    end
    if var63 == "kick" then
        local function INLINED_11() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "knuckle"
        end
        local function INLINED_12() -- Internal function, doesn't exist in bytecode
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            return string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "stopball"
        end
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "powershot" or INLINED_11() or INLINED_12() then
            do
                return false
            end
            local var65
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
        local function INLINED_13() -- Internal function, doesn't exist in bytecode
            local any_GetAngleBarSkillContext_result1_2 = arg1:GetAngleBarSkillContext()
            return any_GetAngleBarSkillContext_result1_2
        end
        local function INLINED_14() -- Internal function, doesn't exist in bytecode
            var65 = any_GetAngleBarSkillContext_result1_2.category
            return var65
        end
        local function INLINED_15() -- Internal function, doesn't exist in bytecode
            var65 = any_GetAngleBarSkillContext_result1_2.skill
            return var65
        end
        local function INLINED_16() -- Internal function, doesn't exist in bytecode
            var65 = string.lower(any_GetAngleBarSkillContext_result1_2.category)
            return var65 == "kick"
        end
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "backspin" or string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "topspin" or INLINED_13() and INLINED_14() and INLINED_15() and INLINED_16() then
            local skill = any_GetAngleBarSkillContext_result1_2.skill
            if type(skill) ~= "string" then
                var65 = nil
            else
                var65 = string.lower(skill):gsub("%s+", ""):gsub("[^%w]", "")
            end
            if var65 == "knuckle" then
                return false
            end
        end
        if arg4 and arg4.spinType == "knuckle" then
            return false
        end
        return true
    end
    if var63 == "tackle" then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "cheststop" then
            return false
        end
        return false
    end
    if var63 == "pass" then
        if arg4 and arg4.lobPass then
            return false
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") and string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", ""):find("lobpass") then
            return false
        end
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect (x2)
        if string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "backspin" or string.lower(arg3):gsub("%s+", ""):gsub("[^%w]", "") == "topspin" then
            if arg4 and arg4.lobPass then
                return false
            end
            local any_GetAngleBarSkillContext_result1_4 = arg1:GetAngleBarSkillContext()
            if any_GetAngleBarSkillContext_result1_4 then
                var65 = any_GetAngleBarSkillContext_result1_4.originalSkill
                if var65 then
                    local originalSkill = any_GetAngleBarSkillContext_result1_4.originalSkill
                    if type(originalSkill) ~= "string" then
                        var65 = nil
                    else
                        var65 = string.lower(originalSkill):gsub("%s+", ""):gsub("[^%w]", "")
                    end
                    if var65 and var65:find("lobpass") then
                        return false
                    end
                end
            end
            return true
        end
        return true
    end
    return false
end
local function getEffectiveInputMethod_upvr() -- Line 335, Named "getEffectiveInputMethod"
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    local Profile = References_upvr.Profile
    if Profile and Profile.settings and Profile.settings.Visual then
        local Input_Method = Profile.settings.Visual:FindFirstChild("Input Method")
        if Input_Method then
            local Value_3 = Input_Method.Value
            print("[INPUT METHOD DEBUG] Found Input Method setting:", Value_3)
            if Value_3 == "KBM" then
                print("[INPUT METHOD DEBUG] Forcing KBM mode")
                return "KBM"
            end
            if Value_3 == "Controller" then
                print("[INPUT METHOD DEBUG] Forcing Controller mode")
                return "Controller"
            end
            if Value_3 == "Mobile" then
                print("[INPUT METHOD DEBUG] Forcing Mobile mode")
                do
                    return "Touch"
                end
                -- KONSTANTWARNING: GOTO [62] #46
            end
        else
            print("[INPUT METHOD DEBUG] Input Method setting not found")
        end
    else
        print("[INPUT METHOD DEBUG] Profile or settings not found")
    end
    if Services_upvr.UserInputService.TouchEnabled then
        print("[INPUT METHOD DEBUG] Hardware detection: Touch")
        return "Touch"
    end
    if Services_upvr.UserInputService.GamepadEnabled then
        print("[INPUT METHOD DEBUG] Hardware detection: Controller")
        return "Controller"
    end
    print("[INPUT METHOD DEBUG] Hardware detection: KBM")
    return "KBM"
end
local function updateLookAngleAttribute_upvr(arg1) -- Line 373, Named "updateLookAngleAttribute"
    -- KONSTANTERROR: [0] 1. Error Block 25 start (CF ANALYSIS FAILED)
    if not arg1.character or not arg1.character.Parent then return end
    local humanoid = arg1.humanoid
    -- KONSTANTERROR: [0] 1. Error Block 25 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 9. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [12] 9. Error Block 6 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [17] 12. Error Block 28 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("CurrentLookAngle_0_60") ~= nil then
        _G._root:SetAttribute("CurrentLookAngle_0_60", nil)
    end
    do
        return
    end
    -- KONSTANTERROR: [17] 12. Error Block 28 end (CF ANALYSIS FAILED)
end
getUp_upvr:GetAttributeChangedSignal("toggle"):Connect(function() -- Line 421
    --[[ Upvalues[2]:
        [1]: getUp_upvr (readonly)
        [2]: module_upvr_2 (readonly)
    ]]
    if getUp_upvr:GetAttribute("toggle") then
        module_upvr_2.getUpSystem:start(module_upvr_2)
    end
end)
local movementController_upvr = controllers_upvr:WaitForChild("movementController", 100)
script:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 427
    --[[ Upvalues[6]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: module_upvr_2 (readonly)
        [4]: movementController_upvr (readonly)
        [5]: References_upvr (readonly)
        [6]: any_new_result1_upvr (readonly)
    ]]
    if script:GetAttribute("forceDisable") then
        for _, v in next, LocalPlayer_upvr.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
            if v and not Services_upvr.StarterPlayer.StarterCharacterScripts.Animate:FindFirstChild(v.Name, true) then
                v:Stop(0.1)
            end
        end
        module_upvr_2:resetPowerBar()
        movementController_upvr:SetAttribute("forceStop", true)
        movementController_upvr:SetAttribute("canSprint", false)
        script:SetAttribute("charging", false)
        script:SetAttribute("globalOverride", true)
        if module_upvr_2.holding.ball then
            task.delay(2, function() -- Line 444
                --[[ Upvalues[4]:
                    [1]: module_upvr_2 (copied, readonly)
                    [2]: References_upvr (copied, readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                    [4]: any_new_result1_upvr (copied, readonly)
                ]]
                if module_upvr_2.holding.ball then
                    if module_upvr_2.holding.animation then
                        module_upvr_2.holding.animation:Stop(0.2)
                    end
                    module_upvr_2.holding.maid:DoCleaning()
                    module_upvr_2.holding.ball = nil
                    module_upvr_2.holding.animation = nil
                    References_upvr.PlayerGui.UI.SixSecond.Visible = false
                    if LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart") then
                        LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart").Transparency = 1
                    end
                    any_new_result1_upvr:send("characterBall", 1)
                end
            end)
        end
        task.delay(5, function() -- Line 465
            script:SetAttribute("forceDisable", false)
        end)
    end
end)
script:GetAttributeChangedSignal("resetTools"):Connect(function() -- Line 471
    --[[ Upvalues[4]:
        [1]: module_upvr_2 (readonly)
        [2]: module_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: updateLookAngleAttribute_upvr (readonly)
    ]]
    if script:GetAttribute("resetTools") then
        script:SetAttribute("resetTools", false)
        script:SetAttribute("globalOverride", false)
        script:SetAttribute("forceDisable", false)
        module_upvr_2:tools(true)
        print("[RESET TOOLS DEBUG] Reinitializing backpack system")
        module_upvr:clear()
        module_upvr:init()
        pcall(function() -- Line 484
            --[[ Upvalues[3]:
                [1]: module_upvr_2 (copied, readonly)
                [2]: Services_upvr (copied, readonly)
                [3]: updateLookAngleAttribute_upvr (copied, readonly)
            ]]
            module_upvr_2.maid.LookAngleUpdate = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 485
                --[[ Upvalues[2]:
                    [1]: updateLookAngleAttribute_upvr (copied, readonly)
                    [2]: module_upvr_2 (copied, readonly)
                ]]
                updateLookAngleAttribute_upvr(module_upvr_2)
            end)
        end)
    end
end)
script:GetAttributeChangedSignal("disableMouseLock"):Connect(function() -- Line 492
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: mobile_upvr (readonly)
    ]]
    if script:GetAttribute("disableMouseLock") then
        script:SetAttribute("disableMouseLock", false)
        any_load_result1_upvr_2.Enabled = false
        any_load_result1_upvr_2:Start(any_load_result1_upvr_2.Enabled)
        mobile_upvr.contextToggleContainer.contextActionMouseLockButton.actionIcon.Image = any_load_result1_upvr_2.Icons.Disabled
    end
end)
LocalPlayer_upvr.ChildAdded:Connect(function(arg1) -- Line 502
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    if arg1 and arg1.Name == "react" then
        while not arg1:GetAttribute("loaded") do
            task.wait()
        end
        for _, v_2 in next, arg1:GetChildren() do
            if v_2 and v_2:IsA("ValueBase") then
                ({})[v_2.Name] = v_2.Value
            end
        end
        arg1:Destroy()
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        module_upvr_2:react({})
    else
        if arg1 and arg1.Name == "catch" then
            task.wait()
            arg1:Destroy()
            module_upvr_2:catch({
                ball = arg1.Value;
                throwIn = true;
            })
            return
        end
        if arg1 and arg1.Name == "dropBall" then
            task.wait()
            arg1:Destroy()
            module_upvr_2:drop()
            return
        end
        if arg1 and arg1.Name == "stopAnimation" and module_upvr_2.holding.animation then
            module_upvr_2.holding.animation:Stop()
        end
    end
end)
local function crash_upvr() -- Line 533, Named "crash"
    local var93_upvw = 1
    task.spawn(function() -- Line 588
        --[[ Upvalues[1]:
            [1]: var93_upvw (read and write)
        ]]
        pcall(function() -- Line 589
            --[[ Upvalues[1]:
                [1]: var93_upvw (copied, read and write)
            ]]
            var93_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
        end)
    end)
    task.spawn(function() -- Line 593
        --[[ Upvalues[1]:
            [1]: var93_upvw (read and write)
        ]]
        while true do
            pcall(function() -- Line 595
                --[[ Upvalues[1]:
                    [1]: var93_upvw (copied, read and write)
                ]]
                var93_upvw = math.floor(1 / game:GetService("RunService").RenderStepped:Wait())
                print(var93_upvw)
            end)
        end
    end)
    local function _(arg1) -- Line 602, Named "generateRandomString"
        pcall(function() -- Line 603
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            local var101 = ""
            for _ = 1, arg1 do
                var101 = var101..utf8.char(math.random(0, 65535))
            end
            return var101
        end)
    end
    local var103_upvw = 0
    local var104_upvw = 0
    local var105_upvw = 0
    local var106_upvw = 0
    local var107_upvw = 0
    local var108_upvw = 0
    local var109_upvw = 0
    local var110_upvw = 0
    local var111_upvw = 0
    local var112_upvw = 0
    local var113_upvw = 0
    local var114_upvw = 0
    local var115_upvw = 0
    local var116_upvw = 0
    local var117_upvw = 0
    local var118_upvw = 0
    local var119_upvw = 0
    local var120_upvw = 0
    local var121_upvw = 0
    local var122_upvw = 0
    local var123_upvw = 0
    local var124_upvw = 0
    local var125_upvw = 0
    local var126_upvw = 0
    local var127_upvw = 0
    local var128_upvw = 0
    local var129_upvw = 0
    local var130_upvw = 0
    local var131_upvw = 0
    local var132_upvw = 0
    local var133_upvw = 0
    local var134_upvw = 0
    local var135_upvw = 0
    local var136_upvw = 0
    local var137_upvw = 0
    local var138_upvw = 0
    local var139_upvw = 0
    local var140_upvw = 0
    local var141_upvw = 0
    local var142_upvw = 0
    local var143_upvw = 0
    local var144_upvw = 0
    local var145_upvw = 0
    local var146_upvw = 0
    local var147_upvw = 0
    local var148_upvw = 0
    local var149_upvw = 0
    local var150_upvw = 0
    local var151_upvw = 0
    local var152_upvw = 0
    local var153_upvw = 0
    task.defer(function() -- Line 616
        --[[ Upvalues[52]:
            [1]: var93_upvw (read and write)
            [2]: var103_upvw (read and write)
            [3]: var104_upvw (read and write)
            [4]: var105_upvw (read and write)
            [5]: var106_upvw (read and write)
            [6]: var107_upvw (read and write)
            [7]: var108_upvw (read and write)
            [8]: var109_upvw (read and write)
            [9]: var110_upvw (read and write)
            [10]: var111_upvw (read and write)
            [11]: var112_upvw (read and write)
            [12]: var113_upvw (read and write)
            [13]: var114_upvw (read and write)
            [14]: var115_upvw (read and write)
            [15]: var116_upvw (read and write)
            [16]: var117_upvw (read and write)
            [17]: var118_upvw (read and write)
            [18]: var119_upvw (read and write)
            [19]: var120_upvw (read and write)
            [20]: var121_upvw (read and write)
            [21]: var122_upvw (read and write)
            [22]: var123_upvw (read and write)
            [23]: var124_upvw (read and write)
            [24]: var125_upvw (read and write)
            [25]: var126_upvw (read and write)
            [26]: var127_upvw (read and write)
            [27]: var128_upvw (read and write)
            [28]: var129_upvw (read and write)
            [29]: var130_upvw (read and write)
            [30]: var131_upvw (read and write)
            [31]: var132_upvw (read and write)
            [32]: var133_upvw (read and write)
            [33]: var134_upvw (read and write)
            [34]: var135_upvw (read and write)
            [35]: var136_upvw (read and write)
            [36]: var137_upvw (read and write)
            [37]: var138_upvw (read and write)
            [38]: var139_upvw (read and write)
            [39]: var140_upvw (read and write)
            [40]: var141_upvw (read and write)
            [41]: var142_upvw (read and write)
            [42]: var143_upvw (read and write)
            [43]: var144_upvw (read and write)
            [44]: var145_upvw (read and write)
            [45]: var146_upvw (read and write)
            [46]: var147_upvw (read and write)
            [47]: var148_upvw (read and write)
            [48]: var149_upvw (read and write)
            [49]: var150_upvw (read and write)
            [50]: var151_upvw (read and write)
            [51]: var152_upvw (read and write)
            [52]: var153_upvw (read and write)
        ]]
        for _ = 1, math.huge do
            pcall(function() -- Line 618
                --[[ Upvalues[52]:
                    [1]: var93_upvw (copied, read and write)
                    [2]: var103_upvw (copied, read and write)
                    [3]: var104_upvw (copied, read and write)
                    [4]: var105_upvw (copied, read and write)
                    [5]: var106_upvw (copied, read and write)
                    [6]: var107_upvw (copied, read and write)
                    [7]: var108_upvw (copied, read and write)
                    [8]: var109_upvw (copied, read and write)
                    [9]: var110_upvw (copied, read and write)
                    [10]: var111_upvw (copied, read and write)
                    [11]: var112_upvw (copied, read and write)
                    [12]: var113_upvw (copied, read and write)
                    [13]: var114_upvw (copied, read and write)
                    [14]: var115_upvw (copied, read and write)
                    [15]: var116_upvw (copied, read and write)
                    [16]: var117_upvw (copied, read and write)
                    [17]: var118_upvw (copied, read and write)
                    [18]: var119_upvw (copied, read and write)
                    [19]: var120_upvw (copied, read and write)
                    [20]: var121_upvw (copied, read and write)
                    [21]: var122_upvw (copied, read and write)
                    [22]: var123_upvw (copied, read and write)
                    [23]: var124_upvw (copied, read and write)
                    [24]: var125_upvw (copied, read and write)
                    [25]: var126_upvw (copied, read and write)
                    [26]: var127_upvw (copied, read and write)
                    [27]: var128_upvw (copied, read and write)
                    [28]: var129_upvw (copied, read and write)
                    [29]: var130_upvw (copied, read and write)
                    [30]: var131_upvw (copied, read and write)
                    [31]: var132_upvw (copied, read and write)
                    [32]: var133_upvw (copied, read and write)
                    [33]: var134_upvw (copied, read and write)
                    [34]: var135_upvw (copied, read and write)
                    [35]: var136_upvw (copied, read and write)
                    [36]: var137_upvw (copied, read and write)
                    [37]: var138_upvw (copied, read and write)
                    [38]: var139_upvw (copied, read and write)
                    [39]: var140_upvw (copied, read and write)
                    [40]: var141_upvw (copied, read and write)
                    [41]: var142_upvw (copied, read and write)
                    [42]: var143_upvw (copied, read and write)
                    [43]: var144_upvw (copied, read and write)
                    [44]: var145_upvw (copied, read and write)
                    [45]: var146_upvw (copied, read and write)
                    [46]: var147_upvw (copied, read and write)
                    [47]: var148_upvw (copied, read and write)
                    [48]: var149_upvw (copied, read and write)
                    [49]: var150_upvw (copied, read and write)
                    [50]: var151_upvw (copied, read and write)
                    [51]: var152_upvw (copied, read and write)
                    [52]: var153_upvw (copied, read and write)
                ]]
                task.defer(function() -- Line 619
                    --[[ Upvalues[52]:
                        [1]: var93_upvw (copied, read and write)
                        [2]: var103_upvw (copied, read and write)
                        [3]: var104_upvw (copied, read and write)
                        [4]: var105_upvw (copied, read and write)
                        [5]: var106_upvw (copied, read and write)
                        [6]: var107_upvw (copied, read and write)
                        [7]: var108_upvw (copied, read and write)
                        [8]: var109_upvw (copied, read and write)
                        [9]: var110_upvw (copied, read and write)
                        [10]: var111_upvw (copied, read and write)
                        [11]: var112_upvw (copied, read and write)
                        [12]: var113_upvw (copied, read and write)
                        [13]: var114_upvw (copied, read and write)
                        [14]: var115_upvw (copied, read and write)
                        [15]: var116_upvw (copied, read and write)
                        [16]: var117_upvw (copied, read and write)
                        [17]: var118_upvw (copied, read and write)
                        [18]: var119_upvw (copied, read and write)
                        [19]: var120_upvw (copied, read and write)
                        [20]: var121_upvw (copied, read and write)
                        [21]: var122_upvw (copied, read and write)
                        [22]: var123_upvw (copied, read and write)
                        [23]: var124_upvw (copied, read and write)
                        [24]: var125_upvw (copied, read and write)
                        [25]: var126_upvw (copied, read and write)
                        [26]: var127_upvw (copied, read and write)
                        [27]: var128_upvw (copied, read and write)
                        [28]: var129_upvw (copied, read and write)
                        [29]: var130_upvw (copied, read and write)
                        [30]: var131_upvw (copied, read and write)
                        [31]: var132_upvw (copied, read and write)
                        [32]: var133_upvw (copied, read and write)
                        [33]: var134_upvw (copied, read and write)
                        [34]: var135_upvw (copied, read and write)
                        [35]: var136_upvw (copied, read and write)
                        [36]: var137_upvw (copied, read and write)
                        [37]: var138_upvw (copied, read and write)
                        [38]: var139_upvw (copied, read and write)
                        [39]: var140_upvw (copied, read and write)
                        [40]: var141_upvw (copied, read and write)
                        [41]: var142_upvw (copied, read and write)
                        [42]: var143_upvw (copied, read and write)
                        [43]: var144_upvw (copied, read and write)
                        [44]: var145_upvw (copied, read and write)
                        [45]: var146_upvw (copied, read and write)
                        [46]: var147_upvw (copied, read and write)
                        [47]: var148_upvw (copied, read and write)
                        [48]: var149_upvw (copied, read and write)
                        [49]: var150_upvw (copied, read and write)
                        [50]: var151_upvw (copied, read and write)
                        [51]: var152_upvw (copied, read and write)
                        [52]: var153_upvw (copied, read and write)
                    ]]
                    for i_5 = 1, var93_upvw * 1000 do
                        var103_upvw += 1e+57
                        var104_upvw += 1e+57
                        var105_upvw += 1e+57
                        var106_upvw += 1e+57
                        var107_upvw += 1e+57
                        var108_upvw += 1e+57
                        var109_upvw += 1e+57
                        var110_upvw += 1e+57
                        var111_upvw += 1e+57
                        var112_upvw += 1e+57
                        var113_upvw += 1e+57
                        var114_upvw += 1e+57
                        var115_upvw += 1e+57
                        var116_upvw += 1e+57
                        var117_upvw += 1e+57
                        var118_upvw += 1e+57
                        var119_upvw += 1e+57
                        var120_upvw += 1e+57
                        var121_upvw += 1e+57
                        var122_upvw += 1e+57
                        var123_upvw += 1e+57
                        var124_upvw += 1e+57
                        var125_upvw += 1e+57
                        var126_upvw += 1e+57
                        var127_upvw += 1e+57
                        var128_upvw += 1e+57
                        var129_upvw += 1e+57
                        var130_upvw += 1e+57
                        var131_upvw += 1e+57
                        var132_upvw += 1e+57
                        var133_upvw += 1e+57
                        var134_upvw += 1e+57
                        var135_upvw += 1e+57
                        var136_upvw += 1e+57
                        var137_upvw += 1e+57
                        var138_upvw += 1e+57
                        var139_upvw += 1e+57
                        var140_upvw += 1e+57
                        var141_upvw += 1e+57
                        var142_upvw += 1e+57
                        var143_upvw += 1e+57
                        var144_upvw += 1e+57
                        var145_upvw += 1e+57
                        var146_upvw += 1e+57
                        var147_upvw += 1e+57
                        var148_upvw += 1e+57
                        var149_upvw += 1e+57
                        var150_upvw += 1e+57
                        var151_upvw += 1e+57
                        var152_upvw += 1e+57
                        var153_upvw += 1e+57
                        pcall(function() -- Line 675
                            task.defer(function() -- Line 676
                                local randint_upvr = math.random(100, 2000)
                                pcall(function() -- Line 603
                                    --[[ Upvalues[1]:
                                        [1]: randint_upvr (readonly)
                                    ]]
                                    local var164 = ""
                                    for _ = 1, randint_upvr do
                                        var164 = var164..utf8.char(math.random(0, 65535))
                                    end
                                    return var164
                                end)
                                randint_upvr = print
                                randint_upvr(nil)
                            end)
                        end)
                        local var166_upvw = i_5 + 1e+57
                        pcall(function() -- Line 682
                            --[[ Upvalues[52]:
                                [1]: var103_upvw (copied, read and write)
                                [2]: var104_upvw (copied, read and write)
                                [3]: var105_upvw (copied, read and write)
                                [4]: var106_upvw (copied, read and write)
                                [5]: var107_upvw (copied, read and write)
                                [6]: var108_upvw (copied, read and write)
                                [7]: var109_upvw (copied, read and write)
                                [8]: var110_upvw (copied, read and write)
                                [9]: var166_upvw (read and write)
                                [10]: var111_upvw (copied, read and write)
                                [11]: var112_upvw (copied, read and write)
                                [12]: var113_upvw (copied, read and write)
                                [13]: var114_upvw (copied, read and write)
                                [14]: var115_upvw (copied, read and write)
                                [15]: var116_upvw (copied, read and write)
                                [16]: var117_upvw (copied, read and write)
                                [17]: var118_upvw (copied, read and write)
                                [18]: var119_upvw (copied, read and write)
                                [19]: var120_upvw (copied, read and write)
                                [20]: var121_upvw (copied, read and write)
                                [21]: var122_upvw (copied, read and write)
                                [22]: var123_upvw (copied, read and write)
                                [23]: var124_upvw (copied, read and write)
                                [24]: var125_upvw (copied, read and write)
                                [25]: var126_upvw (copied, read and write)
                                [26]: var127_upvw (copied, read and write)
                                [27]: var128_upvw (copied, read and write)
                                [28]: var129_upvw (copied, read and write)
                                [29]: var130_upvw (copied, read and write)
                                [30]: var131_upvw (copied, read and write)
                                [31]: var132_upvw (copied, read and write)
                                [32]: var133_upvw (copied, read and write)
                                [33]: var134_upvw (copied, read and write)
                                [34]: var135_upvw (copied, read and write)
                                [35]: var136_upvw (copied, read and write)
                                [36]: var137_upvw (copied, read and write)
                                [37]: var138_upvw (copied, read and write)
                                [38]: var139_upvw (copied, read and write)
                                [39]: var140_upvw (copied, read and write)
                                [40]: var141_upvw (copied, read and write)
                                [41]: var142_upvw (copied, read and write)
                                [42]: var143_upvw (copied, read and write)
                                [43]: var144_upvw (copied, read and write)
                                [44]: var145_upvw (copied, read and write)
                                [45]: var146_upvw (copied, read and write)
                                [46]: var147_upvw (copied, read and write)
                                [47]: var148_upvw (copied, read and write)
                                [48]: var149_upvw (copied, read and write)
                                [49]: var150_upvw (copied, read and write)
                                [50]: var151_upvw (copied, read and write)
                                [51]: var152_upvw (copied, read and write)
                                [52]: var153_upvw (copied, read and write)
                            ]]
                            print(var103_upvw, var104_upvw, var105_upvw, var106_upvw, var107_upvw, var108_upvw, var109_upvw, var110_upvw, var166_upvw, var111_upvw, var112_upvw, var113_upvw, var114_upvw, var115_upvw, var116_upvw, var117_upvw, var118_upvw, var119_upvw, var120_upvw, var121_upvw, var122_upvw, var123_upvw, var124_upvw, var125_upvw, var126_upvw, var127_upvw, var128_upvw, var129_upvw, var130_upvw, var131_upvw, var132_upvw, var133_upvw, var134_upvw, var135_upvw, var136_upvw, var137_upvw, var138_upvw, var139_upvw, var140_upvw, var141_upvw, var142_upvw, var143_upvw, var144_upvw, var145_upvw, var146_upvw, var147_upvw, var148_upvw, var149_upvw, var150_upvw, var151_upvw, var152_upvw, var153_upvw)
                        end)
                    end
                end)
            end)
            task.wait()
        end
    end)
end
local tbl_7_upvr = {}
local var168_upvr = "func_239473481"..math.random(0, 9).."163103"
tbl_7_upvr[var168_upvr] = function(arg1, arg2) -- Line 697
    --[[ Upvalues[1]:
        [1]: module_upvr_2 (readonly)
    ]]
    local RaycastParams_new_result1 = RaycastParams.new()
    RaycastParams_new_result1.FilterDescendantsInstances = {module_upvr_2.character, workspace.pitch, workspace.game, workspace.spawns}
    RaycastParams_new_result1.FilterType = Enum.RaycastFilterType.Exclude
    local workspace_Raycast_result1 = workspace:Raycast(Vector3.new(arg1.Position.X, arg2.Position.Y, arg1.Position.Z), module_upvr_2.character.HumanoidRootPart.CFrame.LookVector * 4, RaycastParams_new_result1)
    if workspace_Raycast_result1 and _G._services.Players:GetPlayerFromCharacter(workspace_Raycast_result1.Instance.Parent) and workspace_Raycast_result1.Instance.Name == "Shield" then
        return false
    end
    return true
end
function module_upvr_2.overlapCheck(arg1, arg2, arg3, arg4, arg5) -- Line 717
    --[[ Upvalues[2]:
        [1]: module_upvr_2 (readonly)
        [2]: tbl_13_upvr (readonly)
    ]]
    if arg4 then
        return true
    end
    local OverlapParams_new_result1_3 = OverlapParams.new()
    OverlapParams_new_result1_3.FilterDescendantsInstances = {module_upvr_2.character, workspace.pitch, workspace.game.regions}
    OverlapParams_new_result1_3.FilterType = Enum.RaycastFilterType.Exclude
    for _, v_3 in pairs(tbl_13_upvr) do
        for i_8, v_4 in pairs(module_upvr_2.originalLimbSizes) do
            if v_3 == i_8 then
                for _, v_5 in workspace:GetPartBoundsInBox(arg2.CFrame, Vector3.new(v_4[1], v_4[2], v_4[3]) * Vector3.new(1.10000, 1.10000, 1.10000), OverlapParams_new_result1_3) do
                    if v_5 and v_5:GetAttribute("possessor") and v_5 == arg3 then
                        return true
                    end
                end
            end
        end
    end
    return false
end
local function _(arg1, arg2, arg3) -- Line 741, Named "lerp"
    return arg1 + (arg2 - arg1) * arg3
end
local function cancelMovement(arg1, arg2, arg3) -- Line 745
    --[[ Upvalues[2]:
        [1]: module_upvr_2 (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    local HumanoidRootPart_5_upvr = module_upvr_2.character:WaitForChild("HumanoidRootPart", 100)
    local function movementCancellation_upvr(arg1_2, ...) -- Line 748, Named "movementCancellation"
        --[[ Upvalues[3]:
            [1]: arg1 (readonly)
            [2]: HumanoidRootPart_5_upvr (readonly)
            [3]: arg3 (readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 27 start (CF ANALYSIS FAILED)
        local var197
        if arg1_2 then
            local var198 = arg1
            var198.Velocity *= 0
            return
        end
        local args_list = {...}
        if not ... then
            var197 = workspace
            table.insert(args_list, var197.pitch)
        end
        local RaycastParams_new_result1_2 = RaycastParams.new()
        local tbl_5 = {}
        var197 = args_list
        tbl_5[1] = table.unpack(var197)
        RaycastParams_new_result1_2.FilterDescendantsInstances = tbl_5
        RaycastParams_new_result1_2.FilterType = Enum.RaycastFilterType.Include
        local var202_upvw = Vector3.new(1, 1, 1)
        var197 = arg1
        var197 = next
        for _, v_6_upvr in var197, {'X', 'Y', 'Z'} do
            if workspace:Raycast(HumanoidRootPart_5_upvr.Position, var197.Velocity * Vector3.FromAxis(v_6_upvr), RaycastParams_new_result1_2) then
                task.spawn(function() -- Line 770
                    --[[ Upvalues[2]:
                        [1]: var202_upvw (read and write)
                        [2]: v_6_upvr (readonly)
                    ]]
                    var202_upvw -= Vector3.FromAxis(v_6_upvr)
                end)
            end
        end
        var197 = arg3
        if var197 then
            var197 = arg3
            var197(false, var202_upvw)
            -- KONSTANTWARNING: GOTO [95] #69
        end
        -- KONSTANTERROR: [0] 1. Error Block 27 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [89] 65. Error Block 24 start (CF ANALYSIS FAILED)
        var197 = arg1
        var197.Velocity *= var202_upvw
        if var202_upvw ~= Vector3.new(1, 1, 1) then
            var197 = false
        else
            var197 = true
        end
        do
            return var197
        end
        -- KONSTANTERROR: [89] 65. Error Block 24 end (CF ANALYSIS FAILED)
    end
    for _, v_7 in pairs(module_upvr_2.character:GetChildren()) do
        if v_7:IsA("BasePart") and v_7.CanCollide then
            local any_new_result1_upvr_7 = any_load_result1_upvr.new()
            local function onTouched(arg1_3) -- Line 789
                --[[ Upvalues[3]:
                    [1]: module_upvr_2 (copied, readonly)
                    [2]: any_new_result1_upvr_7 (readonly)
                    [3]: movementCancellation_upvr (readonly)
                ]]
                if module_upvr_2:isSolidObject(arg1_3) then
                    any_new_result1_upvr_7:DoCleaning()
                    movementCancellation_upvr(false, arg1_3)
                end
            end
            any_new_result1_upvr_7.onTouched = v_7.Touched:Connect(onTouched)
            any_new_result1_upvr_7.onTouchEnded = v_7.TouchEnded:Connect(onTouched)
        end
    end
    function module_upvr_2.cancelMovement() -- Line 801
        --[[ Upvalues[2]:
            [1]: movementCancellation_upvr (readonly)
            [2]: module_upvr_2 (copied, readonly)
        ]]
        movementCancellation_upvr(true)
        function module_upvr_2.cancelMovement() -- Line 803
        end
    end
end
function module_upvr_2.getBall(arg1, arg2) -- Line 807
    local Part = Instance.new("Part")
    Part.Transparency = 1
    Part.Name = "RF"
    Part.Size = Vector3.new(1.75, 1.75, 1.75)
    Part.Shape = Enum.PartType.Ball
    Part.Parent = workspace.game
    Part:SetAttribute("lastTouch", 0)
    Part:SetAttribute("network", 0)
    Part:SetAttribute("networkOwner", 0)
    Part:SetAttribute("possessor", 0)
    Part.CollisionGroup = "1_balls"
    Part.CanCollide = false
    Part.Position = arg2
    Instance.new("Folder", Part).Name = "design"
    Instance.new("Folder", Part).Name = "network"
    Instance.new("Folder", Part).Name = "properties"
    Instance.new("Folder", Part).Name = "replication"
    Instance.new("Attachment", Part).Name = "centre"
    Instance.new("VectorForce", Part).Name = "gravity"
    Instance.new("BodyGyro", Part).Name = "friction"
    return Part
end
function module_upvr_2.relativeMoveDirection(arg1, arg2, arg3, arg4) -- Line 839
    if arg3 ~= nil then
        local LookVector = arg4.CFrame.LookVector
        local RightVector_3 = arg4.CFrame.RightVector
        local any_Dot_result1_2 = LookVector:Dot(arg3, LookVector)
        local any_Dot_result1 = RightVector_3:Dot(arg3, RightVector_3)
        if any_Dot_result1_2 <= 1 and 0.75 <= any_Dot_result1_2 then
            return "Front"
        end
        if -1 <= any_Dot_result1_2 and any_Dot_result1_2 <= -0.75 then
            return "Back"
        end
        if any_Dot_result1 <= 1 and 0.75 <= any_Dot_result1 then
            return "Right"
        end
        if -1 <= any_Dot_result1 and any_Dot_result1 <= -0.75 then
            return "Left"
        end
        if any_Dot_result1_2 <= 1 and 0.5 <= any_Dot_result1_2 and any_Dot_result1 <= 1 and 0.5 <= any_Dot_result1 then
            return "FrontRight"
        end
        if any_Dot_result1_2 <= 1 and 0.5 <= any_Dot_result1_2 and -1 <= any_Dot_result1 and any_Dot_result1 <= -0.5 then
            return "FrontLeft"
        end
        if -1 <= any_Dot_result1_2 and any_Dot_result1_2 <= -0.5 and any_Dot_result1 <= 1 and 0.5 <= any_Dot_result1 then
            return "BackRight"
        end
        if -1 <= any_Dot_result1_2 and any_Dot_result1_2 <= -0.5 and -1 <= any_Dot_result1 and any_Dot_result1 <= -0.5 then
            return "BackLeft"
        end
        return "Idle"
    end
end
function module_upvr_2.tools(arg1, arg2) -- Line 873
    --[[ Upvalues[13]:
        [1]: mobile_upvr (readonly)
        [2]: module_upvr (readonly)
        [3]: getEffectiveInputMethod_upvr (readonly)
        [4]: main_upvr (readonly)
        [5]: Services_upvr (readonly)
        [6]: LocalPlayer_upvr (readonly)
        [7]: any_load_result1_upvr_2 (readonly)
        [8]: References_upvr (readonly)
        [9]: any_load_result1_upvr_8 (readonly)
        [10]: any_new_result1_upvr_6 (readonly)
        [11]: any_load_result1_upvr (readonly)
        [12]: gamepad_upvr (readonly)
        [13]: menu_upvr_2 (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 185 start (CF ANALYSIS FAILED)
    arg1.maid:DoCleaning()
    for i_12, v_8 in next, arg1.toolData do
        if i_12 and v_8 then
            v_8.activeMaid:DoCleaning()
            v_8.activeController:clear()
        end
    end
    mobile_upvr.contextToggleContainer.contextActionLegButton.actionTitle.Text = script:GetAttribute("currentFoot")
    table.clear(arg1.toolData)
    -- KONSTANTERROR: [0] 1. Error Block 185 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [60] 40. Error Block 7 start (CF ANALYSIS FAILED)
    module_upvr:clear()
    module_upvr:init()
    -- KONSTANTERROR: [60] 40. Error Block 7 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 8 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 8 end (CF ANALYSIS FAILED)
end
function module_upvr_2.initializeGamepadBindings(arg1) -- Line 1846
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    while not References_upvr.Profile:GetAttribute("Loaded") and tick() - tick() <= 5 do
        task.wait()
    end
    if not References_upvr.Profile:GetAttribute("Loaded") then
        warn("Root: Profile not loaded, skipping gamepad bindings initialization")
    else
        arg1.gamepadBinds.initialized = true
        print("Root: Gamepad bindings initialized from profile template")
    end
end
function module_upvr_2.getGamepadBinding(arg1, arg2, arg3, arg4) -- Line 1864
    --[[ Upvalues[1]:
        [1]: References_upvr (readonly)
    ]]
    if not References_upvr.Profile:GetAttribute("Loaded") or not arg1.gamepadBinds.initialized then
        if arg4 and arg1.gamepadKeymap[arg4] then
            for i_13, v_9 in pairs(arg1.gamepadKeymap[arg4]) do
                if v_9 == arg3 then
                    return i_13
                end
            end
        end
        return nil
    end
    local SOME_4 = References_upvr.Profile.binds:FindFirstChild(arg2)
    if not SOME_4 then
        return nil
    end
    local SOME = SOME_4:FindFirstChild(arg3.." (Gamepad)")
    if SOME then
        local Value_2 = SOME.Value
        if Enum.KeyCode[Value_2] then
            return Enum.KeyCode[Value_2]
        end
    end
    return nil
end
local menu_upvr = References_upvr.PlayerGui:WaitForChild("menu", 100)
local bootstrapper_upvr = References_upvr.PlayerGui:WaitForChild("bootstrapper", 100)
local any_load_result1_upvr_5 = _engine:load("CoreMethods", "utils")
local MouseLockController_upvr = LocalPlayer_upvr.PlayerScripts:WaitForChild("PlayerModule", 100).CameraModule.MouseLockController
function module_upvr_2.init(arg1, arg2, arg3) -- Line 1896
    --[[ Upvalues[20]:
        [1]: module_upvr_2 (readonly)
        [2]: module_upvr_3 (readonly)
        [3]: tbl_13_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
        [5]: LocalPlayer_upvr (readonly)
        [6]: main_upvr (readonly)
        [7]: References_upvr (readonly)
        [8]: menu_upvr (readonly)
        [9]: module_upvr (readonly)
        [10]: mobile_upvr (readonly)
        [11]: bootstrapper_upvr (readonly)
        [12]: Services_upvr (readonly)
        [13]: getEffectiveInputMethod_upvr (readonly)
        [14]: gamepad_upvr (readonly)
        [15]: updateLookAngleAttribute_upvr (readonly)
        [16]: any_load_result1_upvr_5 (readonly)
        [17]: MouseLockController_upvr (readonly)
        [18]: any_load_result1_upvr_8 (readonly)
        [19]: menu_upvr_2 (readonly)
        [20]: any_new_result1_upvr_6 (readonly)
    ]]
    module_upvr_2.settingsConfig = module_upvr_3
    module_upvr_2.originalLimbSizes = {}
    local function characterAdded(arg1_4) -- Line 1901
        --[[ Upvalues[15]:
            [1]: tbl_13_upvr (copied, readonly)
            [2]: arg1 (readonly)
            [3]: any_new_result1_upvr (copied, readonly)
            [4]: LocalPlayer_upvr (copied, readonly)
            [5]: main_upvr (copied, readonly)
            [6]: module_upvr_2 (copied, readonly)
            [7]: References_upvr (copied, readonly)
            [8]: menu_upvr (copied, readonly)
            [9]: module_upvr (copied, readonly)
            [10]: mobile_upvr (copied, readonly)
            [11]: bootstrapper_upvr (copied, readonly)
            [12]: Services_upvr (copied, readonly)
            [13]: getEffectiveInputMethod_upvr (copied, readonly)
            [14]: gamepad_upvr (copied, readonly)
            [15]: updateLookAngleAttribute_upvr (copied, readonly)
        ]]
        if not arg1_4 or not arg1_4.Name then
            local const_string_upvr = "UnknownCharacter"
        end
        for i_14, v_10 in pairs(_G._services.StarterPlayer.StarterCharacter:GetChildren()) do
            if v_10:IsA("BasePart") then
                for var430, var429 in pairs(tbl_13_upvr) do
                    if string.match(v_10.Name, var429) then
                        arg1.originalLimbSizes[v_10.Name] = {v_10.Size.X, v_10.Size.Y, v_10.Size.Z}
                    end
                end
            end
        end
        if arg1.character and arg1.character == arg1_4 then
        else
            local tbl_8 = {}
            i_14 = "Humanoid"
            v_10 = "HumanoidRootPart"
            tbl_8[1] = i_14
            tbl_8[2] = v_10
            for _, v_26 in next, tbl_8 do
                while not arg1_4:FindFirstChild(v_26) do
                    task.wait()
                end
            end
            local Humanoid_2 = arg1_4:WaitForChild("Humanoid", 100)
            while not Humanoid_2:FindFirstChild("Animator") do
                task.wait()
            end
            Humanoid_2:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
            Humanoid_2:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
            Humanoid_2:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
            Humanoid_2:SetStateEnabled(Enum.HumanoidStateType.GettingUp, false)
            task.spawn(function() -- Line 1937
                --[[ Upvalues[1]:
                    [1]: arg1_4 (readonly)
                ]]
                task.wait(1)
                arg1_4:WaitForChild("Collide", 100).CollisionGroup = "3_torso"
                arg1_4:WaitForChild("Torso", 100).CollisionGroup = "3_torso"
                arg1_4:WaitForChild("PostCollider", 100).CollisionGroup = "16_postCollider"
                arg1_4:WaitForChild("Ball", 100).CollisionGroup = "8_fakeBall"
            end)
            if arg1.holding.ball and arg1.holding.ball.Parent then
                local any_getClientBall_result1_2 = arg1:getClientBall(arg1.holding.ball)
                if any_getClientBall_result1_2.design:FindFirstChildWhichIsA("BasePart") then
                    any_getClientBall_result1_2.design:FindFirstChildWhichIsA("BasePart").Transparency = 0
                end
                var430 = arg1
                any_new_result1_upvr:send("ballModel", var430.holding.ball, 0)
            end
            arg1.holding.maid:DoCleaning()
            arg1.holding.ball = nil
            arg1.holding.animation = nil
            arg1.holding.session = nil
            script:SetAttribute("catchCooldown", false)
            if LocalPlayer_upvr.UserId ~= 206130108 and LocalPlayer_upvr.UserId ~= 2731804921 then
                Humanoid_2:SetStateEnabled(Enum.HumanoidStateType.Swimming, false)
            end
            local OverlapParams_new_result1_2 = OverlapParams.new()
            OverlapParams_new_result1_2.FilterType = Enum.RaycastFilterType.Include
            ;({})[1] = arg1_4
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            OverlapParams_new_result1_2.FilterDescendantsInstances = {}
            var430 = _G
            main_upvr.selection.Visible = var430._references.Main.config.Countdown:GetAttribute("enabled")
            var429 = _G._references
            var430 = var429.Main
            main_upvr.selection.timer.Text = tostring(var430.config.Countdown.Value)
            arg1.overlapParams = OverlapParams_new_result1_2
            arg1.character = arg1_4
            arg1.humanoid = Humanoid_2
            arg1.animator = Humanoid_2:WaitForChild("Animator", 100)
            task.spawn(function() -- Line 1978
                --[[ Upvalues[3]:
                    [1]: module_upvr_2 (copied, readonly)
                    [2]: arg1 (copied, readonly)
                    [3]: const_string_upvr (readonly)
                ]]
                local pcall_result1_3, pcall_result2_9 = pcall(function() -- Line 1979
                    --[[ Upvalues[2]:
                        [1]: module_upvr_2 (copied, readonly)
                        [2]: arg1 (copied, readonly)
                    ]]
                    if _G._references and _G._references.Main and _G._references.Main.animations and _G._references.Main.animations.Tools then
                        local Tools_3 = _G._references.Main.animations.Tools
                        for _, v_27 in ipairs(module_upvr_2.toolOrder) do
                            if module_upvr_2.mobileTools[v_27] and Tools_3:FindFirstChild(v_27) then
                                for _, v_28 in ipairs(module_upvr_2.mobileTools[v_27]) do
                                    local SOME_2_upvr = Tools_3[v_27]:FindFirstChild(v_28)
                                    if SOME_2_upvr and SOME_2_upvr:IsA("Animation") then
                                        local pcall_result1_25, pcall_result2_29 = pcall(function() -- Line 1989
                                            --[[ Upvalues[2]:
                                                [1]: arg1 (copied, readonly)
                                                [2]: SOME_2_upvr (readonly)
                                            ]]
                                            return arg1.animator:LoadAnimation(SOME_2_upvr)
                                        end)
                                        if not pcall_result1_25 then
                                            warn("Failed to preload animation:", v_27, v_28, pcall_result2_29)
                                        end
                                    end
                                end
                            end
                        end
                    else
                        warn("Animation structure _G._references.Main.animations.Tools not found for preloading.")
                    end
                end)
                if not pcall_result1_3 then
                    warn("Root: characterAdded - ERROR in Preload Tool Animations task.spawn for char: "..const_string_upvr..": "..tostring(pcall_result2_9))
                end
            end)
            if References_upvr.PlayerGui:WaitForChild("region", 100) and References_upvr.PlayerGui:WaitForChild("region", 100):WaitForChild("region", 100) then
                var429 = References_upvr.Main.config.Region
                var430 = var429.Value
                -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                References_upvr.PlayerGui:WaitForChild("region", 100):WaitForChild("region", 100).Text = "Real Futbol 24 ? "..string.upper(var430)
            end
            var430 = 'R'
            script:SetAttribute("currentFoot", var430)
            var430 = false
            script:SetAttribute("globalOverride", var430)
            var430 = false
            script:SetAttribute("charging", var430)
            var430 = false
            script:SetAttribute("ragdoll", var430)
            local pcall_result1_8, pcall_result2_25 = pcall(function() -- Line 2022
                --[[ Upvalues[1]:
                    [1]: menu_upvr (copied, readonly)
                ]]
                for _, v_29 in next, menu_upvr:GetDescendants() do
                    if v_29:FindFirstChildWhichIsA("UIScale") and v_29:FindFirstChild("scaleable") then
                        if workspace.CurrentCamera then
                            v_29:FindFirstChildWhichIsA("UIScale").Scale = 0.5 + (0.7) * (math.clamp(workspace.CurrentCamera.ViewportSize.Y - 374, 0, 705) / 705)
                        else
                            warn("Root: characterAdded - Menu scaling skipped, CurrentCamera not available.")
                        end
                    end
                end
            end)
            if not pcall_result1_8 then
                var430 = "Root: characterAdded - Error during menu UI scaling:"
                var429 = pcall_result2_25
                warn(var430, var429)
            end
            arg1:tools()
            var430 = LocalPlayer_upvr
            if var430.Team then
                var429 = LocalPlayer_upvr
                var430 = var429.Team
                if var430.Name == "Referee" then
                    if module_upvr then
                        module_upvr:clear()
                    end
                    var430 = 0.5
                    function var429() -- Line 2050
                        --[[ Upvalues[4]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: References_upvr (copied, readonly)
                            [3]: arg1 (copied, readonly)
                            [4]: module_upvr (copied, readonly)
                        ]]
                        -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 2 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [4] 4. Error Block 2 end (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [118] 82. Error Block 19 start (CF ANALYSIS FAILED)
                        -- KONSTANTERROR: [118] 82. Error Block 19 end (CF ANALYSIS FAILED)
                    end
                    task.delay(var430, var429)
                end
            end
            function var430() -- Line 2101
                --[[ Upvalues[3]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                    [2]: any_new_result1_upvr (copied, readonly)
                    [3]: const_string_upvr (readonly)
                ]]
                local pcall_result1_24, pcall_result2_18 = pcall(function() -- Line 2102
                    --[[ Upvalues[3]:
                        [1]: LocalPlayer_upvr (copied, readonly)
                        [2]: any_new_result1_upvr (copied, readonly)
                        [3]: const_string_upvr (copied, readonly)
                    ]]
                    task.delay(2, function() -- Line 2103
                        --[[ Upvalues[3]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: any_new_result1_upvr (copied, readonly)
                            [3]: const_string_upvr (copied, readonly)
                        ]]
                        local pcall_result1_10, pcall_result2_28 = pcall(function() -- Line 2104
                            --[[ Upvalues[2]:
                                [1]: LocalPlayer_upvr (copied, readonly)
                                [2]: any_new_result1_upvr (copied, readonly)
                            ]]
                            if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
                                any_new_result1_upvr:send("gloves", 0)
                            else
                                any_new_result1_upvr:send("gloves", 1)
                            end
                        end)
                        if not pcall_result1_10 then
                            warn("Root: characterAdded - Error INSIDE 'gloves' task.delay function for char: "..const_string_upvr..':', pcall_result2_28)
                        end
                    end)
                end)
                if not pcall_result1_24 then
                    warn("Root: characterAdded - Error sending gloves network call:", pcall_result2_18)
                end
            end
            local pcall_result1_2, pcall_result2_23 = pcall(var430)
            if not pcall_result1_2 then
                var429 = warn
                var429("Root: characterAdded - ERROR in outer_pcall for gloves task for char: "..const_string_upvr..": "..tostring(pcall_result2_23))
            end
            var429 = pcall
            local function var440() -- Line 2156
                --[[ Upvalues[6]:
                    [1]: arg1 (copied, readonly)
                    [2]: main_upvr (copied, readonly)
                    [3]: References_upvr (copied, readonly)
                    [4]: menu_upvr (copied, readonly)
                    [5]: mobile_upvr (copied, readonly)
                    [6]: bootstrapper_upvr (copied, readonly)
                ]]
                local pcall_result1_23, pcall_result2_19 = pcall(function() -- Line 2157
                    --[[ Upvalues[6]:
                        [1]: arg1 (copied, readonly)
                        [2]: main_upvr (copied, readonly)
                        [3]: References_upvr (copied, readonly)
                        [4]: menu_upvr (copied, readonly)
                        [5]: mobile_upvr (copied, readonly)
                        [6]: bootstrapper_upvr (copied, readonly)
                    ]]
                    arg1.maid.countdownToggle = _G._references.Main.config.Countdown:GetAttributeChangedSignal("enabled"):Connect(function() -- Line 2158
                        --[[ Upvalues[1]:
                            [1]: main_upvr (copied, readonly)
                        ]]
                        if main_upvr and main_upvr:FindFirstChild("selection") then
                            main_upvr.selection.Visible = _G._references.Main.config.Countdown:GetAttribute("enabled")
                        else
                            warn("Root: characterAdded - main.selection not found for countdown toggle.")
                        end
                    end)
                    arg1.maid.countdownChanged = _G._references.Main.config.Countdown.Changed:Connect(function() -- Line 2166
                        --[[ Upvalues[1]:
                            [1]: main_upvr (copied, readonly)
                        ]]
                        if main_upvr and main_upvr:FindFirstChild("selection") and main_upvr.selection:FindFirstChild("timer") then
                            main_upvr.selection.timer.Text = tostring(_G._references.Main.config.Countdown.Value)
                        else
                            warn("Root: characterAdded - main.selection.timer not found for countdown change.")
                        end
                    end)
                    arg1.maid.regionChanged = References_upvr.Main.config.Region.Changed:Connect(function() -- Line 2174
                        --[[ Upvalues[1]:
                            [1]: References_upvr (copied, readonly)
                        ]]
                        local var446 = References_upvr.PlayerGui:FindFirstChild("region")
                        if var446 then
                            var446 = References_upvr.PlayerGui:FindFirstChild("region"):FindFirstChild("region")
                        end
                        if var446 then
                            var446.Text = "RF24 BETA "..string.upper(References_upvr.Main.config.Region.Value)
                        else
                            warn("Root: characterAdded - Region label not found.")
                        end
                    end)
                    arg1.maid.viewportSizeChanged = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function() -- Line 2184
                        --[[ Upvalues[5]:
                            [1]: menu_upvr (copied, readonly)
                            [2]: mobile_upvr (copied, readonly)
                            [3]: main_upvr (copied, readonly)
                            [4]: arg1 (copied, readonly)
                            [5]: bootstrapper_upvr (copied, readonly)
                        ]]
                        if not workspace.CurrentCamera then
                            warn("Root: characterAdded - ViewportSizeChanged skipped, CurrentCamera not available.")
                        else
                            if menu_upvr then
                                for i_36, v_31 in next, menu_upvr:GetDescendants() do
                                    if v_31:FindFirstChildWhichIsA("UIScale") and v_31:FindFirstChild("scaleable") then
                                        v_31:FindFirstChildWhichIsA("UIScale").Scale = 0.5 + (0.7) * (math.clamp(workspace.CurrentCamera.ViewportSize.Y - 374, 0, 705) / 705)
                                    end
                                end
                            else
                                warn("Root: characterAdded - Menu not found for viewport size scaling.")
                            end
                            if mobile_upvr and mobile_upvr:FindFirstChild("contextTabContainer") and mobile_upvr.contextTabContainer:FindFirstChild("UIScale") then
                                i_36 = workspace
                                if 1000 <= i_36.CurrentCamera.ViewportSize.Magnitude then
                                    i_36 = 0.5
                                    mobile_upvr.contextTabContainer.AnchorPoint = Vector2.new(1, i_36)
                                    i_36 = 0
                                    v_31 = 0.5
                                    mobile_upvr.contextTabContainer.Position = UDim2.new(1, i_36, v_31, 0)
                                    mobile_upvr.contextTabContainer.UIScale.Scale = 1.25
                                    -- KONSTANTWARNING: GOTO [126] #93
                                end
                            elseif mobile_upvr then
                                warn("Root: characterAdded - mobile.contextTabContainer or its UIScale not found.")
                            end
                            if main_upvr then
                                for _, v_32 in next, main_upvr:GetDescendants() do
                                    if v_32:FindFirstChildWhichIsA("UIScale") and v_32:FindFirstChild("scaleable") then
                                        local min = arg1.viewportSize.scale.min
                                        v_32:FindFirstChildWhichIsA("UIScale").Scale = min + (arg1.viewportSize.scale.max - min) * (math.clamp(workspace.CurrentCamera.ViewportSize.Magnitude - arg1.viewportSize.size.min, 0, arg1.viewportSize.size.max) / (arg1.viewportSize.size.max - arg1.viewportSize.size.min))
                                    end
                                end
                            else
                                warn("Root: characterAdded - Main GUI not found for viewport size scaling.")
                            end
                            if bootstrapper_upvr then
                                for _, v_33 in next, bootstrapper_upvr:GetDescendants() do
                                    if v_33:FindFirstChildWhichIsA("UIScale") and v_33:FindFirstChild("scaleable") then
                                        local var461 = arg1.viewportSize.scale.min - 0.1
                                        v_33:FindFirstChildWhichIsA("UIScale").Scale = var461 + (arg1.viewportSize.scale.max - var461) * (math.clamp(workspace.CurrentCamera.ViewportSize.Magnitude - arg1.viewportSize.size.min, 0, arg1.viewportSize.size.max) / (arg1.viewportSize.size.max - arg1.viewportSize.size.min))
                                    end
                                end
                                return
                            end
                            warn("Root: characterAdded - Bootstrapper GUI not found for viewport size scaling.")
                        end
                    end)
                end)
                if not pcall_result1_23 then
                    warn("Root: characterAdded - Error during config signal connections:", pcall_result2_19)
                end
            end
            var429 = var429(var440)
            local var429_result1, var429_result2 = var429(var440)
            if not var429_result1 then
                warn("Root: characterAdded - ERROR in outer_pcall for config signals for char: "..const_string_upvr..": "..tostring(var429_result2))
            end
            local pcall_result1_27, pcall_result2_4 = pcall(function() -- Line 2253
                --[[ Upvalues[5]:
                    [1]: arg1 (copied, readonly)
                    [2]: arg1_4 (readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                    [4]: Services_upvr (copied, readonly)
                    [5]: module_upvr_2 (copied, readonly)
                ]]
                arg1.maid.attributeChangedSignal_inBox = function() -- Line 2254
                    --[[ Upvalues[5]:
                        [1]: arg1_4 (copied, readonly)
                        [2]: arg1 (copied, readonly)
                        [3]: LocalPlayer_upvr (copied, readonly)
                        [4]: Services_upvr (copied, readonly)
                        [5]: module_upvr_2 (copied, readonly)
                    ]]
                    local pcall_result1_5, pcall_result2_15 = pcall(function() -- Line 2255
                        --[[ Upvalues[5]:
                            [1]: arg1_4 (copied, readonly)
                            [2]: arg1 (copied, readonly)
                            [3]: LocalPlayer_upvr (copied, readonly)
                            [4]: Services_upvr (copied, readonly)
                            [5]: module_upvr_2 (copied, readonly)
                        ]]
                        if not arg1_4 then
                            warn("Root: attributeChangedSignal_inBox - newCharacter is nil. Skipping inBox connection.")
                        else
                            local any_Connect_result1_upvr_2 = arg1_4:GetAttributeChangedSignal("inBox"):Connect(function() -- Line 2260
                                --[[ Upvalues[5]:
                                    [1]: arg1_4 (copied, readonly)
                                    [2]: arg1 (copied, readonly)
                                    [3]: LocalPlayer_upvr (copied, readonly)
                                    [4]: Services_upvr (copied, readonly)
                                    [5]: module_upvr_2 (copied, readonly)
                                ]]
                                local function INLINED_18() -- Internal function, doesn't exist in bytecode
                                    task.wait(0.5)
                                    return arg1.holding.ball
                                end
                                if not arg1_4:GetAttribute("inBox") and arg1.holding.ball and (LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") or LocalPlayer_upvr.TeamColor == BrickColor.new("Institutional white")) or INLINED_18() then
                                    if LocalPlayer_upvr.Character and LocalPlayer_upvr.Character:FindFirstChildOfClass("Humanoid") and LocalPlayer_upvr.Character.Humanoid:FindFirstChildOfClass("Animator") then
                                        for _, v_34 in next, LocalPlayer_upvr.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
                                            if v_34 and Services_upvr.StarterPlayer and Services_upvr.StarterPlayer.StarterCharacterScripts and Services_upvr.StarterPlayer.StarterCharacterScripts:FindFirstChild("Animate") and not Services_upvr.StarterPlayer.StarterCharacterScripts.Animate:FindFirstChild(v_34.Name, true) then
                                                v_34:Stop(0.1)
                                            end
                                        end
                                    end
                                    module_upvr_2:resetPowerBar()
                                    script:SetAttribute("charging", false)
                                    arg1:drop()
                                end
                            end)
                            arg1.maid:GiveTask(function() -- Line 2280
                                --[[ Upvalues[1]:
                                    [1]: any_Connect_result1_upvr_2 (readonly)
                                ]]
                                if any_Connect_result1_upvr_2 and any_Connect_result1_upvr_2.Connected then
                                    any_Connect_result1_upvr_2:Disconnect()
                                end
                            end)
                        end
                    end)
                    if not pcall_result1_5 then
                        warn("Error connecting to inBox attribute changed signal:", pcall_result2_15)
                    end
                end
                if arg1.maid.attributeChangedSignal_inBox then
                    arg1.maid.attributeChangedSignal_inBox()
                end
                arg1.maid.attributeChangedSignal_inBox = nil
            end)
            if not pcall_result1_27 then
                warn("Root: characterAdded - ERROR in outer_pcall for inBox signal for char: "..const_string_upvr..": "..tostring(pcall_result2_4))
            end
            arg1.maid.teamChangedSignal = LocalPlayer_upvr:GetPropertyChangedSignal("Team"):Connect(function() -- Line 2298
                --[[ Upvalues[2]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                    [2]: any_new_result1_upvr (copied, readonly)
                ]]
                task.delay(2, function() -- Line 2299
                    --[[ Upvalues[2]:
                        [1]: LocalPlayer_upvr (copied, readonly)
                        [2]: any_new_result1_upvr (copied, readonly)
                    ]]
                    local pcall_result1_15, pcall_result2_7 = pcall(function() -- Line 2300
                        --[[ Upvalues[2]:
                            [1]: LocalPlayer_upvr (copied, readonly)
                            [2]: any_new_result1_upvr (copied, readonly)
                        ]]
                        if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
                            any_new_result1_upvr:send("gloves", 0)
                        else
                            any_new_result1_upvr:send("gloves", 1)
                        end
                    end)
                    if not pcall_result1_15 then
                        warn("Root: characterAdded - Error in teamChangedSignal task.delay for gloves: "..tostring(pcall_result2_7))
                    end
                end)
            end)
            local pcall_result1_28, pcall_result2_20 = pcall(function() -- Line 2313
                --[[ Upvalues[7]:
                    [1]: getEffectiveInputMethod_upvr (copied, readonly)
                    [2]: mobile_upvr (copied, readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                    [4]: main_upvr (copied, readonly)
                    [5]: arg1 (copied, readonly)
                    [6]: bootstrapper_upvr (copied, readonly)
                    [7]: gamepad_upvr (copied, readonly)
                ]]
                local pcall_result1_29, pcall_result2_21 = pcall(function() -- Line 2314
                    --[[ Upvalues[7]:
                        [1]: getEffectiveInputMethod_upvr (copied, readonly)
                        [2]: mobile_upvr (copied, readonly)
                        [3]: LocalPlayer_upvr (copied, readonly)
                        [4]: main_upvr (copied, readonly)
                        [5]: arg1 (copied, readonly)
                        [6]: bootstrapper_upvr (copied, readonly)
                        [7]: gamepad_upvr (copied, readonly)
                    ]]
                    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
                    local getEffectiveInputMethod_result1 = getEffectiveInputMethod_upvr()
                    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [367] 254. Error Block 53 start (CF ANALYSIS FAILED)
                    warn("Root: characterAdded - workspace.CurrentCamera not found for bootstrapper UI scaling.")
                    do
                        return
                    end
                    -- KONSTANTERROR: [367] 254. Error Block 53 end (CF ANALYSIS FAILED)
                    -- KONSTANTERROR: [372] 258. Error Block 72 start (CF ANALYSIS FAILED)
                    if getEffectiveInputMethod_result1 == "Controller" then
                        if gamepad_upvr then
                            gamepad_upvr.Visible = true
                            return
                        end
                        warn("Root: characterAdded - Gamepad UI not found.")
                    end
                    -- KONSTANTERROR: [372] 258. Error Block 72 end (CF ANALYSIS FAILED)
                end)
                if not pcall_result1_29 then
                    warn("Root: characterAdded - Error during mobile/gamepad UI setup:", pcall_result2_21)
                end
            end)
            if not pcall_result1_28 then
                warn("Root: characterAdded - ERROR in outer_pcall for UI setup for char: "..const_string_upvr..": "..tostring(pcall_result2_20))
            end
            local pcall_result1_22, pcall_result2_12 = pcall(function() -- Line 2408
                --[[ Upvalues[3]:
                    [1]: arg1 (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: updateLookAngleAttribute_upvr (copied, readonly)
                ]]
                local pcall_result1_9, pcall_result2_2 = pcall(function() -- Line 2409
                    --[[ Upvalues[3]:
                        [1]: arg1 (copied, readonly)
                        [2]: Services_upvr (copied, readonly)
                        [3]: updateLookAngleAttribute_upvr (copied, readonly)
                    ]]
                    arg1.maid.LookAngleUpdate = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 2410
                        --[[ Upvalues[2]:
                            [1]: updateLookAngleAttribute_upvr (copied, readonly)
                            [2]: arg1 (copied, readonly)
                        ]]
                        updateLookAngleAttribute_upvr(arg1)
                    end)
                end)
                if not pcall_result1_9 then
                    warn("Root: characterAdded - Error connecting LookAngleUpdate:", pcall_result2_2)
                end
            end)
            if not pcall_result1_22 then
                warn("Root: characterAdded - ERROR in outer_pcall for LookAngleUpdate for char: "..const_string_upvr..": "..tostring(pcall_result2_12))
            end
        end
    end
    characterAdded(LocalPlayer_upvr.Character)
    LocalPlayer_upvr.CharacterAdded:Connect(characterAdded)
    script:SetAttribute("rootOffset", Services_upvr.StarterPlayer.StarterCharacter.LowerTorso.CFrame:ToObjectSpace(Services_upvr.StarterPlayer.StarterCharacter.HumanoidRootPart.CFrame))
    any_load_result1_upvr_5:SetCoreGui("SetCore", "ResetButtonCallback", false)
    MouseLockController_upvr.BoundKeys.Value = References_upvr.Profile.binds.Misc["Mouse Lock"].Value
    References_upvr.Profile.binds.Misc["Mouse Lock"].Changed:Connect(function() -- Line 2434
        --[[ Upvalues[2]:
            [1]: MouseLockController_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
        ]]
        MouseLockController_upvr.BoundKeys.Value = References_upvr.Profile.binds.Misc["Mouse Lock"].Value
    end)
    if getEffectiveInputMethod_upvr() == "Controller" then
        task.spawn(function() -- Line 2441
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1:initializeGamepadBindings()
        end)
    end
    Services_upvr.UserInputService.GamepadConnected:Connect(function() -- Line 2447
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if not arg1.gamepadBinds.initialized then
            task.spawn(function() -- Line 2449
                --[[ Upvalues[1]:
                    [1]: arg1 (copied, readonly)
                ]]
                arg1:initializeGamepadBindings()
            end)
        end
    end)
    any_load_result1_upvr_8.BallRemoved:Connect(function(arg1_5) -- Line 2455
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: References_upvr (copied, readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: any_new_result1_upvr (copied, readonly)
        ]]
        if arg1_5 == arg1.holding.ball then
            if arg1.holding.animation then
                arg1.holding.animation:Stop(0.2)
            end
            arg1.holding.maid:DoCleaning()
            arg1.holding.ball = nil
            arg1.holding.animation = nil
            References_upvr.PlayerGui.UI.SixSecond.Visible = false
            if LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart") then
                LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart").Transparency = 1
            end
            any_new_result1_upvr:send("characterBall", 1)
        end
    end)
    Services_upvr.UserInputService.InputBegan:Connect(function(arg1_6, arg2_2) -- Line 2475
        --[[ Upvalues[6]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: menu_upvr_2 (copied, readonly)
            [4]: arg1 (readonly)
            [5]: any_load_result1_upvr_8 (copied, readonly)
            [6]: any_new_result1_upvr_6 (copied, readonly)
        ]]
        -- KONSTANTERROR: [0] 1. Error Block 33 start (CF ANALYSIS FAILED)
        if arg2_2 or Services_upvr.UserInputService:GetFocusedTextBox() then return end
        -- KONSTANTERROR: [0] 1. Error Block 33 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [15] 11. Error Block 6 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [15] 11. Error Block 6 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [19] 13. Error Block 7 start (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [19] 13. Error Block 7 end (CF ANALYSIS FAILED)
    end)
    arg1.maid.characterRemoving = LocalPlayer_upvr.CharacterRemoving:Connect(function(arg1_7) -- Line 2551
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        arg1.maid:DoCleaning()
    end)
end
function module_upvr_2.isSprinting(arg1) -- Line 2558
    return _G._controllers.movementController:getAttribute("sprinting")
end
function module_upvr_2.isAirbourne(arg1) -- Line 2562
    local var506 = true
    if arg1.character.Humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
        if arg1.character.Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
            var506 = false
        else
            var506 = true
        end
    end
    return var506
end
function module_upvr_2.isHolding(arg1) -- Line 2566
    return arg1.holding.ball
end
function module_upvr_2.isSolidObject(arg1, arg2) -- Line 2570
    return table.find(arg1.solidObjects, string.lower(arg2.Name))
end
function module_upvr_2.getLookVector(arg1, arg2) -- Line 2574
    return CFrame.new(Vector3.new(), workspace.CurrentCamera.CFrame.LookVector * Vector3.new(1, 0, 1))
end
function module_upvr_2.getDeflectionVector(arg1, arg2, arg3, arg4) -- Line 2578
    local FromAxis = Vector3.FromAxis
    local var508
    if arg4 then
        var508 = Vector3.new(var508.X, var508.Y, math.clamp(var508.Z, arg1.character.HumanoidRootPart.Position.Z - 1, arg1.character.HumanoidRootPart.Position.Z + 1))
    end
    local var509 = arg2 - var508
    if var509.Magnitude <= 0.00001 then
        return CFrame.new(arg2)
    end
    local Unit_2 = var509.Unit
    local any_Cross_result1 = FromAxis(Enum.Axis.Y):Cross(Unit_2)
    if any_Cross_result1.Magnitude > 0.00001 then
        local Unit = any_Cross_result1.Unit
        return CFrame.fromMatrix(arg2, Unit, Unit_2:Cross(Unit).Unit, Unit_2).LookVector
    end
    if 0 >= Unit_2:Dot(FromAxis(Enum.Axis.Y)) or not CFrame.new(arg2.X, arg2.Y, arg2.Z, 0, 1, 0, 0, 0, 1, 1, 0, 0).LookVector then
        local var513
    end
    if arg4 and (arg1.character.HumanoidRootPart.Position.Z <= -351.32 or 351.242 <= arg1.character.HumanoidRootPart.Position.Z) then
        var513 += arg1.character.HumanoidRootPart.CFrame.LookVector * 10
    end
    return var513
end
function module_upvr_2.getClientBall(arg1, arg2) -- Line 2608
    --[[ Upvalues[1]:
        [1]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    if arg2 and arg2:FindFirstChild("properties") then
        local var570
        if var570 then
            var570 = nil
            for _, v_12 in next, arg2.Parent.Parent:GetChildren() do
                if Services_upvr.CollectionService:HasTag(v_12, "SpawnersFolder") then
                    var570 = v_12
                elseif Services_upvr.CollectionService:HasTag(v_12, "ClientBallsFolder") then
                end
            end
            if var570 and v_12 then
                for _, v_13 in next, var570:GetChildren() do
                    if v_13 and arg2.properties.spawner.Value == v_13 then
                        for _, v_14 in next, v_12:GetChildren() do
                            if v_14 and v_14:FindFirstChild("properties") and v_14.properties:FindFirstChild("spawner") and v_14.properties.spawner.Value == v_13 then
                                return v_14
                            end
                        end
                    end
                end
            end
        end
    end
end
function module_upvr_2.getNearestBall(arg1, arg2) -- Line 2634
    --[[ Upvalues[1]:
        [1]: any_load_result1_upvr_8 (readonly)
    ]]
    local var590
    for _, v_15 in next, any_load_result1_upvr_8.GetBalls(true), nil do
        if v_15 then
            local Magnitude_2 = (v_15.Position - arg1.character.HumanoidRootPart.Position).Magnitude
            if Magnitude_2 <= math.huge and Magnitude_2 <= (arg2 or math.huge) then
            end
        end
    end
    return nil
end
function module_upvr_2.applyFriction(arg1, arg2) -- Line 2655
    --[[ Upvalues[1]:
        [1]: Services_upvr (readonly)
    ]]
    local function onTouched_upvr(arg1_8, arg2_3) -- Line 2656, Named "onTouched"
        --[[ Upvalues[3]:
            [1]: arg2 (readonly)
            [2]: arg1 (readonly)
            [3]: Services_upvr (copied, readonly)
        ]]
        if arg2 or not arg1:isSolidObject(arg1_8) or not arg1_8:FindFirstAncestor("Home") and not arg1_8:FindFirstAncestor("Away") or arg1_8.Name ~= "Grass" and arg1_8.Name ~= "Outer" or arg2 and string.lower(arg1_8.Name) == string.lower(arg2) then
            arg1.friction.maid:DoCleaning()
            for _, v_16 in next, arg1.character:GetDescendants() do
                if v_16:IsA("BodyVelocity") then
                    v_16:Destroy()
                end
            end
            for _, v_17 in next, arg1.character:GetChildren() do
                if v_17:IsA("BasePart") then
                    v_17.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
                    v_17.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
                end
            end
            local BodyVelocity_2 = Instance.new("BodyVelocity", arg1.character.HumanoidRootPart)
            BodyVelocity_2.Velocity = Vector3.new(0, 0, 0)
            BodyVelocity_2.MaxForce = Vector3.new(1, 1, 1) * math.huge
            Services_upvr.Debris:AddItem(BodyVelocity_2, 0.15)
        end
    end
    for _, v_18_upvr in next, arg1.character:GetChildren() do
        if v_18_upvr.Name == "Head" or v_18_upvr.Name == "HumanoidRootPart" or string.find(v_18_upvr.Name, "Torso") or string.find(v_18_upvr.Name, "Arm") or string.find(v_18_upvr.Name, "Hand") then
            for _, v_19 in next, v_18_upvr:GetTouchingParts() do
                onTouched_upvr(v_19, v_18_upvr)
            end
            arg1.friction.maid[v_18_upvr.Name.."touched"] = v_18_upvr.Touched:Connect(function(arg1_9) -- Line 2686
                --[[ Upvalues[2]:
                    [1]: onTouched_upvr (readonly)
                    [2]: v_18_upvr (readonly)
                ]]
                onTouched_upvr(arg1_9, v_18_upvr)
            end)
            arg1.friction.maid[v_18_upvr.Name.."touchEnded"] = v_18_upvr.TouchEnded:Connect(function(arg1_10) -- Line 2690
                --[[ Upvalues[2]:
                    [1]: onTouched_upvr (readonly)
                    [2]: v_18_upvr (readonly)
                ]]
                onTouched_upvr(arg1_10, v_18_upvr)
            end)
        end
    end
end
function module_upvr_2.chargeUp(arg1, arg2) -- Line 2697
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
        [4]: main_upvr (readonly)
    ]]
    local any_new_result1_upvr_3 = any_load_result1_upvr.new()
    if arg1.tween then
        arg1.tween:Cancel()
        arg1.tween = nil
    end
    if arg1.tween2 then
        arg1.tween2:Cancel()
        arg1.tween2 = nil
    end
    script:SetAttribute("charging", true)
    arg1.tween = Services_upvr.TweenService:Create(LocalPlayer_upvr.PlayerGui:WaitForChild("UI", 100).Power.Bar, TweenInfo.new(arg2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Size = UDim2.new(1, 0, 0, 0);
    })
    arg1.tween:Play()
    arg1.tween2 = Services_upvr.TweenService:Create(main_upvr.framework.main.power.bar, TweenInfo.new(arg2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Size = UDim2.new(0, 0, 1, 0);
    })
    arg1.tween2:Play()
    any_new_result1_upvr_3.attributeChanged = script:GetAttributeChangedSignal("charging"):Connect(function() -- Line 2718
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: any_new_result1_upvr_3 (readonly)
        ]]
        if arg1.tween then
            arg1.tween:Pause()
        end
        if arg1.tween2 then
            arg1.tween2:Pause()
        end
        any_new_result1_upvr_3:DoCleaning()
    end)
end
function module_upvr_2.resetPowerBar(arg1) -- Line 2729
    --[[ Upvalues[3]:
        [1]: Services_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: main_upvr (readonly)
    ]]
    if arg1.tween then
        arg1.tween:Cancel()
        arg1.tween = nil
    end
    if arg1.tween2 then
        arg1.tween2:Cancel()
        arg1.tween2 = nil
    end
    Services_upvr.TweenService:Create(LocalPlayer_upvr.PlayerGui:WaitForChild("UI", 100).Power.Bar, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Size = UDim2.new(1, 0, 1, 0);
    }):Play()
    Services_upvr.TweenService:Create(main_upvr.framework.main.power.bar, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Size = UDim2.new(-1, 0, 1, 0);
    }):Play()
end
local any_load_result1_upvr_6 = _engine:load("ParticleEmitter")
function module_upvr_2.grassEffect(arg1, arg2) -- Line 2744
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_6 (readonly)
        [2]: References_upvr (readonly)
    ]]
    any_load_result1_upvr_6:emit(arg2.Position, References_upvr.Main.effects.grass, {
        enum = "lifeTime";
        lifeTime = 0.15;
    })
    if References_upvr.Main.config.Weather.Value == "Rain" then
        any_load_result1_upvr_6:emit(arg2.Position, References_upvr.Main.effects.water, {
            enum = "lifeTime";
            lifeTime = 0.15;
        })
    end
end
function module_upvr_2.grassStain(arg1, arg2) -- Line 2752
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
    ]]
    if References_upvr.Profile.settings.Visual["Grass Stains"].Value then
        any_new_result1_upvr:send("grassStain", arg2)
    end
end
function module_upvr_2.startPitchWear(arg1, arg2) -- Line 2758
    --[[ Upvalues[4]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
    ]]
    local var628 = arg2
    if not var628 then
        var628 = {}
        var628[1] = "LowerTorso"
    end
    local var629 = var628
    for _, v_20 in next, var629 do
        if arg1.character:FindFirstChild(v_20) then
            local var630_upvr = arg1.character[v_20]
            local clone_upvr = References_upvr.Main.effects.wear:Clone()
            clone_upvr.Parent = workspace.game.debug
            clone_upvr.Name = LocalPlayer_upvr.Name.."_wear"
            clone_upvr.CFrame = CFrame.new(Vector3.new(var630_upvr.Position.X, 0.568, var630_upvr.Position.Z)) * (arg1.character.HumanoidRootPart.CFrame - arg1.character.HumanoidRootPart.CFrame.Position)
            arg1.wear.maid[var630_upvr.Name.."_update"] = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 2771
                --[[ Upvalues[2]:
                    [1]: clone_upvr (readonly)
                    [2]: var630_upvr (readonly)
                ]]
                clone_upvr.attachment1.WorldPosition = Vector3.new(var630_upvr.Position.X, 0.371, var630_upvr.Position.Z)
            end)
        end
    end
    any_new_result1_upvr:send("startPitchWear", var629)
end
function module_upvr_2.endPitchWear(arg1) -- Line 2780
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
    ]]
    arg1.wear.maid:DoCleaning()
    for _, v_21_upvr in next, workspace.game.debug:GetChildren() do
        if v_21_upvr.Name == LocalPlayer_upvr.Name.."_wear" then
            task.delay(20, function() -- Line 2785
                --[[ Upvalues[3]:
                    [1]: any_load_result1_upvr (copied, readonly)
                    [2]: Services_upvr (copied, readonly)
                    [3]: v_21_upvr (readonly)
                ]]
                local any_new_result1 = any_load_result1_upvr.new()
                local NumberValue_upvr = Instance.new("NumberValue")
                NumberValue_upvr.Value = 0
                any_new_result1:GiveTask(NumberValue_upvr)
                Services_upvr.TweenService:Create(NumberValue_upvr, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                    Value = 1;
                }):Play()
                any_new_result1.tween = Services_upvr.RunService.RenderStepped:Connect(function() -- Line 2794
                    --[[ Upvalues[2]:
                        [1]: v_21_upvr (copied, readonly)
                        [2]: NumberValue_upvr (readonly)
                    ]]
                    if v_21_upvr:FindFirstChild("beam") then
                        v_21_upvr.beam.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, NumberValue_upvr.Value), NumberSequenceKeypoint.new(0.5, NumberValue_upvr.Value), NumberSequenceKeypoint.new(1, NumberValue_upvr.Value)})
                    end
                end)
                task.wait(1.15)
                any_new_result1:DoCleaning()
                task.wait(1)
                v_21_upvr:Destroy()
            end)
        end
    end
    any_new_result1_upvr:send("endPitchWear")
end
local any_load_result1_upvr_4 = _engine:load("TeamService", "utils")
local any_load_result1_upvr_3 = _engine:load("ThumbnailService", "utils")
function module_upvr_2.applyMarker(arg1, arg2) -- Line 2816
    --[[ Upvalues[6]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: any_load_result1_upvr_4 (readonly)
        [5]: any_load_result1_upvr_3 (readonly)
        [6]: Services_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 32 start (CF ANALYSIS FAILED)
    local children, _ = workspace.game.markers:GetChildren()
    local var662
    for _, v_22 in next, children, var662 do
        if v_22.Name == LocalPlayer_upvr.Name then
            v_22:Destroy()
        end
    end
    var662 = "marker"
    any_new_result1_upvr:send(var662, arg2)
    var662 = References_upvr.Main
    local clone = var662.ui.marker:Clone()
    var662 = arg2.X
    local vector3 = Vector3.new(var662, clone.PrimaryPart.Position.Y, arg2.Z)
    var662 = LocalPlayer_upvr.TeamColor.Color
    -- KONSTANTERROR: [0] 1. Error Block 32 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [63] 40. Error Block 34 start (CF ANALYSIS FAILED)
    if string.find(LocalPlayer_upvr.Team.Name, "Home") then
        var662 = any_load_result1_upvr_4:getTeamColorFromTeam("Home")
    else
        -- KONSTANTERROR: [80] 53. Error Block 29 start (CF ANALYSIS FAILED)
        if LocalPlayer_upvr.Team and string.find(LocalPlayer_upvr.Team.Name, "Away") then
            var662 = any_load_result1_upvr_4:getTeamColorFromTeam("Away")
        end
        -- KONSTANTERROR: [80] 53. Error Block 29 end (CF ANALYSIS FAILED)
    end
    clone.Template.Cross.Cross.ImageColor3 = var662
    clone.Beam.Beam.Color = ColorSequence.new(var662, var662)
    clone.Config.Icon.Value = any_load_result1_upvr_3:get(LocalPlayer_upvr.UserId)
    clone.Config.MarkerColor.Value = var662
    clone.Config.Distance.Value = math.floor((vector3 - arg1.character.HumanoidRootPart.Position).Magnitude + 0.5)
    clone.Config.Position.Value = clone.PrimaryPart.Position
    local Profile_2 = _G._references.Profile
    local var666 = Profile_2
    if var666 then
        var666 = Profile_2.settings
        if var666 then
            var666 = Profile_2.settings.Visual
            if var666 then
                var666 = Profile_2.settings.Visual:FindFirstChild("Pass Markers")
            end
        end
    end
    if var666 then
        if var666.Value == false then
            clone:Destroy()
            return
        end
    end
    clone.Parent = workspace.game.markers
    clone:SetPrimaryPartCFrame(CFrame.new(vector3))
    clone.Name = LocalPlayer_upvr.Name
    clone.Config.Enabled.Value = true
    Services_upvr.Debris:AddItem(clone, 2)
    -- KONSTANTERROR: [63] 40. Error Block 34 end (CF ANALYSIS FAILED)
end
function module_upvr_2.lockRoot(arg1, arg2) -- Line 2864
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if arg2 and typeof(arg2) == "boolean" then
        local HumanoidRootPart_3 = arg1.character.HumanoidRootPart
        arg1.character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics, true)
        arg1.character.Humanoid:ChangeState(Enum.HumanoidStateType.Physics)
        local AlignOrientation_upvr_2 = Instance.new("AlignOrientation")
        AlignOrientation_upvr_2.Mode = Enum.OrientationAlignmentMode.OneAttachment
        AlignOrientation_upvr_2.Attachment0 = HumanoidRootPart_3:FindFirstChild("RootRigAttachment")
        AlignOrientation_upvr_2.CFrame = HumanoidRootPart_3.CFrame
        AlignOrientation_upvr_2.MaxTorque = 500000
        AlignOrientation_upvr_2.Responsiveness = 40
        AlignOrientation_upvr_2.Parent = HumanoidRootPart_3
        arg1.mouseLock.maid:GiveTask(AlignOrientation_upvr_2)
        arg1.character.Humanoid.AutoRotate = false
        arg1.mouseLock.maid.heartbeat = Services_upvr.RunService.Heartbeat:Connect(function() -- Line 2883
            --[[ Upvalues[2]:
                [1]: AlignOrientation_upvr_2 (readonly)
                [2]: arg1 (readonly)
            ]]
            if not AlignOrientation_upvr_2 then
                arg1.mouseLock.maid:DoCleaning()
            else
                AlignOrientation_upvr_2.CFrame = arg1:getLookVector()
            end
        end)
    else
        if arg2 then
            AlignOrientation_upvr_2 = "Animation"
            if arg2:IsA(AlignOrientation_upvr_2) then
                AlignOrientation_upvr_2 = Enum.HumanoidStateType.Physics
                arg1.character.Humanoid:SetStateEnabled(AlignOrientation_upvr_2, true)
                AlignOrientation_upvr_2 = Enum.HumanoidStateType.Physics
                arg1.character.Humanoid:ChangeState(AlignOrientation_upvr_2)
                local AlignOrientation_upvr_3 = Instance.new("AlignOrientation")
                AlignOrientation_upvr_3.Mode = Enum.OrientationAlignmentMode.OneAttachment
                AlignOrientation_upvr_2 = arg1.character
                AlignOrientation_upvr_3.Attachment0 = AlignOrientation_upvr_2.LowerTorso:FindFirstChild("RootRigAttachment")
                AlignOrientation_upvr_2 = arg1.character.LowerTorso
                AlignOrientation_upvr_3.CFrame = AlignOrientation_upvr_2.CFrame
                AlignOrientation_upvr_3.MaxTorque = 500000
                AlignOrientation_upvr_3.Responsiveness = 200
                AlignOrientation_upvr_2 = arg1.character
                AlignOrientation_upvr_3.Parent = AlignOrientation_upvr_2.LowerTorso
                AlignOrientation_upvr_2 = References_upvr.Main.rigs
                local clone_upvr_2 = AlignOrientation_upvr_2.FakeTorso:Clone()
                AlignOrientation_upvr_2 = workspace.game.debug
                clone_upvr_2.Parent = AlignOrientation_upvr_2
                AlignOrientation_upvr_2 = clone_upvr_2:SetPrimaryPartCFrame
                AlignOrientation_upvr_2(arg1.character.HumanoidRootPart.CFrame)
                AlignOrientation_upvr_2 = clone_upvr_2.Humanoid.Animator:LoadAnimation(arg2):Play
                AlignOrientation_upvr_2()
                AlignOrientation_upvr_2 = arg1.mouseLock.maid:GiveTask
                AlignOrientation_upvr_2(AlignOrientation_upvr_3)
                AlignOrientation_upvr_2 = arg1.mouseLock.maid:GiveTask
                AlignOrientation_upvr_2(clone_upvr_2)
                AlignOrientation_upvr_2 = arg1.character.Humanoid
                AlignOrientation_upvr_2.AutoRotate = false
                AlignOrientation_upvr_2 = arg1.mouseLock.maid
                AlignOrientation_upvr_2.heartbeat = Services_upvr.RunService.Heartbeat:Connect(function() -- Line 2913
                    --[[ Upvalues[3]:
                        [1]: AlignOrientation_upvr_3 (readonly)
                        [2]: arg1 (readonly)
                        [3]: clone_upvr_2 (readonly)
                    ]]
                    if not AlignOrientation_upvr_3 then
                        arg1.mouseLock.maid:DoCleaning()
                    else
                        AlignOrientation_upvr_3.CFrame = clone_upvr_2.FakeTorso.CFrame
                    end
                end)
                return
            end
        end
        if not arg2 then
            clone_upvr_2 = arg1.mouseLock
            AlignOrientation_upvr_3 = clone_upvr_2.maid:DoCleaning
            AlignOrientation_upvr_3()
        end
    end
end
function module_upvr_2.dive(arg1, arg2) -- Line 2925
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: cancelMovement (readonly)
        [4]: module_upvr_2 (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 71 start (CF ANALYSIS FAILED)
    assert(arg2, "Root:dive() | table 'args' expected, got "..typeof(arg2))
    local any_new_result1_upvr_4 = any_load_result1_upvr.new()
    local sign_2 = math.sign(arg2.sign)
    local var717 = 26
    local var718
    if arg2.moveType == "low" then
        var717 += 2
    end
    local var719 = var717 * arg2.sign
    local HumanoidRootPart_2 = arg1.character.HumanoidRootPart
    local CFrame_2 = HumanoidRootPart_2.CFrame
    local RightVector_2 = CFrame_2.RightVector
    local UpVector_2 = CFrame_2.UpVector
    var718 = 0
    local _, _, _ = CFrame_2:ToEulerAnglesXYZ()
    if arg2.moveType == "straight" then
        local BodyVelocity_3 = Instance.new("BodyVelocity", HumanoidRootPart_2)
        BodyVelocity_3.Velocity = UpVector_2 * 13
        BodyVelocity_3.MaxForce = Vector3.new(0, math.huge, 0)
        Services_upvr.Debris:AddItem(BodyVelocity_3, 0.3)
        -- KONSTANTWARNING: GOTO [216] #154
    end
    -- KONSTANTERROR: [0] 1. Error Block 71 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [86] 60. Error Block 72 start (CF ANALYSIS FAILED)
    local var728
    if var728 == "straight low" then
        var728 = Services_upvr.UserInputService:IsKeyDown(Enum.KeyCode.W)
        if var728 then
            var728 = CFrame_2.LookVector * 25
            local BodyVelocity_10 = Instance.new("BodyVelocity", HumanoidRootPart_2)
            BodyVelocity_10.Velocity = var728
            BodyVelocity_10.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
            Services_upvr.Debris:AddItem(BodyVelocity_10, 0.3)
            -- KONSTANTWARNING: GOTO [216] #154
        end
    else
        BodyVelocity_10 = arg1:isAirbourne
        local var736
        var736 = var736()
        local function INLINED_20() -- Internal function, doesn't exist in bytecode
            var728 = UpVector_2 * 9.5
            return var728
        end
        if not var736 or not INLINED_20() then
            var728 = UpVector_2 * 12.5
        end
        var736 = (RightVector_2) * (var719 / 2)
        if arg2.moveType == "low" then
            local const_number = 0.35
            var736 -= UpVector_2 * -3
        elseif arg2.moveType == "high" then
            var736 += var728 / 2
        end
        local BodyVelocity_4 = Instance.new("BodyVelocity", HumanoidRootPart_2)
        BodyVelocity_4.Velocity = var736
        BodyVelocity_4.MaxForce = Vector3.new(1, 1, 1) * math.huge
        Services_upvr.Debris:AddItem(BodyVelocity_4, const_number)
        if arg2.moveType == "high" then
            Services_upvr.TweenService:Create(BodyVelocity_4, TweenInfo.new(const_number, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Velocity = RightVector_2 * var719 + var728;
            }):Play()
        else
            Services_upvr.TweenService:Create(BodyVelocity_4, TweenInfo.new(const_number, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Velocity = RightVector_2 * var719 - var728 / 3;
            }):Play()
        end
        cancelMovement(BodyVelocity_4)
    end
    var728 = arg2.moveType
    local var735
    if var735 == "high" then
        var736 = arg1:isAirbourne()
        if var736 then
            var735 = 80
        else
            var735 = 95
        end
        var736 = arg1:isAirbourne()
        if var736 then
            var735 = -17.5
        else
            var735 = -7.5
        end
        var718 = var735
    else
        var735 = arg2.moveType
        if var735 == "low" then
            var718 = 2
        end
    end
    var736 = arg1.character
    var736.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics, true)
    var736 = arg1.character
    var736.Humanoid:ChangeState(Enum.HumanoidStateType.Physics)
    if arg2.moveType ~= "straight" then
        if arg2.moveType ~= "straight low" then
            HumanoidRootPart_2.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
            HumanoidRootPart_2.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
        end
    end
    function var736() -- Line 3029
        --[[ Upvalues[2]:
            [1]: arg2 (readonly)
            [2]: arg1 (readonly)
        ]]
        if arg2.moveType == "straight" then
            arg1:applyFriction()
        else
            arg1:applyFriction("post")
        end
    end
    task.spawn(var736)
    var736 = math.rad(var718)
    local var737_upvr = -var736
    var736 = -math.rad(sign_2 * 0)
    local var738_upvr = var736
    local var739_upvr = -math.rad(110 * sign_2)
    local var740 = CFrame_2 * CFrame.fromEulerAnglesXYZ(var737_upvr, var738_upvr, var739_upvr)
    local _, _, _ = var740:ToEulerAnglesXYZ()
    local AlignOrientation_upvr = Instance.new("AlignOrientation")
    AlignOrientation_upvr.Mode = Enum.OrientationAlignmentMode.OneAttachment
    AlignOrientation_upvr.Attachment0 = HumanoidRootPart_2:FindFirstChild("RootRigAttachment")
    AlignOrientation_upvr.CFrame = var740
    AlignOrientation_upvr.MaxTorque = 500000
    AlignOrientation_upvr.Responsiveness = 10 / 0.8
    AlignOrientation_upvr.Parent = HumanoidRootPart_2
    arg1.character.Humanoid.AutoRotate = false
    script:SetAttribute("diving", true)
    script:SetAttribute("ignoreRoot", true)
    any_new_result1_upvr_4.heartbeat = Services_upvr.RunService.Heartbeat:Connect(function() -- Line 3057
        --[[ Upvalues[6]:
            [1]: AlignOrientation_upvr (readonly)
            [2]: any_new_result1_upvr_4 (readonly)
            [3]: arg1 (readonly)
            [4]: var737_upvr (readonly)
            [5]: var738_upvr (readonly)
            [6]: var739_upvr (readonly)
        ]]
        if not AlignOrientation_upvr then
            any_new_result1_upvr_4:DoCleaning()
        else
            local any_getLookVector_result1 = arg1:getLookVector()
            local _, _, _ = any_getLookVector_result1:ToEulerAnglesXYZ()
            AlignOrientation_upvr.CFrame = any_getLookVector_result1 * CFrame.fromEulerAnglesXYZ(var737_upvr, var738_upvr, var739_upvr)
        end
    end)
    any_new_result1_upvr_4:GiveTask(function() -- Line 3072
        --[[ Upvalues[2]:
            [1]: AlignOrientation_upvr (readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        if AlignOrientation_upvr then
            Services_upvr.Debris:AddItem(AlignOrientation_upvr, 0)
        end
        script:SetAttribute("diving", false)
    end)
    if not arg2.eternal then
        task.delay(0.8, function() -- Line 3081
            --[[ Upvalues[1]:
                [1]: any_new_result1_upvr_4 (readonly)
            ]]
            any_new_result1_upvr_4:DoCleaning()
        end)
    end
    function module_upvr_2.cancelRotation() -- Line 3086
        --[[ Upvalues[1]:
            [1]: any_new_result1_upvr_4 (readonly)
        ]]
        any_new_result1_upvr_4:DoCleaning()
    end
    do
        return module_upvr_2.cancelRotation
    end
    -- KONSTANTERROR: [86] 60. Error Block 72 end (CF ANALYSIS FAILED)
end
function module_upvr_2.getCurveDirection(arg1, arg2) -- Line 3093
    local ball_3 = arg2.ball
    local var753 = ball_3.Position + Vector3.new(0, arg1.character.Torso.Position.Y - ball_3.Position.Y, 0)
    local arccosine = math.acos(math.abs(arg1.character.Torso.CFrame.LookVector:Dot(var753 - arg1.character.Torso.Position)) / (var753 - arg1.character.Torso.Position).Magnitude)
    local Magnitude_3 = (ball_3.Position - arg1.character.Magnus.Left.Position).Magnitude
    local Magnitude = (ball_3.Position - arg1.character.Magnus.Right.Position).Magnitude
    local var757
    if 0.8726646259971648 < arccosine and Magnitude_3 <= Magnitude + 0.35 then
        var757 = "left"
    elseif 0.8726646259971648 < arccosine and Magnitude < Magnitude_3 then
        var757 = "right"
    end
    if arg2.inverted and var757 == "right" then
        var757 = "left"
    elseif arg2.inverted and var757 == "left" then
        var757 = "right"
    end
    return var757, math.abs(arg1.character.Torso.CFrame.RightVector:Dot(var753 - arg1.character.Torso.Position)) / arg1.magnus[var757][arg2.currentFoot]
end
function module_upvr_2.ankle(arg1, arg2) -- Line 3122
    --[[ Upvalues[4]:
        [1]: Services_upvr (readonly)
        [2]: any_load_result1_upvr_7 (readonly)
        [3]: References_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
    ]]
    local var758 = "Back"
    if Services_upvr.UserInputService:IsKeyDown(Enum.KeyCode.W) then
        var758 = "Front"
    elseif Services_upvr.UserInputService:IsKeyDown(Enum.KeyCode.D) then
        var758 = "Right"
    elseif Services_upvr.UserInputService:IsKeyDown(Enum.KeyCode.A) then
        var758 = "Left"
    end
    local BodyVelocity_8 = Instance.new("BodyVelocity", arg1.character.HumanoidRootPart)
    BodyVelocity_8.Velocity = arg1.character.HumanoidRootPart.AssemblyLinearVelocity
    BodyVelocity_8.MaxForce = Vector3.new(1, 1, 1) * math.huge
    task.spawn(function() -- Line 3139
        while true do
            task.wait()
            if script:GetAttribute("ankle") then
                script:SetAttribute("globalOverride", true)
            else
                script:SetAttribute("globalOverride", false)
                return
            end
        end
    end)
    any_load_result1_upvr_7:load({
        directory = arg1.character.HumanoidRootPart;
        soundId = References_upvr.Main.sounds.Player.Ankle.SoundId;
        rollOffMaxDistance = References_upvr.Main.sounds.Player.Ankle.RollOffMaxDistance;
        rollOffMinDistance = References_upvr.Main.sounds.Player.Ankle.RollOffMinDistance;
        volume = References_upvr.Main.sounds.Player.Ankle.Volume;
        play = true;
        replicate = true;
    })
    arg1:lockRoot(true)
    script:SetAttribute("ankle", true)
    workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
    local any_LoadAnimation_result1_2_upvr = arg1.character:WaitForChild("Humanoid", 100):WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Ankle[var758])
    any_LoadAnimation_result1_2_upvr.Priority = Enum.AnimationPriority.Action4
    any_LoadAnimation_result1_2_upvr:Play(0.1, 8)
    task.wait(0.4)
    BodyVelocity_8:Destroy()
    arg1:lockRoot(false)
    arg1.ragdoll:toggle(true)
    task.delay(0.1, function() -- Line 3176
        --[[ Upvalues[1]:
            [1]: any_LoadAnimation_result1_2_upvr (readonly)
        ]]
        any_LoadAnimation_result1_2_upvr:Stop(0.2)
    end)
    task.wait(math.random(70, 135) / 100)
    script:SetAttribute("ankle", false)
    script:SetAttribute("globalOverride", false)
    arg1.ragdoll:toggle(false)
end
function module_upvr_2.gkCheck(arg1, arg2) -- Line 3187
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    local var780
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [13] 9. Error Block 61 start (CF ANALYSIS FAILED)
    for _, v_23 in next, workspace.game.regions:GetChildren() do
        if v_23.Name == "home" then
            for _, v_24 in next, workspace:GetPartBoundsInBox(v_23.CFrame, v_23.Size, arg1.overlapParams) do
                if v_24 and v_24.Parent then
                    var780 = true
                end
            end
        end
    end
    if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") or LocalPlayer_upvr.TeamColor == BrickColor.new("Institutional white") then
    end
    do
        return var780
    end
    -- KONSTANTERROR: [13] 9. Error Block 61 end (CF ANALYSIS FAILED)
end
function module_upvr_2.catch(arg1, arg2) -- Line 3221
    --[[ Upvalues[6]:
        [1]: module_upvr_2 (readonly)
        [2]: References_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: any_load_result1_upvr_7 (readonly)
        [6]: any_new_result1_upvr (readonly)
    ]]
    assert(arg2, "Root:catch() | table 'args' expected, got "..typeof(arg2))
    local var785
    if var785 then
    else
        var785 = nil
        if arg1.character.HumanoidRootPart and typeof(arg1.character.HumanoidRootPart.Position) == "Vector3" then
            var785 = module_upvr_2:getBall(arg1.character.HumanoidRootPart.Position)
        else
            return
        end
        if arg2.ball:GetAttribute("catch") or arg1:isHolding() then return end
        if arg2.limb then
            if 3.25 <= (arg2.limb.Position - arg1.character.HumanoidRootPart.Position).Magnitude then return end
        end
        if arg2.limb and 8 <= (arg2.ball.Position - arg2.limb.Position).Magnitude then return end
        if var785 then
            var785:Destroy()
        end
        if _G._references.Main.config.Override:FindFirstChild("Foul") and _G._references.Main.config.Override.Foul:FindFirstChild("Event") then
            _G._references.Main.config.Override.Foul.Event:FireServer()
        end
        local animations = References_upvr.Main.animations
        if arg2.diveCatch then
            animations = "Default"
        else
            animations = References_upvr.Profile.inventory.Current["Ball Hold"].Value
        end
        local any_LoadAnimation_result1 = arg1.animator:LoadAnimation(animations.Ball[animations])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        local any_getClientBall_result1_4 = arg1:getClientBall(arg2.ball)
        local any_GenerateGUID_result1_upvr = Services_upvr.HttpService:GenerateGUID(false)
        arg1.cancelRotation()
        arg1.cancelMovement()
        arg2.ball.CollisionGroup = "1_balls"
        arg2.ball.CanCollide = false
        any_LoadAnimation_result1:Play(0.85, 5)
        arg1.holding.animation = any_LoadAnimation_result1
        arg1.holding.ball = arg2.ball
        arg1.holding.session = any_GenerateGUID_result1_upvr
        if LocalPlayer_upvr.TeamColor == BrickColor.new("Navy blue") or LocalPlayer_upvr.TeamColor == BrickColor.new("Maroon") then
            task.spawn(function() -- Line 3275
                --[[ Upvalues[3]:
                    [1]: arg1 (readonly)
                    [2]: any_GenerateGUID_result1_upvr (readonly)
                    [3]: LocalPlayer_upvr (copied, readonly)
                ]]
                while arg1.holding.ball and arg1.holding.animation and arg1.holding.session == any_GenerateGUID_result1_upvr do
                    LocalPlayer_upvr.Character:SetAttribute("inBox", arg1:gkCheck())
                    task.wait(0.1)
                end
            end)
        end
        if LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart") then
            LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart").Transparency = 0
        end
        if any_getClientBall_result1_4 and any_getClientBall_result1_4.design:FindFirstChildWhichIsA("BasePart") then
            any_getClientBall_result1_4.design:FindFirstChildWhichIsA("BasePart").Transparency = 1
        end
        any_load_result1_upvr_7:load({
            directory = arg2.ball;
            soundId = References_upvr.Main.sounds.Ball.Catch.SoundId;
            rollOffMaxDistance = References_upvr.Main.sounds.Ball.Catch.RollOffMaxDistance;
            rollOffMinDistance = References_upvr.Main.sounds.Ball.Catch.RollOffMinDistance;
            volume = References_upvr.Main.sounds.Ball.Catch.Volume;
            play = true;
            replicate = true;
        })
        if not any_new_result1_upvr:fetch("catch", {
            ball = arg2.ball;
            throwIn = arg2.throwIn;
            cframe = arg2.ball.CFrame;
        }) then
            arg1.holding.maid:DoCleaning()
            arg1.holding.ball = nil
            arg1.holding.animation = nil
            References_upvr.PlayerGui.UI.SixSecond.Visible = false
            arg2.ball.CanCollide = true
            any_LoadAnimation_result1:Stop(0.2)
            if LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart") then
                LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart").Transparency = 1
            end
            if any_getClientBall_result1_4.design:FindFirstChildWhichIsA("BasePart") then
                any_getClientBall_result1_4.design:FindFirstChildWhichIsA("BasePart").Transparency = 0
            end
        end
        task.spawn(function() -- Line 3329
            --[[ Upvalues[4]:
                [1]: arg2 (readonly)
                [2]: References_upvr (copied, readonly)
                [3]: arg1 (readonly)
                [4]: any_GenerateGUID_result1_upvr (readonly)
            ]]
            if not arg2.throwIn then
                References_upvr.PlayerGui.UI.SixSecond.Visible = true
                for i_34 = 6, 1, -1 do
                    if not arg1.holding.ball then break end
                    if not arg1.holding.session or arg1.holding.session ~= any_GenerateGUID_result1_upvr then break end
                    if not arg1.holding.session then break end
                    References_upvr.PlayerGui.UI.SixSecond.Label.Text = tostring(i_34)
                    task.wait(1)
                end
                if not arg1.Throwing then
                    i_34 = "charging"
                    if not script:GetAttribute(i_34) then
                        i_34 = "globalOverride"
                        if not script:GetAttribute(i_34) then
                            arg1:drop()
                        end
                    end
                end
            end
        end)
    end
end
function module_upvr_2.drop(arg1, arg2) -- Line 3349
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: any_new_result1_upvr (readonly)
    ]]
    if arg1.holding.ball then
        local ball_2 = arg1.holding.ball
        local any_getClientBall_result1 = arg1:getClientBall(ball_2)
        if arg1.holding.animation then
            arg1.holding.animation:Stop(0.2)
        end
        arg1.holding.maid:DoCleaning()
        arg1.holding.ball = nil
        arg1.holding.animation = nil
        arg1.holding.session = nil
        References_upvr.PlayerGui.UI.SixSecond.Visible = false
        task.spawn(function() -- Line 3365
            script:SetAttribute("catchCooldown", true)
            task.wait(3)
            script:SetAttribute("catchCooldown", false)
        end)
        ball_2.CFrame = LocalPlayer_upvr.Character.Ball.CFrame
        ball_2.CanCollide = true
        ball_2.AssemblyLinearVelocity = Vector3.new()
        ball_2.AssemblyAngularVelocity = Vector3.new()
        if LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart") then
            LocalPlayer_upvr.Character.Ball.design:FindFirstChildWhichIsA("BasePart").Transparency = 1
        end
        if any_getClientBall_result1.design:FindFirstChildWhichIsA("BasePart") then
            any_getClientBall_result1.design:FindFirstChildWhichIsA("BasePart").Transparency = 0
        end
        for i_29, v_25 in next, ball_2:GetChildren() do
            if v_25:IsA("AlignPosition") then
                v_25:Destroy()
            end
        end
        if arg2 and arg2.callback then
            i_29 = {}
            i_29.ball = ball_2
            v_25 = true
            i_29.callback = v_25
            ball_2.AssemblyLinearVelocity = Vector3.new()
            ball_2.AssemblyAngularVelocity = Vector3.new()
            return true
        end
        i_29 = {}
        i_29.ball = ball_2
        any_new_result1_upvr:send("drop", i_29)
    end
end
function module_upvr_2.gkReact(arg1, arg2) -- Line 3409
    --[[ Upvalues[6]:
        [1]: module_upvr_2 (readonly)
        [2]: any_load_result1_upvr_7 (readonly)
        [3]: References_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: any_new_result1_upvr (readonly)
        [6]: Services_upvr (readonly)
    ]]
    assert(arg2, "Root:gkReact() | table 'args' expected, got "..typeof(arg2))
    local ball_4 = arg2.ball
    if ball_4:GetAttribute("catch") and not arg2.ignoreHolding then
    else
        local var818
        if arg1.character.HumanoidRootPart and typeof(arg1.character.HumanoidRootPart.Position) == "Vector3" then
            var818 = module_upvr_2:getBall(arg1.character.HumanoidRootPart.Position)
        else
            return
        end
        if arg2.limb and 3.25 <= (arg2.limb.Position - arg1.character.HumanoidRootPart.Position).Magnitude then return end
        if arg2.limb and 8 <= (ball_4.Position - arg2.limb.Position).Magnitude then return end
        if var818 then
            var818:Destroy()
        end
        if arg2.limb then
            if arg1:overlapCheck(arg2.limb, arg2.ball) == false then
                do
                    return
                end
                -- KONSTANTWARNING: GOTO [114] #76
            end
        else
            return
        end
        arg2.reactType = "goalkeeper"
        arg2.forceNetworkOwner = true
        arg2.cframe = ball_4.CFrame
        ball_4.Anchored = true
        any_load_result1_upvr_7:load({
            directory = ball_4;
            soundId = References_upvr.Main.sounds.Ball.Block.SoundId;
            rollOffMaxDistance = References_upvr.Main.sounds.Ball.Block.RollOffMaxDistance;
            rollOffMinDistance = References_upvr.Main.sounds.Ball.Block.RollOffMinDistance;
            volume = References_upvr.Main.sounds.Ball.Block.Volume;
            play = true;
            replicate = true;
        })
        if _G._references.Main.config.Override:FindFirstChild("Foul") and _G._references.Main.config.Override.Foul:FindFirstChild("Event") then
            _G._references.Main.config.Override.Foul.Event:FireServer()
        end
        if ball_4:GetAttribute("possessor") ~= LocalPlayer_upvr.UserId and ball_4.network.networkOwner.Value ~= LocalPlayer_upvr and ball_4.network.owner.Value ~= LocalPlayer_upvr then
            arg2.time = workspace:GetServerTimeNow()
            if not any_new_result1_upvr:fetch("networkOwner", arg2) then return end
        end
        for _, v_30 in next, ball_4:GetChildren() do
            if v_30:IsA("BodyVelocity") then
                v_30:Destroy()
            end
        end
        ball_4.Anchored = false
        ball_4.AssemblyLinearVelocity = ball_4.AssemblyLinearVelocity
        ball_4.AssemblyAngularVelocity = ball_4.AssemblyAngularVelocity
        arg2.ball.CollisionGroup = "1_balls"
        local BodyVelocity = Instance.new("BodyVelocity", ball_4)
        BodyVelocity.Velocity = arg2.vector
        BodyVelocity.MaxForce = arg2.maxForce
        Services_upvr.Debris:AddItem(BodyVelocity, 0.3)
    end
end
function module_upvr_2.slowdown(arg1, arg2) -- Line 3497
    --[[ Upvalues[3]:
        [1]: Services_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: controllers_upvr (readonly)
    ]]
    script:SetAttribute("slowdown", true)
    controllers_upvr.movementController:SetAttribute("forceStop", true)
    controllers_upvr.movementController:SetAttribute("canSprint", false)
    local any_Connect_result1_upvr = Services_upvr.RunService.Heartbeat:Connect(function() -- Line 3498
        --[[ Upvalues[2]:
            [1]: LocalPlayer_upvr (copied, readonly)
            [2]: Services_upvr (copied, readonly)
        ]]
        if LocalPlayer_upvr and LocalPlayer_upvr.Character then
            if LocalPlayer_upvr.Character.Parent and LocalPlayer_upvr.Character:FindFirstChild("Humanoid") then
                LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 5
            end
        end
    end)
    task.delay(arg2 or 2, function() -- Line 3508
        --[[ Upvalues[4]:
            [1]: any_Connect_result1_upvr (readonly)
            [2]: LocalPlayer_upvr (copied, readonly)
            [3]: Services_upvr (copied, readonly)
            [4]: controllers_upvr (copied, readonly)
        ]]
        any_Connect_result1_upvr:Disconnect()
        script:SetAttribute("slowdown", false)
        if not script:GetAttribute("ragdoll") then
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
            controllers_upvr.movementController:SetAttribute("canSprint", true)
        end
    end)
end
function module_upvr_2.raycast(arg1, arg2, arg3) -- Line 3519
    return false
end
local any_new_result1_upvr_2 = _engine:load("Trajectory").new(Vector3.new(0, workspace.Gravity - 137.45259228794131, 0))
function module_upvr_2.react(arg1, arg2, arg3) -- Line 3523
    --[[ Upvalues[11]:
        [1]: module_upvr_2 (readonly)
        [2]: any_new_result1_upvr_2 (readonly)
        [3]: LocalPlayer_upvr (readonly)
        [4]: any_new_result1_upvr (readonly)
        [5]: tbl_7_upvr (readonly)
        [6]: var168_upvr (readonly)
        [7]: Services_upvr (readonly)
        [8]: crash_upvr (readonly)
        [9]: any_load_result1_upvr_7 (readonly)
        [10]: References_upvr (readonly)
        [11]: any_load_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 306 start (CF ANALYSIS FAILED)
    assert(arg2, "Root:react() | table 'args' expected, got "..typeof(arg2))
    if _G._references.Main.config.Delay:FindFirstChild("NoReact") and not arg2.ignoreReactDecline then return end
    if arg1.character.HumanoidRootPart and typeof(arg1.character.HumanoidRootPart.Position) == "Vector3" then
    else
        return
    end
    -- KONSTANTERROR: [0] 1. Error Block 306 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 10 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [68] 46. Error Block 10 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [71] 48. Error Block 11 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [71] 48. Error Block 11 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [87] 57. Error Block 12 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [87] 57. Error Block 12 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [90] 59. Error Block 13 start (CF ANALYSIS FAILED)
    do
        return
    end
    -- KONSTANTERROR: [90] 59. Error Block 13 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [91] 60. Error Block 14 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [91] 60. Error Block 14 end (CF ANALYSIS FAILED)
end
return module_upvr_2
ModuleScript core core
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:16
-- Luau version 6, Types version 3
-- Time taken: 0.014989 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent;
    equipped = false;
}
local module = {}
local function _(arg1, arg2, arg3) -- Line 19, Named "registerAngleBarSkill"
    if not arg1 or not arg1.SetAngleBarSkillContext then
    else
        if not arg3 then return end
        arg1:SetAngleBarSkillContext(arg2, arg3)
    end
end
local References_upvr = _engine.References
function module.init(arg1, arg2) -- Line 31
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    local any_new_result1 = any_load_result1_upvr.new()
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    arg1.maid = any_new_result1
    arg1.root = arg2
    arg1.binds = {}
    for _, v_2 in next, arg1.tool.binds:GetChildren() do
        if v_2 and v_2:IsA("ModuleScript") then
            local v_2_2 = require(v_2)
            v_2_2:init(arg2)
            arg1.binds[v_2.Name] = v_2_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_3 in next, arg1.tool.combos:GetChildren() do
            if v_3 and v_3:IsA("ModuleScript") then
                local v_3_2 = require(v_3)
                v_3_2:init(arg2)
                arg1.combos[v_3.Name] = v_3_2
            end
        end
    end
    any_new_result1.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 64
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        local var29
        if not var29 then
        else
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var29 = Services_upvr.UserInputService:GetFocusedTextBox()
                return var29
            end
            if arg2_2 or INLINED() then return end
            var29 = arg1_2.KeyCode.Name
            if var29 == "Unknown" then
                var29 = arg1_2.UserInputType.Name
            end
            for _, v_9 in next, References_upvr.Profile.binds:GetChildren() do
                if v_9 and string.lower(v_9.Name) == string.lower(arg1.tool.Name) or string.lower(v_9.Name) == "misc" then
                    for _, v_10 in next, v_9:GetChildren() do
                        if typeof(v_10.Value) == "string" and string.lower(v_10.Value) == string.lower(var29) then
                            local string_lower_result1_2 = string.lower(v_10.Name)
                            local var35 = arg2
                            if var35 then
                                if not var35.SetAngleBarSkillContext then
                                elseif not string_lower_result1_2 then
                                else
                                    var35:SetAngleBarSkillContext(arg1.tool.Name, string_lower_result1_2)
                                end
                            end
                            if arg1.binds[string_lower_result1_2] and arg1.binds[string_lower_result1_2].inputBegan then
                                arg1.binds[string_lower_result1_2]:inputBegan(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1_2] and arg1.combos[string_lower_result1_2].inputBegan then
                                arg1.combos[string_lower_result1_2]:inputBegan(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
    any_new_result1.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 96
        --[[ Upvalues[4]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
        ]]
        if arg2_3 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if arg1_3.KeyCode.Name == "Unknown" then
            end
            for _, v_11 in next, References_upvr.Profile.binds:GetChildren() do
                if v_11 and string.lower(v_11.Name) == string.lower(arg1.tool.Name) or string.lower(v_11.Name) == "misc" then
                    for _, v_12 in next, v_11:GetChildren() do
                        if typeof(v_12.Value) == "string" and string.lower(v_12.Value) == string.lower(arg1_3.UserInputType.Name) then
                            local string_lower_result1 = string.lower(v_12.Name)
                            if arg1.binds[string_lower_result1] and arg1.binds[string_lower_result1].inputEnded then
                                arg1.binds[string_lower_result1]:inputEnded(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1] and arg1.combos[string_lower_result1].inputEnded then
                                arg1.combos[string_lower_result1]:inputEnded(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
end
function module.initCustom(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_4, v_4 in next, tbl_upvr do
        arg1[i_4] = v_4
    end
    arg1.equipped = true
    arg1.maid = any_load_result1_upvr.new()
    arg1.root = arg2
    arg1.binds = {}
    for _, v_5 in next, arg1.tool.binds:GetChildren() do
        if v_5 and v_5:IsA("ModuleScript") then
            local v_5_2 = require(v_5)
            v_5_2:init(arg2)
            arg1.binds[v_5.Name] = v_5_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_6 in next, arg1.tool.combos:GetChildren() do
            if v_6 and v_6:IsA("ModuleScript") then
                local v_6_2 = require(v_6)
                v_6_2:init(arg2)
                arg1.combos[v_6.Name] = v_6_2
            end
        end
    end
end
function module.inputBegan(arg1, arg2, arg3) -- Line 160
    if arg2 then
        if not arg2.SetAngleBarSkillContext then
        elseif not arg3 then
        else
            arg2:SetAngleBarSkillContext(arg1.tool.Name, arg3)
        end
    end
    if arg1.binds[arg3] and arg1.binds[arg3].inputBegan then
        arg1.binds[arg3]:inputBegan(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputBegan then
        arg1.combos[arg3]:inputBegan(arg2)
    end
end
function module.inputEnded(arg1, arg2, arg3) -- Line 169
    if arg1.binds[arg3] and arg1.binds[arg3].inputEnded then
        arg1.binds[arg3]:inputEnded(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputEnded then
        arg1.combos[arg3]:inputEnded(arg2)
    end
end
function module.equip(arg1) -- Line 177
    arg1.equipped = true
end
function module.unequip(arg1) -- Line 181
    arg1.equipped = false
end
function module.clear(arg1) -- Line 185
    for i_7, v_7 in next, arg1.binds do
        if i_7 and v_7 then
            v_7:clear()
        end
    end
    if arg1.combos then
        for i_8, v_8 in next, arg1.combos do
            if i_8 and v_8 then
                v_8:clear()
            end
        end
    end
    arg1.equipped = false
    arg1.maid:DoCleaning()
end
return module
ModuleScript kick kick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:17
-- Luau version 6, Types version 3
-- Time taken: 0.011820 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 115;
    minHeight = 10;
    maxHeight = 28;
    power = 0;
    height = 0;
    chargeSpeed = 0.85;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if script:GetAttribute("spin") == "knuckle" then
            local var6 = module_upvr
            var6.power *= 1.2
        end
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.curve = true
        tbl_2.curveType = "magnus"
        tbl_2.spinType = script:GetAttribute("spin")
        tbl_2.grassEffect = true
        tbl_2.ankle = true
        tbl_2.checkOffside = true
        tbl_2.currentFoot = module_upvr.currentFoot
        tbl_2.updateStats = "Shots"
        module_upvr.root:react(tbl_2)
    end
end
local tbl = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 63
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 69
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 77
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 86
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 103
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        script:SetAttribute("charging", true)
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 112
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 129
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    local var18
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var18 = _G
        return var18._root:GetAttribute("charging")
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var18 = _G
        return var18._root:GetAttribute("ragdoll")
    end
    if _G._root:GetAttribute("globalOverride") or not INLINED() or INLINED_2() or arg1.using or not script:GetAttribute("charging") then
    else
        var18 = LocalPlayer_upvr.Character
        var18 = false
        arg1.using = true
        arg1.canReact = true
        script:SetAttribute("charging", false)
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        if arg2:isSprinting() then
            if math.random(1, 2) == 0 then
                local any_LoadAnimation_result1_3 = var18.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].fall[_G._root:GetAttribute("currentFoot")])
                any_LoadAnimation_result1_3.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1_3:Play()
                task.wait(1)
                var18 = false
                arg2.ragdoll:toggle(false)
            else
                local any_LoadAnimation_result1_2 = var18.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].sprint[_G._root:GetAttribute("currentFoot")])
                any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
                any_LoadAnimation_result1_2:Play()
            end
        else
            local any_LoadAnimation_result1 = var18.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].shoot[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
        end
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script:SetAttribute("spin", "topspin")
        task.wait(0.1)
        if var18 and not _G._root:GetAttribute("ankle") then
            arg2.ragdoll:toggle(false)
        end
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 190
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript finesse finesse
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:19
-- Luau version 6, Types version 3
-- Time taken: 0.007449 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 110;
    minHeight = 20;
    maxHeight = 30;
    power = 0;
    height = 0;
    chargeSpeed = 0.75;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var7 = "left"
        local var8 = HumanoidRootPart.CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            var8 += (HumanoidRootPart.CFrame.rightVector) * (module_upvr.power / 8.5)
        else
            var8 += HumanoidRootPart.CFrame.rightVector * -(module_upvr.power / 8.5)
            var7 = "right"
        end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = var8
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = var7
        tbl.spinType = script.Parent.kick:GetAttribute("spin")
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 66
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 72
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 80
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 89
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 106
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 114
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 131
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.kick:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg2.ragdoll:toggle(false)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 170
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript driven driven
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:20
-- Luau version 6, Types version 3
-- Time taken: 0.006888 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 50;
    maxPower = 100;
    minHeight = 0;
    maxHeight = 9;
    power = 0;
    height = 0;
    chargeSpeed = 0.85;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "magnus"
        tbl.spinType = script.Parent.kick:GetAttribute("spin")
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 59
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 65
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 73
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 82
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 99
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 108
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.kick:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 162
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript rabona rabona
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:21
-- Luau version 6, Types version 3
-- Time taken: 0.006395 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 45;
    maxPower = 60;
    minHeight = 20;
    maxHeight = 35;
    power = 0;
    height = 0;
    chargeSpeed = 0.4;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "none"
        tbl.grassEffect = true
        tbl.checkOffside = true
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 57
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 63
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 71
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 80
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 97
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 105
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 122
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        arg1.charging = false
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.5)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg2.ragdoll:toggle(false)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 157
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript volley volley
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:23
-- Luau version 6, Types version 3
-- Time taken: 0.007870 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 100;
    minHeight = 0;
    maxHeight = 10;
    power = 0;
    height = 0;
    chargeSpeed = 0.4;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var7 = "right"
        local clamped = math.clamp(arg2.Velocity.Magnitude / 50, 0.5, 2)
        local clamped_2 = math.clamp(module_upvr.power * clamped, 40, 100)
        local var10 = HumanoidRootPart.CFrame.LookVector * clamped_2 + Vector3.new(0, module_upvr.height * clamped, 0)
        if module_upvr.currentFoot == 'R' then
            var10 += HumanoidRootPart.CFrame.rightVector * -(clamped_2 / 10)
        else
            var10 += (HumanoidRootPart.CFrame.rightVector) * (clamped_2 / 10)
            var7 = "left"
        end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = var10
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = var7
        tbl.checkOffside = true
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 75
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 81
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 89
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 98
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 115
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 124
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = 40 + 60 * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 141
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 178
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript header header
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:24
-- Luau version 6, Types version 3
-- Time taken: 0.010434 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 45;
    maxPower = 80;
    minHeight = -10;
    maxHeight = 3;
    power = 0;
    height = 0;
    chargeSpeed = 0.4;
    charging = false;
    canReact = false;
    using = false;
    headerDirection = nil;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 37
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local var6 = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        if module_upvr.headerDirection == "Left" then
            var6 = CFrame.Angles(0, 1.3089969389957472, 0) * var6
        elseif module_upvr.headerDirection == "Right" then
            var6 = CFrame.Angles(0, -1.3089969389957472, 0) * var6
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.exemptShielding = true
        tbl_3.vector = var6
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.conserveAngularVelocity = true
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 64
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 70
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
local UserInputService_upvr = Services_upvr.UserInputService
function module_upvr.init(arg1, arg2) -- Line 78
    --[[ Upvalues[3]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
        [3]: UserInputService_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    script:SetAttribute("sideHeader", true)
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 90
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
    UserInputService_upvr.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 107
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if arg2_2 then
        elseif arg1.charging then
            if arg1_2.KeyCode == Enum.KeyCode.R then
                arg1.headerDirection = "Left"
                arg1:inputEnded(arg1.root)
                return
            end
            if arg1_2.KeyCode == Enum.KeyCode.T then
                arg1.headerDirection = "Right"
                arg1:inputEnded(arg1.root)
            end
        end
    end)
end
function module_upvr.inputBegan(arg1, arg2) -- Line 122
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 130
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: arg2 (readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                local var19
                if _G._root:GetAttribute("AngleBarEnabled") and arg2.IsAngleBarEnabledForTool then
                    var19 = arg2:IsAngleBarEnabledForTool("header")
                end
                if var19 then
                    arg1.height = (arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * 1) * (1 - (1 - (_G._root:GetAttribute("CurrentLookAngle_0_60") or 30) / 60) ^ 2)
                    arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                end
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 164
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 33 start (CF ANALYSIS FAILED)
    local var21
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var21 = _G
        return var21._root:GetAttribute("charging")
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var21 = _G
        return var21._root:GetAttribute("ragdoll")
    end
    if _G._root:GetAttribute("globalOverride") or not INLINED() or INLINED_2() or not arg1.charging or arg1.using then
    else
        var21 = LocalPlayer_upvr.Character
        local Animator = var21.Humanoid:WaitForChild("Animator", 100)
        var21 = false
        arg1.charging = var21
        var21 = true
        arg1.using = var21
        var21 = true
        arg1.canReact = var21
        var21 = _G._root:SetAttribute
        var21("charging", false)
        var21 = _G._root:SetAttribute
        var21("globalOverride", true)
        var21 = arg1.react.new
        var21({"Head"})
        var21 = nil
        if arg1.headerDirection == "Left" then
            var21 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].HeaderLeft)
            -- KONSTANTWARNING: GOTO [189] #122
        end
        -- KONSTANTERROR: [0] 1. Error Block 33 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [110] 73. Error Block 34 start (CF ANALYSIS FAILED)
        if arg1.headerDirection == "Right" then
            var21 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].HeaderRight)
        elseif arg2:isAirbourne() then
            var21 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Jump)
        else
            var21 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Header)
        end
        var21.Priority = Enum.AnimationPriority.Action4
        var21:Play()
        if arg2:isAirbourne() then
            local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
            BodyVelocity.Velocity = Vector3.new(0, 2.5, 0)
            BodyVelocity.MaxForce = Vector3.new(0, 10000, 0)
            Services_upvr.Debris:AddItem(BodyVelocity, 0.35)
        end
        task.wait(0.45)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg2.ragdoll:toggle(false)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        arg1.headerDirection = nil
        -- KONSTANTERROR: [110] 73. Error Block 34 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 224
    arg1.maid:DoCleaning()
end
function module_upvr.inputBeganWithDirection(arg1, arg2, arg3) -- Line 229
    if arg1.charging then
        arg1.headerDirection = arg3
        arg1:inputEnded(arg1.root)
    end
end
return module_upvr
ModuleScript bicycle bicycle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:26
-- Luau version 6, Types version 3
-- Time taken: 0.009767 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 0;
    maxHeight = 15;
    power = 0;
    height = 0;
    chargeSpeed = 0.35;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * -module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "inverted"
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 58
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 64
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 72
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 98
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 107
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 124
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg2.collisions:toggle("all", "2_limbs")
        arg2:lockRoot(true)
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
        BodyVelocity.Velocity = Vector3.new(0, 1, 0)
        BodyVelocity.MaxForce = Vector3.new(0, 5000, 0)
        Services_upvr.Debris:AddItem(BodyVelocity, 0.48148148148148145)
        workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play(nil, nil, 1.35)
        task.wait(0.5925925925925926)
        arg2:lockRoot(false)
        arg2.ragdoll:toggle(true)
        task.wait(0.2)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(1)
        Services_upvr.RunService.Heartbeat:Connect(function() -- Line 163
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        end):Disconnect()
        arg2.ragdoll:toggle(false)
        task.wait(0.2)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 190
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript side kick right side kick right
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:27
-- Luau version 6, Types version 3
-- Time taken: 0.009118 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 70;
    minHeight = 0;
    maxHeight = 25;
    power = 0;
    height = 0;
    chargeSpeed = 0.85;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 7.5) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "magnus"
        tbl_3.spinType = script.Parent.kick:GetAttribute("spin")
        tbl_3.maxRight = 5
        tbl_3.grassEffect = true
        tbl_3.ankle = true
        tbl_3.checkOffside = true
        tbl_3.currentFoot = module_upvr.currentFoot
        tbl_3.updateStats = "Shots"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 63
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 69
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 77
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 86
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 103
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 112
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 129
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.kick:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 166
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript side kick left side kick left
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:28
-- Luau version 6, Types version 3
-- Time taken: 0.008262 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 70;
    minHeight = 0;
    maxHeight = 25;
    power = 0;
    height = 0;
    chargeSpeed = 0.85;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * -module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 7.5) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "magnus"
        tbl_3.spinType = script.Parent.kick:GetAttribute("spin")
        tbl_3.grassEffect = true
        tbl_3.ankle = true
        tbl_3.checkOffside = true
        tbl_3.currentFoot = module_upvr.currentFoot
        tbl_3.updateStats = "Shots"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 62
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 68
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 76
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 85
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 102
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 111
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 128
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.kick:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 165
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript backspin backspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:29
-- Luau version 6, Types version 3
-- Time taken: 0.002262 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.using = true
        script.Parent.kick:SetAttribute("spin", "backspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "BACKSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript topspin topspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:31
-- Luau version 6, Types version 3
-- Time taken: 0.002307 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not script.Parent.kick:GetAttribute("charging") then
    else
        arg1.using = true
        script.Parent.kick:SetAttribute("spin", "topspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "TOPSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript power shot power shot
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:32
-- Luau version 6, Types version 3
-- Time taken: 0.012223 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 80;
    maxPower = 150;
    minHeight = 15;
    maxHeight = 20;
    power = 0;
    height = 0;
    chargeSpeed = 1.6;
    charging = false;
    canReact = false;
    using = false;
    animationPlaying = false;
    currentAnimationTrack = nil;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 36
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.curve = true
        tbl_2.curveType = "magnus"
        tbl_2.spinType = script.Parent.kick:GetAttribute("spin")
        tbl_2.grassEffect = true
        tbl_2.risingShot = false
        tbl_2.power = module_upvr.power
        tbl_2.checkOffside = true
        tbl_2.currentFoot = module_upvr.currentFoot
        tbl_2.updateStats = "Shots"
        module_upvr.root:react(tbl_2)
    end
end
local tbl = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 63
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 69
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 77
    --[[ Upvalues[3]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: Services_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 86
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            if arg1.animationPlaying and arg1.currentAnimationTrack then
                arg1.currentAnimationTrack:Stop()
                arg1.animationPlaying = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.maid.cancelInput = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 105
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg2 (readonly)
        ]]
        if arg2_2 then
        elseif arg1_2.KeyCode == Enum.KeyCode.C then
            if arg1.charging then
                arg1:cancelCharge(arg2)
                return
            end
            if arg1.animationPlaying then
                arg1:fakeShot(arg2)
            end
        end
    end)
    arg1.root = arg2
end
function module_upvr.cancelCharge(arg1, arg2) -- Line 123
    if not arg1.charging or not _G._root:GetAttribute("charging") then
    else
        arg1.charging = false
        _G._root:SetAttribute("charging", false)
        arg2:resetPowerBar()
        task.delay(0.35, function() -- Line 133
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.using = false
        end)
    end
end
function module_upvr.fakeShot(arg1, arg2) -- Line 139
    --[[ Upvalues[2]:
        [1]: Services_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if not arg1.animationPlaying or not arg1.currentAnimationTrack then
    else
        arg1.currentAnimationTrack:Stop()
        arg1.animationPlaying = false
        arg1.react.clear()
        arg1.canReact = false
        Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.35, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
        }):Play()
        arg2:resetPowerBar()
        task.delay(0.35, function() -- Line 161
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.using = false
        end)
        task.delay(0.45, function() -- Line 166
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            arg2.movementController:SetAttribute("canSprint", true)
        end)
        task.delay(0.55, function() -- Line 171
            --[[ Upvalues[1]:
                [1]: arg2 (readonly)
            ]]
            if not _G._root:GetAttribute("forceDisable") then
                _G._root:SetAttribute("globalOverride", false)
            end
            arg2.movementController:SetAttribute("forceStop", false)
        end)
        script.Parent.kick:SetAttribute("spin", "topspin")
    end
end
function module_upvr.inputBegan(arg1, arg2) -- Line 184
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 193
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
function module_upvr.inputEnded(arg1, arg2) -- Line 210
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg2.movementController:SetAttribute("forceStop", true)
        arg2.movementController:SetAttribute("canSprint", false)
        Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value) - 15;
        }):Play()
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        arg1.currentAnimationTrack = any_LoadAnimation_result1
        arg1.animationPlaying = true
        any_LoadAnimation_result1:Play()
        any_LoadAnimation_result1.Stopped:Connect(function() -- Line 236
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            arg1.animationPlaying = false
            arg1.currentAnimationTrack = nil
        end)
        task.wait(0.835)
        if arg1.animationPlaying then
            if _G._root:GetAttribute("currentFoot") == 'R' then
                arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            else
                arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
            end
        end
        if arg1.animationPlaying then
            task.wait(0.3)
            Services_upvr.TweenService:Create(workspace.CurrentCamera, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                FieldOfView = tonumber(References_upvr.Profile.settings.Visual["Field of View"].Value);
            }):Play()
            arg2:resetPowerBar()
            arg1.react.clear()
            arg1.canReact = false
            script.Parent.kick:SetAttribute("spin", "topspin")
            task.wait(0.3)
            arg2.movementController:SetAttribute("canSprint", true)
            if not _G._root:GetAttribute("forceDisable") then
                _G._root:SetAttribute("globalOverride", false)
            end
            task.wait(2)
            arg1.using = false
            arg1.animationPlaying = false
        end
    end
end
function module_upvr.clear(arg1) -- Line 275
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript knuckle knuckle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:34
-- Luau version 6, Types version 3
-- Time taken: 0.003750 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function(arg1_2) -- Line 30
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 47
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not script.Parent.kick:GetAttribute("charging") then
    else
        arg1.using = true
        script.Parent.kick:SetAttribute("spin", "knuckle")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "KNUCKLE"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 64
    arg1.maid:DoCleaning()
end
return module
ModuleScript trivela trivela
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:35
-- Luau version 6, Types version 3
-- Time taken: 0.007495 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 110;
    minHeight = 5;
    maxHeight = 20;
    power = 110;
    height = 0;
    chargeSpeed = 0.75;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var7 = "right"
        local var8 = (HumanoidRootPart.CFrame.LookVector * module_upvr.power) + (Vector3.new(0, module_upvr.height, 10) + Vector3.new(math.random(-3, 3), math.random(0, 3), math.random(-2, 2)))
        if _G._root:GetAttribute("currentFoot") == 'R' then
            var8 += HumanoidRootPart.CFrame.rightVector * -(module_upvr.power / 7)
        else
            var8 += (HumanoidRootPart.CFrame.rightVector) * (module_upvr.power / 10)
            var7 = "left"
        end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = var8
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = var7
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 65
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 71
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 79
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 88
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 105
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 113
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 130
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg2.ragdoll:toggle(false)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 169
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript scorpion scorpion
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:36
-- Luau version 6, Types version 3
-- Time taken: 0.009589 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 0;
    maxHeight = 12;
    power = 0;
    height = 0;
    chargeSpeed = 0.35;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg2.Position.Y < LocalPlayer_upvr.Character.HumanoidRootPart.Position.Y - 1.5 then return end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "inverted"
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 67
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear() -- Line 73
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 81
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 90
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 107
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 116
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 133
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg2.collisions:toggle("all", "2_limbs")
        arg2:lockRoot(true)
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
        BodyVelocity.Velocity = Vector3.new(0, 1, 0)
        BodyVelocity.MaxForce = Vector3.new(0, 5000, 0)
        Services_upvr.Debris:AddItem(BodyVelocity, 0.3125)
        workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1.Looped = false
        any_LoadAnimation_result1:Play(nil, nil, 1.6)
        task.wait(0.37499999999999994)
        arg2:lockRoot(false)
        arg2.ragdoll:toggle(true)
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        Services_upvr.RunService.Heartbeat:Connect(function() -- Line 173
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        end):Disconnect()
        arg2.ragdoll:toggle(false)
        task.wait(1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 200
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript diving header diving header
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:38
-- Luau version 6, Types version 3
-- Time taken: 0.012142 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 90;
    minHeight = 0;
    maxHeight = 9;
    power = 0;
    height = 0;
    chargeSpeed = 0.35;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg2.Position.Y <= 1.5 then return end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "inverted"
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 66
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear() -- Line 72
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 80
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 89
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 106
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 115
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 132
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg2.collisions:toggle("all", "2_limbs")
        arg2:lockRoot(true)
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        local HumanoidRootPart_upvr = LocalPlayer_upvr.Character.HumanoidRootPart
        local LookVector_upvr = HumanoidRootPart_upvr.CFrame.LookVector
        local BodyVelocity = Instance.new("BodyVelocity", HumanoidRootPart_upvr)
        BodyVelocity.Velocity = LookVector_upvr * 30 + Vector3.new(0, 3, 0)
        BodyVelocity.MaxForce = Vector3.new(10000, 5000, 10000)
        Services_upvr.Debris:AddItem(BodyVelocity, 0.28125)
        task.delay(0.1, function() -- Line 163
            --[[ Upvalues[2]:
                [1]: HumanoidRootPart_upvr (readonly)
                [2]: LookVector_upvr (readonly)
            ]]
            if HumanoidRootPart_upvr and HumanoidRootPart_upvr:FindFirstChild("BodyVelocity") then
                HumanoidRootPart_upvr.BodyVelocity.Velocity = LookVector_upvr * 25 + Vector3.new(0, 1, 0)
            end
        end)
        workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"Head"})
        else
            arg1.react.new({"Head"})
        end
        local DivingHeader = References_upvr.Main.animations.Tools.kick.divingheader.DivingHeader
        if not DivingHeader or typeof(DivingHeader) ~= "Instance" or not DivingHeader:IsA("Animation") then
            warn("Diving Header Animation not found or is not an Animation object")
            arg1.using = false
            _G._root:SetAttribute("globalOverride", false)
            return
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(DivingHeader)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1.Looped = false
        any_LoadAnimation_result1:Play(nil, nil, 1.6)
        task.wait(0.37499999999999994)
        arg2:lockRoot(false)
        arg2.ragdoll:toggle(true)
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        Services_upvr.RunService.Heartbeat:Connect(function() -- Line 195
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        end):Disconnect()
        arg2.ragdoll:toggle(false)
        task.wait(1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 222
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript scissor scissor
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:39
-- Luau version 6, Types version 3
-- Time taken: 0.011427 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 95;
    minHeight = 0;
    maxHeight = 11;
    power = 0;
    height = 0;
    chargeSpeed = 0.35;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg2.Position.Y < LocalPlayer_upvr.Character.HumanoidRootPart.Position.Y - 1.5 then return end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "inverted"
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Shots"
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 67
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear() -- Line 73
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 81
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 90
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 107
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 116
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 133
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    local var17
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        var17 = 100
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        var17 = "charging"
        _G._root:SetAttribute(var17, false)
        var17 = "globalOverride"
        _G._root:SetAttribute(var17, true)
        var17 = "all"
        arg2.collisions:toggle(var17, "2_limbs")
        var17 = true
        arg2:lockRoot(var17)
        var17 = LocalPlayer_upvr.Character
        var17.HumanoidRootPart.WeightR.Massless = true
        var17 = LocalPlayer_upvr.Character
        var17.HumanoidRootPart.WeightL.Massless = true
        var17 = LocalPlayer_upvr.Character.HumanoidRootPart
        local BodyVelocity_2 = Instance.new("BodyVelocity", var17)
        BodyVelocity_2.Velocity = Vector3.new(0, 2.79999, 0)
        BodyVelocity_2.MaxForce = Vector3.new(0, 8500, 0)
        var17 = Services_upvr
        var17.Debris:AddItem(BodyVelocity_2, 0.3333333333333333)
        var17 = LocalPlayer_upvr
        local UpperTorso = var17.Character:FindFirstChild("UpperTorso")
        if UpperTorso then
            var17 = Instance.new("BodyVelocity", UpperTorso)
            var17.Velocity = Vector3.new(0, 2.5, 0)
            var17.MaxForce = Vector3.new(0, 4500, 0)
            Services_upvr.Debris:AddItem(var17, 0.30952380952380953)
        end
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var17 = LocalPlayer_upvr.Character:FindFirstChild("RightUpperLeg")
            return var17
        end
        if _G._root:GetAttribute("currentFoot") ~= 'R' or not INLINED() then
            var17 = LocalPlayer_upvr.Character:FindFirstChild("LeftUpperLeg")
        end
        if var17 then
            local BodyVelocity = Instance.new("BodyVelocity", var17)
            BodyVelocity.Velocity = Vector3.new(0, 2, 0)
            BodyVelocity.MaxForce = Vector3.new(0, 3000, 0)
            Services_upvr.Debris:AddItem(BodyVelocity, 0.23809523809523808)
        end
        local var21 = "BodyAngularVelocity"
        local any = Instance.new(var21, LocalPlayer_upvr.Character.HumanoidRootPart)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            var21 = 1.5
        else
            var21 = -1.5
        end
        any.AngularVelocity = Vector3.new(0, var21, 0)
        any.MaxTorque = Vector3.new(0, 40000, 0)
        Services_upvr.Debris:AddItem(any, 0.19047619047619047)
        local BodyAngularVelocity = Instance.new("BodyAngularVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
        BodyAngularVelocity.AngularVelocity = Vector3.new(4, 0, 0)
        BodyAngularVelocity.MaxTorque = Vector3.new(65000, 0, 0)
        Services_upvr.Debris:AddItem(BodyAngularVelocity, 0.2857142857142857)
        local UpperTorso_2 = LocalPlayer_upvr.Character:FindFirstChild("UpperTorso")
        if UpperTorso_2 then
            local BodyAngularVelocity_2 = Instance.new("BodyAngularVelocity", UpperTorso_2)
            BodyAngularVelocity_2.AngularVelocity = Vector3.new(3, 0, 0)
            BodyAngularVelocity_2.MaxTorque = Vector3.new(30000, 0, 0)
            Services_upvr.Debris:AddItem(BodyAngularVelocity_2, 0.2619047619047619)
        end
        workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", var17):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1.Looped = false
        any_LoadAnimation_result1:AdjustWeight(1.5)
        any_LoadAnimation_result1:Play(0.15, nil, 2.1)
        task.wait(0.4047619047619047)
        arg2:lockRoot(false)
        arg2.ragdoll:toggle(true)
        task.wait(0.8)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        Services_upvr.RunService.Heartbeat:Connect(function() -- Line 220
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        end):Disconnect()
        arg2.ragdoll:toggle(false)
        task.wait(1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 247
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript karate karate
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:41
-- Luau version 6, Types version 3
-- Time taken: 0.013929 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 90;
    minHeight = 0;
    maxHeight = 9;
    power = 0;
    height = 0;
    chargeSpeed = 0.35;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg2.Position.Y <= 1.5 then return end
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local LookVector = HumanoidRootPart.CFrame.LookVector
        if module_upvr.currentFoot == 'R' then
            LookVector = (LookVector - HumanoidRootPart.CFrame.RightVector * 0.1).Unit
        elseif module_upvr.currentFoot == 'L' then
            -- KONSTANTERROR: Expression was reused, decompilation is incorrect
            LookVector = (LookVector + HumanoidRootPart.CFrame.RightVector * 0.1).Unit
        end
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.exemptShielding = true
        tbl_2.vector = LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.curve = true
        tbl_2.curveType = "inverted"
        tbl_2.checkOffside = true
        tbl_2.currentFoot = module_upvr.currentFoot
        tbl_2.updateStats = "Shots"
        module_upvr.root:react(tbl_2)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 81
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear() -- Line 87
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 95
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 104
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 121
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 130
            --[[ Upvalues[4]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: arg2 (readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                local var18
                if _G._root:GetAttribute("AngleBarEnabled") and arg2.IsAngleBarEnabledForTool then
                    var18 = arg2:IsAngleBarEnabledForTool("karate_kick")
                end
                if var18 then
                    arg1.height = (arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * 1) * (1 - (1 - (_G._root:GetAttribute("CurrentLookAngle_0_60") or 30) / 60) ^ 2)
                    arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                else
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                    -- KONSTANTERROR: Expression was reused, decompilation is incorrect
                    arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                end
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 164
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    local var20
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        var20 = 100
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        var20 = "charging"
        _G._root:SetAttribute(var20, false)
        var20 = "globalOverride"
        _G._root:SetAttribute(var20, true)
        var20 = "all"
        arg2.collisions:toggle(var20, "2_limbs")
        var20 = true
        arg2:lockRoot(var20)
        var20 = LocalPlayer_upvr.Character
        var20.HumanoidRootPart.WeightR.Massless = true
        var20 = LocalPlayer_upvr.Character
        var20.HumanoidRootPart.WeightL.Massless = true
        var20 = LocalPlayer_upvr
        local HumanoidRootPart_2 = var20.Character.HumanoidRootPart
        var20 = HumanoidRootPart_2.CFrame
        var20 = 0
        if HumanoidRootPart_2.Position.Y < 2 then
            var20 = 3
        end
        local BodyVelocity = Instance.new("BodyVelocity", HumanoidRootPart_2)
        BodyVelocity.Velocity = var20.LookVector * 30 + Vector3.new(0, var20 + 5, 0)
        BodyVelocity.MaxForce = Vector3.new(10000, (var20 + 5) * 250 + 5000, 10000)
        Services_upvr.Debris:AddItem(BodyVelocity, 0.3125)
        workspace.CurrentCamera.CameraSubject = LocalPlayer_upvr.Character.Head
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot"})
        end
        local currentFoot = _G._root:GetAttribute("currentFoot")
        local var26 = References_upvr.Main.animations.Tools.kick.karate[currentFoot]
        if not var26 or typeof(var26) ~= "Instance" or not var26:IsA("Animation") then
            warn("Karate kick animation for foot '"..tostring(currentFoot).."' not found or is not an Animation object. Expected at: references.Main.animations.Tools.kick.karate."..tostring(currentFoot))
            arg1.using = false
            _G._root:SetAttribute("globalOverride", false)
            return
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", var20):LoadAnimation(var26)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1.Looped = false
        any_LoadAnimation_result1:Play(nil, nil, 1.8)
        task.wait(0.4444444444444445)
        arg2:lockRoot(false)
        arg2.ragdoll:toggle(true)
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        Services_upvr.RunService.Heartbeat:Connect(function() -- Line 233
            --[[ Upvalues[1]:
                [1]: LocalPlayer_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
            LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        end):Disconnect()
        arg2.ragdoll:toggle(false)
        task.wait(1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 260
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript core core
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:42
-- Luau version 6, Types version 3
-- Time taken: 0.011157 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent;
    equipped = false;
}
local module = {}
local References_upvr = _engine.References
function module.init(arg1, arg2) -- Line 19
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    local any_new_result1 = any_load_result1_upvr.new()
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    arg1.maid = any_new_result1
    arg1.root = arg2
    arg1.binds = {}
    for _, v_2 in next, arg1.tool.binds:GetChildren() do
        if v_2 and v_2:IsA("ModuleScript") then
            local v_2_2 = require(v_2)
            v_2_2:init(arg2)
            arg1.binds[v_2.Name] = v_2_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_3 in next, arg1.tool.combos:GetChildren() do
            if v_3 and v_3:IsA("ModuleScript") then
                local v_3_2 = require(v_3)
                v_3_2:init(arg2)
                arg1.combos[v_3.Name] = v_3_2
            end
        end
    end
    any_new_result1.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 52
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        local var29
        if not var29 then
        else
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var29 = Services_upvr.UserInputService:GetFocusedTextBox()
                return var29
            end
            if arg2_2 or INLINED() then return end
            var29 = arg1_2.KeyCode.Name
            if var29 == "Unknown" then
                var29 = arg1_2.UserInputType.Name
            end
            for _, v_9 in next, References_upvr.Profile.binds:GetChildren() do
                if v_9 and string.lower(v_9.Name) == string.lower(arg1.tool.Name) then
                    for _, v_10 in next, v_9:GetChildren() do
                        if typeof(v_10.Value) == "string" and string.lower(v_10.Value) == string.lower(var29) then
                            local string_lower_result1 = string.lower(v_10.Name)
                            if arg1.binds[string_lower_result1] and arg1.binds[string_lower_result1].inputBegan then
                                arg1.binds[string_lower_result1]:inputBegan(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1] and arg1.combos[string_lower_result1].inputBegan then
                                arg1.combos[string_lower_result1]:inputBegan(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
    any_new_result1.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 83
        --[[ Upvalues[4]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
        ]]
        if arg2_3 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if arg1_3.KeyCode.Name == "Unknown" then
            end
            for _, v_11 in next, References_upvr.Profile.binds:GetChildren() do
                if v_11 and string.lower(v_11.Name) == string.lower(arg1.tool.Name) then
                    for _, v_12 in next, v_11:GetChildren() do
                        if typeof(v_12.Value) == "string" and string.lower(v_12.Value) == string.lower(arg1_3.UserInputType.Name) then
                            local string_lower_result1_2 = string.lower(v_12.Name)
                            if arg1.binds[string_lower_result1_2] and arg1.binds[string_lower_result1_2].inputEnded then
                                arg1.binds[string_lower_result1_2]:inputEnded(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1_2] and arg1.combos[string_lower_result1_2].inputEnded then
                                arg1.combos[string_lower_result1_2]:inputEnded(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
end
function module.initCustom(arg1, arg2) -- Line 112
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_4, v_4 in next, tbl_upvr do
        arg1[i_4] = v_4
    end
    arg1.equipped = true
    arg1.maid = any_load_result1_upvr.new()
    arg1.root = arg2
    arg1.binds = {}
    for _, v_5 in next, arg1.tool.binds:GetChildren() do
        if v_5 and v_5:IsA("ModuleScript") then
            local v_5_2 = require(v_5)
            v_5_2:init(arg2)
            arg1.binds[v_5.Name] = v_5_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_6 in next, arg1.tool.combos:GetChildren() do
            if v_6 and v_6:IsA("ModuleScript") then
                local v_6_2 = require(v_6)
                v_6_2:init(arg2)
                arg1.combos[v_6.Name] = v_6_2
            end
        end
    end
end
function module.inputBegan(arg1, arg2, arg3) -- Line 147
    if arg1.binds[arg3] and arg1.binds[arg3].inputBegan then
        arg1.binds[arg3]:inputBegan(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputBegan then
        arg1.combos[arg3]:inputBegan(arg2)
    end
end
function module.inputEnded(arg1, arg2, arg3) -- Line 155
    if arg1.binds[arg3] and arg1.binds[arg3].inputEnded then
        arg1.binds[arg3]:inputEnded(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputEnded then
        arg1.combos[arg3]:inputEnded(arg2)
    end
end
function module.equip(arg1) -- Line 163
    arg1.equipped = true
end
function module.unequip(arg1) -- Line 167
    arg1.equipped = false
end
function module.clear(arg1) -- Line 171
    for i_7, v_7 in next, arg1.binds do
        if i_7 and v_7 then
            v_7:clear()
        end
    end
    if arg1.combos then
        for i_8, v_8 in next, arg1.combos do
            if i_8 and v_8 then
                v_8:clear()
            end
        end
    end
    arg1.equipped = false
    arg1.maid:DoCleaning()
end
return module
ModuleScript dribble dribble
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:44
-- Luau version 6, Types version 3
-- Time taken: 0.006908 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).LookVector * 20.5
        if module_upvr.root:isSprinting() then
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).LookVector * 30.5
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 44
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 58
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 67
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 84
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 25 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            -- KONSTANTWARNING: GOTO [106] #73
        end
        -- KONSTANTERROR: [0] 1. Error Block 25 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [92] 63. Error Block 24 start (CF ANALYSIS FAILED)
        arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        if arg2:isSprinting() then
            local any_LoadAnimation_result1_2 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Sprint[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
        else
            local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Dribble[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
        end
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
        -- KONSTANTERROR: [92] 63. Error Block 24 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 125
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript chop right chop right
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:45
-- Luau version 6, Types version 3
-- Time taken: 0.005544 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 15.5
        if module_upvr.root:isSprinting() then
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 20.5
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6
        tbl_3.maxForce = Vector3.new(100000, 100000, 100000)
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 44
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 58
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 67
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 84
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].chop.Right)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 115
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript ball roll ball roll
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:47
-- Luau version 6, Types version 3
-- Time taken: 0.009629 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
    ankle = true;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    local var6
    if not module_upvr.canReact then
    else
        var6 = LocalPlayer_upvr
        local HumanoidRootPart = var6.Character:FindFirstChild("HumanoidRootPart")
        var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * -14.5
        if 30 <= (Vector3.new(arg2.Position.X, 0, arg2.Position.Z) - Vector3.new(HumanoidRootPart.Position.X, 0, HumanoidRootPart.Position.Z)).Magnitude then return end
        if module_upvr.root:isSprinting() then
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * -17.5
        end
        if _G._root:GetAttribute("currentFoot") == 'R' then
            local BodyVelocity = Instance.new("BodyVelocity", HumanoidRootPart)
            BodyVelocity.Velocity = HumanoidRootPart.CFrame.RightVector * -12
            BodyVelocity.MaxForce = Vector3.new(math.huge, 0, math.huge)
            Services_upvr.Debris:AddItem(BodyVelocity, 0.4)
        else
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 14.5
            if module_upvr.root:isSprinting() then
                var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 17.5
            end
            local BodyVelocity_2 = Instance.new("BodyVelocity", HumanoidRootPart)
            BodyVelocity_2.Velocity = HumanoidRootPart.CFrame.RightVector * 12
            BodyVelocity_2.MaxForce = Vector3.new(math.huge, 0, math.huge)
            Services_upvr.Debris:AddItem(BodyVelocity_2, 0.4)
        end
        local tbl_4 = {}
        tbl_4.ball = arg2
        tbl_4.limb = arg1
        tbl_4.vector = var6
        tbl_4.maxForce = Vector3.new(100000, 100000, 100000)
        tbl_4.checkOffside = true
        tbl_4.ankle = true
        module_upvr.root:react(tbl_4)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 70
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 76
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 84
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 93
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 110
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.3)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 145
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript stop ball stop ball
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:48
-- Luau version 6, Types version 3
-- Time taken: 0.004695 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        arg2.AssemblyLinearVelocity = Vector3.new()
        arg2.AssemblyAngularVelocity = Vector3.new()
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 0
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.checkOffside = true
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 43
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 49
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 57
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 66
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 83
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 118
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript right step over right step over
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:50
-- Luau version 6, Types version 3
-- Time taken: 0.002994 seconds

local _engine = _G._engine
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 31
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 48
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name]["step over"].Right)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 72
    arg1.maid:DoCleaning()
end
return module
ModuleScript left step over left step over
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:51
-- Luau version 6, Types version 3
-- Time taken: 0.003730 seconds

local _engine = _G._engine
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 30
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 47
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name]["step over"].Left)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 71
    arg1.maid:DoCleaning()
end
return module
ModuleScript flick up flick up
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:52
-- Luau version 6, Types version 3
-- Time taken: 0.006003 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        task.spawn(function() -- Line 31
            _G._root:SetAttribute("chestCooldown", true)
            task.wait(2)
            _G._root:SetAttribute("chestCooldown", false)
        end)
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").AssemblyLinearVelocity * Vector3.new(1, 0, 1) + Vector3.new(0, 27, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.checkOffside = true
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 47
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 53
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 61
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 70
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 87
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 25 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg2.collisions:toggle("all", "2_limbs")
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            -- KONSTANTWARNING: GOTO [113] #78
        end
        -- KONSTANTERROR: [0] 1. Error Block 25 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [99] 68. Error Block 24 start (CF ANALYSIS FAILED)
        arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        if arg2:isSprinting() then
            local any_LoadAnimation_result1_2 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Sprint[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
        else
            local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Dribble[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
        end
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        arg2.collisions:toggle("reset")
        task.wait(0.1)
        arg1.using = false
        -- KONSTANTERROR: [99] 68. Error Block 24 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 130
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript side flick side flick
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:54
-- Luau version 6, Types version 3
-- Time taken: 0.005408 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = HumanoidRootPart.CFrame.LookVector * 5 + Vector3.new(0, 26, 0)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            var6 += HumanoidRootPart.CFrame.RightVector * 15
        else
            var6 += HumanoidRootPart.CFrame.RightVector * -15
        end
        task.spawn(function() -- Line 37
            _G._root:SetAttribute("chestCooldown", true)
            task.wait(2)
            _G._root:SetAttribute("chestCooldown", false)
        end)
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.vector = var6
        tbl_2.maxForce = Vector3.new(1000, 10000, 1000)
        tbl_2.checkOffside = true
        module_upvr.root:react(tbl_2)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 53
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 59
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 67
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 76
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 93
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 128
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript drag back drag back
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:55
-- Luau version 6, Types version 3
-- Time taken: 0.004762 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local BodyVelocity = Instance.new("BodyVelocity", HumanoidRootPart)
        BodyVelocity.Velocity = HumanoidRootPart.CFrame.LookVector * -15
        BodyVelocity.MaxForce = Vector3.new(math.huge, 0, math.huge)
        Services_upvr.Debris:AddItem(BodyVelocity, 0.4)
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).LookVector * -17
        tbl_3.maxForce = Vector3.new(10000, 1000, 10000)
        tbl_3.ankle = true
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_4 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_4.new(arg1) -- Line 47
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 53
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_4.clear = clear
module_upvr.react = tbl_4
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 61
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 70
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 87
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.05)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.2)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 122
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript precision precision
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:56
-- Luau version 6, Types version 3
-- Time taken: 0.006041 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = HumanoidRootPart.CFrame.LookVector * 18
        if module_upvr.root:isSprinting() then
            var6 = HumanoidRootPart.CFrame.LookVector * 24
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6 + Vector3.new(0, 10.5, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 46
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 52
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 60
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 69
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 86
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 25 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            -- KONSTANTWARNING: GOTO [106] #73
        end
        -- KONSTANTERROR: [0] 1. Error Block 25 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [92] 63. Error Block 24 start (CF ANALYSIS FAILED)
        arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        if arg2:isSprinting() then
            local any_LoadAnimation_result1_2 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Sprint[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
        else
            local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Dribble[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1:Play()
        end
        task.wait(0.05)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
        -- KONSTANTERROR: [92] 63. Error Block 24 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 127
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript rainbow rainbow
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:58
-- Luau version 6, Types version 3
-- Time taken: 0.006780 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        module_upvr.canReact = false
        task.spawn(function() -- Line 29
            _G._root:SetAttribute("chestCooldown", true)
            task.wait(2)
            _G._root:SetAttribute("chestCooldown", false)
        end)
        task.wait(0.13)
        local var7 = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 18 + Vector3.new(0, 25, 0)
        local tbl_4 = {}
        tbl_4.ball = arg2
        tbl_4.limb = arg1
        tbl_4.specialTool = true
        tbl_4.vector = var7
        tbl_4.maxForce = Vector3.new(1000, 10000, 1000)
        tbl_4.checkOffside = true
        module_upvr.root:react(tbl_4)
        task.wait(0.025)
        local var9 = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 28
        if 3 <= (arg2.AssemblyLinearVelocity * Vector3.new(1, 0, 1)).Magnitude then
            if _G._root:GetAttribute("currentFoot") == 'R' then
                var9 += LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.RightVector * -10
            else
                var9 += LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.RightVector * 10
            end
        end
        local BodyForce = Instance.new("BodyForce", arg2)
        BodyForce.Force = (arg2:GetMass()) * ((var9 * Vector3.new(1, 0, 1) + Vector3.new(0, 38, 0) - var7) / 0.4)
        Services_upvr.Debris:AddItem(BodyForce, 0.4)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 74
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 80
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 88
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 97
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 114
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg1.tool.combos.fake:GetAttribute("ready") then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.3)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.2)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 145
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript roulette roulette
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:11:59
-- Luau version 6, Types version 3
-- Time taken: 0.009524 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_upvr = {
    _shielding = true;
    canReact = false;
    using = false;
}
local module_upvr = {}
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2._new(arg1) -- Line 28
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
function tbl_2._clear() -- Line 35
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
module_upvr.react = tbl_2
function module_upvr.onTouched(arg1, arg2) -- Line 43
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    local var9
    if not module_upvr.canReact then
    else
        var9 = LocalPlayer_upvr
        local HumanoidRootPart = var9.Character:FindFirstChild("HumanoidRootPart")
        var9 = nil
        if module_upvr.using == "Side" then
            local CFrame_2 = HumanoidRootPart.CFrame
            if _G._root:GetAttribute("currentFoot") == 'R' then
                CFrame_2 = 14
            else
                CFrame_2 = -14
            end
            var9 = CFrame_2.RightVector * CFrame_2
            var9 += HumanoidRootPart.CFrame.LookVector * 5
        elseif module_upvr.using == "Forward" then
            local CFrame = HumanoidRootPart.CFrame
            if module_upvr.root:isSprinting() then
                CFrame = 24
            else
                CFrame = 19
            end
            var9 = CFrame.LookVector * CFrame
        end
        if var9 then
            local tbl = {}
            tbl.ball = arg2
            tbl.limb = arg1
            tbl.vector = var9
            tbl.maxForce = Vector3.new(10000, 0, 10000)
            tbl.checkOffside = true
            module_upvr.root:react(tbl)
        end
    end
end
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 86
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    arg1.tool = script.Parent.Parent
    for i, v in next, tbl_upvr do
        if i ~= "tool" then
            arg1[i] = v
        end
    end
    arg1.root = arg2
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 101
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react._clear()
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 117
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or arg1.using or _G._root:GetAttribute("ragdoll") or arg1.root:isAirbourne() then
    else
        if not arg1.root:getNearestBall(10) then return end
        _G._root:SetAttribute("globalOverride", true)
        arg1.canReact = true
        local any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid.Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].roulette[_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1_upvr:Play(nil, nil, 1.5)
        arg1.using = "Side"
        task.delay(0.13333333333333333, function() -- Line 142
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if not _G._root:GetAttribute("forceDisable") then
                if _G._root:GetAttribute("currentFoot") == 'R' then
                    arg1.react._new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot"})
                    return
                end
                arg1.react._new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot"})
            end
        end)
        task.delay(0.3333333333333333, function() -- Line 152
            --[[ Upvalues[1]:
                [1]: arg1 (readonly)
            ]]
            if not _G._root:GetAttribute("forceDisable") then
                arg1.react._clear()
                arg1.using = "Forward"
                if _G._root:GetAttribute("currentFoot") == 'R' then
                    arg1.react._new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot"})
                    return
                end
                arg1.react._new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot"})
            end
        end)
        task.delay(any_LoadAnimation_result1_upvr.Length / 1.5 - 0.35, function() -- Line 165
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr (readonly)
            ]]
            if any_LoadAnimation_result1_upvr and any_LoadAnimation_result1_upvr.Parent then
                any_LoadAnimation_result1_upvr:Stop(0.35)
            end
        end)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.4666666666666666)
        if not _G._root:GetAttribute("forceDisable") then
            arg1.react._clear()
            arg1.canReact = false
        end
        task.wait(0.06666666666666667)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 185
    if arg1.maid then
        arg1.maid:DoCleaning()
    end
    if arg1.activeHitbox then
        arg1.react._clear()
    end
    arg1.canReact = false
    arg1.using = false
end
return module_upvr
ModuleScript chop left chop left
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:01
-- Luau version 6, Types version 3
-- Time taken: 0.008937 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_5_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    ready = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart_2 = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var9
        if _G._root:GetAttribute("currentFoot") == 'L' and script.Parent.Parent.combos[script:GetAttribute("parent")]:GetAttribute("used") then
            var9 = (HumanoidRootPart_2.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 15.5
        end
        if module_upvr.root:isSprinting() then
            var9 = (HumanoidRootPart_2.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * -20.5
            if _G._root:GetAttribute("currentFoot") == 'L' and script.Parent.Parent.combos[script:GetAttribute("parent")]:GetAttribute("used") then
                var9 = (HumanoidRootPart_2.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 20.5
            end
        end
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.vector = var9
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.checkOffside = true
        module_upvr.root:react(tbl_2)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 53
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 59
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 67
    --[[ Upvalues[2]:
        [1]: tbl_5_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_5_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 76
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 93
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        local Animator = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100)
        if arg1.tool.combos[script:GetAttribute("parent")]:GetAttribute("ready") then
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("ready", false)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", true)
            arg1.using = true
            arg1.canReact = true
            _G._root:SetAttribute("globalOverride", true)
            if _G._root:GetAttribute("currentFoot") == 'R' then
                arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            else
                arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
            end
            local any_LoadAnimation_result1_2 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].fake[_G._root:GetAttribute("currentFoot")].X)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
            task.wait(0.1)
            _G._root:SetAttribute("globalOverride", false)
            task.wait(0.2)
            arg1.react.clear()
            arg1.canReact = false
            task.wait(0.1)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", false)
            arg1.using = false
            return
        end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        local any_LoadAnimation_result1 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].chop.Left)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        _G._root:SetAttribute("globalOverride", false)
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 154
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript tap right tap right
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:02
-- Luau version 6, Types version 3
-- Time taken: 0.006201 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 15.5
        if module_upvr.root:isSprinting() then
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * 20.5
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6 + HumanoidRootPart.CFrame.LookVector * 7
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 46
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 52
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 60
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 69
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 86
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        local Animator = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100)
        if arg1.tool.combos[script:GetAttribute("parent")]:GetAttribute("ready") then
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("ready", false)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", true)
            arg1.using = true
            arg1.canReact = true
            _G._root:SetAttribute("globalOverride", true)
            if _G._root:GetAttribute("currentFoot") == 'R' then
                arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            else
                arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
            end
            local any_LoadAnimation_result1_2 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].fake[_G._root:GetAttribute("currentFoot")].T)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
            task.wait(0.1)
            _G._root:SetAttribute("globalOverride", false)
            task.wait(0.4)
            arg1.react.clear()
            arg1.canReact = false
            task.wait(0.1)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", false)
            arg1.using = false
            return
        end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].tap.right[_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        _G._root:SetAttribute("globalOverride", false)
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 147
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript fake fake
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:04
-- Luau version 6, Types version 3
-- Time taken: 0.003633 seconds

local _engine = _G._engine
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 19
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 28
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module.inputBegan(arg1, arg2) -- Line 45
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        script:SetAttribute("ready", true)
    end
end
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local References_upvr = _engine.References
function module.inputEnded(arg1, arg2) -- Line 53
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or script:GetAttribute("used") or not script:GetAttribute("ready") or arg1.using then
    else
        script:SetAttribute("ready", false)
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].fake[_G._root:GetAttribute("currentFoot")].None)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        _G._root:SetAttribute("globalOverride", false)
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 76
    arg1.maid:DoCleaning()
end
return module
ModuleScript tap left tap left
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:05
-- Luau version 6, Types version 3
-- Time taken: 0.007759 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * -15.5
        if module_upvr.root:isSprinting() then
            var6 = (HumanoidRootPart.CFrame * CFrame.Angles(0.15707963267948966, 0, 0)).RightVector * -20.5
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6 + HumanoidRootPart.CFrame.LookVector * 7
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.checkOffside = true
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 46
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 52
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 60
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 69
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 86
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        local Animator = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100)
        if arg1.tool.combos[script:GetAttribute("parent")]:GetAttribute("ready") then
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("ready", false)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", true)
            arg1.using = true
            arg1.canReact = true
            _G._root:SetAttribute("globalOverride", true)
            if _G._root:GetAttribute("currentFoot") == 'R' then
                arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            else
                arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
            end
            local any_LoadAnimation_result1_2 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].fake[_G._root:GetAttribute("currentFoot")].R)
            any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_2:Play()
            task.wait(0.1)
            _G._root:SetAttribute("globalOverride", false)
            task.wait(0.4)
            arg1.react.clear()
            arg1.canReact = false
            task.wait(0.1)
            arg1.tool.combos[script:GetAttribute("parent")]:SetAttribute("used", false)
            arg1.using = false
            return
        end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = Animator:LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name].tap.left[_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        _G._root:SetAttribute("globalOverride", false)
        task.wait(0.2)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 147
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript core core
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:06
-- Luau version 6, Types version 3
-- Time taken: 0.012616 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent;
    equipped = false;
}
local module = {}
local References_upvr = _engine.References
function module.init(arg1, arg2) -- Line 19
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    local any_new_result1 = any_load_result1_upvr.new()
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    arg1.maid = any_new_result1
    arg1.root = arg2
    arg1.binds = {}
    for _, v_2 in next, arg1.tool.binds:GetChildren() do
        if v_2 and v_2:IsA("ModuleScript") then
            local v_2_2 = require(v_2)
            v_2_2:init(arg2)
            arg1.binds[v_2.Name] = v_2_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_3 in next, arg1.tool.combos:GetChildren() do
            if v_3 and v_3:IsA("ModuleScript") then
                local v_3_2 = require(v_3)
                v_3_2:init(arg2)
                arg1.combos[v_3.Name] = v_3_2
            end
        end
    end
    any_new_result1.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 52
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        local var29
        if not var29 then
        else
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var29 = Services_upvr.UserInputService:GetFocusedTextBox()
                return var29
            end
            if arg2_2 or INLINED() then return end
            var29 = arg1_2.KeyCode.Name
            if var29 == "Unknown" then
                var29 = arg1_2.UserInputType.Name
            end
            for _, v_9 in next, References_upvr.Profile.binds:GetChildren() do
                if v_9 and string.lower(v_9.Name) == string.lower(arg1.tool.Name) then
                    for _, v_10 in next, v_9:GetChildren() do
                        if typeof(v_10.Value) == "string" and string.lower(v_10.Value) == string.lower(var29) then
                            local string_lower_result1 = string.lower(v_10.Name)
                            if arg1.binds[string_lower_result1] and arg1.binds[string_lower_result1].inputBegan then
                                arg1.binds[string_lower_result1]:inputBegan(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1] and arg1.combos[string_lower_result1].inputBegan then
                                arg1.combos[string_lower_result1]:inputBegan(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
    any_new_result1.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 83
        --[[ Upvalues[4]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
        ]]
        if arg2_3 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if arg1_3.KeyCode.Name == "Unknown" then
            end
            for _, v_11 in next, References_upvr.Profile.binds:GetChildren() do
                if v_11 and string.lower(v_11.Name) == string.lower(arg1.tool.Name) then
                    for _, v_12 in next, v_11:GetChildren() do
                        if typeof(v_12.Value) == "string" and string.lower(v_12.Value) == string.lower(arg1_3.UserInputType.Name) then
                            local string_lower_result1_2 = string.lower(v_12.Name)
                            if arg1.binds[string_lower_result1_2] and arg1.binds[string_lower_result1_2].inputEnded then
                                arg1.binds[string_lower_result1_2]:inputEnded(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1_2] and arg1.combos[string_lower_result1_2].inputEnded then
                                arg1.combos[string_lower_result1_2]:inputEnded(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
end
function module.initCustom(arg1, arg2) -- Line 112
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_4, v_4 in next, tbl_upvr do
        arg1[i_4] = v_4
    end
    arg1.equipped = true
    arg1.maid = any_load_result1_upvr.new()
    arg1.root = arg2
    arg1.binds = {}
    for _, v_5 in next, arg1.tool.binds:GetChildren() do
        if v_5 and v_5:IsA("ModuleScript") then
            local v_5_2 = require(v_5)
            v_5_2:init(arg2)
            arg1.binds[v_5.Name] = v_5_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_6 in next, arg1.tool.combos:GetChildren() do
            if v_6 and v_6:IsA("ModuleScript") then
                local v_6_2 = require(v_6)
                v_6_2:init(arg2)
                arg1.combos[v_6.Name] = v_6_2
            end
        end
    end
end
function module.inputBegan(arg1, arg2, arg3) -- Line 147
    if arg1.binds[arg3] and arg1.binds[arg3].inputBegan then
        arg1.binds[arg3]:inputBegan(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputBegan then
        arg1.combos[arg3]:inputBegan(arg2)
    end
end
function module.inputEnded(arg1, arg2, arg3) -- Line 155
    if arg1.binds[arg3] and arg1.binds[arg3].inputEnded then
        arg1.binds[arg3]:inputEnded(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputEnded then
        arg1.combos[arg3]:inputEnded(arg2)
    end
end
function module.equip(arg1) -- Line 163
    arg1.equipped = true
end
function module.unequip(arg1) -- Line 167
    arg1.equipped = false
end
function module.clear(arg1) -- Line 171
    for i_7, v_7 in next, arg1.binds do
        if i_7 and v_7 then
            v_7:clear()
        end
    end
    if arg1.combos then
        for i_8, v_8 in next, arg1.combos do
            if i_8 and v_8 then
                v_8:clear()
            end
        end
    end
    arg1.equipped = false
    arg1.maid:DoCleaning()
end
return module
ModuleScript tackle tackle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:08
-- Luau version 6, Types version 3
-- Time taken: 0.005008 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        module_upvr.canReact = false
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.extendedAnim = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 35 + Vector3.new(0, 5, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.checkOffside = true
        tbl.tackle = true
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 44
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 58
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 67
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 84
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 22 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
            -- KONSTANTWARNING: GOTO [99] #69
        end
        -- KONSTANTERROR: [0] 1. Error Block 22 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [85] 59. Error Block 21 start (CF ANALYSIS FAILED)
        arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.2)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.2)
        if arg1.canReact then
            arg2:slowdown(2)
            task.delay(4, function() -- Line 115
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.using = false
            end)
        else
            task.delay(0.35, function() -- Line 119
                --[[ Upvalues[1]:
                    [1]: arg1 (readonly)
                ]]
                arg1.using = false
            end)
        end
        arg1.react.clear()
        arg1.canReact = false
        -- KONSTANTERROR: [85] 59. Error Block 21 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 128
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript low tackle low tackle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:09
-- Luau version 6, Types version 3
-- Time taken: 0.006828 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_3_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
local any_new_result1_upvr = _engine:load("Network").new()
function module_upvr.onTouched(arg1, arg2, arg3) -- Line 23
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg3 then
            any_new_result1_upvr:send("tripppp", arg3)
            return
        end
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var7 = HumanoidRootPart.CFrame.RightVector * 12
        if _G._root:GetAttribute("currentFoot") == 'L' then
            var7 = HumanoidRootPart.CFrame.RightVector * -12
        end
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.limb = arg1
        tbl_2.vector = var7 + HumanoidRootPart.CFrame.LookVector * 5 + Vector3.new(0, 20, 0)
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.checkOffside = true
        tbl_2.tackle = true
        module_upvr.root:react(tbl_2)
    end
end
local tbl_4 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_4.new(arg1) -- Line 53
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.humanoid = true
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 59
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_4.clear = clear
module_upvr.react = tbl_4
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 67
    --[[ Upvalues[2]:
        [1]: tbl_3_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_3_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 76
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 93
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        if not arg2:getNearestBall(35) then return end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.2)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.35)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 138
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript block block
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:11
-- Luau version 6, Types version 3
-- Time taken: 0.007878 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local any_new_result1_2_upvr = any_load_result1_upvr.new()
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_3_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local var9_upvw = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 20 + Vector3.new(0, 7.5, 0)
        task.spawn(function() -- Line 32
            --[[ Upvalues[4]:
                [1]: module_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: arg1 (readonly)
                [4]: var9_upvw (read and write)
            ]]
            local tbl_4 = {}
            tbl_4.ball = arg2
            tbl_4.limb = arg1
            tbl_4.exemptShielding = true
            tbl_4.vector = var9_upvw
            tbl_4.maxForce = Vector3.new(10000, 10000, 10000)
            tbl_4.conserveAngularVelocity = true
            tbl_4.deflection = true
            tbl_4.checkOffside = true
            tbl_4.block = true
            tbl_4.tackle = true
            tbl_4.cooldown = 0.1
            module_upvr.root:react(tbl_4)
        end)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 50
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 56
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
function module_upvr.init(arg1, arg2) -- Line 64
    --[[ Upvalues[2]:
        [1]: tbl_3_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_3_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 73
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 90
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: any_new_result1_2_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg2.movementController:SetAttribute("canSprint", false)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 10
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso"})
        any_new_result1_2_upvr.updateWalkSpeed = Services_upvr.RunService.Heartbeat:Connect(function() -- Line 106
            --[[ Upvalues[2]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: Services_upvr (copied, readonly)
            ]]
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 10
        end)
        arg1.animationTrack = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        arg1.animationTrack.Priority = Enum.AnimationPriority.Action4
        arg1.animationTrack:Play(0.2)
    end
end
function module_upvr.inputEnded(arg1, arg2) -- Line 115
    --[[ Upvalues[3]:
        [1]: any_new_result1_2_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if not _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.using then
    else
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        if arg1.animationTrack then
            arg1.animationTrack:Stop(0.2)
            arg1.animationTrack = nil
        end
        any_new_result1_2_upvr:DoCleaning()
        arg2.movementController:SetAttribute("canSprint", true)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
        arg1.react.clear()
        arg1.canReact = false
        task.wait(1.4)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 140
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript slide tackle slide tackle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:12
-- Luau version 6, Types version 3
-- Time taken: 0.010020 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
local any_new_result1_upvr = _engine:load("Network").new()
function module_upvr.onTouched(arg1, arg2, arg3) -- Line 24
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg3 and (arg1.Name == "Collide" or arg1.Name == "RightUpperLeg" or arg1.Name == "RightLowerLeg" or arg1.Name == "RightFoot" or arg1.Name == "RightBoot" or arg1.Name == "LeftUpperLeg" or arg1.Name == "LeftLowerLeg" or arg1.Name == "LeftFoot" or arg1.Name == "LeftBoot") then
            any_new_result1_upvr:send("trip", arg3, module_upvr.ball)
            return
        end
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local var8 = HumanoidRootPart.CFrame.RightVector * -28
        if _G._root:GetAttribute("currentFoot") == 'L' then
            var8 = HumanoidRootPart.CFrame.RightVector * 28
        end
        module_upvr.ball = true
        local tbl = {}
        tbl.ball = arg2
        tbl.vector = var8 + HumanoidRootPart.CFrame.LookVector * 5 + Vector3.new(0, 5, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.limb = arg1
        tbl.extendedAnim = true
        tbl.exemptShielding = true
        tbl.conserveAngularVelocity = true
        tbl.deflection = true
        tbl.checkOffside = true
        tbl.ballFirst = module_upvr.ball
        tbl.tackle = true
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr_3 = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 61
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_3 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.humanoid = true
    tbl_2.limitTrip = "legs"
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_3.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 67
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 75
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 84
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
local any_load_result1_upvr_2 = _engine:load("Sounds")
function module_upvr.inputBegan(arg1, arg2) -- Line 101
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg2:isAirbourne() or arg1.using then
    else
        if not arg2:getNearestBall(35) then return end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        LocalPlayer_upvr.Character.Humanoid.AutoRotate = false
        arg2.movementController:SetAttribute("canSprint", false)
        if _G._root:getAttribute("currentFoot") == 'R' then
            arg2:startPitchWear({"LeftFoot"})
            task.delay(0.7, function() -- Line 123
                --[[ Upvalues[1]:
                    [1]: arg2 (readonly)
                ]]
                arg2:endPitchWear()
                arg2:grassStain({"LeftUpperArm", "LeftLowerArm", "LeftUpperLeg", "LeftLowerLeg"})
            end)
        else
            arg2:startPitchWear({"RightFoot"})
            task.delay(0.7, function() -- Line 130
                --[[ Upvalues[1]:
                    [1]: arg2 (readonly)
                ]]
                arg2:endPitchWear()
                arg2:grassStain({"RightUpperArm", "RightLowerArm", "RightUpperLeg", "RightLowerLeg"})
            end)
        end
        arg2.collisions:toggle("all", "2_limbs")
        arg2.collisions:toggle({"UpperTorso", "LowerTorso"}, "6_none")
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        task.spawn(function() -- Line 141
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: any_load_result1_upvr_2 (copied, readonly)
                [3]: LocalPlayer_upvr (copied, readonly)
            ]]
            local children = References_upvr.Main.sounds.Slide:GetChildren()
            any_load_result1_upvr_2:load({
                directory = LocalPlayer_upvr.Character.HumanoidRootPart;
                soundId = children[math.random(1, #children)].SoundId;
                rollOffMaxDistance = 500;
                rollOffMinDistance = 30;
                volume = 0.1;
                play = true;
                replicate = true;
            })
        end)
        local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
        BodyVelocity.Velocity = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 35
        BodyVelocity.MaxForce = Vector3.new(1, 1, 1) * math.huge
        Services_upvr.Debris:AddItem(BodyVelocity, 0.7)
        Services_upvr.TweenService:Create(BodyVelocity, TweenInfo.new(0.7, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Velocity = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 20;
        }):Play()
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.7)
        arg2.ragdoll:toggle(true)
        arg1.react.clear()
        arg1.canReact = false
        arg1.ball = nil
        task.wait(1)
        LocalPlayer_upvr.Character.UpperTorso.CanCollide = true
        arg2.ragdoll:toggle(false)
        task.wait(1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 188
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript chest control chest control
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:14
-- Luau version 6, Types version 3
-- Time taken: 0.006418 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 20 + Vector3.new(0, 7.5, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.checkOffside = true
        tbl.chest = true
        tbl.tackle = true
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 44
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 50
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 58
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 67
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 84
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or _G._root:GetAttribute("chestCooldown") or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "Torso"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Animation)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.35)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.7)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 115
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript chest stop chest stop
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:15
-- Luau version 6, Types version 3
-- Time taken: 0.004460 seconds

local _engine = _G._engine
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local tbl_4_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        arg2.AssemblyLinearVelocity = Vector3.new()
        arg2.AssemblyAngularVelocity = Vector3.new()
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = Vector3.new()
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.checkOffside = true
        tbl.chest = true
        tbl.tackle = true
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 48
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 54
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 62
    --[[ Upvalues[2]:
        [1]: tbl_4_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_4_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 71
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 88
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or _G._root:GetAttribute("chestCooldown") or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "Torso"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Animation)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.35)
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.7)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 119
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript straight slide tackle straight slide tackle
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:17
-- Luau version 6, Types version 3
-- Time taken: 0.007922 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
local any_new_result1_upvr = _engine:load("Network").new()
function module_upvr.onTouched(arg1, arg2, arg3) -- Line 24
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if arg3 and (arg1.Name == "Collide" or arg1.Name == "RightUpperLeg" or arg1.Name == "RightLowerLeg" or arg1.Name == "RightFoot" or arg1.Name == "RightBoot" or arg1.Name == "LeftUpperLeg" or arg1.Name == "LeftLowerLeg" or arg1.Name == "LeftFoot" or arg1.Name == "LeftBoot") then
            any_new_result1_upvr:send("trip", arg3, module_upvr.ball)
            return
        end
        module_upvr.ball = true
        local tbl_2 = {}
        tbl_2.ball = arg2
        tbl_2.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 60 + Vector3.new(0, 5, 0)
        tbl_2.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_2.limb = arg1
        tbl_2.extendedAnim = true
        tbl_2.exemptShielding = true
        tbl_2.conserveAngularVelocity = true
        tbl_2.deflection = true
        tbl_2.checkOffside = true
        tbl_2.ballFirst = module_upvr.ball
        tbl_2.tackle = true
        module_upvr.root:react(tbl_2)
    end
end
local tbl = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 58
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.humanoid = true
    tbl_3.limitTrip = "legs"
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 64
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr_3 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 72
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_3 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_3.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
local any_load_result1_upvr_2 = _engine:load("Sounds")
function module_upvr.inputBegan(arg1, arg2) -- Line 98
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_load_result1_upvr_2 (readonly)
        [4]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg2:isAirbourne() or arg1.using then
    else
        if not arg2:getNearestBall(35) then return end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        LocalPlayer_upvr.Character.Humanoid.AutoRotate = false
        arg2.movementController:SetAttribute("canSprint", false)
        if _G._root:getAttribute("currentFoot") == 'R' then
            arg2:startPitchWear({"LeftFoot"})
            task.delay(0.7, function() -- Line 120
                --[[ Upvalues[1]:
                    [1]: arg2 (readonly)
                ]]
                arg2:endPitchWear()
                arg2:grassStain({"LeftUpperArm", "LeftLowerArm", "LeftUpperLeg", "LeftLowerLeg"})
            end)
        else
            arg2:startPitchWear({"RightFoot"})
            task.delay(0.7, function() -- Line 127
                --[[ Upvalues[1]:
                    [1]: arg2 (readonly)
                ]]
                arg2:endPitchWear()
                arg2:grassStain({"RightUpperArm", "RightLowerArm", "RightUpperLeg", "RightLowerLeg"})
            end)
        end
        arg2.collisions:toggle("all", "2_limbs")
        arg2.collisions:toggle({"UpperTorso", "LowerTorso"}, "6_none")
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        task.spawn(function() -- Line 138
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: any_load_result1_upvr_2 (copied, readonly)
                [3]: LocalPlayer_upvr (copied, readonly)
            ]]
            local children = References_upvr.Main.sounds.Slide:GetChildren()
            any_load_result1_upvr_2:load({
                directory = LocalPlayer_upvr.Character.HumanoidRootPart;
                soundId = children[math.random(1, #children)].SoundId;
                rollOffMaxDistance = 500;
                rollOffMinDistance = 30;
                volume = 0.1;
                play = true;
                replicate = true;
            })
        end)
        local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
        BodyVelocity.Velocity = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 35
        BodyVelocity.MaxForce = Vector3.new(1, 1, 1) * math.huge
        Services_upvr.Debris:AddItem(BodyVelocity, 0.7)
        Services_upvr.TweenService:Create(BodyVelocity, TweenInfo.new(0.7, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            Velocity = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 20;
        }):Play()
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.7)
        arg2.ragdoll:toggle(true)
        arg1.react.clear()
        arg1.canReact = false
        arg1.ball = nil
        task.wait(1)
        LocalPlayer_upvr.Character.UpperTorso.CanCollide = true
        arg2.ragdoll:toggle(false)
        task.wait(1)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 185
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript core core
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:18
-- Luau version 6, Types version 3
-- Time taken: 0.010888 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent;
    equipped = false;
}
local module = {}
local References_upvr = _engine.References
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    local any_new_result1 = any_load_result1_upvr.new()
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    arg1.maid = any_new_result1
    arg1.root = arg2
    arg1.binds = {}
    for _, v_2 in next, arg1.tool.binds:GetChildren() do
        if v_2 and v_2:IsA("ModuleScript") then
            local v_2_2 = require(v_2)
            v_2_2:init(arg2)
            arg1.binds[v_2.Name] = v_2_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_3 in next, arg1.tool.combos:GetChildren() do
            if v_3 and v_3:IsA("ModuleScript") then
                local v_3_2 = require(v_3)
                v_3_2:init(arg2)
                arg1.combos[v_3.Name] = v_3_2
            end
        end
    end
    any_new_result1.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 54
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        local var29
        if not var29 then
        else
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var29 = Services_upvr.UserInputService:GetFocusedTextBox()
                return var29
            end
            if arg2_2 or INLINED() then return end
            var29 = arg1_2.KeyCode.Name
            if var29 == "Unknown" then
                var29 = arg1_2.UserInputType.Name
            end
            for _, v_9 in next, References_upvr.Profile.binds:GetChildren() do
                if v_9 and string.lower(v_9.Name) == string.lower(arg1.tool.Name) or string.lower(v_9.Name) == "misc" then
                    for _, v_10 in next, v_9:GetChildren() do
                        if typeof(v_10.Value) == "string" and string.lower(v_10.Value) == string.lower(var29) then
                            local string_lower_result1 = string.lower(v_10.Name)
                            if arg1.binds[string_lower_result1] and arg1.binds[string_lower_result1].inputBegan then
                                arg1.binds[string_lower_result1]:inputBegan(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1] and arg1.combos[string_lower_result1].inputBegan then
                                arg1.combos[string_lower_result1]:inputBegan(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
    any_new_result1.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 85
        --[[ Upvalues[4]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
        ]]
        if arg2_3 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if arg1_3.KeyCode.Name == "Unknown" then
            end
            for _, v_11 in next, References_upvr.Profile.binds:GetChildren() do
                if v_11 and string.lower(v_11.Name) == string.lower(arg1.tool.Name) or string.lower(v_11.Name) == "misc" then
                    for _, v_12 in next, v_11:GetChildren() do
                        if typeof(v_12.Value) == "string" and string.lower(v_12.Value) == string.lower(arg1_3.UserInputType.Name) then
                            local string_lower_result1_2 = string.lower(v_12.Name)
                            if arg1.binds[string_lower_result1_2] and arg1.binds[string_lower_result1_2].inputEnded then
                                arg1.binds[string_lower_result1_2]:inputEnded(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1_2] and arg1.combos[string_lower_result1_2].inputEnded then
                                arg1.combos[string_lower_result1_2]:inputEnded(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
end
function module.initCustom(arg1, arg2) -- Line 114
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_4, v_4 in next, tbl_upvr do
        arg1[i_4] = v_4
    end
    arg1.equipped = true
    arg1.maid = any_load_result1_upvr.new()
    arg1.root = arg2
    arg1.binds = {}
    for _, v_5 in next, arg1.tool.binds:GetChildren() do
        if v_5 and v_5:IsA("ModuleScript") then
            local v_5_2 = require(v_5)
            v_5_2:init(arg2)
            arg1.binds[v_5.Name] = v_5_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_6 in next, arg1.tool.combos:GetChildren() do
            if v_6 and v_6:IsA("ModuleScript") then
                local v_6_2 = require(v_6)
                v_6_2:init(arg2)
                arg1.combos[v_6.Name] = v_6_2
            end
        end
    end
end
function module.inputBegan(arg1, arg2, arg3, arg4) -- Line 149
    if arg1.binds[arg3] and arg1.binds[arg3].inputBegan then
        arg1.binds[arg3]:inputBegan(arg2, arg4)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputBegan then
        arg1.combos[arg3]:inputBegan(arg2, arg4)
    end
end
function module.inputEnded(arg1, arg2, arg3) -- Line 157
    if arg1.binds[arg3] and arg1.binds[arg3].inputEnded then
        arg1.binds[arg3]:inputEnded(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputEnded then
        arg1.combos[arg3]:inputEnded(arg2)
    end
end
function module.equip(arg1) -- Line 165
    arg1.equipped = true
end
function module.unequip(arg1) -- Line 169
    arg1.equipped = false
end
function module.clear(arg1) -- Line 173
    for i_7, v_7 in next, arg1.binds do
        if i_7 and v_7 then
            v_7:clear()
        end
    end
    if arg1.combos then
        for i_8, v_8 in next, arg1.combos do
            if i_8 and v_8 then
                v_8:clear()
            end
        end
    end
    arg1.equipped = false
    arg1.maid:DoCleaning()
end
return module
ModuleScript clear clear
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:20
-- Luau version 6, Types version 3
-- Time taken: 0.012551 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 60;
    maxPower = 130;
    minHeight = 35;
    maxHeight = 56;
    power = 0;
    height = 0;
    chargeSpeed = 1;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.exemptShielding = true
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "magnus"
        tbl.spinType = script:GetAttribute("spin")
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        module_upvr.root:react(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 58
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_2 = {}
    tbl_2.limbs = arg1
    tbl_2.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_2)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 64
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 72
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 81
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 98
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        if not arg2:gkCheck() then return end
        script:SetAttribute("charging", true)
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 111
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 128
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: module_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 29 start (CF ANALYSIS FAILED)
    local var17
    local function INLINED() -- Internal function, doesn't exist in bytecode
        var17 = _G
        return var17._root:GetAttribute("charging")
    end
    local function INLINED_2() -- Internal function, doesn't exist in bytecode
        var17 = _G
        return var17._root:GetAttribute("ragdoll")
    end
    if _G._root:GetAttribute("globalOverride") or not INLINED() or INLINED_2() or arg1.using or not script:GetAttribute("charging") then
    else
        var17 = LocalPlayer_upvr.Character
        var17 = false
        arg1.using = true
        arg1.canReact = true
        script:SetAttribute("charging", false)
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if arg2:isHolding() then
            var17 = true
            arg2.movementController:SetAttribute("canSprint", false)
            LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 10
            local any_LoadAnimation_result1_upvr = var17.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].ball[_G._root:GetAttribute("currentFoot")])
            any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_upvr:Play(0.2, 8)
            task.delay(1, function() -- Line 153
                --[[ Upvalues[1]:
                    [1]: any_LoadAnimation_result1_upvr (readonly)
                ]]
                any_LoadAnimation_result1_upvr:Stop(0.35)
            end)
            task.delay(0.4, function() -- Line 157
                --[[ Upvalues[3]:
                    [1]: LocalPlayer_upvr (copied, readonly)
                    [2]: arg2 (readonly)
                    [3]: module_upvr (copied, readonly)
                ]]
                local ball = arg2.holding.ball
                arg2:drop()
                task.wait(0.25)
                if ball and ball.Parent then
                    local tbl_4 = {
                        ball = ball;
                        ignoreReactDecline = true;
                        exemptShielding = true;
                        vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0);
                        maxForce = Vector3.new(1, 1, 1) * math.huge;
                    }
                    local var23 = true
                    tbl_4.curve = var23
                    if _G._root:GetAttribute("currentFoot") == 'R' then
                        var23 = "right"
                    else
                        var23 = "left"
                    end
                    tbl_4.curveType = var23
                    tbl_4.ignoreHolding = true
                    module_upvr.root:react(tbl_4)
                end
            end)
            -- KONSTANTWARNING: GOTO [248] #168
        end
        -- KONSTANTERROR: [0] 1. Error Block 29 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [171] 118. Error Block 30 start (CF ANALYSIS FAILED)
        any_LoadAnimation_result1_upvr = _G._root:GetAttribute("currentFoot")
        if any_LoadAnimation_result1_upvr == 'R' then
            any_LoadAnimation_result1_upvr = arg1.react.new
            any_LoadAnimation_result1_upvr({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            any_LoadAnimation_result1_upvr = arg1.react.new
            any_LoadAnimation_result1_upvr({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        any_LoadAnimation_result1_upvr = var17.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].clear[_G._root:GetAttribute("currentFoot")])
        local var26 = any_LoadAnimation_result1_upvr
        var26.Priority = Enum.AnimationPriority.Action4
        var26:Play()
        var26 = task.wait
        var26(0.6)
        var26 = arg2:resetPowerBar
        var26()
        var26 = arg1.react.clear
        var26()
        var26 = false
        arg1.canReact = var26
        var26 = script:SetAttribute
        var26("spin", "topspin")
        var26 = task.wait
        var26(0.2)
        var26 = _G._root:GetAttribute("forceDisable")
        if not var26 then
            var26 = _G._root:SetAttribute
            var26("globalOverride", false)
        end
        if var17 then
            var26 = arg2.movementController:SetAttribute
            var26("canSprint", true)
            var26 = LocalPlayer_upvr.Character.Humanoid:SetStateEnabled
            var26(Enum.HumanoidStateType.Jumping, true)
            var26 = LocalPlayer_upvr.Character.Humanoid
            var26.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
        end
        var26 = task.wait
        var26(0.1)
        var26 = false
        arg1.using = var26
        -- KONSTANTERROR: [171] 118. Error Block 30 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 216
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript catch catch
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:21
-- Luau version 6, Types version 3
-- Time taken: 0.012474 seconds

local _engine = _G._engine
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    diveCatch = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        if module_upvr.root:isHolding() then return end
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.diveCatch = module_upvr.diveCatch
        module_upvr.root:catch(tbl)
    end
end
local tbl_3 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_3.new(arg1) -- Line 39
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_4 = {}
    tbl_4.limbs = arg1
    tbl_4.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl_4)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 45
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_3.clear = clear
module_upvr.react = tbl_3
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 53
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 62
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local LocalPlayer_upvr = _engine.Services.Players.LocalPlayer
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 76
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 2 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [9] 7. Error Block 2 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [18] 13. Error Block 42 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("charging") or _G._root:GetAttribute("catchCooldown") or _G._root:GetAttribute("ragdoll") or arg1.using or arg2:isHolding() then
        -- KONSTANTERROR: [52] 36. Error Block 9 start (CF ANALYSIS FAILED)
        do
            return
        end
        -- KONSTANTERROR: [52] 36. Error Block 9 end (CF ANALYSIS FAILED)
    end
    if not arg2:gkCheck() then
    else
        local any_getNearestBall_result1 = arg2:getNearestBall()
        if not any_getNearestBall_result1 then return end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        local var17
        if _G._root:GetAttribute("diving") then
            arg1.diveCatch = true
            local tbl_5 = {}
            var17 = "Head"
            tbl_5[1] = var17
            tbl_5[2] = "UpperTorso"
            tbl_5[3] = "LowerTorso"
            tbl_5[4] = "RightUpperArm"
            tbl_5[5] = "RightLowerArm"
            tbl_5[6] = "RightHand"
            tbl_5[7] = "LeftUpperArm"
            tbl_5[8] = "LeftLowerArm"
            tbl_5[9] = "LeftHand"
            tbl_5[10] = "Torso"
            tbl_5[11] = "Collide"
            tbl_5[12] = "RightUpperLeg"
            tbl_5[13] = "RightLowerLeg"
            tbl_5[14] = "RightFoot"
            tbl_5[15] = "LeftUpperLeg"
            tbl_5[16] = "LeftLowerLeg"
            var17 = "LeftFoot"
            tbl_5[17] = var17
            arg1.react.new(tbl_5)
            var17 = References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Dive
            local any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(var17)
            any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_upvr:Play(0.15, 7)
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var17 = any_LoadAnimation_result1_upvr.Length - 0.35
                return var17
            end
            if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED() then
                var17 = 0.5
            end
            task.delay(var17, function() -- Line 104
                --[[ Upvalues[1]:
                    [1]: any_LoadAnimation_result1_upvr (readonly)
                ]]
                any_LoadAnimation_result1_upvr:Stop(0.35)
            end)
            var17 = 0.5
            task.wait(var17)
            var17 = arg1.react
            var17.clear()
            arg1.diveCatch = false
            arg1.canReact = false
            var17 = 0.1
            task.wait(var17)
            arg1.using = false
            return
        end
        any_LoadAnimation_result1_upvr = arg1.react.new
        any_LoadAnimation_result1_upvr({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "Torso", "Collide", "RightUpperLeg", "RightLowerLeg", "RightFoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot"})
        any_LoadAnimation_result1_upvr = any_getNearestBall_result1.Position.Y
        if _G._root:GetAttribute("headHeight") <= any_LoadAnimation_result1_upvr then
            any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].High)
            local var22 = any_LoadAnimation_result1_upvr
            var22.Priority = Enum.AnimationPriority.Action4
            var22:Play()
        else
            var22 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Low)
            local var23 = var22
            var23.Priority = Enum.AnimationPriority.Action4
            var23:Play()
        end
        var23 = task.wait
        var23(0.5)
        var23 = _G._root:GetAttribute("forceDisable")
        if not var23 then
            var23 = _G._root:SetAttribute
            var23("globalOverride", false)
        end
        var23 = arg1.react.clear
        var23()
        var23 = false
        arg1.canReact = var23
        var23 = task.wait
        var23(0.1)
        var23 = false
        arg1.using = var23
        -- KONSTANTERROR: [18] 13. Error Block 42 end (CF ANALYSIS FAILED)
    end
end
function module_upvr.clear(arg1) -- Line 142
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript drop ball drop ball
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:23
-- Luau version 6, Types version 3
-- Time taken: 0.004674 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 30
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 47
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    local var11
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not arg2:isHolding() then
    else
        arg1.using = true
        arg1.canReact = true
        var11 = "globalOverride"
        _G._root:SetAttribute(var11, true)
        var11 = "canSprint"
        arg2.movementController:SetAttribute(var11, false)
        var11 = LocalPlayer_upvr
        var11 = Enum.HumanoidStateType.Jumping
        var11.Character.Humanoid:SetStateEnabled(var11, false)
        var11 = LocalPlayer_upvr
        var11 = Services_upvr.StarterPlayer.CharacterWalkSpeed
        var11.Character.Humanoid.WalkSpeed = var11 - 10
        var11 = References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")]
        local any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(var11)
        any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1_upvr:Play(0.1, 8)
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var11 = any_LoadAnimation_result1_upvr.Length - 0.25
            return var11
        end
        if 0.1 > any_LoadAnimation_result1_upvr.Length or not INLINED() then
            var11 = 0.5
        end
        task.delay(var11, function() -- Line 68
            --[[ Upvalues[1]:
                [1]: any_LoadAnimation_result1_upvr (readonly)
            ]]
            any_LoadAnimation_result1_upvr:Stop(0.25)
        end)
        var11 = 0.2
        task.wait(var11)
        arg2:drop()
        var11 = 0.1
        task.wait(var11)
        var11 = "BodyVelocity"
        local any = Instance.new(var11, arg2.holding.ball)
        var11 = LocalPlayer_upvr.Character.HumanoidRootPart.CFrame.LookVector * 10 + LocalPlayer_upvr.Character.HumanoidRootPart.AssemblyLinearVelocity * Vector3.new(0.64999, 0, 0.64999)
        any.Velocity = var11
        var11 = Vector3.new(math.huge, 0, math.huge)
        any.MaxForce = var11
        var11 = Services_upvr.Debris:AddItem
        var11(any, 0.3)
        var11 = task.wait
        var11(0.1)
        var11 = false
        arg1.using = var11
        var11 = _G._root:GetAttribute("forceDisable")
        if not var11 then
            var11 = _G._root:SetAttribute
            var11("globalOverride", false)
        end
        var11 = arg2.movementController:SetAttribute
        var11("canSprint", true)
        var11 = LocalPlayer_upvr.Character.Humanoid:SetStateEnabled
        var11(Enum.HumanoidStateType.Jumping, true)
        var11 = LocalPlayer_upvr.Character.Humanoid
        var11.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
    end
end
function module.clear(arg1) -- Line 95
    arg1.maid:DoCleaning()
end
return module
ModuleScript throw throw
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:24
-- Luau version 6, Types version 3
-- Time taken: 0.009957 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 30;
    maxPower = 85;
    minHeight = -10;
    maxHeight = 25;
    power = 0;
    height = 0;
    chargeSpeed = 0.5;
    chargeAnimation = nil;
    currentFoot = 'R';
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
local any_load_result1_upvr_2 = _engine:load("Maid")
local any_load_result1_upvr = _engine:load("Balls")
function module_upvr.init(arg1, arg2) -- Line 37
    --[[ Upvalues[5]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: LocalPlayer_upvr (readonly)
        [5]: Services_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.ballRemoved = any_load_result1_upvr.BallRemoved:Connect(function(arg1_2) -- Line 46
        --[[ Upvalues[4]:
            [1]: arg2 (readonly)
            [2]: arg1 (readonly)
            [3]: LocalPlayer_upvr (copied, readonly)
            [4]: Services_upvr (copied, readonly)
        ]]
        if arg1_2 == arg2.holding.ball then
            if arg1.chargeAnimation then
                arg1.chargeAnimation:Stop(0.05)
                arg1.chargeAnimation = nil
            end
            arg2:resetPowerBar()
            _G._root:SetAttribute("globalOverride", false)
            arg2.movementController:SetAttribute("canSprint", true)
            LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 66
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 83
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not arg2:isHolding() then
    else
        if not arg2:gkCheck() then return end
        if arg1.chargeAnimation then
            arg1.chargeAnimation:Stop(0.05)
            arg1.chargeAnimation = nil
        end
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg1.chargeAnimation = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][arg1.currentFoot].Charge)
        arg1.chargeAnimation:Play(0.4, 5)
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 105
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
function module_upvr.inputEnded(arg1, arg2) -- Line 122
    --[[ Upvalues[4]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: module_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not arg2:isHolding() then
    else
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg2.movementController:SetAttribute("canSprint", false)
        LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 10
        if arg1.chargeAnimation then
            arg1.chargeAnimation:Stop(0.05)
            arg1.chargeAnimation = nil
        end
        if 0.8 <= (arg1.power - arg1.minPower) / (arg1.maxPower - arg1.minPower) then
            local any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][arg1.currentFoot]["Release High"])
            any_LoadAnimation_result1_upvr.Priority = Enum.AnimationPriority.Action4
            any_LoadAnimation_result1_upvr:Play(0.2, 8)
            task.delay(0.44, function() -- Line 150
                --[[ Upvalues[1]:
                    [1]: any_LoadAnimation_result1_upvr (readonly)
                ]]
                any_LoadAnimation_result1_upvr:Stop(0.35)
            end)
            task.wait(0.15)
        else
            any_LoadAnimation_result1_upvr = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][arg1.currentFoot]["Release Low"])
            local var18_upvr = any_LoadAnimation_result1_upvr
            var18_upvr.Priority = Enum.AnimationPriority.Action4
            var18_upvr:Play(0.2, 8)
            task.delay(0.6, function() -- Line 160
                --[[ Upvalues[1]:
                    [1]: var18_upvr (readonly)
                ]]
                var18_upvr:Stop(0.35)
            end)
            task.wait(0.3)
        end
        var18_upvr = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local ball = arg2.holding.ball
        if ball and ball.Parent then
            arg2:drop()
            for _, v_2 in next, ball:GetChildren() do
                if v_2 and (v_2:IsA("BodyVelocity") or v_2:IsA("BodyAngularVelocity")) then
                    v_2:Destroy()
                end
            end
            local BodyVelocity = Instance.new("BodyVelocity", ball)
            BodyVelocity.Velocity = var18_upvr.CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
            BodyVelocity.MaxForce = Vector3.new(1, 1, 1) * math.huge
            Services_upvr.Debris:AddItem(BodyVelocity, 0.3)
        end
        task.wait(0.5)
        arg2:resetPowerBar()
        arg1.canReact = false
        task.wait(0.2)
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        arg2.movementController:SetAttribute("canSprint", true)
        LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 207
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript punch punch
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:26
-- Luau version 6, Types version 3
-- Time taken: 0.007145 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 75 + Vector3.new(0, 20, 0)
        tbl.maxForce = Vector3.new(1, 1, 1) * math.huge
        module_upvr.root:gkReact(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 40
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 46
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 54
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 63
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2) -- Line 80
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg2:isHolding() then
    else
        if not arg2:gkCheck() then return end
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg2.collisions:toggle("all", "2_limbs")
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "Collide", "Torso"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Animation)
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = true
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = true
        if arg2:isAirbourne() then
            local BodyVelocity_2 = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
            BodyVelocity_2.Velocity = Vector3.new(0, 5, 0)
            BodyVelocity_2.MaxForce = Vector3.new(0, 10000, 0)
            Services_upvr.Debris:AddItem(BodyVelocity_2, 0.45)
        else
            local BodyVelocity = Instance.new("BodyVelocity", LocalPlayer_upvr.Character.HumanoidRootPart)
            BodyVelocity.Velocity = Vector3.new(0, 10, 0)
            BodyVelocity.MaxForce = Vector3.new(0, 10000, 0)
            Services_upvr.Debris:AddItem(BodyVelocity, 0.45)
        end
        task.wait(0.6)
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightR.Massless = false
        LocalPlayer_upvr.Character.HumanoidRootPart.WeightL.Massless = false
        arg2.collisions:toggle("reset")
        arg1.react.clear()
        arg1.canReact = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        task.wait(0.1)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 134
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript reflex reflex
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:28
-- Luau version 6, Types version 3
-- Time taken: 0.011139 seconds

local _engine = _G._engine
local References_upvr = _engine.References
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
    playingHitAnimation = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: References_upvr (readonly)
        [4]: Services_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    -- KONSTANTERROR: [0] 1. Error Block 36 start (CF ANALYSIS FAILED)
    local var7
    if not module_upvr.canReact or not arg1 or module_upvr.playingHitAnimation then
    else
        var7 = "HumanoidRootPart"
        local SOME = LocalPlayer_upvr.Character:FindFirstChild(var7)
        var7 = LocalPlayer_upvr.Character
        var7 = 'R'
        if string.find(arg1.Name, "Right") then
            var7 = 'R'
            -- KONSTANTWARNING: GOTO [75] #58
        end
        -- KONSTANTERROR: [0] 1. Error Block 36 end (CF ANALYSIS FAILED)
        -- KONSTANTERROR: [55] 42. Error Block 37 start (CF ANALYSIS FAILED)
        local var9
        var9 = var9(arg1.Name, "Left")
        if var9 then
            var7 = 'L'
        else
            if math.random(1, 2) == 1 then
                var9 = 'R'
            else
                var9 = 'L'
            end
            var7 = var9
        end
        var9 = module_upvr.animationTrack
        if var9 then
            var9 = module_upvr.animationTrack:Stop
            var9(0.2)
            var9 = module_upvr
            var9.animationTrack = nil
        end
        var9 = var7.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools.gk.reflex.hit[var7])
        local var10_upvr = var9
        var10_upvr:Play(0.1, 5)
        module_upvr.playingHitAnimation = true
        module_upvr.root.movementController:SetAttribute("canSprint", false)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 10
        if 0.1 > var10_upvr.Length or not (var10_upvr.Length - 0.35) then
        end
        task.delay(0.5, function() -- Line 55
            --[[ Upvalues[4]:
                [1]: var10_upvr (readonly)
                [2]: module_upvr (copied, readonly)
                [3]: LocalPlayer_upvr (copied, readonly)
                [4]: Services_upvr (copied, readonly)
            ]]
            var10_upvr:Stop(0.35)
            task.wait(0.3)
            module_upvr.canReact = false
            _G._root:SetAttribute("globalOverride", false)
            module_upvr.playingHitAnimation = false
            module_upvr.root.movementController:SetAttribute("canSprint", true)
            LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
            task.wait(0.3)
            module_upvr.using = false
        end)
        local var13_upvw = SOME.CFrame.LookVector * 22 + SOME.CFrame.RightVector * math.random(-25, 25) + Vector3.new(0, 15, 0)
        task.spawn(function() -- Line 72
            --[[ Upvalues[4]:
                [1]: module_upvr (copied, readonly)
                [2]: arg2 (readonly)
                [3]: arg1 (readonly)
                [4]: var13_upvw (read and write)
            ]]
            local tbl_3 = {}
            tbl_3.ball = arg2
            tbl_3.limb = arg1
            tbl_3.vector = var13_upvw
            tbl_3.maxForce = Vector3.new(1, 1, 1) * math.huge
            module_upvr.root:gkReact(tbl_3)
        end)
        -- KONSTANTERROR: [55] 42. Error Block 37 end (CF ANALYSIS FAILED)
    end
end
local tbl = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl.new(arg1) -- Line 83
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_4 = {}
    tbl_4.limbs = arg1
    tbl_4.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_4)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 89
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl.clear = clear
module_upvr.react = tbl
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 97
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 106
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 123
    --[[ Upvalues[3]:
        [1]: References_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
        [3]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or arg2:isHolding() then
    else
        if not arg2:gkCheck() then return end
        if References_upvr.Main.config.Penalties.Enabled.Value then return end
        arg2.movementController:SetAttribute("canSprint", false)
        LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed - 5
        LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("globalOverride", true)
        arg1.animationTrack = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name].Animation)
        arg1.animationTrack:Play(0.4, 4)
        arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso"})
    end
end
function module_upvr.inputEnded(arg1, arg2) -- Line 152
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if not _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.using then
    else
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
        if arg1.animationTrack then
            arg1.animationTrack:Stop(0.2)
            arg1.animationTrack = nil
        end
        if not arg1.playingHitAnimation then
            LocalPlayer_upvr.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
            arg2.movementController:SetAttribute("canSprint", true)
            LocalPlayer_upvr.Character.Humanoid.WalkSpeed = Services_upvr.StarterPlayer.CharacterWalkSpeed
        end
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.25)
        arg1.using = false
    end
end
function module_upvr.clear(arg1) -- Line 179
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript high dive high dive
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:29
-- Luau version 6, Types version 3
-- Time taken: 0.005379 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 23
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact or module_upvr.root:isHolding() then
    else
        local any_getDeflectionVector_result1 = module_upvr.root:getDeflectionVector(LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").Position, arg2.Position, true)
        if 0 < any_getDeflectionVector_result1.Magnitude then
            any_getDeflectionVector_result1 = any_getDeflectionVector_result1.Unit * (any_getDeflectionVector_result1.Magnitude + 45)
        end
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.vector = any_getDeflectionVector_result1
        tbl_3.maxForce = Vector3.new(1, 1, 1) * math.huge
        tbl_3.ballFirst = module_upvr.ball
        tbl_3.limb = arg1
        module_upvr.root:gkReact(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 45
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 51
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 59
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 68
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2, arg3) -- Line 85
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 36 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then return end
    -- KONSTANTERROR: [0] 1. Error Block 36 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [35] 25. Error Block 8 start (CF ANALYSIS FAILED)
    do
        return
    end
    -- KONSTANTERROR: [35] 25. Error Block 8 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [36] 26. Error Block 9 start (CF ANALYSIS FAILED)
    arg1.using = true
    arg1.canReact = true
    _G._root:SetAttribute("globalOverride", true)
    LocalPlayer_upvr.Character.Humanoid.AutoRotate = false
    arg2.movementController:SetAttribute("canSprint", false)
    arg2.collisions:toggle("all", "2_limbs")
    arg2.collisions:toggle({"UpperTorso", "LowerTorso"}, "6_none")
    arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso"})
    -- KONSTANTERROR: [36] 26. Error Block 9 end (CF ANALYSIS FAILED)
end
function module_upvr.clear(arg1) -- Line 221
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript low dive low dive
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:30
-- Luau version 6, Types version 3
-- Time taken: 0.005930 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    canReact = false;
    using = false;
}
local module_upvr = {}
local any_new_result1_upvr = _engine:load("Network").new()
function module_upvr.onTouched(arg1, arg2, arg3) -- Line 23
    --[[ Upvalues[3]:
        [1]: module_upvr (readonly)
        [2]: any_new_result1_upvr (readonly)
        [3]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact or module_upvr.root:isHolding() then
    else
        if arg3 then
            any_new_result1_upvr:send("trip", arg3, module_upvr.ball)
            return
        end
        local any_getDeflectionVector_result1 = module_upvr.root:getDeflectionVector(LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").Position, arg2.Position, true)
        if 0 < any_getDeflectionVector_result1.Magnitude then
            any_getDeflectionVector_result1 = any_getDeflectionVector_result1.Unit * (any_getDeflectionVector_result1.Magnitude + 40)
        end
        module_upvr.ball = true
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.vector = any_getDeflectionVector_result1
        tbl_3.maxForce = Vector3.new(1, 1, 1) * math.huge
        tbl_3.ballFirst = module_upvr.ball
        tbl_3.limb = arg1
        module_upvr.root:gkReact(tbl_3)
    end
end
local tbl_4 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_4.new(arg1) -- Line 50
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.humanoid = true
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 56
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_4.clear = clear
module_upvr.react = tbl_4
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 64
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 73
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
function module_upvr.inputBegan(arg1, arg2, arg3) -- Line 90
    --[[ Upvalues[3]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
        [3]: References_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 36 start (CF ANALYSIS FAILED)
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then return end
    -- KONSTANTERROR: [0] 1. Error Block 36 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [35] 25. Error Block 8 start (CF ANALYSIS FAILED)
    do
        return
    end
    -- KONSTANTERROR: [35] 25. Error Block 8 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [36] 26. Error Block 9 start (CF ANALYSIS FAILED)
    arg1.using = true
    arg1.canReact = true
    _G._root:SetAttribute("globalOverride", true)
    LocalPlayer_upvr.Character.Humanoid.AutoRotate = false
    arg2.movementController:SetAttribute("canSprint", false)
    arg2.collisions:toggle("all", "2_limbs")
    arg2.collisions:toggle({"UpperTorso", "LowerTorso"}, "6_none")
    arg1.react.new({"Head", "UpperTorso", "LowerTorso", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide", "Torso"})
    -- KONSTANTERROR: [36] 26. Error Block 9 end (CF ANALYSIS FAILED)
end
function module_upvr.clear(arg1) -- Line 217
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript topspin topspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:32
-- Luau version 6, Types version 3
-- Time taken: 0.002858 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not script.Parent.clear:GetAttribute("charging") then
    else
        arg1.using = true
        script.Parent.clear:SetAttribute("spin", "topspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "TOPSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript backspin backspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:33
-- Luau version 6, Types version 3
-- Time taken: 0.002367 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not script.Parent.clear:GetAttribute("charging") then
    else
        arg1.using = true
        script.Parent.clear:SetAttribute("spin", "backspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "BACKSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript core core
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:35
-- Luau version 6, Types version 3
-- Time taken: 0.014978 seconds

local _engine = _G._engine
local any_load_result1_upvr = _engine:load("Maid")
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent;
    equipped = false;
}
local module = {}
local function _(arg1, arg2, arg3) -- Line 19, Named "registerAngleBarSkill"
    if not arg1 or not arg1.SetAngleBarSkillContext then
    else
        if not arg3 then return end
        arg1:SetAngleBarSkillContext(arg2, arg3)
    end
end
local References_upvr = _engine.References
function module.init(arg1, arg2) -- Line 31
    --[[ Upvalues[4]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
        [3]: Services_upvr (readonly)
        [4]: References_upvr (readonly)
    ]]
    local any_new_result1 = any_load_result1_upvr.new()
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    arg1.maid = any_new_result1
    arg1.root = arg2
    arg1.binds = {}
    for _, v_2 in next, arg1.tool.binds:GetChildren() do
        if v_2 and v_2:IsA("ModuleScript") then
            local v_2_2 = require(v_2)
            v_2_2:init(arg2)
            arg1.binds[v_2.Name] = v_2_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_3 in next, arg1.tool.combos:GetChildren() do
            if v_3 and v_3:IsA("ModuleScript") then
                local v_3_2 = require(v_3)
                v_3_2:init(arg2)
                arg1.combos[v_3.Name] = v_3_2
            end
        end
    end
    any_new_result1.inputBegan = Services_upvr.UserInputService.InputBegan:Connect(function(arg1_2, arg2_2) -- Line 64
        --[[ Upvalues[4]:
            [1]: arg1 (readonly)
            [2]: Services_upvr (copied, readonly)
            [3]: References_upvr (copied, readonly)
            [4]: arg2 (readonly)
        ]]
        local var29
        if not var29 then
        else
            local function INLINED() -- Internal function, doesn't exist in bytecode
                var29 = Services_upvr.UserInputService:GetFocusedTextBox()
                return var29
            end
            if arg2_2 or INLINED() then return end
            var29 = arg1_2.KeyCode.Name
            if var29 == "Unknown" then
                var29 = arg1_2.UserInputType.Name
            end
            for _, v_9 in next, References_upvr.Profile.binds:GetChildren() do
                if v_9 and string.lower(v_9.Name) == string.lower(arg1.tool.Name) or string.lower(v_9.Name) == "misc" then
                    for _, v_10 in next, v_9:GetChildren() do
                        if typeof(v_10.Value) == "string" and string.lower(v_10.Value) == string.lower(var29) then
                            local string_lower_result1_2 = string.lower(v_10.Name)
                            local var35 = arg2
                            if var35 then
                                if not var35.SetAngleBarSkillContext then
                                elseif not string_lower_result1_2 then
                                else
                                    var35:SetAngleBarSkillContext(arg1.tool.Name, string_lower_result1_2)
                                end
                            end
                            if arg1.binds[string_lower_result1_2] and arg1.binds[string_lower_result1_2].inputBegan then
                                arg1.binds[string_lower_result1_2]:inputBegan(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1_2] and arg1.combos[string_lower_result1_2].inputBegan then
                                arg1.combos[string_lower_result1_2]:inputBegan(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
    any_new_result1.inputEnded = Services_upvr.UserInputService.InputEnded:Connect(function(arg1_3, arg2_3) -- Line 96
        --[[ Upvalues[4]:
            [1]: Services_upvr (copied, readonly)
            [2]: References_upvr (copied, readonly)
            [3]: arg1 (readonly)
            [4]: arg2 (readonly)
        ]]
        if arg2_3 or Services_upvr.UserInputService:GetFocusedTextBox() then
        else
            if arg1_3.KeyCode.Name == "Unknown" then
            end
            for _, v_11 in next, References_upvr.Profile.binds:GetChildren() do
                if v_11 and string.lower(v_11.Name) == string.lower(arg1.tool.Name) or string.lower(v_11.Name) == "misc" then
                    for _, v_12 in next, v_11:GetChildren() do
                        if typeof(v_12.Value) == "string" and string.lower(v_12.Value) == string.lower(arg1_3.UserInputType.Name) then
                            local string_lower_result1 = string.lower(v_12.Name)
                            if arg1.binds[string_lower_result1] and arg1.binds[string_lower_result1].inputEnded then
                                arg1.binds[string_lower_result1]:inputEnded(arg2)
                            elseif arg1.combos and arg1.combos[string_lower_result1] and arg1.combos[string_lower_result1].inputEnded then
                                arg1.combos[string_lower_result1]:inputEnded(arg2)
                            end
                        end
                    end
                end
            end
        end
    end)
end
function module.initCustom(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: tbl_upvr (readonly)
    ]]
    for i_4, v_4 in next, tbl_upvr do
        arg1[i_4] = v_4
    end
    arg1.equipped = true
    arg1.maid = any_load_result1_upvr.new()
    arg1.root = arg2
    arg1.binds = {}
    for _, v_5 in next, arg1.tool.binds:GetChildren() do
        if v_5 and v_5:IsA("ModuleScript") then
            local v_5_2 = require(v_5)
            v_5_2:init(arg2)
            arg1.binds[v_5.Name] = v_5_2
        end
    end
    if arg1.tool:FindFirstChild("combos") then
        arg1.combos = {}
        for _, v_6 in next, arg1.tool.combos:GetChildren() do
            if v_6 and v_6:IsA("ModuleScript") then
                local v_6_2 = require(v_6)
                v_6_2:init(arg2)
                arg1.combos[v_6.Name] = v_6_2
            end
        end
    end
end
function module.inputBegan(arg1, arg2, arg3) -- Line 160
    if arg2 then
        if not arg2.SetAngleBarSkillContext then
        elseif not arg3 then
        else
            arg2:SetAngleBarSkillContext(arg1.tool.Name, arg3)
        end
    end
    if arg1.binds[arg3] and arg1.binds[arg3].inputBegan then
        arg1.binds[arg3]:inputBegan(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputBegan then
        arg1.combos[arg3]:inputBegan(arg2)
    end
end
function module.inputEnded(arg1, arg2, arg3) -- Line 169
    if arg1.binds[arg3] and arg1.binds[arg3].inputEnded then
        arg1.binds[arg3]:inputEnded(arg2)
    elseif arg1.combos and arg1.combos[arg3] and arg1.combos[arg3].inputEnded then
        arg1.combos[arg3]:inputEnded(arg2)
    end
end
function module.equip(arg1) -- Line 177
    arg1.equipped = true
end
function module.unequip(arg1) -- Line 181
    arg1.equipped = false
end
function module.clear(arg1) -- Line 185
    for i_7, v_7 in next, arg1.binds do
        if i_7 and v_7 then
            v_7:clear()
        end
    end
    if arg1.combos then
        for i_8, v_8 in next, arg1.combos do
            if i_8 and v_8 then
                v_8:clear()
            end
        end
    end
    arg1.equipped = false
    arg1.maid:DoCleaning()
end
return module
ModuleScript lob pass lob pass
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:36
-- Luau version 6, Types version 3
-- Time taken: 0.007412 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 122.5;
    minHeight = 22.5;
    maxHeight = 48.5;
    power = 0;
    height = 0;
    chargeSpeed = 0.7;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "magnus"
        tbl.spinType = script.Parent.pass:GetAttribute("spin")
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Passes"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 59
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 65
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 73
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 82
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 99
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 108
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not arg1.charging then
    else
        arg1.using = true
        arg1.canReact = true
        arg1.charging = false
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.pass:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg2.ragdoll:toggle(false)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 164
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript pass pass
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:38
-- Luau version 6, Types version 3
-- Time taken: 0.006952 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 45;
    maxPower = 87.5;
    minHeight = 0;
    maxHeight = 7;
    power = 0;
    height = 0;
    chargeSpeed = 0.45;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.curve = true
        tbl.curveType = "magnus"
        tbl.spinType = script:GetAttribute("spin")
        tbl.grassEffect = true
        tbl.ankle = true
        tbl.checkOffside = true
        tbl.currentFoot = module_upvr.currentFoot
        tbl.updateStats = "Passes"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 59
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 65
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 73
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 82
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 99
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        script:SetAttribute("charging", true)
        arg1.currentFoot = _G._root:GetAttribute("currentFoot")
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 108
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 125
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not script:GetAttribute("charging") or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        script:SetAttribute("charging", false)
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play(nil, nil, 1.2)
        task.wait(0.5)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 163
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript side pass right side pass right
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:39
-- Luau version 6, Types version 3
-- Time taken: 0.007462 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 0;
    maxHeight = 2;
    power = 0;
    height = 0;
    chargeSpeed = 0.7;
    charging = false;
    canReact = false;
    using = false;
    ankle = true;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 35
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 3) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "right"
        tbl_3.spinType = script.Parent.pass:GetAttribute("spin")
        tbl_3.grassEffect = true
        tbl_3.checkOffside = true
        tbl_3.ankle = false
        tbl_3.updateStats = "Passes"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 62
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 68
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 76
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 85
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 102
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 110
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 127
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play(nil, nil, 1.2)
        task.wait(0.5)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.pass:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 164
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript side pass left side pass left
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:41
-- Luau version 6, Types version 3
-- Time taken: 0.007437 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 0;
    maxHeight = 2;
    power = 0;
    height = 0;
    chargeSpeed = 0.7;
    charging = false;
    canReact = false;
    using = false;
    ankle = true;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 36
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * -module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 3) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "left"
        tbl_3.spinType = script.Parent.pass:GetAttribute("spin")
        tbl_3.grassEffect = true
        tbl_3.checkOffside = true
        tbl_3.ankle = false
        tbl_3.updateStats = "Passes"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 63
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 69
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 77
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 86
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 103
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 111
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 128
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play(nil, nil, 1.2)
        task.wait(0.5)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.pass:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 165
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript backspin backspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:42
-- Luau version 6, Types version 3
-- Time taken: 0.002924 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.using = true
        script.Parent.pass:SetAttribute("spin", "backspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "BACKSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript topspin topspin
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:44
-- Luau version 6, Types version 3
-- Time taken: 0.003170 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local tbl_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 21
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.root = arg2
end
local References_upvr = _engine.References
function module.inputBegan(arg1, arg2) -- Line 33
    --[[ Upvalues[2]:
        [1]: References_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using or not script.Parent.pass:GetAttribute("charging") then
    else
        arg1.using = true
        script.Parent.pass:SetAttribute("spin", "topspin")
        References_upvr.Main.sounds.UI.Click:Play()
        References_upvr.PlayerGui.main.framework.spin.Text = "TOPSPIN"
        References_upvr.PlayerGui.main.framework.spin.TextTransparency = 0
        Services_upvr.TweenService:Create(References_upvr.PlayerGui.main.framework.spin, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextTransparency = 1;
        }):Play()
        task.wait(0.3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 50
    arg1.maid:DoCleaning()
end
return module
ModuleScript pass request pass request
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:45
-- Luau version 6, Types version 3
-- Time taken: 0.012416 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_2_upvr = {
    tool = script.Parent.Parent;
    using = false;
}
local module = {}
local any_load_result1_upvr_2 = _engine:load("Maid")
function module.init(arg1, arg2) -- Line 22
    --[[ Upvalues[2]:
        [1]: tbl_2_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_2_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 31
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
local References_upvr = _engine.References
local any_load_result1_upvr = _engine:load("Sounds")
local mouse_upvr = LocalPlayer_upvr:GetMouse()
function module.inputBegan(arg1, arg2) -- Line 48
    --[[ Upvalues[5]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
        [3]: any_load_result1_upvr (readonly)
        [4]: Services_upvr (readonly)
        [5]: mouse_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local var30
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.using = true
        arg1.canReact = true
        var30 = References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name]
        local any_LoadAnimation_result1_2 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(var30[_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1_2.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1_2:Play()
        task.spawn(function() -- Line 62
            --[[ Upvalues[3]:
                [1]: References_upvr (copied, readonly)
                [2]: any_load_result1_upvr (copied, readonly)
                [3]: LocalPlayer_upvr (copied, readonly)
            ]]
            local children = References_upvr.Main.sounds.CammySounds.Atmosphere.Player["Player Calls"]:GetChildren()
            local var34 = children[math.random(1, #children)]
            any_load_result1_upvr:load({
                directory = LocalPlayer_upvr.Character.HumanoidRootPart;
                soundId = var34.SoundId;
                rollOffMaxDistance = 10000;
                rollOffMinDistance = 30;
                volume = var34.Volume;
                play = true;
                replicate = true;
            })
        end)
        var30 = Services_upvr
        local CurrentCamera = var30.Workspace.CurrentCamera
        var30 = Services_upvr
        local any_GetMouseLocation_result1 = var30.UserInputService:GetMouseLocation()
        var30 = nil
        if workspace:FindFirstChild("game") and workspace.game:FindFirstChild("pitch") then
            var30 = workspace.game.pitch
        elseif workspace:FindFirstChild("pitch") then
            var30 = workspace.pitch
        end
        if var30 then
            local RaycastParams_new_result1_2 = RaycastParams.new()
            RaycastParams_new_result1_2.FilterType = Enum.RaycastFilterType.Whitelist
            RaycastParams_new_result1_2.FilterDescendantsInstances = {var30}
            local any_ViewportPointToRay_result1_2 = CurrentCamera:ViewportPointToRay(any_GetMouseLocation_result1.X, any_GetMouseLocation_result1.Y)
            local any_Raycast_result1 = Services_upvr.Workspace:Raycast(any_ViewportPointToRay_result1_2.Origin, any_ViewportPointToRay_result1_2.Direction * 2000, RaycastParams_new_result1_2)
            if any_Raycast_result1 then
            end
        end
        if not any_Raycast_result1.Position then
            local any_ScreenPointToRay_result1 = CurrentCamera:ScreenPointToRay(any_GetMouseLocation_result1.X, any_GetMouseLocation_result1.Y)
            any_ViewportPointToRay_result1_2 = 0
            local var43
            if var30 and var30:IsA("BasePart") then
                var43 = var30.Position.Y
            end
            local Origin_2 = any_ScreenPointToRay_result1.Origin
            local Unit = any_ScreenPointToRay_result1.Direction.Unit
            if 0.0001 < math.abs(Unit.Y) then
                local var46 = (var43 - Origin_2.Y) / Unit.Y
                if 0 < var46 then
                end
            end
        end
        if not (Origin_2 + Unit * var46) then
        end
        arg2:applyMarker(mouse_upvr.Hit.Position)
        task.wait(3)
        arg1.using = false
    end
end
function module.clear(arg1) -- Line 141
    arg1.maid:DoCleaning()
end
return module
ModuleScript lob pass right lob pass right
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:47
-- Luau version 6, Types version 3
-- Time taken: 0.009550 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 20;
    maxHeight = 47;
    power = 0;
    height = 0;
    chargeSpeed = 1;
    charging = false;
    canReact = false;
    using = false;
    ankle = true;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 35
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 2.5) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "right"
        tbl_3.spinType = script.Parent.pass:GetAttribute("spin")
        tbl_3.grassEffect = true
        tbl_3.checkOffside = true
        tbl_3.ankle = true
        tbl_3.updateStats = "Passes"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 62
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 68
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 76
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 85
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 102
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 110
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 127
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.pass:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 164
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript lob pass left lob pass left
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:48
-- Luau version 6, Types version 3
-- Time taken: 0.007395 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 40;
    maxPower = 85;
    minHeight = 20;
    maxHeight = 47;
    power = 0;
    height = 0;
    chargeSpeed = 1;
    charging = false;
    canReact = false;
    using = false;
    ankle = true;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 35
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local HumanoidRootPart = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart")
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = HumanoidRootPart.CFrame.RightVector * -module_upvr.power + (HumanoidRootPart.CFrame.LookVector) * (module_upvr.power / 2.5) + Vector3.new(0, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.curve = true
        tbl_3.curveType = "left"
        tbl_3.spinType = script.Parent.pass:GetAttribute("spin")
        tbl_3.grassEffect = true
        tbl_3.checkOffside = true
        tbl_3.ankle = true
        tbl_3.updateStats = "Passes"
        module_upvr.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 62
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 68
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 76
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 85
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 102
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 110
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 127
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.6)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        script.Parent.pass:SetAttribute("spin", "topspin")
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 164
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript chop pass chop pass
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:50
-- Luau version 6, Types version 3
-- Time taken: 0.006731 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 30;
    maxPower = 50;
    minHeight = 0;
    maxHeight = 0;
    power = 0;
    height = 0;
    chargeSpeed = 0.4;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    local var6
    if not module_upvr.canReact then
    else
        var6 = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame
        local function INLINED() -- Internal function, doesn't exist in bytecode
            var6 = -module_upvr.power
            return var6
        end
        if _G._root:GetAttribute("currentFoot") ~= 'R' or not INLINED() then
            var6 = module_upvr.power
        end
        var6 = 0
        var6 = module_upvr
        local tbl_3 = {}
        tbl_3.ball = arg2
        tbl_3.limb = arg1
        tbl_3.vector = var6.RightVector * var6 + Vector3.new(var6, module_upvr.height, 0)
        tbl_3.maxForce = Vector3.new(10000, 10000, 10000)
        tbl_3.grassEffect = true
        tbl_3.checkOffside = true
        tbl_3.updateStats = "Passes"
        var6.root:react(tbl_3)
    end
end
local tbl_2 = {}
local any_load_result1_upvr = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 56
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl = {}
    tbl.limbs = arg1
    tbl.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr.new(tbl)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 62
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr_2 = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 70
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr_2 (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr_2.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 79
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 96
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 104
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 121
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.35)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 154
    arg1.maid:DoCleaning()
end
return module_upvr
ModuleScript backheel pass backheel pass
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:51
-- Luau version 6, Types version 3
-- Time taken: 0.007443 seconds

local _engine = _G._engine
local Services_upvr = _engine.Services
local LocalPlayer_upvr = Services_upvr.Players.LocalPlayer
local tbl_upvr = {
    tool = script.Parent.Parent;
    minPower = 19;
    maxPower = 50;
    minHeight = 0;
    maxHeight = 5;
    power = 0;
    height = 0;
    chargeSpeed = 0.4;
    charging = false;
    canReact = false;
    using = false;
}
local module_upvr = {}
function module_upvr.onTouched(arg1, arg2) -- Line 34
    --[[ Upvalues[2]:
        [1]: module_upvr (readonly)
        [2]: LocalPlayer_upvr (readonly)
    ]]
    if not module_upvr.canReact then
    else
        local tbl = {}
        tbl.ball = arg2
        tbl.limb = arg1
        tbl.vector = LocalPlayer_upvr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * -module_upvr.power + Vector3.new(0, module_upvr.height, 0)
        tbl.maxForce = Vector3.new(10000, 10000, 10000)
        tbl.grassEffect = true
        tbl.checkOffside = true
        tbl.updateStats = "Passes"
        module_upvr.root:react(tbl)
    end
end
local tbl_2 = {}
local any_load_result1_upvr_2 = _engine:load("Hitboxes")
function tbl_2.new(arg1) -- Line 56
    --[[ Upvalues[2]:
        [1]: any_load_result1_upvr_2 (readonly)
        [2]: module_upvr (readonly)
    ]]
    local tbl_3 = {}
    tbl_3.limbs = arg1
    tbl_3.callback = module_upvr.onTouched
    local any_new_result1 = any_load_result1_upvr_2.new(tbl_3)
    any_new_result1:init()
    module_upvr.activeHitbox = any_new_result1
end
local function clear(arg1) -- Line 62
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if module_upvr.activeHitbox then
        module_upvr.activeHitbox:clear()
        module_upvr.activeHitbox = nil
    end
end
tbl_2.clear = clear
module_upvr.react = tbl_2
local any_load_result1_upvr = _engine:load("Maid")
function module_upvr.init(arg1, arg2) -- Line 70
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: any_load_result1_upvr (readonly)
    ]]
    for i, v in next, tbl_upvr do
        arg1[i] = v
    end
    if not arg1.maid then
        arg1.maid = any_load_result1_upvr.new()
    end
    arg1.maid.forceDisable = _G._root:GetAttributeChangedSignal("forceDisable"):Connect(function() -- Line 79
        --[[ Upvalues[1]:
            [1]: arg1 (readonly)
        ]]
        if _G._root:GetAttribute("forceDisable") then
            if arg1.react then
                arg1.react.clear()
            end
            if arg1.charging then
                arg1.charging = false
            end
            arg1.canReact = false
            arg1.using = false
        end
    end)
    arg1.root = arg2
end
function module_upvr.inputBegan(arg1, arg2) -- Line 96
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: Services_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or arg1.using then
    else
        arg1.charging = true
        arg2:chargeUp(arg1.chargeSpeed)
        task.spawn(function() -- Line 104
            --[[ Upvalues[3]:
                [1]: LocalPlayer_upvr (copied, readonly)
                [2]: arg1 (readonly)
                [3]: Services_upvr (copied, readonly)
            ]]
            while _G._root:GetAttribute("charging") and LocalPlayer_upvr.PlayerGui:FindFirstChild("UI") do
                arg1.power = arg1.minPower + (arg1.maxPower - arg1.minPower) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                arg1.height = arg1.minHeight + (arg1.maxHeight - arg1.minHeight) * (1 - LocalPlayer_upvr.PlayerGui.UI.Power.Bar.Size.Y.Scale)
                Services_upvr.RunService.RenderStepped:Wait()
            end
        end)
    end
end
local References_upvr = _engine.References
function module_upvr.inputEnded(arg1, arg2) -- Line 121
    --[[ Upvalues[2]:
        [1]: LocalPlayer_upvr (readonly)
        [2]: References_upvr (readonly)
    ]]
    if _G._root:GetAttribute("globalOverride") or not _G._root:GetAttribute("charging") or _G._root:GetAttribute("ragdoll") or not arg1.charging or arg1.using then
    else
        arg1.charging = false
        arg1.using = true
        arg1.canReact = true
        _G._root:SetAttribute("charging", false)
        _G._root:SetAttribute("globalOverride", true)
        if _G._root:GetAttribute("currentFoot") == 'R' then
            arg1.react.new({"RightUpperLeg", "RightLowerLeg", "RightFoot", "RightBoot", "Collide"})
        else
            arg1.react.new({"LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "LeftBoot", "Collide"})
        end
        local any_LoadAnimation_result1 = LocalPlayer_upvr.Character.Humanoid:WaitForChild("Animator", 100):LoadAnimation(References_upvr.Main.animations.Tools[arg1.tool.Name][script.Name][_G._root:GetAttribute("currentFoot")])
        any_LoadAnimation_result1.Priority = Enum.AnimationPriority.Action4
        any_LoadAnimation_result1:Play()
        task.wait(0.35)
        arg2:resetPowerBar()
        arg1.react.clear()
        arg1.canReact = false
        task.wait(0.1)
        arg1.using = false
        if not _G._root:GetAttribute("forceDisable") then
            _G._root:SetAttribute("globalOverride", false)
        end
    end
end
function module_upvr.clear(arg1) -- Line 158
    arg1.maid:DoCleaning()
end
return module_upvr
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:53
-- Luau version 6, Types version 3
-- Time taken: 0.001151 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:54
-- Luau version 6, Types version 3
-- Time taken: 0.001039 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:55
-- Luau version 6, Types version 3
-- Time taken: 0.001338 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:57
-- Luau version 6, Types version 3
-- Time taken: 0.001040 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:12:59
-- Luau version 6, Types version 3
-- Time taken: 0.001080 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:13:01
-- Luau version 6, Types version 3
-- Time taken: 0.001058 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript Runtime Runtime
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:13:03
-- Luau version 6, Types version 3
-- Time taken: 0.001153 seconds

-- KONSTANTERROR: [0] 1. Error Block 13 start (CF ANALYSIS FAILED)
if not script.Parent:IsA("Actor") then return end
local pairs_result1, pairs_result2, pairs_result3 = pairs({game:GetService("ReplicatedStorage"), game:GetService("AssetService"), game:GetService("Players").LocalPlayer:WaitForChild("PlayerScripts")})
-- KONSTANTERROR: [0] 1. Error Block 13 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [72] 52. Error Block 7 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [59] 41. Error Block 4 start (CF ANALYSIS FAILED)
-- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [72.12]
-- KONSTANTERROR: [59] 41. Error Block 4 end (CF ANALYSIS FAILED)
LocalScript LocalScript Players.15121134a.PlayerGui.DefaultOverheads.LocalScript
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:13:05
-- Luau version 6, Types version 3
-- Time taken: 0.001743 seconds

local module_upvr = require(script.Parent:WaitForChild("ModuleScript"))
local LocalPlayer_upvr = game:GetService("Players").LocalPlayer
local function getViewerPosition_upvr() -- Line 4, Named "getViewerPosition"
    --[[ Upvalues[1]:
        [1]: LocalPlayer_upvr (readonly)
    ]]
    return LocalPlayer_upvr.Character.Head.Position
end
game:GetService("RunService").Heartbeat:Connect(function() -- Line 8
    --[[ Upvalues[2]:
        [1]: getViewerPosition_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local pcall_result1, pcall_result2 = pcall(getViewerPosition_upvr)
    module_upvr.UpdateAll(pcall_result1 and pcall_result2)
end)
local function onCharacterAdded(arg1) -- Line 18
    --[[ Upvalues[1]:
        [1]: module_upvr (readonly)
    ]]
    if arg1:FindFirstChildWhichIsA("Humanoid") then
        module_upvr.SetDisplayDistance(arg1.Humanoid.NameDisplayDistance)
        arg1.Humanoid.NameDisplayDistance = 0
    else
        local var7_upvw
        var7_upvw = arg1.ChildAdded:Connect(function(arg1_2) -- Line 23
            --[[ Upvalues[3]:
                [1]: var7_upvw (read and write)
                [2]: module_upvr (copied, readonly)
                [3]: arg1 (readonly)
            ]]
            if not arg1_2:IsA("Humanoid") then
            else
                var7_upvw:Disconnect()
                module_upvr.SetDisplayDistance(arg1.Humanoid.NameDisplayDistance)
                arg1.Humanoid.NameDisplayDistance = 0
            end
        end)
    end
end
LocalPlayer_upvr.CharacterAdded:Connect(onCharacterAdded)
if LocalPlayer_upvr.Character then
    onCharacterAdded(LocalPlayer_upvr.Character)
end
ModuleScript ModuleScript Players.15121134a.PlayerGui.DefaultOverheads.ModuleScript
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:13:07
-- Luau version 6, Types version 3
-- Time taken: 0.007294 seconds

local CollectionService = game:GetService("CollectionService")
local module_upvr_2 = {
    OnAdded = {};
}
local tbl_upvr_2 = {}
local tbl_upvr = {}
local NameDisplayDistance_upvw = game:GetService("StarterPlayer").NameDisplayDistance
local RaycastParams_new_result1_upvr = RaycastParams.new()
RaycastParams_new_result1_upvr.FilterType = Enum.RaycastFilterType.Exclude
local module_upvr = require(script:WaitForChild("OverheadGui"))
local function add_upvr(arg1, arg2, arg3, arg4) -- Line 20, Named "add"
    --[[ Upvalues[4]:
        [1]: module_upvr (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: tbl_upvr_2 (readonly)
        [4]: tbl_upvr (readonly)
    ]]
    local any_new_result1 = module_upvr.new(arg1, arg2, arg3, arg4)
    module_upvr_2.AddToFilter({any_new_result1.Character})
    tbl_upvr_2[any_new_result1.Character] = any_new_result1
    for _, v in tbl_upvr do
        task.spawn(v, any_new_result1)
    end
end
function module_upvr_2.AddToFilter(arg1) -- Line 27
    --[[ Upvalues[1]:
        [1]: RaycastParams_new_result1_upvr (readonly)
    ]]
    local FilterDescendantsInstances_2 = RaycastParams_new_result1_upvr.FilterDescendantsInstances
    for _, v_2 in arg1 do
        if not table.find(FilterDescendantsInstances_2, v_2) then
            table.insert(FilterDescendantsInstances_2, v_2)
        end
    end
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = FilterDescendantsInstances_2
end
function module_upvr_2.RemoveFromFilter(arg1) -- Line 33
    --[[ Upvalues[1]:
        [1]: RaycastParams_new_result1_upvr (readonly)
    ]]
    local FilterDescendantsInstances = RaycastParams_new_result1_upvr.FilterDescendantsInstances
    for _, v_3 in arg1 do
        local table_find_result1 = table.find(FilterDescendantsInstances, v_3)
        if table_find_result1 then
            table.remove(FilterDescendantsInstances, table_find_result1)
        end
    end
    RaycastParams_new_result1_upvr.FilterDescendantsInstances = FilterDescendantsInstances
end
function module_upvr_2.SetDisplayDistance(arg1) -- Line 39
    --[[ Upvalues[1]:
        [1]: NameDisplayDistance_upvw (read and write)
    ]]
    NameDisplayDistance_upvw = math.max(0, arg1)
end
function module_upvr_2.Get(arg1) -- Line 43
    --[[ Upvalues[1]:
        [1]: tbl_upvr_2 (readonly)
    ]]
    return tbl_upvr_2[arg1]
end
module_upvr_2.OnAdded.Connect = function(arg1, arg2, arg3) -- Line 47, Named "Connect"
    --[[ Upvalues[2]:
        [1]: tbl_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
    ]]
    local module = {
        Disconnect = function(arg1_2) -- Line 48, Named "Disconnect"
            --[[ Upvalues[1]:
                [1]: tbl_upvr (copied, readonly)
            ]]
            tbl_upvr[arg1_2] = nil
        end;
    }
    tbl_upvr[module] = arg2
    if not arg3 then
        for _, v_4 in tbl_upvr_2 do
            task.spawn(arg2, v_4)
        end
    end
    return module
end
local Camera_upvr = workspace:WaitForChild("Camera")
local function onBillboardGuiAdded(arg1) -- Line 54, Named "UpdateAll"
    --[[ Upvalues[4]:
        [1]: Camera_upvr (readonly)
        [2]: tbl_upvr_2 (readonly)
        [3]: NameDisplayDistance_upvw (read and write)
        [4]: RaycastParams_new_result1_upvr (readonly)
    ]]
    -- KONSTANTERROR: [0] 1. Error Block 30 start (CF ANALYSIS FAILED)
    if not arg1 or not arg1 then
    end
    -- KONSTANTERROR: [0] 1. Error Block 30 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [86] 66. Error Block 23 start (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [86] 66. Error Block 23 end (CF ANALYSIS FAILED)
    -- KONSTANTERROR: [19] 16. Error Block 6 start (CF ANALYSIS FAILED)
    -- KONSTANTWARNING: Failed to evaluate expression, replaced with nil [86.8]
    -- KONSTANTERROR: [19] 16. Error Block 6 end (CF ANALYSIS FAILED)
end
module_upvr_2.UpdateAll = onBillboardGuiAdded
function onBillboardGuiAdded(arg1) -- Line 73
    --[[ Upvalues[3]:
        [1]: tbl_upvr_2 (readonly)
        [2]: module_upvr_2 (readonly)
        [3]: add_upvr (readonly)
    ]]
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    local Container_upvw = arg1:FindFirstChild("Container")
    local var31_upvw
    if var31_upvw then
        var31_upvw = Container_upvw:FindFirstChildWhichIsA("UIScale")
    end
    if Container_upvw then
    end
    arg1.Destroying:Connect(function() -- Line 76
        --[[ Upvalues[3]:
            [1]: tbl_upvr_2 (copied, readonly)
            [2]: arg1 (readonly)
            [3]: module_upvr_2 (copied, readonly)
        ]]
        for _, v_5 in tbl_upvr_2 do
            if v_5._BillboardGui == arg1 then
                module_upvr_2.RemoveFromFilter({v_5.Character})
                tbl_upvr_2[v_5.Character] = nil
                return
            end
        end
    end)
    if Container_upvw and var31_upvw and Container_upvw:FindFirstChildWhichIsA("UIListLayout") then
        -- KONSTANTERROR: Expression was reused, decompilation is incorrect
        add_upvr(arg1, Container_upvw, var31_upvw, Container_upvw:FindFirstChildWhichIsA("UIListLayout"))
    else
        local class_UIListLayout_upvw = Container_upvw:FindFirstChildWhichIsA("UIListLayout")
        local var38_upvw
        var38_upvw = arg1.DescendantAdded:Connect(function(arg1_3) -- Line 85
            --[[ Upvalues[6]:
                [1]: arg1 (readonly)
                [2]: Container_upvw (read and write)
                [3]: var31_upvw (read and write)
                [4]: class_UIListLayout_upvw (read and write)
                [5]: var38_upvw (read and write)
                [6]: add_upvr (copied, readonly)
            ]]
            -- KONSTANTERROR: [0] 1. Error Block 22 start (CF ANALYSIS FAILED)
            if arg1_3.Parent == arg1 and arg1_3.Name == "Container" then
                Container_upvw = arg1_3
                -- KONSTANTWARNING: GOTO [24] #19
            end
            -- KONSTANTERROR: [0] 1. Error Block 22 end (CF ANALYSIS FAILED)
            -- KONSTANTERROR: [11] 8. Error Block 23 start (CF ANALYSIS FAILED)
            if arg1_3:IsA("UIScale") then
                var31_upvw = arg1_3
            elseif arg1_3:IsA("UIListLayout") then
                class_UIListLayout_upvw = arg1_3
            end
            if not Container_upvw or not var31_upvw or not class_UIListLayout_upvw then
            else
                var38_upvw:Disconnect()
                add_upvr(arg1, Container_upvw, var31_upvw, class_UIListLayout_upvw)
                -- KONSTANTERROR: [11] 8. Error Block 23 end (CF ANALYSIS FAILED)
            end
        end)
    end
end
local var29 = onBillboardGuiAdded
CollectionService:GetInstanceAddedSignal("OverheadGui"):Connect(var29)
for _, v_6 in CollectionService:GetTagged("OverheadGui") do
    task.spawn(var29, v_6)
end
return module_upvr_2
ModuleScript OverheadGui Players.15121134a.PlayerGui.DefaultOverheads.ModuleScript.OverheadGui
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2026-02-10 09:13:09
-- Luau version 6, Types version 3
-- Time taken: 0.004700 seconds

local module_upvr = {}
module_upvr.__index = module_upvr
local function _(arg1, arg2) -- Line 12, Named "setTagTransparency"
    arg1.TextTransparency = arg2
    arg1.TextStrokeTransparency = arg2 / 2 + 0.5
end
local Players_upvr = game:GetService("Players")
function module_upvr.new(arg1, arg2, arg3, arg4) -- Line 16
    --[[ Upvalues[2]:
        [1]: Players_upvr (readonly)
        [2]: module_upvr (readonly)
    ]]
    local Parent = arg1.Parent
    local tbl_2_upvr = {}
    local tbl = {
        Character = Parent;
    }
    local PlayerToHideFrom = arg1.PlayerToHideFrom
    if not PlayerToHideFrom then
        PlayerToHideFrom = Players_upvr:GetPlayerFromCharacter(Parent)
    end
    tbl.Player = PlayerToHideFrom
    tbl._BillboardGui = arg1
    tbl._Container = arg2
    tbl._UIScale = arg3
    tbl._UIListLayout = arg4
    tbl._tags = tbl_2_upvr
    tbl._scale = 1
    tbl._transparency = 0
    tbl._maxDistance = arg1.MaxDistance
    local setmetatable_result1_upvr = setmetatable(tbl, module_upvr)
    arg2.ChildAdded:Connect(function(arg1_2) -- Line 24, Named "onTagAdded"
        --[[ Upvalues[2]:
            [1]: setmetatable_result1_upvr (readonly)
            [2]: tbl_2_upvr (readonly)
        ]]
        if not arg1_2:IsA("TextLabel") then
        else
            local _transparency_2 = setmetatable_result1_upvr._transparency
            arg1_2.TextTransparency = _transparency_2
            arg1_2.TextStrokeTransparency = _transparency_2 / 2 + 0.5
            tbl_2_upvr[arg1_2] = true
        end
    end)
    arg2.ChildRemoved:Connect(function(arg1_3) -- Line 30
        --[[ Upvalues[1]:
            [1]: tbl_2_upvr (readonly)
        ]]
        tbl_2_upvr[arg1_3] = nil
    end)
    for _, v in arg2:GetChildren() do
        if not v:IsA("TextLabel") then
        else
            local _transparency = setmetatable_result1_upvr._transparency
            v.TextTransparency = _transparency
            v.TextStrokeTransparency = _transparency / 2 + 0.5
            tbl_2_upvr[v] = true
        end
    end
    arg4:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() -- Line 32
        --[[ Upvalues[2]:
            [1]: arg1 (readonly)
            [2]: arg4 (readonly)
        ]]
        arg1.Size = UDim2.fromOffset(2, 2 + arg4.AbsoluteContentSize.Y)
    end)
    arg1.Size = UDim2.fromOffset(2, 2 + arg4.AbsoluteContentSize.Y)
    return setmetatable_result1_upvr
end
function module_upvr.Scale(arg1, arg2) -- Line 38
    if arg1._scale == arg2 then
    else
        arg1._scale = arg2
        arg1._UIScale.Scale = arg2
    end
end
function module_upvr.SetTransparency(arg1, arg2) -- Line 44
    -- KONSTANTWARNING: Variable analysis failed. Output will have some incorrect variable assignments
    arg2 = math.clamp(arg2, 0, 1)
    local var23 = arg2
    if arg1._transparency == var23 then
    else
        arg1._transparency = var23
        for i_3 in arg1._tags do
            local var24 = var23
            i_3.TextTransparency = var24
            i_3.TextStrokeTransparency = var24 / 2 + 0.5
        end
    end
end
function module_upvr.SetMaxDistance(arg1, arg2) -- Line 51
    local maximum = math.max(0, arg2)
    if arg1._maxDistance == maximum then
    else
        arg1._maxDistance = maximum
        arg1._BillboardGui.MaxDistance = maximum
    end
end
function module_upvr.GetTag(arg1, arg2) -- Line 58
    for i_2 in arg1._tags do
        if i_2.Name == arg2 then
            return i_2
        end
    end
end
return module_upvr