local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent.Parent;
local v7 = require(l_Parent_0.FormatStatString);
local v8 = require(l_Parent_0.Actions.AddGameStat);
local v9 = require(l_Parent_0.Actions.RemoveGameStat);
local v10 = require(l_Parent_0.Actions.SetPlayerLeaderstat);
local v11 = require(l_Parent_0.Actions.SetGameStatText);
local v12 = require(l_Parent_0.Actions.SetGameStatAddId);
local v13 = v4.PureComponent:extend("LeaderstatsConnector");
local v14 = require(l_Parent_0.Flags.FFlagLeaderstatsWithASideOfClient);
local function v16(v15)
    return ((((v15:IsA("StringValue") or v15:IsA("IntValue")) or v15:IsA("BoolValue")) or v15:IsA("NumberValue")) or v15:IsA("DoubleConstrainedValue")) or v15:IsA("IntConstrainedValue");
end;
local function _(v17)
    if not v17:IsA("DoubleConstrainedValue") and not v17:IsA("IntConstrainedValue") then
        if not v17:IsA("BoolValue") then
            return v17.Value;
        elseif not v17.Value then
            return 0;
        else
            return 1;
        end;
    else
        return v17.ConstrainedValue;
    end;
end;
local v19 = nil;
local v20 = nil;
if v14 then
    v20 = Instance.new("BindableEvent");
    v19 = l_RobloxReplicatedStorage_0:GetAttribute("LeaderstatsOrder") or {};
    l_RobloxReplicatedStorage_0:GetAttributeChangedSignal("LeaderstatsOrder"):Connect(function()
        v19 = l_RobloxReplicatedStorage_0:GetAttribute("LeaderstatsOrder") or {};
        v20:Fire(v19);
    end);
    local l_HttpService_0 = game:GetService("HttpService");
    local function v23(v22)
        return l_HttpService_0:JSONDecode(v22);
    end;
    local function _(v24)
        local l_status_0, l_result_0 = pcall(v23, v24);
        return not not l_status_0 and l_result_0 or {};
    end;
    local v28 = nil;
    do
        local l_v28_0 = v28;
        l_v28_0 = l_RobloxReplicatedStorage_0.ChildAdded:Connect(function(v30)
            if v30.Name ~= "LeaderstatsOrder" then
                return ;
            else
                l_v28_0:Disconnect();
                local l_status_1, l_result_1 = pcall(v23, v30.Value);
                v19 = not not l_status_1 and l_result_1 or {};
                v30.Changed:Connect(function(v33)
                    local l_status_2, l_result_2 = pcall(v23, v33);
                    v19 = not not l_status_2 and l_result_2 or {};
                    v20:Fire(v19);
                end);
                return ;
            end;
        end);
        for _, v37 in ipairs(l_RobloxReplicatedStorage_0:GetChildren()) do
            if not (v37.Name ~= "LeaderstatsOrder") then
                l_v28_0:Disconnect();
                local l_status_3, l_result_3 = pcall(v23, v37.Value);
                v19 = not not l_status_3 and l_result_3 or {};
                v37.Changed:Connect(function(v40)
                    local l_status_4, l_result_4 = pcall(v23, v40);
                    v19 = not not l_status_4 and l_result_4 or {};
                    v20:Fire(v19);
                end);
            end;
        end;
    end;
end;
v13.init = function(v43)
    v43.playerConnections = {};
end;
v13.checkGameStatsExist = function(v44, v45)
    local v46 = {};
    for _, v48 in ipairs(v44.props.gameStats) do
        v46[v48.name] = false;
    end;
    for _, v50 in ipairs(v44.props.players) do
        if v50 ~= v45 then
            local l_leaderstats_0 = v50:FindFirstChild("leaderstats");
            if l_leaderstats_0 then
                for v52 in pairs(v46) do
                    if l_leaderstats_0:FindFirstChild(v52) then
                        v46[v52] = true;
                    end;
                end;
            end;
        end;
    end;
    for v53, v54 in pairs(v46) do
        if not v54 then
            v44.props.removeGameStat(v53);
        end;
    end;
end;
v13.addGameStat = function(v55, v56)
    local v57 = false;
    local v58 = 0;
    local l_IsPrimary_0 = v56:FindFirstChild("IsPrimary");
    if l_IsPrimary_0 then
        v57 = not l_IsPrimary_0:IsA("BoolValue") and true or l_IsPrimary_0.Value;
    end;
    local l_Priority_0 = v56:FindFirstChild("Priority");
    if not (not l_Priority_0 or not l_Priority_0:IsA("IntValue") and not l_Priority_0:IsA("NumberValue")) then
        v58 = l_Priority_0.Value;
    end;
    v55.props.addGameStat(v56.Name, v57, v58);
end;
v13.onStatAdded = function(v61, v62, v63)
    table.insert(v61.playerConnections[v62], (v63.Changed:Connect(function()
        local l_setPlayerLeaderstat_0 = v61.props.setPlayerLeaderstat;
        local l_v62_0 = v62;
        local l_Name_0 = v63.Name;
        local l_v63_0 = v63;
        l_setPlayerLeaderstat_0(l_v62_0, l_Name_0, if l_v63_0:IsA("DoubleConstrainedValue") or l_v63_0:IsA("IntConstrainedValue") then l_v63_0.ConstrainedValue else if l_v63_0:IsA("BoolValue") then l_v63_0.Value and 1 or 0 else l_v63_0.Value);
        if v62 == l_Players_0.LocalPlayer then
            l_setPlayerLeaderstat_0 = v61.props.setGameStatText;
            l_v62_0 = v63.Name;
            l_Name_0 = v7;
            l_v63_0 = v63;
            l_setPlayerLeaderstat_0(l_v62_0, l_Name_0(if l_v63_0:IsA("DoubleConstrainedValue") or l_v63_0:IsA("IntConstrainedValue") then l_v63_0.ConstrainedValue else if l_v63_0:IsA("BoolValue") then l_v63_0.Value and 1 or 0 else l_v63_0.Value));
        end;
    end)));
    if v14 and v62 == l_Players_0.LocalPlayer then
        table.insert(v61.playerConnections[v62], (v63:GetPropertyChangedSignal("Name"):Connect(function()
            local l_setGameStatText_0 = v61.props.setGameStatText;
            local l_Name_1 = v63.Name;
            local l_v7_0 = v7;
            local l_v63_1 = v63;
            l_setGameStatText_0(l_Name_1, l_v7_0(if l_v63_1:IsA("DoubleConstrainedValue") or l_v63_1:IsA("IntConstrainedValue") then l_v63_1.ConstrainedValue else if l_v63_1:IsA("BoolValue") then l_v63_1.Value and 1 or 0 else l_v63_1.Value));
        end)));
        table.insert(v61.playerConnections[v62], (v20.Event:Connect(function(v72)
            local l_Name_2 = v63.Name;
            v61.props.setGameStatAddId(l_Name_2, v72[l_Name_2]);
        end)));
    end;
    table.insert(v61.playerConnections[v62], (v63.ChildAdded:Connect(function()
        v61:addGameStat(v63);
    end)));
    table.insert(v61.playerConnections[v62], (v63.ChildRemoved:Connect(function()
        v61:addGameStat(v63);
    end)));
    v61:addGameStat(v63);
    v61.props.setPlayerLeaderstat(v62, v63.Name, if v63:IsA("DoubleConstrainedValue") or v63:IsA("IntConstrainedValue") then v63.ConstrainedValue else if v63:IsA("BoolValue") then v63.Value and 1 or 0 else v63.Value);
    if v62 == l_Players_0.LocalPlayer then
        local l_Name_3 = v63.Name;
        if v14 then
            v61.props.setGameStatAddId(l_Name_3, v19[l_Name_3]);
        end;
        v61.props.setGameStatText(l_Name_3, v7(if v63:IsA("DoubleConstrainedValue") or v63:IsA("IntConstrainedValue") then v63.ConstrainedValue else if v63:IsA("BoolValue") then v63.Value and 1 or 0 else v63.Value));
    end;
end;
v13.leaderstatsAdded = function(v75, v76, v77)
    table.insert(v75.playerConnections[v76], (v77.ChildAdded:Connect(function(v78)
        if v16(v78) then
            v75:onStatAdded(v76, v78);
        end;
    end)));
    table.insert(v75.playerConnections[v76], (v77.ChildRemoved:Connect(function(v79)
        v75.props.setPlayerLeaderstat(v76, v79.Name, v3.None);
        if v76 == l_Players_0.LocalPlayer then
            v75.props.setGameStatText(v79.Name, v7(nil));
        end;
        v75:checkGameStatsExist();
    end)));
    for _, v81 in ipairs((v77:GetChildren())) do
        if v16(v81) then
            v75:onStatAdded(v76, v81);
        end;
    end;
end;
v13.onPlayerChildAdded = function(v82, v83, v84)
    local v85 = v84.Name == "leaderstats";
    local v86 = (v84:IsA("ValueBase") or v84:IsA("Folder")) or v84:IsA("Model");
    if v85 or v86 then
        table.insert(v82.playerConnections[v83], (v84.Changed:Connect(function(v87)
            if v87 == "Name" and v84.Name == "leaderstats" then
                v82:leaderstatsAdded(v83, v84);
            end;
        end)));
        if v84.Name == "leaderstats" then
            v82:leaderstatsAdded(v83, v84);
        end;
        return ;
    else
        return ;
    end;
end;
v13.connectLeaderstatsEvents = function(v88, v89)
    v88.playerConnections[v89] = {};
    table.insert(v88.playerConnections[v89], (v89.ChildAdded:Connect(function(v90)
        v88:onPlayerChildAdded(v89, v90);
    end)));
    table.insert(v88.playerConnections[v89], (v89.ChildRemoved:Connect(function(v91)
        if v91.Name == "leaderstats" then
            for _, v93 in pairs((v91:GetChildren())) do
                v88.props.setPlayerLeaderstat(v89, v93.Name, v3.None);
                if v89 == l_Players_0.LocalPlayer then
                    v88.props.setGameStatText(v93.Name, v7(nil));
                end;
            end;
            v88:checkGameStatsExist();
        end;
    end)));
    local l_leaderstats_1 = v89:FindFirstChild("leaderstats");
    if not l_leaderstats_1 then
        for _, v96 in ipairs(v89:GetChildren()) do
            v88:onPlayerChildAdded(v89, v96);
        end;
        return ;
    else
        v88:leaderstatsAdded(v89, l_leaderstats_1);
        return ;
    end;
end;
v13.didMount = function(v97)
    for _, v99 in ipairs(v97.props.players) do
        v97:connectLeaderstatsEvents(v99);
    end;
end;
v13.didUpdate = function(v100)
    local v101 = {};
    for _, v103 in ipairs(v100.props.players) do
        v101[v103] = true;
        if not v100.playerConnections[v103] then
            v100:connectLeaderstatsEvents(v103);
        end;
    end;
    for v104 in pairs(v100.playerConnections) do
        if not v101[v104] then
            for _, v106 in ipairs(v100.playerConnections[v104]) do
                v106:Disconnect();
            end;
            v100.playerConnections[v104] = nil;
        end;
    end;
end;
v13.render = function(_)
    return nil;
end;
v13.willUnmount = function(v108)
    for _, v110 in pairs(v108.playerConnections) do
        for _, v112 in ipairs(v110) do
            v112:Disconnect();
        end;
    end;
    v108.playerConnections = {};
end;
return v5.connect(function(v113)
    return {
        players = v113.players,
        gameStats = v113.gameStats
    };
end, function(v114)
    return {
        addGameStat = function(v115, v116, v117)
            return v114(v8(v115, v116, v117));
        end,
        removeGameStat = function(v118)
            return v114(v9(v118));
        end,
        setPlayerLeaderstat = function(v119, v120, v121)
            return v114(v10(v119, v120, v121));
        end,
        setGameStatText = function(v122, v123)
            return v114(v11(v122, v123));
        end,
        setGameStatAddId = not not v14 and function(v124, v125)
            return v114(v12(v124, v125));
        end or nil
    };
end)(v13);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent.Parent;
local v5 = require(l_Parent_0.Actions.AddPlayer);
local v6 = require(l_Parent_0.Actions.RemovePlayer);
local v7 = require(l_Parent_0.Thunks.MakePlayerInfoRequests);
local v8 = require(script.Parent.EventConnection);
local v9 = v2.PureComponent:extend("PlayerServiceConnector");
v9.didMount = function(v10)
    for _, v12 in ipairs((l_Players_0:GetPlayers())) do
        v10.props.addPlayer(v12);
        v10.props.makePlayerInfoRequests(v12);
    end;
end;
v9.render = function(v13)
    return v2.createFragment({
        PlayerAddedConnection = v2.createElement(v8, {
            event = l_Players_0.PlayerAdded,
            callback = function(v14)
                v13.props.addPlayer(v14);
                v13.props.makePlayerInfoRequests(v14);
            end
        }),
        PlayerRemovingConnection = v2.createElement(v8, {
            event = l_Players_0.PlayerRemoving,
            callback = function(v15)
                v13.props.removePlayer(v15);
            end
        })
    });
end;
v9.willUnmount = function(v16)
    for _, v18 in ipairs((l_Players_0:GetPlayers())) do
        v16.props.removePlayer(v18);
    end;
end;
return v3.connect(nil, function(v19)
    return {
        addPlayer = function(v20)
            return v19(v5(v20));
        end,
        makePlayerInfoRequests = function(v21)
            return v19(v7(v21));
        end,
        removePlayer = function(v22)
            return v19(v6(v22));
        end
    };
end)(v9);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local v3 = require(script.Parent.Parent.Parent.Actions.SetScreenSize);
local v4 = require(script.Parent.EventConnection);
local v5 = v1.PureComponent:extend("ScreenSizeConnector");
v5.init = function(v6)
    v6.state = {
        layerCollector = nil
    };
    v6.folderRef = v1.createRef();
end;
v5.render = function(v7)
    if not v7.state.layerCollector then
        return v1.createElement("Folder", {
            [v1.Ref] = v7.folderRef
        });
    else
        local l_AbsoluteSize_0 = v7.state.layerCollector.AbsoluteSize;
        v7.props.setScreenSize(l_AbsoluteSize_0.X, l_AbsoluteSize_0.Y);
        return v1.createElement(v4, {
            event = v7.state.layerCollector:GetPropertyChangedSignal("AbsoluteSize"),
            callback = function()
                l_AbsoluteSize_0 = v7.state.layerCollector.AbsoluteSize;
                v7.props.setScreenSize(l_AbsoluteSize_0.X, l_AbsoluteSize_0.Y);
            end
        });
    end;
end;
v5.watchFolderAncestery = function(v9)
    if v9.folderRef.current and v9.ancesteryConnection == nil then
        local l_FirstAncestorWhichIsA_0 = v9.folderRef.current:FindFirstAncestorWhichIsA("LayerCollector");
        do
            local l_l_FirstAncestorWhichIsA_0_0 = l_FirstAncestorWhichIsA_0;
            if not l_l_FirstAncestorWhichIsA_0_0 then
                v9.ancesteryConnection = v9.folderRef.current.AncestryChanged:Connect(function()
                    if v9.folderRef.current then
                        l_l_FirstAncestorWhichIsA_0_0 = v9.folderRef.current:FindFirstAncestorWhichIsA("LayerCollector");
                        if l_l_FirstAncestorWhichIsA_0_0 then
                            v9:setState({
                                layerCollector = l_l_FirstAncestorWhichIsA_0_0
                            });
                        end;
                    end;
                end);
            else
                v9:setState({
                    layerCollector = l_l_FirstAncestorWhichIsA_0_0
                });
            end;
        end;
    end;
end;
v5.didMount = function(v12)
    v12:watchFolderAncestery();
end;
v5.didUpdate = function(v13)
    if v13.state.layerCollector then
        if v13.ancesteryConnection then
            v13.ancesteryConnection:Disconnect();
            v13.ancesteryConnection = nil;
        end;
        return ;
    else
        v13:watchFolderAncestery();
        return ;
    end;
end;
v5.willUnmount = function(v14)
    if v14.ancesteryConnection then
        v14.ancesteryConnection:Disconnect();
        v14.ancesteryConnection = nil;
    end;
end;
return v2.connect(nil, function(v15)
    return {
        setScreenSize = function(v16, v17)
            return v15(v3(v16, v17));
        end
    };
end)(v5);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(script.Parent.Parent.Parent.Actions.SetPlayerFriendStatus);
local v5 = require(script.Parent.EventConnection);
local v6 = v2.PureComponent:extend("SocialConnector");
v6.didMount = function(v7)
    v7.mounted = true;
end;
v6.render = function(v8)
    return v2.createFragment({
        FriendStatusChangedConnection = v2.createElement(v5, {
            event = l_Players_0.LocalPlayer.FriendStatusChanged,
            callback = function(v9, v10)
                v8.props.setPlayerFriendStatus(v9, v10);
            end
        })
    });
end;
v6.willUnmount = function(v11)
    v11.mounted = false;
end;
return v3.connect(nil, function(v12)
    return {
        setPlayerFriendStatus = function(v13, v14)
            return v12(v4(v13, v14));
        end
    };
end)(v6);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.Actions.SetTeamName);
local v5 = require(l_Parent_0.Actions.SetTeamColor);
local v6 = require(l_Parent_0.Actions.AddPlayerToTeam);
local v7 = require(l_Parent_0.Actions.RemovePlayerFromTeam);
local v8 = require(l_Parent_0.Actions.AddTeam);
local v9 = require(l_Parent_0.Actions.RemoveTeam);
local v10 = require(script.Parent.EventConnection);
local v11 = v1.PureComponent:extend("TeamServiceConnector");
v11.init = function(v12)
    v12.state = {
        teams = game:FindService("Teams")
    };
end;
v11.didMount = function(v13)
    if v13.state.teams then
        for _, v15 in ipairs(v13.state.teams:GetTeams()) do
            v13.props.addTeam(v15);
            for _, v17 in ipairs(v15:GetPlayers()) do
                v13.props.addPlayerToTeam(v17, v15);
            end;
        end;
    end;
end;
v11.render = function(v18)
    local v19 = {};
    local v20 = {};
    local v21 = {};
    for v22, v23 in ipairs(v18.props.teams) do
        v19[v22] = v1.createElement(v10, {
            event = v23.Changed,
            callback = function(v24)
                if v24 == "Name" then
                    v18.props.setTeamName(v23);
                    return ;
                else
                    if v24 == "TeamColor" then
                        v18.props.setTeamColor(v23);
                    end;
                    return ;
                end;
            end
        });
        v20[v22] = v1.createElement(v10, {
            event = v23.PlayerAdded,
            callback = function(v25)
                v18.props.addPlayerToTeam(v25, v23);
            end
        });
        v21[v22] = v1.createElement(v10, {
            event = v23.PlayerRemoved,
            callback = function(v26)
                v18.props.removePlayerFromTeam(v26, v23);
            end
        });
    end;
    local l_teams_0 = v18.state.teams;
    return v1.createFragment({
        TeamChangedConnections = v1.createFragment(v19),
        PlayerAddedConnections = v1.createFragment(v20),
        PlayerRemovedConnections = v1.createFragment(v21),
        ServiceAddedConnection = not l_teams_0 and v1.createElement(v10, {
            event = game.ChildAdded,
            callback = function(v28)
                if v28:IsA("Teams") then
                    v18:setState({
                        teams = v28
                    });
                end;
            end
        }),
        TeamAddedConnection = l_teams_0 and v1.createElement(v10, {
            event = l_teams_0.ChildAdded,
            callback = function(v29)
                if v29:IsA("Team") then
                    v18.props.addTeam(v29);
                end;
            end
        }),
        TeamRemovedConnection = l_teams_0 and v1.createElement(v10, {
            event = l_teams_0.ChildRemoved,
            callback = function(v30)
                if v30:IsA("Team") then
                    v18.props.removeTeam(v30);
                end;
            end
        })
    });
end;
v11.didUpdate = function(v31, v32, _)
    if v31.props.teams ~= v32.teams then
        local v34 = {};
        for _, v36 in ipairs(v32.teams) do
            v34[v36] = true;
        end;
        for _, v38 in ipairs(v31.props.teams) do
            if not v34[v38] then
                for _, v40 in ipairs(v38:GetPlayers()) do
                    v31.props.addPlayerToTeam(v40, v38);
                end;
            end;
        end;
    end;
end;
v11.willUnmount = function(v41)
    if v41.state.teams then
        for _, v43 in ipairs(v41.state.teams:GetTeams()) do
            v41.props.removeTeam(v43);
        end;
    end;
end;
return v2.connect(function(v44)
    return {
        teams = v44.teams
    };
end, function(v45)
    return {
        setTeamName = function(v46)
            return v45(v4(v46, v46.Name));
        end,
        setTeamColor = function(v47)
            return v45(v5(v47, v47.TeamColor));
        end,
        addPlayerToTeam = function(v48, v49)
            return v45(v6(v48, v49));
        end,
        removePlayerFromTeam = function(v50, v51)
            return v45(v7(v50, v51));
        end,
        addTeam = function(v52)
            return v45(v8(v52));
        end,
        removeTeam = function(v53)
            return v45(v9(v53));
        end
    };
end)(v11);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.TenFootInterface);
local v5 = nil;
if v4:IsEnabled() then
    v5 = v4:SetupTopStat();
end;
local v6 = v2.PureComponent:extend("TopStatConnector");
v6.render = function(v7)
    if v5 then
        v5:SetTopStatEnabled(v7.props.displayOptions.playerlistCoreGuiEnabled);
    end;
    return nil;
end;
return v3.connect(function(v8)
    return {
        displayOptions = v8.displayOptions
    };
end, nil)(v6);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent.Parent;
local v5 = require(l_Parent_0.Actions.ClosePlayerDropDown);
local v6 = require(l_Parent_0.Actions.SetIsUsingGamepad);
local v7 = require(script.Parent.EventConnection);
local v8 = v2.PureComponent:extend("UserInputServiceConnector");
v8.render = function(v9)
    return v2.createFragment({
        InputBeganConnection = v2.createElement(v7, {
            event = l_UserInputService_0.InputBegan,
            callback = function(v10, v11)
                if not v11 then
                    local l_UserInputType_0 = v10.UserInputType;
                    if not (l_UserInputType_0 ~= Enum.UserInputType.Touch) or l_UserInputType_0 == Enum.UserInputType.MouseButton1 then
                        v9.props.closePlayerDropDown();
                    end;
                    return ;
                else
                    return ;
                end;
            end
        }),
        LastInputTypeChangedConnection = v2.createElement(v7, {
            event = l_UserInputService_0.LastInputTypeChanged,
            callback = function(v13)
                v9.props.setIsUsingGamepad(v13.Name:find("Gamepad") ~= nil);
            end
        })
    });
end;
return v3.connect(nil, function(v14)
    return {
        closePlayerDropDown = function()
            return v14(v5());
        end,
        setIsUsingGamepad = function(v15)
            return v14(v6(v15));
        end
    };
end)(v8);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = v1.PureComponent:extend("CellExtender");
v3.validateProps = v2.strictInterface({
    layoutOrder = v2.integer,
    size = v2.UDim2,
    backgroundStyle = v2.strictInterface({
        Color = v2.Color3,
        Transparency = v2.number
    }),
    overlayStyle = v2.strictInterface({
        Color = v2.Color3,
        Transparency = v2.number
    }),
    doubleOverlay = v2.boolean
});
v3.render = function(v4)
    return v1.createElement("Frame", {
        LayoutOrder = v4.props.layoutOrder,
        Size = v4.props.size,
        BackgroundTransparency = v4.props.backgroundStyle.Transparency,
        BackgroundColor3 = v4.props.backgroundStyle.Color,
        BorderSizePixel = 0
    }, {
        DoubleOverLay = v1.createElement("Frame", {
            ZIndex = 1,
            Visible = v4.props.doubleOverlay,
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v4.props.overlayStyle.Transparency,
            BackgroundColor3 = v4.props.overlayStyle.Color,
            BorderSizePixel = 0
        }),
        OverlayFrame = v1.createElement("Frame", {
            ZIndex = 2,
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v4.props.overlayStyle.Transparency,
            BackgroundColor3 = v4.props.overlayStyle.Color,
            BorderSizePixel = 0
        })
    });
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v4.Style.withStyle;
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v8 = require(l_Parent_0.PresentationCommon.IconButton);
local l_Colors_0 = require(l_CorePackages_0.Workspace.Packages.Style).Colors;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_Images_0 = v4.App.ImageSet.Images;
local v12 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Chrome.Enabled);
local v13 = v1.PureComponent:extend("DropDownButton");
v13.validateProps = v3.strictInterface({
    text = v3.string,
    layoutOrder = v3.optional(v3.integer),
    icon = v3.union(v3.string, v3.table),
    lastButton = v3.boolean,
    forceShowOptions = v3.boolean,
    screenSizeX = v3.integer,
    screenSizeY = v3.integer,
    onActivated = v3.optional(v3.callback),
    onDecline = v3.optional(v3.callback),
    onDismiss = v3.optional(v3.callback),
    animatingAccept = v3.optional(v3.boolean),
    animatingDecline = v3.optional(v3.boolean),
    animatingPercentage = v3.optional(v3.number)
});
v13.init = function(v14)
    v14.state = {
        isHovered = false,
        isPressed = false,
        sizeX = 100,
        absolutePosX = 0,
        absolutePosY = 0
    };
end;
v13.getColorBackgroundAnimation = function(v15, v16)
    if v15.props.animatingPercentage == nil then
        return 0, 0;
    else
        local v17 = v15.state.sizeX - v16.DropDownRightOptionSize;
        local l_DropDownRightOptionSize_0 = v16.DropDownRightOptionSize;
        if v15.props.animatingDecline then
            v17 = v17 - v16.DropDownRightOptionSize;
        end;
        local v19 = v15.state.sizeX - v16.DropDownRightOptionSize;
        l_DropDownRightOptionSize_0 = l_DropDownRightOptionSize_0 + v19 * v15.props.animatingPercentage;
        v17 = v17 - (v19 * v15.props.animatingPercentage) * 0.5;
        if v15.state.sizeX < v17 + l_DropDownRightOptionSize_0 then
            v17 = v17 - ((v17 + l_DropDownRightOptionSize_0) - v15.state.sizeX);
        end;
        return v17, l_DropDownRightOptionSize_0;
    end;
end;
v13.render = function(v20)
    return l_WithLayoutValues_0(function(v21)
        return l_withStyle_0(function(v22)
            local v23 = {
                Color = if not v12() then v22.Theme.BackgroundContrast.Color else v22.Theme.BackgroundUIContrast.Color,
                Transparency = v21.OverrideBackgroundTransparency * v22.Settings.PreferredTransparency
            };
            local v24 = {
                Transparency = 1,
                Color = Color3.new(1, 1, 1)
            };
            if not v20.state.isPressed then
                if v20.state.isHovered then
                    v24 = v22.Theme.BackgroundOnHover;
                end;
            else
                v24 = v22.Theme.BackgroundOnPress;
            end;
            local v25 = "";
            if v20.props.lastButton then
                v25 = "rbxasset://textures/ui/BottomRoundedRect8px.png";
            end;
            local v26 = true;
            if v20.props.onActivated == nil then
                v26 = v20.props.animatingAccept;
            end;
            local v27 = true;
            if v20.props.onDecline == nil then
                v27 = v20.props.animatingDecline;
            end;
            local v28 = true;
            if v20.props.onDecline == nil then
                v28 = true;
                if v20.props.animatingPercentage == nil then
                    v28 = v20.props.forceShowOptions;
                end;
            end;
            local v29, v30 = v20:getColorBackgroundAnimation(v21);
            local l_Green_0 = l_Colors_0.Green;
            if not v20.props.animatingDecline then
                if v20.props.forceShowOptions then
                    l_Green_0 = l_Colors_0.White;
                end;
            else
                l_Green_0 = l_Colors_0.Red;
            end;
            local v32 = v21.DropDownPadding * 2 + v21.DropDownIconSize;
            local v33 = v21.DropDownRightOptionSize * 2;
            if v28 then
                v32 = v32 + v33;
            end;
            return v1.createElement("ImageButton", {
                LayoutOrder = v20.props.layoutOrder,
                Image = v25,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(8, 8, 24, 16),
                SliceScale = 0.5,
                ImageTransparency = not not v20.props.lastButton and v23.Transparency or 1,
                ImageColor3 = v23.Color,
                Size = UDim2.new(1, 0, 0, v21.DropDownButtonSizeY),
                BackgroundTransparency = if not v20.props.lastButton then v23.Transparency else 1,
                BackgroundColor3 = v23.Color,
                AutoButtonColor = false,
                BorderSizePixel = 0,
                [v1.Event.Activated] = not v28 and v20.props.onActivated or nil,
                [v1.Event.MouseEnter] = function()
                    if not v28 then
                        v20:setState({
                            isHovered = true
                        });
                    end;
                end,
                [v1.Event.MouseLeave] = function()
                    v20:setState({
                        isHovered = false,
                        isPressed = false
                    });
                end,
                [v1.Change.AbsoluteSize] = function(v34)
                    v20:setState({
                        sizeX = v34.AbsoluteSize.X
                    });
                end,
                [v1.Change.AbsolutePosition] = function(v35)
                    v20:setState({
                        absolutePosX = v35.AbsolutePosition.X,
                        absolutePosY = v35.AbsolutePosition.Y
                    });
                end,
                [v1.Event.MouseButton1Down] = function()
                    if not v28 then
                        v20:setState({
                            isPressed = true
                        });
                    end;
                end,
                [v1.Event.MouseButton1Up] = function()
                    v20:setState({
                        isPressed = false
                    });
                end
            }, {
                ColorBackground = v1.createElement("ImageLabel", {
                    Visible = v20.props.animatingPercentage ~= nil,
                    ZIndex = 1,
                    Size = UDim2.new(0, v30, 1, 0),
                    Position = UDim2.new(0, v29, 0, 0),
                    Image = v25,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(8, 8, 24, 16),
                    SliceScale = 0.5,
                    ImageTransparency = not not v20.props.lastButton and v21.IconButtonBackgroundTransparency or 1,
                    ImageColor3 = l_Green_0,
                    BackgroundTransparency = if not v20.props.lastButton then v21.IconButtonBackgroundTransparency else 1,
                    BackgroundColor3 = l_Green_0,
                    BorderSizePixel = 0
                }),
                HoverBackground = v1.createElement("ImageLabel", {
                    ZIndex = 2,
                    Size = UDim2.new(1, 0, 1, 0),
                    Image = v25,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(8, 8, 24, 16),
                    SliceScale = 0.5,
                    ImageTransparency = not not v20.props.lastButton and v24.Transparency or 1,
                    ImageColor3 = v24.Color,
                    BackgroundTransparency = if not v20.props.lastButton then v24.Transparency else 1,
                    BackgroundColor3 = v24.Color,
                    BorderSizePixel = 0
                }, {
                    InitalPadding = v1.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v21.DropDownPadding)
                    }),
                    ListLayout = v1.createElement("UIListLayout", {
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        FillDirection = Enum.FillDirection.Horizontal,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        Padding = UDim.new(0, v21.DropDownPadding)
                    }),
                    Icon = v1.createElement(l_ImageSetLabel_0, {
                        LayoutOrder = 1,
                        Size = UDim2.new(0, v21.DropDownIconSize, 0, v21.DropDownIconSize),
                        ImageColor3 = v22.Theme.IconEmphasis.Color,
                        Image = v20.props.icon,
                        BackgroundTransparency = 1
                    }),
                    Text = v1.createElement("TextLabel", {
                        LayoutOrder = 2,
                        Size = UDim2.new(1, -v32, 1, 0),
                        Text = v20.props.text,
                        Font = v22.Font.Header2.Font,
                        TextSize = v22.Font.BaseSize * v22.Font.Header2.RelativeSize,
                        TextColor3 = v22.Theme.TextEmphasis.Color,
                        TextTransparency = v22.Theme.TextEmphasis.Transparency,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        BackgroundTransparency = 1
                    }),
                    ButtonContainer = v1.createElement("Frame", {
                        LayoutOrder = 3,
                        Visible = v28,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(0, v33, 1, 0)
                    }, {
                        ConfirmButton = not not v26 and v1.createElement(v8, {
                            size = UDim2.new(0.5, 0, 1, 0),
                            position = UDim2.new(0.5, 0, 0, 0),
                            backgroundColor = not not v20.props.onDecline and l_Colors_0.Green or l_Colors_0.White,
                            icon = l_Images_0["icons/actions/accept"],
                            showBackground = v20.props.animatingPercentage == nil,
                            onActivated = v20.props.onActivated
                        }) or nil,
                        DeclineButton = not not v27 and v1.createElement(v8, {
                            size = UDim2.new(0.5, 0, 1, 0),
                            position = UDim2.new(0, 0, 0, 0),
                            backgroundColor = l_Colors_0.Red,
                            icon = l_Images_0["icons/actions/reject"],
                            showBackground = v20.props.animatingPercentage == nil,
                            onActivated = v20.props.onDecline
                        }) or nil
                    })
                }),
                DismissInputHandler = v1.createElement("ImageButton", {
                    Image = "",
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, v20.props.screenSizeX, 0, v20.props.screenSizeY),
                    Position = UDim2.new(0, -v20.state.absolutePosX, 0, -v20.state.absolutePosY),
                    Visible = v20.props.onDismiss ~= nil,
                    [v1.Event.Activated] = v20.props.onDismiss
                }),
                Divider = not v20.props.lastButton and v1.createElement("Frame", {
                    ZIndex = 3,
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundTransparency = v22.Theme.Divider.Transparency,
                    BackgroundColor3 = v22.Theme.Divider.Color,
                    BorderSizePixel = 0
                })
            });
        end);
    end);
end;
return v2.UNSTABLE_connect2(function(v36)
    return {
        screenSizeX = v36.screenSize.X,
        screenSizeY = v36.screenSize.Y
    };
end, nil)(v13);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.Otter);
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local v5 = require(script.Parent.DropDownButton);
local v6 = {
    dampingRatio = 1,
    frequency = 4
};
local v7 = {
    dampingRatio = 1,
    frequency = 4
};
local v8 = v1.PureComponent:extend("DropDownAnimator");
v8.validateProps = v2.strictInterface({
    text = v2.string,
    icon = v2.union(v2.string, v2.table),
    lastButton = v2.boolean,
    layoutOrder = v2.integer,
    onActivated = v2.callback,
    forceShowOptions = v2.boolean,
    selectedPlayer = v2.optional(v2.instanceIsA("Player")),
    onDecline = v2.optional(v2.callback),
    onDismiss = v2.optional(v2.callback)
});
v8.init = function(v9)
    v9.state = {
        lastButtonProps = nil,
        onDeclineCalled = nil,
        onActivatedCalled = nil,
        overlayPercentage = 0
    };
    local v10, v11 = v1.createBinding(UDim2.new(0, 0, 0, 0));
    v9.currentButtonPosition = v10;
    v9.updateCurrentButtonPosition = v11;
    v10, v11 = v1.createBinding(UDim2.new(0, 0, 0, 0));
    v9.lastButtonPosition = v10;
    v9.updateLastButtonPosition = v11;
    v9.positionMotor = v3.createSingleMotor(0);
    v9.positionMotor:onStep(function(v12)
        v9.updateCurrentButtonPosition(UDim2.new(v12, 0, 0, 0));
        if not v9.animatingRight then
            v9.updateLastButtonPosition(UDim2.new(v12 - 1, 0, 0, 0));
            return ;
        else
            v9.updateLastButtonPosition(UDim2.new(v12 + 1, 0, 0, 0));
            return ;
        end;
    end);
    v9.positionMotor:onComplete(function(v13)
        if v13 == 0 then
            v9:setState({
                lastButtonProps = v1.None,
                onDeclineCalled = v1.None,
                onActivatedCalled = v1.None
            });
        end;
    end);
    v9.overlayMotor = v3.createSingleMotor(0);
    v9.overlayMotor:onStep(function(v14)
        v9:setState({
            overlayPercentage = v14
        });
    end);
    v9.overlayMotor:onComplete(function(v15)
        if v15 == 1 then
            v9.positionMotor:setGoal(v3.spring(0, v6));
        end;
    end);
end;
v8.getButtonProps = function(v16, v17, v18)
    local v19 = {
        text = v17.text,
        icon = v17.icon,
        lastButton = v17.lastButton,
        forceShowOptions = v17.forceShowOptions,
        onDismiss = v17.onDismiss
    };
    if not (v16.state.lastButtonProps ~= nil) then
        if not v17.onActivated or not v17.onDecline and not v16.props.forceShowOptions then
            if v17.onActivated then
                v19.onActivated = v17.onActivated;
            end;
        else
            v19.onActivated = function()
                v16:setState({
                    onActivatedCalled = true,
                    onDeclineCalled = false
                });
                v17.onActivated();
            end;
        end;
        if v17.onDecline then
            v19.onDecline = function()
                v16:setState({
                    onActivatedCalled = false,
                    onDeclineCalled = true
                });
                v17.onDecline();
            end;
        end;
    elseif v18 then
        v19.animatingAccept = v16.state.onActivatedCalled;
        v19.animatingDecline = v16.state.onDeclineCalled;
        v19.animatingPercentage = v16.state.overlayPercentage;
        return v19;
    end;
    return v19;
end;
v8.render = function(v20)
    return l_WithLayoutValues_0(function(v21)
        local v22 = {
            CurrentButtonContainer = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                Position = v20.currentButtonPosition,
                BackgroundTransparency = 1
            }, {
                DropDownButton = v1.createElement(v5, v20:getButtonProps(v20.props))
            })
        };
        if v20.state.lastButtonProps then
            v22.LastButtonContainer = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                Position = v20.lastButtonPosition,
                BackgroundTransparency = 1
            }, {
                DropDownButton = v1.createElement(v5, v20:getButtonProps(v20.state.lastButtonProps, true))
            });
        end;
        return v1.createElement("Frame", {
            ZIndex = 2,
            Size = UDim2.new(1, 0, 0, v21.DropDownButtonSizeY),
            BackgroundTransparency = 1,
            LayoutOrder = v20.props.layoutOrder
        }, v22);
    end);
end;
v8.didUpdate = function(v23, v24, _)
    local v26 = v23.props.text ~= v24.text;
    local v27 = true;
    if v24.onDecline == nil then
        v27 = v23.props.forceShowOptions;
    end;
    local v28 = v23.state.onDeclineCalled or v23.state.onActivatedCalled;
    if not ((not v26 or not v27) or not v28) then
        if not v23.state.onActivatedCalled or v23.props.forceShowOptions then
            v23.animatingRight = false;
            v23.positionMotor:setGoal(v3.instant(1));
        else
            v23.animatingRight = true;
            v23.positionMotor:setGoal(v3.instant(-1));
        end;
        v23.overlayMotor:setGoal(v3.instant(0));
        v23.positionMotor:step(0);
        v23.overlayMotor:step(0);
        v23:setState({
            lastButtonProps = v24
        });
        v23.overlayMotor:setGoal(v3.spring(1, v7));
    end;
    if v23.props.selectedPlayer ~= v24.selectedPlayer then
        v23.positionMotor:setGoal(v3.instant(0));
        v23.overlayMotor:setGoal(v3.instant(0));
        v23.positionMotor:step(0);
        v23.overlayMotor:step(0);
        v23:setState({
            lastButtonProps = v1.None
        });
    end;
end;
v8.willUnmount = function(v29)
    v29.positionMotor:destroy();
    v29.positionMotor = nil;
    v29.overlayMotor:destroy();
    v29.overlayMotor = nil;
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Workspace.Packages.VerifiedBadges);
local l_withStyle_0 = v3.Style.withStyle;
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local l_EmojiTextLabel_0 = v3.Core.Text.EmojiTextLabel;
local l_Emoji_0 = v3.App.Emoji.Enum.Emoji;
local v9 = v1.PureComponent:extend("DropDownPlayerHeader");
v9.validateProps = v2.strictInterface({
    player = v2.instanceIsA("Player")
});
v9.render = function(v10)
    return l_WithLayoutValues_0(function(v11)
        return l_withStyle_0(function(v12)
            local l_player_0 = v10.props.player;
            return v1.createElement("TextButton", {
                BackgroundTransparency = 1,
                Text = "",
                Size = UDim2.new(1, 0, 0, v11.DropDownHeaderSizeY),
                LayoutOrder = 0,
                Selectable = false
            }, {
                Background = v1.createElement("ImageLabel", {
                    BackgroundTransparency = 1,
                    Image = "rbxasset://textures/ui/PlayerList/NewAvatarBackground.png",
                    ImageTransparency = 0,
                    Size = UDim2.new(1, 0, 0, v11.DropDownHeaderBackgroundSize),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1)
                }, {
                    TextContainerFrame = v1.createElement("Frame", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, -124, 1, 0),
                        Position = UDim2.new(0, 107, 0, 0)
                    }, {
                        Layout = v1.createElement("UIListLayout", {
                            SortOrder = Enum.SortOrder.LayoutOrder,
                            FillDirection = Enum.FillDirection.Vertical,
                            Padding = UDim.new(0, 0),
                            VerticalAlignment = Enum.VerticalAlignment.Center
                        }),
                        DisplayName = not not v4.isPlayerVerified(l_player_0) and v1.createElement(l_EmojiTextLabel_0, {
                            fontStyle = v12.Font.Header2,
                            colorStyle = v12.Theme.TextEmphasis,
                            fluidSizing = false,
                            emoji = l_Emoji_0.Verified,
                            maxSize = Vector2.new(v11.PlayerDropDownSizeX - 124, 22),
                            LayoutOrder = 1,
                            Text = l_player_0.DisplayName,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            BackgroundTransparency = 1,
                            TextScaled = true
                        }) or v1.createElement("TextLabel", {
                            LayoutOrder = 1,
                            Size = UDim2.new(1, 0, 0, 22),
                            Text = l_player_0.DisplayName,
                            Font = v12.Font.Header2.Font,
                            TextSize = v12.Font.BaseSize * v12.Font.Header2.RelativeSize,
                            TextColor3 = v12.Theme.TextEmphasis.Color,
                            TextTransparency = v12.Theme.TextEmphasis.Transparency,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            BackgroundTransparency = 1,
                            TextScaled = true
                        }, {
                            SizeConstraint = v1.createElement("UITextSizeConstraint", {
                                MaxTextSize = v12.Font.BaseSize * v12.Font.Header2.RelativeSize,
                                MinTextSize = v12.Font.BaseSize * v12.Font.Footer.RelativeSize
                            })
                        }),
                        PlayerName = v1.createElement("TextLabel", {
                            LayoutOrder = 2,
                            Size = UDim2.new(1, 0, 0, 22),
                            Text = "@" .. l_player_0.Name,
                            Font = v12.Font.CaptionHeader.Font,
                            TextSize = v12.Font.BaseSize * v12.Font.CaptionHeader.RelativeSize,
                            TextColor3 = v12.Theme.TextMuted.Color,
                            TextTransparency = v12.Theme.TextMuted.Transparency,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            BackgroundTransparency = 1,
                            TextScaled = true
                        }, {
                            SizeConstraint = v1.createElement("UITextSizeConstraint", {
                                MaxTextSize = v12.Font.BaseSize * v12.Font.CaptionHeader.RelativeSize,
                                MinTextSize = v12.Font.BaseSize * v12.Font.Footer.RelativeSize
                            })
                        })
                    })
                }),
                AvatarImage = v1.createElement("ImageLabel", {
                    Position = UDim2.new(0, 56, 0, 0),
                    Size = UDim2.new(0, v11.DropDownHeaderSizeY, 0, v11.DropDownHeaderSizeY),
                    AnchorPoint = Vector2.new(0.5, 0),
                    BackgroundTransparency = 1,
                    Image = "rbxthumb://type=AvatarHeadShot&id=" .. l_player_0.UserId .. "&w=150&h=150",
                    ZIndex = 2
                }),
                Divider = not v10.props.lastButton and v1.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundTransparency = v12.Theme.Divider.Transparency,
                    BackgroundColor3 = v12.Theme.Divider.Color,
                    BorderSizePixel = 0,
                    ZIndex = 3
                })
            });
        end);
    end);
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_validatePropsWithForwardRef_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).validatePropsWithForwardRef;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = v3.PureComponent:extend("EntryFrame");
v5.validateProps = v4.strictInterface(l_validatePropsWithForwardRef_0({
    sizeX = v4.integer,
    sizeY = v4.integer,
    isTeamFrame = v4.boolean,
    onActivated = v4.optional(v4.callback),
    onSelectionGained = v4.optional(v4.callback),
    onSelectionLost = v4.optional(v4.callback),
    onMouseEnter = v4.optional(v4.callback),
    onMouseLeave = v4.optional(v4.callback),
    onMouseDown = v4.optional(v4.callback),
    onInputEnded = v4.optional(v4.callback),
    backgroundStyle = v4.strictInterface({
        Color = v4.Color3,
        Transparency = v4.number
    }),
    overlayStyle = v4.strictInterface({
        Color = v4.Color3,
        Transparency = v4.number
    }),
    doubleOverlay = v4.optional(v4.boolean),
    [v3.Ref] = v4.optional(v4.table),
    [v3.Children] = v4.optional(v4.table)
}));
v5.render = function(v6)
    return v3.createElement("TextButton", {
        Size = UDim2.new(0, v6.props.sizeX, 0, v6.props.sizeY),
        BackgroundTransparency = v6.props.backgroundStyle.Transparency,
        BackgroundColor3 = v6.props.backgroundStyle.Color,
        BorderSizePixel = 0,
        AutoButtonColor = false,
        Text = "",
        AutoLocalize = false,
        Selectable = not v6.props.isTeamFrame,
        Active = not v6.props.isTeamFrame,
        [v3.Event.Activated] = v6.props.onActivated,
        [v3.Event.SelectionGained] = v6.props.onSelectionGained,
        [v3.Event.SelectionLost] = v6.props.onSelectionLost,
        [v3.Event.MouseEnter] = v6.props.onMouseEnter,
        [v3.Event.MouseLeave] = v6.props.onMouseLeave,
        [v3.Event.MouseButton1Down] = v6.props.onMouseDown,
        [v3.Event.MouseButton1Up] = v6.props.onInputEnded,
        [v3.Event.InputEnded] = function(_, v8)
            if v8.UserInputType == Enum.UserInputType.Touch then
                if v6.props.onMouseLeave then
                    v6.props.onMouseLeave();
                end;
                if v6.props.onInputEnded then
                    v6.props.onInputEnded();
                end;
            end;
        end or nil,
        [v3.Ref] = v6.props.forwardRef
    }, {
        DoubleOverLay = v3.createElement("Frame", {
            ZIndex = 1,
            Visible = v6.props.doubleOverlay,
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v6.props.overlayStyle.Transparency,
            BackgroundColor3 = v6.props.overlayStyle.Color,
            BorderSizePixel = 0
        }),
        OverlayFrame = v3.createElement("Frame", {
            ZIndex = 2,
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v6.props.overlayStyle.Transparency,
            BackgroundColor3 = v6.props.overlayStyle.Color,
            BorderSizePixel = 0
        }, v6.props[v3.Children])
    });
end;
return v3.forwardRef(function(v9, v10)
    return v3.createElement(v5, v2.Dictionary.join(v9, {
        forwardRef = v10
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(script.Parent.DropDownButtonAnimator);
local l_Images_0 = v6.App.ImageSet.Images;
local v9 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local v11 = v4.PureComponent:extend("FriendDropDownButton");
v11.validateProps = v5.strictInterface({
    layoutOrder = v5.integer,
    playerRelationship = v5.strictInterface({
        isBlocked = v5.boolean,
        friendStatus = v5.enum(Enum.FriendStatus),
        isFollowing = v5.boolean,
        isFollower = v5.boolean
    }),
    selectedPlayer = v5.optional(v5.instanceIsA("Player")),
    dropDownOpen = v5.boolean,
    requestFriendship = v5.callback
});
local function v15(v12)
    local v13 = l_Images_0["icons/actions/friends/friendAdd"];
    local v14 = l_Images_0["icons/actions/friends/friendRemove"];
    if v12 == Enum.FriendStatus.Friend then
        return v9:FormatByKey("PlayerDropDown.Unfriend"), v14;
    elseif not (v12 ~= Enum.FriendStatus.Unknown) or v12 == Enum.FriendStatus.NotFriend then
        return v9:FormatByKey("PlayerDropDown.FriendRequest"), v13;
    elseif v12 == Enum.FriendStatus.FriendRequestSent then
        return v9:FormatByKey("PlayerDropDown.CancelRequest"), v13;
    elseif v12 == Enum.FriendStatus.FriendRequestReceived then
        return v9:FormatByKey("PlayerDropDown.Accept"), v13;
    else
        return v9:FormatByKey("PlayerDropDown.Friend Request"), v13;
    end;
end;
v11.init = function(v16)
    v16.state = {
        unfriendConfirm = false
    };
end;
v11.render = function(v17)
    local l_playerRelationship_0 = v17.props.playerRelationship;
    local l_selectedPlayer_0 = v17.props.selectedPlayer;
    local v20 = nil;
    v20 = (not (l_playerRelationship_0.friendStatus == Enum.FriendStatus.Friend) or v17.state.unfriendConfirm) and function()
        if l_playerRelationship_0.friendStatus == Enum.FriendStatus.Friend then
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
            return ;
        elseif not (l_playerRelationship_0.friendStatus ~= Enum.FriendStatus.Unknown) or l_playerRelationship_0.friendStatus == Enum.FriendStatus.NotFriend then
            v17.props.requestFriendship(l_selectedPlayer_0, false);
            return ;
        elseif l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestSent then
            l_RbxAnalyticsService_0:ReportCounter("PlayerDropDown-RevokeFriendship");
            l_RbxAnalyticsService_0:TrackEvent("Game", "RevokeFriendship", "PlayerDropDown");
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
            return ;
        else
            if l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestReceived then
                l_RbxAnalyticsService_0:ReportCounter("PlayerDropDown-RequestFriendship");
                l_RbxAnalyticsService_0:TrackEvent("Game", "RequestFriendship", "PlayerDropDown");
                v17.props.requestFriendship(l_selectedPlayer_0, true);
            end;
            return ;
        end;
    end or function()
        v17:setState({
            unfriendConfirm = true
        });
    end;
    local v21 = nil;
    if l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestReceived then
        v21 = function()
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
        end;
    end;
    local v22 = nil;
    if v17.state.unfriendConfirm then
        v22 = function()
            v17:setState({
                unfriendConfirm = false
            });
        end;
    end;
    local v23, v24 = v15(l_playerRelationship_0.friendStatus);
    return v4.createElement(v7, {
        layoutOrder = v17.props.layoutOrder,
        text = v23,
        icon = v24,
        lastButton = false,
        onActivated = v20,
        forceShowOptions = v17.state.unfriendConfirm,
        selectedPlayer = l_selectedPlayer_0,
        onDecline = v21,
        onDismiss = v22
    });
end;
v11.didUpdate = function(v25, v26, _)
    if v26.playerRelationship.friendStatus ~= v25.props.playerRelationship.friendStatus then
        v25:setState({
            unfriendConfirm = false
        });
    end;
    if not (v26.selectedPlayer == v25.props.selectedPlayer) or v26.dropDownOpen ~= v25.props.dropDownOpen then
        v25:setState({
            unfriendConfirm = false
        });
    end;
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_GuiService_0 = game:GetService("GuiService");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(l_CorePackages_0.Packages.Otter);
local v8 = require(l_CorePackages_0.UIBlox);
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v11 = require(script.Parent.DropDownButton);
local v12 = require(script.Parent.DropDownPlayerHeader);
local v13 = require(script.Parent.FriendDropDownButton);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v16 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local l_Images_0 = v8.App.ImageSet.Images;
local v18 = require(l_RobloxGui_0.Modules.isNewInGameMenuEnabled);
local l_Parent_1 = l_Parent_0.Parent;
local v20 = require(l_Parent_1.Actions.ClosePlayerDropDown);
local v21 = require(l_Parent_1.Thunks.BlockPlayer);
local v22 = require(l_Parent_1.Thunks.UnblockPlayer);
local v23 = require(l_Parent_1.Thunks.RequestFriendship);
local v24 = v4.PureComponent:extend("PlayerDropDown");
v24.validateProps = v6.strictInterface({
    positionY = v6.number,
    minPositionBoundY = v6.number,
    maxPositionBoundY = v6.number,
    contentsVisible = v6.boolean,
    selectedPlayer = v6.optional(v6.instanceIsA("Player")),
    isVisible = v6.boolean,
    playerRelationship = v6.optional(v6.strictInterface({
        isBlocked = v6.boolean,
        friendStatus = v6.enum(Enum.FriendStatus),
        isFollowing = v6.boolean,
        isFollower = v6.boolean
    })),
    inspectMenuEnabled = v6.boolean,
    isTenFootInterface = v6.boolean,
    subjectToChinaPolicies = v6.boolean,
    closeDropDown = v6.callback,
    blockPlayer = v6.callback,
    unblockPlayer = v6.callback,
    requestFriendship = v6.callback
});
v24.init = function(v25)
    v25.innerFrameRef = v4.createRef();
    v25.motorOptions = {
        dampingRatio = 1,
        frequency = 4
    };
    v25.motor = v7.createSingleMotor(1);
    v25.motor:onStep(function(v26)
        local l_current_0 = v25.innerFrameRef.current;
        if l_current_0 then
            if v26 == 1 then
                l_current_0.Visible = false;
            else
                l_current_0.Visible = true;
            end;
            l_current_0.Position = UDim2.new(v26, 0, 0, 0);
        end;
    end);
    v25.dropDownPosition = 0;
end;
v24.createFriendButton = function(v28, v29)
    return v4.createElement(v13, {
        layoutOrder = 1,
        playerRelationship = v29,
        selectedPlayer = v28.props.selectedPlayer,
        dropDownOpen = v28.props.isVisible,
        requestFriendship = v28.props.requestFriendship,
        contentVisible = true
    });
end;
v24.createBlockButton = function(v30, v31)
    local l_selectedPlayer_0 = v30.props.selectedPlayer;
    return v4.createElement(v11, {
        layoutOrder = 4,
        text = not not v31.isBlocked and v16:FormatByKey("PlayerDropDown.UnBlock") or v16:FormatByKey("PlayerDropDown.Block"),
        icon = l_Images_0["icons/actions/block"],
        lastButton = false,
        forceShowOptions = false,
        onActivated = function()
            if not v31.isBlocked then
                v30.props.blockPlayer(l_selectedPlayer_0);
                return ;
            else
                v30.props.unblockPlayer(l_selectedPlayer_0);
                return ;
            end;
        end
    });
end;
v24.createReportButton = function(v33)
    local l_selectedPlayer_1 = v33.props.selectedPlayer;
    return v4.createElement(v11, {
        layoutOrder = 5,
        text = v16:FormatByKey("PlayerDropDown.Report"),
        icon = l_Images_0["icons/actions/feedback"],
        lastButton = true,
        forceShowOptions = false,
        onActivated = function()
            if not v18() then
                require(l_RobloxGui_0.Modules.Settings.Pages.ReportAbuseMenuNewContainerPage):ReportPlayer(l_selectedPlayer_1, v33.__componentName);
                v33.props.closeDropDown();
                return ;
            else
                require(l_RobloxGui_0.Modules.InGameMenuInit).openReportDialog(l_selectedPlayer_1, v33.__componentName);
                return ;
            end;
        end
    });
end;
v24.createInspectButton = function(v35)
    local l_selectedPlayer_2 = v35.props.selectedPlayer;
    return v4.createElement(v11, {
        layoutOrder = 3,
        text = v16:FormatByKey("PlayerDropDown.Examine"),
        icon = l_Images_0["icons/actions/zoomIn"],
        lastButton = l_selectedPlayer_2 == l_LocalPlayer_0,
        forceShowOptions = false,
        onActivated = function()
            l_GuiService_0:InspectPlayerFromUserIdWithCtx(l_selectedPlayer_2.UserId, "leaderBoard");
            v35.props.closeDropDown();
        end
    });
end;
v24.render = function(v37)
    return l_WithLayoutValues_0(function(v38)
        local l_selectedPlayer_3 = v37.props.selectedPlayer;
        if l_selectedPlayer_3 and not v37.props.isTenFootInterface then
            local v40 = {
                UIListLayout = v4.createElement("UIListLayout", {
                    Padding = UDim.new(0, v38.DropDownButtonPadding),
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                PlayerHeader = v4.createElement(v12, {
                    player = v37.props.selectedPlayer
                })
            };
            local v41 = v38.DropDownButtonPadding + v38.DropDownHeaderSizeY;
            local l_playerRelationship_0 = v37.props.playerRelationship;
            if l_selectedPlayer_3 ~= l_LocalPlayer_0 then
                if not l_playerRelationship_0.isBlocked then
                    v40.FriendButton = v37:createFriendButton(l_playerRelationship_0);
                    v41 = (v41 + v38.DropDownButtonPadding) + v38.DropDownButtonSizeY;
                end;
                v40.BlockButton = v37:createBlockButton(l_playerRelationship_0);
                v41 = (v41 + v38.DropDownButtonPadding) + v38.DropDownButtonSizeY;
                v40.ReportButton = v37:createReportButton();
                v41 = (v41 + v38.DropDownButtonPadding) + v38.DropDownButtonSizeY;
            end;
            if v37.props.inspectMenuEnabled then
                v40.InspectButton = v37:createInspectButton();
                v41 = (v41 + v38.DropDownButtonPadding) + v38.DropDownButtonSizeY;
            end;
            v41 = v41 - v38.DropDownButtonPadding;
            local v43 = v37.dropDownPosition + (v38.DropDownHeaderBackgroundSize - v38.DropDownHeaderSizeY);
            if v37.props.maxPositionBoundY < v43 + v41 then
                v43 = v43 - ((v43 + v41) - v37.props.maxPositionBoundY);
            elseif v43 < v37.props.minPositionBoundY then
                v43 = v43 + (v37.props.minPositionBoundY - v43);
            end;
            return v4.createElement("Frame", {
                LayoutOrder = v37.props.layoutOrder,
                AnchorPoint = Vector2.new(1, 0),
                Position = UDim2.new(0, 0, 0, v43),
                Size = UDim2.new(0, v38.PlayerDropDownSizeX + v38.PlayerDropDownOffset, 0, v41),
                BackgroundTransparency = 1,
                ClipsDescendants = true
            }, {
                InnerFrame = v4.createElement("Frame", {
                    Size = UDim2.new(1, -v38.PlayerDropDownOffset, 1, 0),
                    BackgroundTransparency = 1,
                    ClipsDescendants = true,
                    [v4.Ref] = v37.innerFrameRef
                }, v40)
            });
        else
            return nil;
        end;
    end);
end;
v24.getDropDownPosition = function(v44)
    if not v44.props.isVisible or not v44.props.contentsVisible then
        return 1;
    else
        return 0;
    end;
end;
v24.didMount = function(v45)
    local v46 = v45:getDropDownPosition();
    v45.motor:start();
    v45.motor:setGoal(v7.spring(v46, v45.motorOptions));
end;
v24.willUpdate = function(v47, v48, _)
    if v48.selectedPlayer ~= v47.props.selectedPlayer then
        v47.dropDownPosition = v48.positionY;
    end;
end;
v24.didUpdate = function(v50, v51, _)
    if v51.selectedPlayer ~= v50.props.selectedPlayer then
        v50.motor:setGoal(v7.instant(1));
        v50.motor:step(0);
    end;
    v50.motor:setGoal(v7.spring(v50:getDropDownPosition(), v50.motorOptions));
end;
v24.willUnmount = function(v53)
    v53.motor:destroy();
end;
return v5.UNSTABLE_connect2(function(v54)
    local l_selectedPlayer_4 = v54.playerDropDown.selectedPlayer;
    return {
        selectedPlayer = l_selectedPlayer_4,
        isVisible = v54.playerDropDown.isVisible,
        playerRelationship = l_selectedPlayer_4 and v54.playerRelationship[l_selectedPlayer_4.UserId],
        inspectMenuEnabled = v54.displayOptions.inspectMenuEnabled,
        isTenFootInterface = v54.displayOptions.isTenFootInterface,
        subjectToChinaPolicies = v54.displayOptions.subjectToChinaPolicies
    };
end, function(v56)
    return {
        closeDropDown = function()
            return v56(v20());
        end,
        blockPlayer = function(v57)
            return v56(v21(v57));
        end,
        unblockPlayer = function(v58)
            return v56(v22(v58));
        end,
        requestFriendship = function(v59, _)
            return v56(v23(v59));
        end
    };
end)(v24);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_CoreGui_0 = game:GetService("CoreGui");
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v10 = require(script.Parent.EntryFrame);
local v11 = require(l_Parent_0.PresentationCommon.PlayerIcon);
local v12 = require(script.Parent.PlayerNameTag);
local v13 = require(script.Parent.StatEntry);
local v14 = require(script.Parent.CellExtender);
local l_Parent_1 = l_Parent_0.Parent;
local v16 = require(l_Parent_1.Actions.ClosePlayerDropDown);
local v17 = require(l_Parent_1.Actions.OpenPlayerDropDown);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v19 = require(l_RobloxGui_0.Modules.Interfaces.playerInterface);
local v20 = require(l_RobloxGui_0.Modules.Chrome.Enabled);
local l_validatePropsWithForwardRef_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).validatePropsWithForwardRef;
local v22 = v4.PureComponent:extend("PlayerEntry");
v22.validateProps = v6.strictInterface(l_validatePropsWithForwardRef_0({
    player = v19,
    titlePlayerEntry = v6.boolean,
    hasDivider = v6.boolean,
    entrySize = v6.integer,
    playerStats = v6.map(v6.string, v6.any),
    playerIconInfo = v6.strictInterface({
        isPlaceOwner = v6.boolean,
        avatarIcon = v6.optional(v6.table),
        specialGroupIcon = v6.optional(v6.table)
    }),
    playerRelationship = v6.strictInterface({
        isBlocked = v6.boolean,
        friendStatus = v6.enum(Enum.FriendStatus),
        isFollowing = v6.boolean,
        isFollower = v6.boolean
    }),
    gameStats = v6.array(v6.strictInterface({
        name = v6.string,
        text = v6.string,
        addId = v6.integer,
        isPrimary = v6.boolean,
        priority = v6.number
    })),
    [v4.Ref] = v6.optional(v6.table),
    selectedPlayer = v6.optional(v6.instanceIsA("Player")),
    dropDownOpen = v6.boolean,
    isSmallTouchDevice = v6.boolean,
    closeDropDown = v6.callback,
    openDropDown = v6.callback
}));
v22.init = function(v23)
    v23.state = {
        isHovered = false,
        isPressed = false
    };
    v23.onActivated = function()
        if not (v23.props.selectedPlayer == v23.props.player) or not v23.props.dropDownOpen then
            v23.props.openDropDown(v23.props.player);
            return ;
        else
            v23.props.closeDropDown();
            return ;
        end;
    end;
    v23.onSelectionGained = function()
        v23:setState({
            isHovered = true
        });
    end;
    v23.onSelectionLost = function()
        v23:setState({
            isHovered = false
        });
    end;
    v23.onMouseEnter = function()
        v23:setState({
            isHovered = true
        });
    end;
    v23.onMouseLeave = function()
        v23:setState({
            isHovered = false,
            isPressed = false
        });
    end;
    v23.onMouseDown = function()
        v23:setState({
            isPressed = true
        });
    end;
    v23.onInputEnded = function()
        v23:setState({
            isPressed = false
        });
    end;
end;
v22.getBackgroundStyle = function(v24, v25, v26)
    local v27 = if not v20() then v26.Theme.BackgroundContrast.Color else v26.Theme.BackgroundUIContrast.Color;
    if v25.IsTenFoot then
        local v28 = v24.props.dropDownOpen and v24.props.selectedPlayer == v24.props.player;
        local l_isHovered_0 = v24.state.isHovered;
        if v24.props.titlePlayerEntry then
            if not l_isHovered_0 or not v25.BackgroundStyle.HoveredTitle then
                if v25.BackgroundStyle.Title then
                    return v25.BackgroundStyle.Title;
                end;
            else
                return v25.BackgroundStyle.HoveredTitle;
            end;
        end;
        if not v28 or not v25.BackgroundStyle.Selected then
            if not l_isHovered_0 or not v25.BackgroundStyle.Hovered then
                return v25.BackgroundStyle.Default;
            else
                return v25.BackgroundStyle.Hovered;
            end;
        else
            return v25.BackgroundStyle.Selected;
        end;
    else
        return {
            Color = v27,
            Transparency = 1
        };
    end;
end;
v22.getOverlayStyle = function(v30, v31, v32)
    if not v31.IsTenFoot then
        local v33 = v30.props.dropDownOpen and v30.props.selectedPlayer == v30.props.player;
        if not v30.state.isPressed then
            if not v33 then
                if v30.state.isHovered then
                    return v32.Theme.BackgroundOnHover;
                end;
            else
                return v32.Theme.BackgroundOnPress;
            end;
        else
            return v32.Theme.BackgroundOnPress;
        end;
    end;
    return {
        Transparency = 1,
        Color = Color3.new(1, 1, 1)
    };
end;
v22.getTextStyle = function(v34, v35, v36)
    if not v35.IsTenFoot then
        if not (v34.props.player == l_Players_0.LocalPlayer) then
            return v36.Theme.TextMuted;
        else
            return v36.Theme.TextEmphasis;
        end;
    elseif not v34.state.isHovered then
        return v35.DefaultTextStyle, v35.PlayerNameTextSize;
    else
        return v35.HoveredTextStyle, v35.PlayerNameTextSize;
    end;
end;
v22.getPlayerNameFont = function(v37, v38, v39)
    if not v38.IsTenFoot then
        if not (v37.props.player == l_Players_0.LocalPlayer) then
            return {
                Font = v39.Font.CaptionBody.Font,
                Size = v39.Font.CaptionBody.RelativeSize * v39.Font.BaseSize,
                MinSize = v39.Font.Footer.RelativeMinSize * v39.Font.BaseSize
            };
        else
            return {
                Font = v39.Font.CaptionHeader.Font,
                Size = v39.Font.CaptionHeader.RelativeSize * v39.Font.BaseSize,
                MinSize = v39.Font.Footer.RelativeMinSize * v39.Font.BaseSize
            };
        end;
    elseif not v37.props.titlePlayerEntry then
        return {
            Font = v38.PlayerEntryFont,
            Size = v38.PlayerNameTextSize,
            MinSize = v38.PlayerNameTextSize
        };
    else
        return {
            Font = v38.TitlePlayerEntryFont,
            Size = v38.PlayerNameTextSize,
            MinSize = v38.PlayerNameTextSize
        };
    end;
end;
v22.render = function(v40)
    return l_WithLayoutValues_0(function(v41)
        return l_withStyle_0(function(v42)
            local v43 = v40:getBackgroundStyle(v41, v42);
            local v44 = v40:getTextStyle(v41, v42);
            local v45 = v40:getPlayerNameFont(v41, v42);
            local v46 = v40:getOverlayStyle(v41, v42);
            local l_entrySize_0 = v40.props.entrySize;
            local v48 = {};
            local v49 = nil;
            if v41.IsTenFoot then
                v49 = UDim.new(0, v41.PlayerEntryPadding);
            end;
            v48.Layout = v4.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = v49
            });
            local l_isPressed_0 = v40.state.isPressed;
            v48.NameFrame = v4.createElement("Frame", {
                LayoutOrder = 0,
                Size = UDim2.new(0, l_entrySize_0, 0, v41.PlayerEntrySizeY),
                BackgroundTransparency = 1
            }, {
                Shadow = v4.createElement("ImageLabel", {
                    BackgroundTransparency = 1,
                    Image = v41.ShadowImage,
                    Position = UDim2.new(0, -v41.ShadowSize, 0, 0),
                    Size = UDim2.new(1, v41.ShadowSize * 2, 1, v41.ShadowSize),
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = v41.ShadowSliceRect,
                    Visible = v41.IsTenFoot
                }),
                BGFrame = v4.createElement(v10, {
                    sizeX = l_entrySize_0,
                    sizeY = v41.PlayerEntrySizeY,
                    isTeamFrame = false,
                    backgroundStyle = v43,
                    overlayStyle = v46,
                    doubleOverlay = l_isPressed_0,
                    onActivated = v40.onActivated,
                    onSelectionGained = v40.onSelectionGained,
                    onSelectionLost = v40.onSelectionLost,
                    onMouseEnter = v40.onMouseEnter,
                    onMouseLeave = v40.onMouseLeave,
                    onMouseDown = v40.onMouseDown,
                    onInputEnded = v40.onInputEnded,
                    [v4.Ref] = v40.props.forwardRef
                }, {
                    Layout = v4.createElement("UIListLayout", {
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        FillDirection = Enum.FillDirection.Horizontal,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        Padding = UDim.new(0, v41.PlayerEntryNamePadding)
                    }),
                    InitalPadding = v4.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v41.InitalPlayerEntryPadding)
                    }),
                    PlayerIcon = v4.createElement(v11, {
                        player = v40.props.player,
                        playerIconInfo = v40.props.playerIconInfo,
                        playerRelationship = v40.props.playerRelationship,
                        layoutOrder = 1
                    }),
                    PlayerName = v4.createElement(v12, {
                        player = v40.props.player,
                        isTitleEntry = v40.props.titlePlayerEntry,
                        isHovered = v40.state.isHovered,
                        layoutOrder = 3,
                        textStyle = v44,
                        textFont = v45
                    })
                })
            });
            local l_MaxLeaderstats_0 = v41.MaxLeaderstats;
            if v40.props.isSmallTouchDevice then
                l_MaxLeaderstats_0 = v41.MaxLeaderstatsSmallScreen;
            end;
            for v52, v53 in ipairs(v40.props.gameStats) do
                if l_MaxLeaderstats_0 >= v52 then
                    v48["GameStat_" .. v53.name] = v4.createElement(v13, {
                        statName = v53.name,
                        statValue = v40.props.playerStats[v53.name],
                        isTitleEntry = v40.props.titlePlayerEntry,
                        isTeamEntry = false,
                        layoutOrder = v52,
                        backgroundStyle = v43,
                        overlayStyle = v46,
                        doubleOverlay = l_isPressed_0,
                        textStyle = v44,
                        onActivated = v40.onActivated,
                        onSelectionGained = v40.onSelectionGained,
                        onSelectionLost = v40.onSelectionLost,
                        onMouseEnter = v40.onMouseEnter,
                        onMouseLeave = v40.onMouseLeave,
                        onMouseDown = v40.onMouseDown,
                        onInputEnded = v40.onInputEnded
                    });
                else
                    break;
                end;
            end;
            if not v41.IsTenFoot then
                v48.BackgroundExtender = v4.createElement(v14, {
                    layoutOrder = 100,
                    size = UDim2.new(0, v41.ExtraContainerPadding, 1, 0),
                    backgroundStyle = v43,
                    overlayStyle = v46,
                    doubleOverlay = l_isPressed_0
                });
            end;
            return v4.createFragment({
                ChildrenFrame = v4.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1
                }, v48),
                Divider = (not v41.IsTenFoot and v40.props.hasDivider) and v4.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundTransparency = v42.Theme.Divider.Transparency,
                    BackgroundColor3 = v42.Theme.Divider.Color,
                    BorderSizePixel = 0
                })
            });
        end);
    end);
end;
v22 = v5.UNSTABLE_connect2(function(v54)
    return {
        selectedPlayer = v54.playerDropDown.selectedPlayer,
        dropDownOpen = v54.playerDropDown.isVisible,
        isSmallTouchDevice = v54.displayOptions.isSmallTouchDevice
    };
end, function(v55)
    return {
        closeDropDown = function()
            return v55(v16());
        end,
        openDropDown = function(v56)
            return v55(v17(v56));
        end
    };
end)(v22);
return v4.forwardRef(function(v57, v58)
    return v4.createElement(v22, v3.Dictionary.join(v57, {
        forwardRef = v58
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Otter);
local v7 = require(l_RobloxGui_0.Modules.Stats.StatsUtils);
local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local v10 = require(l_Parent_0.PlayerListSorter);
local v11 = require(l_Parent_0.PlayerEntry);
local v12 = require(l_Parent_0.Parent.PresentationCommon.VoiceChatShield);
local v13 = require(l_Parent_0.Parent.PresentationCommon.TenFootSideBar);
local l_Connection_0 = l_Parent_1.Components.Connection;
local v15 = require(l_Connection_0.EventConnections);
local v16 = require(l_Connection_0.ContextActionsBinder);
local v17 = require(l_Connection_0.TopStatConnector);
local l_WithLayoutValues_0 = require(l_Connection_0.LayoutValues).WithLayoutValues;
local v19 = require(l_RobloxGui_0.Modules.Flags.FFlagMobilePlayerList);
local v20 = {
    dampingRatio = 1,
    frequency = 7
};
local v21 = v4.PureComponent:extend("PlayerListApp");
local _ = function(v22)
    for _, v24 in ipairs(v22) do
        if v24.Team == nil then
            return true;
        end;
    end;
    return false;
end;
local function v35(v26, v27)
    local v28 = {};
    local v29 = 0;
    for _, v31 in pairs(v26) do
        if not v28[v31.TeamColor.Number] then
            v28[v31.TeamColor.Number] = true;
            v29 = v29 + 1;
        end;
    end;
    if v29 > 0 then
        local v32;
        for _, v34 in ipairs(v27) do
            if v34.Team == nil then
                v32 = true;
                goto label0 --[[  true, false  ]];
            end;
        end;
        v32 = false;
        ::label0::;
        if v32 then
            v29 = v29 + 1;
        end;
    end;
    return v29;
end;
v21.init = function(v36)
    v36.state = {
        visible = true
    };
    local v37, v38 = v4.createBinding(UDim2.new(0, 0, 0, 0));
    v36.positionOffset = v37;
    v36.updatePositionOffset = v38;
    v36.positionMotor = v6.createSingleMotor(0);
    v36.positionMotor:onStep(function(v39)
        v36.updatePositionOffset(UDim2.new(v39, 0, 0, 0));
    end);
    v36.positionMotor:onComplete(function(_)
        if not v36.props.displayOptions.isVisible then
            v36:setState({
                visible = false
            });
        end;
    end);
end;
v21.render = function(v41)
    return l_WithLayoutValues_0(function(v42)
        local l_ContainerPosition_0 = v42.ContainerPosition;
        local l_ContainerSize_0 = v42.ContainerSize;
        local l_AnchorPoint_0 = v42.AnchorPoint;
        if not (v42.IsTenFoot or not v41.props.displayOptions.performanceStatsVisible) then
            l_ContainerPosition_0 = l_ContainerPosition_0 + UDim2.fromOffset(0, v7.ButtonHeight);
        end;
        if v19 then
            l_ContainerPosition_0 = l_ContainerPosition_0 + UDim2.fromOffset(0, v42.TopBarOffset);
        end;
        local l_MaxLeaderstats_0 = v42.MaxLeaderstats;
        if v41.props.displayOptions.isSmallTouchDevice then
            l_MaxLeaderstats_0 = v42.MaxLeaderstatsSmallScreen;
        end;
        local v47 = math.min(#v41.props.gameStats, l_MaxLeaderstats_0);
        if v47 > 0 then
            l_ContainerSize_0 = l_ContainerSize_0 + UDim2.new(0, (v42.StatEntrySizeX + v42.EntryPadding) * v47, 0, 0);
        end;
        local v48 = nil;
        if not v42.IsTenFoot then
            v48 = v42.EntryBaseSizeX + math.min(4, v47) * v42.EntrySizeIncreasePerStat;
            l_ContainerSize_0 = l_ContainerSize_0 + UDim2.new(0, v42.ExtraContainerPadding, 0, 0);
            local v49 = (l_ContainerSize_0.X.Offset + v42.ContainerPadding * 2) + (v42.PlayerDropDownSizeX + v42.PlayerDropDownOffset);
            if v41.props.screenSizeX - v49 < v48 then
                v48 = v41.props.screenSizeX - v49;
            end;
            l_ContainerSize_0 = l_ContainerSize_0 + UDim2.new(0, v48, 0, 0);
        else
            v48 = v42.EntrySizeX;
        end;
        local l_huge_0 = math.huge;
        local v51 = false;
        if l_Players_0.MaxPlayers >= 6 then
            v51 = l_Players_0.MaxPlayers <= 12;
        end;
        if v51 then
            l_huge_0 = l_Players_0.MaxPlayers * 26 + v35(v41.props.teams, v41.props.players) * 20;
        end;
        local v52 = {};
        if v42.IsTenFoot then
            for _, v54 in ipairs(v41.props.players) do
                if v54 == l_Players_0.LocalPlayer then
                    v52.TitlePlayerEntry = v4.createElement("Frame", {
                        Position = UDim2.fromOffset(0, 0),
                        Size = UDim2.new(1, v42.EntryXOffset, 0, v42.PlayerEntrySizeY),
                        BackgroundTransparency = 1
                    }, {
                        PlayerEntry = v4.createElement(v11, {
                            player = v54,
                            playerStats = v41.props.playerStats[v54.UserId],
                            playerIconInfo = v41.props.playerIconInfo[v54.UserId],
                            playerRelationship = v41.props.playerRelationship[v54.UserId],
                            titlePlayerEntry = true,
                            hasDivider = false,
                            gameStats = v41.props.gameStats,
                            entrySize = v48
                        })
                    });
                    break;
                end;
            end;
        end;
        v52.PlayerScrollList = v4.createElement(v10, {
            screenSizeY = v41.props.screenSizeY,
            entrySize = v48
        });
        v52.EventConnections = v4.createElement(v15);
        v52.ContextActionsBindings = v4.createElement(v16);
        v52.TopStatConnector = v4.createElement(v17);
        if not (game:GetEngineFeature("XboxRemoveVoiceChatButton") or not v41.props.displayOptions.hasPermissionToVoiceChat) then
            v52.VoiceChatShield = v4.createElement(v12);
        end;
        if v41.props.displayOptions.isTenFootInterface then
            v52.TenFootSideBar = v4.createElement(v13);
        end;
        return v4.createElement("Frame", {
            Position = l_ContainerPosition_0,
            AnchorPoint = l_AnchorPoint_0,
            Size = l_ContainerSize_0,
            BackgroundTransparency = 1,
            Visible = v41.state.visible,
            ZIndex = not v42.IsTenFoot and 1 or 2,
            AutoLocalize = false,
            [v4.Ref] = v41.rootRef
        }, {
            OffsetFrame = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                Position = v41.positionOffset,
                BackgroundTransparency = 1
            }, v52),
            UISizeConstraint = v4.createElement("UISizeConstraint", {
                MinSize = Vector2.new(0, 0),
                MaxSize = Vector2.new(math.huge, l_huge_0)
            }) or nil
        });
    end);
end;
v21.didMount = function(v55)
    v55:setState({
        visible = v55.props.displayOptions.isVisible
    });
end;
v21.didUpdate = function(v56, v57, _)
    if v56.props.displayOptions.isVisible ~= v57.displayOptions.isVisible then
        if not v56.props.displayOptions.isTenFootInterface then
            if not v56.props.displayOptions.isVisible then
                v56.positionMotor:setGoal(v6.spring(1.1, v20));
            else
                v56:setState({
                    visible = true
                });
                v56.positionMotor:setGoal(v6.instant(0.2));
                v56.positionMotor:step(0);
                v56.positionMotor:setGoal(v6.spring(0, v20));
                return ;
            end;
        else
            v56:setState({
                visible = v56.props.displayOptions.isVisible
            });
            return ;
        end;
    end;
end;
v21.willUnmount = function(v59)
    v59.positionMotor:destroy();
    v59.positionMotor = nil;
end;
return v5.UNSTABLE_connect2(function(v60)
    return {
        screenSizeX = v60.screenSize.X,
        screenSizeY = v60.screenSize.Y,
        displayOptions = v60.displayOptions,
        players = v60.players,
        playerStats = v60.playerStats,
        playerIconInfo = v60.playerIconInfo,
        playerRelationship = v60.playerRelationship,
        gameStats = v60.gameStats,
        teams = v60.teams
    };
end, nil)(v21);