local v0 = require(script:FindFirstAncestor("Style").Parent.Lumberyak).Logger.new(nil, "StylePackage");
v0:addSink({
    maxLevel = v0.Levels.Warning,
    log = function(_, v2, _)
        print(v2);
    end
});
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Style");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.UIBlox);
local l_AppStyleProvider_0 = v4.App.Style.AppStyleProvider;
local l_Constants_0 = v4.App.Style.Constants;
local v7 = require(l_script_FirstAncestor_0.UiModeStyleProvider);
local v8 = {
    withUiModeSupport = true,
    withDarkTheme = true
};
return function(v9)
    local v10 = v3.Dictionary.join(v8, v9);
    local _ = nil;
    return v2.createElement(if not v9.withUiModeSupport then l_AppStyleProvider_0 else v7, {
        style = {
            themeName = if not v10.withDarkTheme then l_Constants_0.ThemeName.Light else l_Constants_0.ThemeName.Dark,
            fontName = l_Constants_0.FontName.Gotham
        }
    }, v10.children);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Style");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local l_useDeviceType_0 = require(l_Parent_0.RobloxAppHooks).useDeviceType;
local l_AppStyleProvider_0 = require(l_Parent_0.UIBlox).App.Style.AppStyleProvider;
return function(v8)
    local v9 = l_useDeviceType_0();
    local v10, v11 = v4.useState({
        preferredTransparency = l_UserGameSettings_0.PreferredTransparency,
        reducedMotion = l_UserGameSettings_0.ReducedMotion
    });
    v4.useEffect(function()
        local function v12()
            v11({
                preferredTransparency = l_UserGameSettings_0.PreferredTransparency,
                reducedMotion = l_UserGameSettings_0.ReducedMotion
            });
        end;
        local v13 = l_UserGameSettings_0:GetPropertyChangedSignal("PreferredTransparency"):Connect(v12);
        local v14 = l_UserGameSettings_0:GetPropertyChangedSignal("ReducedMotion"):Connect(v12);
        return function()
            v13:Disconnect();
            v14:Disconnect();
        end;
    end, {});
    local l_style_0 = v8.style;
    return v4.createElement(l_AppStyleProvider_0, {
        style = v4.useMemo(function()
            return v3.Dictionary.join({
                deviceType = l_style_0.deviceType or v9
            }, l_style_0, {
                settings = v10
            });
        end, l_dependencyArray_0(l_style_0, v9, v10))
    }, v8.children);
end;


local l_TextService_0 = game:GetService("TextService");
return function(...)
    return l_TextService_0:GetTextSize(...) + Vector2.new(2, 2);
end;


local v0 = require(script.Parent.UIBlox);
local v1 = require(script.StyleProviderWithDefaultTheme);
local v2 = require(script.DesignTokens);
return {
    AppStyleProvider = v0.App.Style.AppStyleProvider,
    Colors = require(script.Colors),
    Constants = v0.App.Style.Constants,
    Themes = {
        DarkTheme = v0.App.Style.Themes.DarkTheme,
        LightTheme = v0.App.Style.Themes.LightTheme
    },
    DesignTokenProvider = v2.DesignTokenProvider,
    UiModeStyleProvider = require(script.UiModeStyleProvider),
    useDesignTokens = v2.useDesignTokens,
    mapTypographyVariantToFontEnum = v2.mapTypographyVariantToFontEnum,
    GetTextSize = require(script.Utils.GetTextSize),
    StyleProviderWithDefaultTheme = v1,
    AppFonts = require(script.AppFonts)
};


local l_Parent_0 = script.Parent.Parent;
local l_MessageBus_0 = require(l_Parent_0.MessageBus).MessageBus;
local v2 = require(l_Parent_0.t);
local _ = require(script.Parent.SystemInfoProtocolTypes);
local v4 = {
    GET_SYSTEM_INFO_DESCRIPTOR = {
        fid = l_MessageBus_0.getMessageId("SystemInfo", "getSystemInfo"),
        validateParams = v2.table
    },
    InfoNames = {
        MANUFACTURER = "manufacturer",
        DEVICE_NAME = "deviceName",
        MAX_MEMORY = "maxMemory",
        MAX_RESOLUTION = "maxResolution",
        BASE_OS = "baseOs",
        SYSTEM_VERSION = "systemVersion",
        APP_VERSION = "appVersion",
        CPU_MAKE = "cpuMake",
        IS_64BIT = "is64bit",
        CPU_LOGICAL_COUNT = "cpuLogicalCount",
        CPU_CORE_COUNT = "cpuCoreCount",
        CPU_PHYS_COUNT = "cpuPhysCount",
        CPU_SPEED = "cpuSpeed",
        GPU = "GPU",
        AVAIL_RAM = "availRAM",
        NETWORK_TYPE = "networkType"
    }
};
v4.ALL_INFO_NAMES = {
    v4.InfoNames.MANUFACTURER,
    v4.InfoNames.DEVICE_NAME,
    v4.InfoNames.MAX_MEMORY,
    v4.InfoNames.MAX_RESOLUTION,
    v4.InfoNames.BASE_OS,
    v4.InfoNames.SYSTEM_VERSION,
    v4.InfoNames.APP_VERSION,
    v4.InfoNames.CPU_MAKE,
    v4.InfoNames.IS_64BIT,
    v4.InfoNames.CPU_LOGICAL_COUNT,
    v4.InfoNames.CPU_CORE_COUNT,
    v4.InfoNames.CPU_PHYS_COUNT,
    v4.InfoNames.CPU_SPEED,
    v4.InfoNames.GPU,
    v4.InfoNames.AVAIL_RAM,
    v4.InfoNames.NETWORK_TYPE
};
v4.__index = v4;
v4.new = function(v5)
    return (setmetatable({
        messageBus = v5 or l_MessageBus_0
    }, v4));
end;
v4.getSystemInfo = function(v6, v7)
    return v6.messageBus.call(v6.GET_SYSTEM_INFO_DESCRIPTOR, v7);
end;
v4.default = v4.new();
return v4;


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "TemplatePackage",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return {
    projects = {
        require(script.Parent.Parent.TemplatePackage)["jest.config"]
    }
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiCommon").Parent;
local _ = require(l_Parent_0.React);
local _ = require(l_Parent_0.Navigation);
return {
    ScreenKind = {
        Default = "Default",
        FullScreen = "FullScreen"
    },
    AnimationStyleEnum = {
        XDirection = "XDirection",
        ZDirection = "ZDirection",
        None = "None"
    },
    GlobalNavDisplayOption = {
        ShowAll = "ShowAll",
        TabGroupOnly = "TabGroupOnly",
        OptionGroupOnly = "OptionGroupOnly",
        HideAll = "HideAll"
    }
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiCommon").Parent;
local _ = require(l_Parent_0.AppCommonLib);
local _ = require(l_Parent_0.React);
local _ = require(l_Parent_0.Navigation);
local _ = require(script.Parent.TenFootUiRNTypes);
return {};


local v0 = require(script.TenFootUiContext);
local _ = require(script.TenFootUiTypes);
return {
    TenFootUiContext = v0,
    TenFootUiRNTypes = require(script.TenFootUiRNTypes)
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiControllerBar").Parent;
local v1 = require(l_Parent_0.React);
local l_ShortcutBar_0 = require(l_Parent_0.UIBlox).App.Navigation.ShortcutBar;
ControllerBar = function(v3)
    return v1.createElement("Frame", {
        Position = UDim2.fromScale(0, 0),
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1
    }, if #v3.items > 0 then v1.createElement(l_ShortcutBar_0, {
        items = v3.items,
        position = UDim2.fromScale(0.5, 0),
        anchorPoint = Vector2.new(0.5, 0)
    }) else nil);
end;
return ControllerBar;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiControllerBar");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local v2 = require(l_script_FirstAncestor_0.Components.ControllerBar);
local v3 = require(script.Parent.useControllerBarProps);
ControllerBarContainer = function()
    return v1.createElement(v2, (v3()));
end;
return ControllerBarContainer;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiControllerBar");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local l_FocusNavigationEventNameEnum_0 = require(l_Parent_0.FocusNavigationUtils).FocusNavigationEventNameEnum;
local v4 = require(l_Parent_0.ReactFocusNavigation);
local _ = require(l_script_FirstAncestor_0.Components.ControllerBar);
local l_LocalizationRoactContext_0 = require(l_Parent_0.Localization).LocalizationRoactContext;
local l_useHeldProgressByEvent_0 = require(l_script_FirstAncestor_0.Hooks.ControllerBarContext).useHeldProgressByEvent;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_FFlagFixControllerBarButtonNames_0 = require(l_Parent_0.SharedFlags).FFlagFixControllerBarButtonNames;
local v10 = {
    [Enum.KeyCode.Thumbstick1] = {
        vertical = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick1Vertical.png",
        horizontal = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick1Horizontal.png"
    },
    [Enum.KeyCode.Thumbstick2] = {
        vertical = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick2Vertical.png",
        horizontal = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick2Horizontal.png"
    }
};
local v11 = {
    Enum.KeyCode.ButtonA,
    Enum.KeyCode.ButtonX,
    Enum.KeyCode.ButtonY,
    Enum.KeyCode.ButtonL3,
    Enum.KeyCode.ButtonR3,
    Enum.KeyCode.Thumbstick1,
    Enum.KeyCode.Thumbstick2,
    Enum.KeyCode.ButtonStart
};
local v12 = {
    [Enum.KeyCode.ButtonA] = true,
    [Enum.KeyCode.ButtonB] = true,
    [Enum.KeyCode.ButtonL1] = true,
    [Enum.KeyCode.ButtonR1] = true
};
local v13 = {
    [Enum.KeyCode.ButtonA] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonA.png",
    [Enum.KeyCode.ButtonB] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonB.png",
    [Enum.KeyCode.ButtonY] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonY.png",
    [Enum.KeyCode.ButtonX] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png",
    [Enum.KeyCode.ButtonL3] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL3.png",
    [Enum.KeyCode.ButtonR3] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR3.png",
    [Enum.KeyCode.Thumbstick1] = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick1Directional.png",
    [Enum.KeyCode.Thumbstick2] = "rbxasset://textures/ui/Controls/DesignSystem/Thumbstick2Directional.png",
    [Enum.KeyCode.ButtonStart] = "rbxasset://textures/ui/Controls/DesignSystem/ButtonStart.png"
};
local v14 = {
    [Enum.KeyCode.ButtonY] = {
        [l_FocusNavigationEventNameEnum_0.Search] = v13[Enum.KeyCode.ButtonY],
        [l_FocusNavigationEventNameEnum_0.DisplayStatsAndInfo] = v13[Enum.KeyCode.ButtonY]
    },
    [Enum.KeyCode.ButtonX] = {
        [l_FocusNavigationEventNameEnum_0.Play] = v13[Enum.KeyCode.ButtonX],
        [l_FocusNavigationEventNameEnum_0.SeeAll] = v13[Enum.KeyCode.ButtonX],
        [l_FocusNavigationEventNameEnum_0.AcceptFriendRequest] = v13[Enum.KeyCode.ButtonX],
        [l_FocusNavigationEventNameEnum_0.AddFriend] = if not l_FFlagFixControllerBarButtonNames_0 then nil else v13[Enum.KeyCode.ButtonX]
    },
    [Enum.KeyCode.ButtonA] = {
        [l_FocusNavigationEventNameEnum_0.HoldToPlay] = v13[Enum.KeyCode.ButtonA]
    },
    [Enum.KeyCode.ButtonR3] = {
        [l_FocusNavigationEventNameEnum_0.IgnoreFriendRequest] = v13[Enum.KeyCode.ButtonR3]
    },
    [Enum.KeyCode.ButtonStart] = {
        [l_FocusNavigationEventNameEnum_0.OpenQuickMenu] = v13[Enum.KeyCode.ButtonStart]
    }
};
local v15 = {
    [l_FocusNavigationEventNameEnum_0.Search] = "CommonUI.Features.Label.ControllerBar.Search",
    [l_FocusNavigationEventNameEnum_0.SeeAll] = "Feature.Home.ActionSeeAll",
    [l_FocusNavigationEventNameEnum_0.Play] = "Common.VisitGame.Label.Play",
    [l_FocusNavigationEventNameEnum_0.DisplayStatsAndInfo] = "Feature.GameDetails.Label.LearnMore",
    [l_FocusNavigationEventNameEnum_0.HoldToPlay] = "CommonUI.Features.Label.ControllerBar.ToPlaySuffix",
    [l_FocusNavigationEventNameEnum_0.IgnoreFriendRequest] = "Feature.AddFriends.Action.IgnoreFriendRequest",
    [l_FocusNavigationEventNameEnum_0.AcceptFriendRequest] = not l_FFlagFixControllerBarButtonNames_0 and "Feature.PlayerSearchResults.Action.AddFriend" or "Feature.Friends.Action.AcceptFriend",
    [l_FocusNavigationEventNameEnum_0.AddFriend] = if not l_FFlagFixControllerBarButtonNames_0 then nil else "Feature.PlayerSearchResults.Action.AddFriend",
    [l_FocusNavigationEventNameEnum_0.OpenQuickMenu] = "Feature.Catalog.Heading.QuickMenu"
};
local v16 = {
    [l_FocusNavigationEventNameEnum_0.HoldToPlay] = "CommonUI.Features.Label.ControllerBar.HoldPrefix"
};
local v17 = {
    [l_FocusNavigationEventNameEnum_0.HoldToPlay] = true
};
local function v25(v18, v19, v20)
    if not v19.axes then
        if not v19.key then
            return {};
        else
            return {
                {
                    icon = v13[v18],
                    text = v20:Format(v19.key)
                }
            };
        end;
    else
        local l_vertical_0 = v19.axes.vertical;
        local l_horizontal_0 = v19.axes.horizontal;
        local v23 = v10[v18];
        local v24 = {};
        if l_vertical_0 then
            table.insert(v24, {
                icon = v23.vertical,
                text = v20:Format(l_vertical_0.key)
            });
        end;
        if l_horizontal_0 then
            table.insert(v24, {
                icon = v23.horizontal,
                text = v20:Format(l_horizontal_0.key)
            });
        end;
        return v24;
    end;
end;
useControllerBarProps = function()
    local v26 = v4.useActiveEventMap();
    local v27 = v2.useContext(l_LocalizationRoactContext_0);
    local v28 = l_useHeldProgressByEvent_0();
    local v29 = {};
    local v31 = l_useSelector_0(function(v30)
        if not v30.GamepadBottomBar then
            return nil;
        else
            return v30.GamepadBottomBar.boundInputs;
        end;
    end);
    for _, v33 in v11, nil, nil do
        if v31 then
            if not v12[v33] then
                local v34 = v31[v33];
                if v34 then
                    for _, v36 in (v25(v33, v34, v27)), nil, nil do
                        table.insert(v29, v36);
                    end;
                end;
            else
                continue;
            end;
        end;
        local v37 = v26[v33];
        if v37 then
            local v38 = v14[v33];
            local v39 = if not v38 then nil else v38[v37];
            local v40 = v15[v37];
            local v41 = if not v40 then nil else v27:Format(v40);
            local v42 = v16[v37];
            local v43 = if not v42 then nil else v27:Format(v42);
            local v44 = v28[v37];
            local v45 = v17[v37];
            if not (not v39 or not v41) then
                table.insert(v29, {
                    icon = v39,
                    text = v41,
                    actionText = v43,
                    progress = v44,
                    hasProgress = v45
                });
            end;
        end;
    end;
    return {
        items = v29
    };
end;
return useControllerBarProps;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiControllerBar").Parent;
local v1 = require(l_Parent_0.React);
local _ = require(l_Parent_0.FocusNavigationUtils);
local v3 = {
    ButtonHoldStarted = "ButtonHoldStarted",
    ButtonHoldEnded = "ButtonHoldEnded"
};
local v10 = {
    [v3.ButtonHoldStarted] = function(v4, v5)
        local v6 = table.clone(v4);
        v6.heldProgress[v5.eventName] = v5.progress;
        return v6;
    end,
    [v3.ButtonHoldEnded] = function(v7, v8)
        local v9 = table.clone(v7);
        v9.heldProgress[v8.eventName] = nil;
        return v9;
    end
};
local function v14(v11, v12)
    local v13 = v10[v12.type];
    if not v13 then
        error("Unknown action: " .. v12.type);
        return ;
    else
        return v13(v11, v12.payload);
    end;
end;
local v15 = v1.createContext(nil);
return {
    Context = v15,
    Provider = function(v16)
        local v17, v18 = v1.useReducer(v14, {
            heldProgress = {}
        });
        return v1.createElement(v15.Provider, {
            value = {
                state = v17,
                dispatch = v18
            }
        }, v16.children);
    end,
    useDispatchButtonHoldStarted = function()
        local v19 = v1.useContext(v15);
        local v20 = if not v19 then nil else v19.dispatch;
        return (v1.useCallback(function(v21, v22)
            if v20 then
                v20({
                    type = v3.ButtonHoldStarted,
                    payload = {
                        eventName = v21,
                        progress = v22
                    }
                });
            end;
        end, {
            v20
        }));
    end,
    useDispatchButtonHoldEnded = function()
        local v23 = v1.useContext(v15);
        local v24 = if not v23 then nil else v23.dispatch;
        return (v1.useCallback(function(v25)
            if v24 then
                v24({
                    type = v3.ButtonHoldEnded,
                    payload = {
                        eventName = v25
                    }
                });
            end;
        end, {
            v24
        }));
    end,
    useHeldProgressByEvent = function()
        local v26 = v1.useContext(v15);
        if not v26 then
            return {};
        else
            return v26.state.heldProgress;
        end;
    end,
    ControllerBarStateActionEnum = v3
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiControllerBar").Parent;
local v1 = require(l_Parent_0.Dev.Rodux);
local v2 = require(l_Parent_0.Dev.RoactRodux);
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.ReactFocusNavigation);
local l_LocalizationProvider_0 = require(l_Parent_0.Localization).LocalizationProvider;
local l_makeMockLocalization_0 = require(l_Parent_0.Dev.TenFootUiTesting).TestHelpers.mocks.makeMockLocalization;
local function v10(v7)
    local v8 = v4.useFocusGuiObject();
    return v3.createElement("Frame", {
        ref = v4.useEventHandlerMap(v7.eventHandlerMap, (v4.useEventMap(v7.eventMap, (v3.useCallback(function(v9)
            if v9 then
                v8(v9, false);
            end;
        end, {
            v8
        })))))
    }, v7.children);
end;
return function(v11, v12)
    local v14 = v1.Store.new(function(v13)
        return v13;
    end, v12 or {});
    return function(v15)
        return v3.createElement(l_LocalizationProvider_0, {
            localization = l_makeMockLocalization_0()
        }, v3.createElement(v2.StoreProvider, {
            store = v14
        }, {
            InnerComponent = v3.createElement(v4.FocusNavigationContext.Provider, {
                value = v11.focusNavigation
            }, v3.createElement(v10, {
                eventMap = v11.eventMap or {},
                eventHandlerMap = v11.eventHandlerMap or {}
            }, v15.children))
        }));
    end;
end;


return {
    createFocusNavigationWrapper = require(script.createFocusNavigationWrapper)
};


return {
    ControllerBarContainer = require(script.Components.ControllerBarContainer),
    ControllerBarContext = require(script.Hooks.ControllerBarContext),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "TenFootUiControllerBar",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiEngagementScreen").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.UIBlox);
local l_useDesignTokens_0 = require(l_Parent_0.Style).useDesignTokens;
local l_Button_0 = v2.App.Button.Button;
local l_ButtonType_0 = v2.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = v2.App.Button.Enum.StandardButtonSize;
local l_DividerWithText_0 = require(l_Parent_0.TenFootUiSharedComponents).DividerWithText;
local v8 = require(script.Parent.SwitchAccountButton);
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local l_useRoactService_0 = require(l_Parent_0.RobloxAppHooks).useRoactService;
local l_AppLogging_0 = require(l_Parent_0.RoactServiceTags).AppLogging;
local l_GetUIBloxEnableFontNameMapping_0 = require(l_Parent_0.SharedFlags).UIBlox.GetUIBloxEnableFontNameMapping;
local function _(v13)
    return {
        Font = Enum.Font.Gotham,
        RelativeSize = v13.FontSize,
        RelativeMinSize = v13.FontSize
    };
end;
return function(v15)
    local v17 = l_useDesignTokens_0(function(v16)
        return {
            headerFontStyle = v16.Semantic.Typography.Header,
            footerFontStyle = v16.Semantic.Typography.Footer,
            defaultTextColor = v16.Semantic.Color.Text.Default,
            mutedTextColor = v16.Semantic.Color.Text.Muted,
            engagementScreen = v16.LuaApps.EngagementScreen
        };
    end);
    local v18;
    if not l_GetUIBloxEnableFontNameMapping_0() then
        local l_headerFontStyle_0 = v17.headerFontStyle;
        v18 = {
            Font = Enum.Font.Gotham,
            RelativeSize = l_headerFontStyle_0.FontSize,
            RelativeMinSize = l_headerFontStyle_0.FontSize
        };
    else
        v18 = v17.headerFontStyle;
    end;
    local v20 = l_useLocalization_0({
        continue = "CommonUI.Features.Label.EngagementScreen.Continue",
        orYouCan = "CommonUI.Features.Labels.OrYouCan"
    });
    local v21 = l_useRoactService_0(l_AppLogging_0);
    v1.useLayoutEffect(function()
        v21:logEventOnce("engagement_screen_did_mount");
    end, {
        v21
    });
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, v1.createElement("ImageLabel", {
        Position = v17.engagementScreen.robloxLogoTextImagePosition,
        Size = v17.engagementScreen.robloxLogoTextImageSize,
        Image = v17.engagementScreen.robloxLogoTextImageUrl,
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1
    }), v1.createElement("Frame", {
        Position = v17.engagementScreen.buttonContainerPosition,
        Size = UDim2.new(0, v17.engagementScreen.containerWidth, 0, v17.engagementScreen.containerHeight),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1
    }, v1.createElement("UIListLayout", {
        SortOrder = Enum.SortOrder.LayoutOrder,
        HorizontalAlignment = Enum.HorizontalAlignment.Center,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        Padding = UDim.new(0, v17.engagementScreen.buttonPadding)
    }), v1.createElement(l_Button_0, {
        buttonType = l_ButtonType_0.PrimarySystem,
        layoutOrder = 1,
        text = v20.continue,
        fontStyle = v18,
        standardSize = l_StandardButtonSize_0.Regular,
        onActivated = v15.onContinue
    }), if not v15.onSwitchAccounts then nil else v1.createElement(v1.Fragment, nil, v1.createElement(l_DividerWithText_0, {
        layoutOrder = 2,
        size = UDim2.new(0, v17.engagementScreen.dividerWidth, 0, v17.engagementScreen.dividerHeight),
        width = 0,
        height = 0,
        font = if not l_GetUIBloxEnableFontNameMapping_0() then Enum.Font.Gotham else v17.footerFontStyle.Font,
        fontSize = v17.footerFontStyle.FontSize,
        color3 = v17.mutedTextColor.Color3,
        transparency = v17.mutedTextColor.Transparency,
        text = v20.orYouCan,
        padding = v17.engagementScreen.dividerPadding
    }), v1.createElement(v8, {
        layoutOrder = 3,
        fontStyle = v18,
        onActivated = v15.onSwitchAccounts
    }))));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiEngagementScreen");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_script_FirstAncestor_0.Components.EngagementScreen);
local v4 = require(l_script_FirstAncestor_0.Components.useEngagementScreenProps);
local l_getAppFeaturePolicies_0 = require(l_Parent_0.UniversalAppPolicy).getAppFeaturePolicies;
return function()
    return v2.createElement(v3, v4({
        useSingleSignOn = l_getAppFeaturePolicies_0().getUseSingleSignOn(),
        allowPlatformAccountSwitching = l_getAppFeaturePolicies_0().getAllowPlatformAccountSwitching()
    }));
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiEngagementScreen").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.UIBlox);
local l_Button_0 = v2.App.Button.Button;
local l_ButtonType_0 = v2.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = v2.App.Button.Enum.StandardButtonSize;
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
return function(v7)
    return v1.createElement(l_Button_0, {
        buttonType = l_ButtonType_0.Secondary,
        text = l_useLocalization_0({
            switchAccounts = {
                "CommonUI.Features.Label.EngagementScreen.SwitchAccounts";
                platform = "Console"
            }
        }).switchAccounts,
        fontStyle = v7.fontStyle,
        standardSize = l_StandardButtonSize_0.Regular,
        layoutOrder = v7.layoutOrder,
        onActivated = v7.onActivated,
        fitContent = true
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks);
local _ = require(l_CorePackages_0.Workspace.Packages.Style);
return function(_, v4)
    return {
        robloxLogoTextImageUrl = "rbxasset://textures/ui/LuaApp/graphic/Auth/logo_white_1x.png",
        robloxLogoTextImageSize = UDim2.new(0, 476, 0, 88),
        robloxLogoTextImagePosition = UDim2.new(0.5, 0, 0.33, 0),
        buttonContainerPosition = UDim2.new(0.5, 0, 0.66, 0),
        containerWidth = 846,
        containerHeight = 300,
        dividerWidth = 640,
        dividerHeight = 60,
        dividerPadding = 3,
        buttonPadding = v4.Global.Space_75
    };
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiEngagementScreen").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.TenFootUiCommon);
local v3 = require(l_Parent_0.AppStartup);
local l_TenFootUiContext_0 = v2.TenFootUiContext;
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
local l_navigateWithPlatformAccount_0 = v3.navigateWithPlatformAccount;
local l_AppLogging_0 = require(l_Parent_0.RoactServiceTags).AppLogging;
local l_useRoactService_0 = require(l_Parent_0.RobloxAppHooks).useRoactService;
local v9 = game:DefineFastFlag("EngagementScreenContinueEvent", false);
local l_ThirdPartyUserService_0 = game:GetService("ThirdPartyUserService");
return function(v11)
    local l_useSingleSignOn_0 = v11.useSingleSignOn;
    local l_allowPlatformAccountSwitching_0 = v11.allowPlatformAccountSwitching;
    local v14 = l_useNavigation_0();
    local v15 = v1.useContext(l_TenFootUiContext_0);
    local v16 = l_useRoactService_0(l_AppLogging_0);
    local v17 = nil;
    if l_allowPlatformAccountSwitching_0 then
        v17 = function()
            if l_ThirdPartyUserService_0 then
                l_ThirdPartyUserService_0:ShowAccountPicker();
            end;
        end;
    end;
    return {
        onContinue = not v15 and function()
        end or function()
            if not (not v9 or not game:GetEngineFeature("EngagementScreenContinueEvent")) then
                v16:logEventOnce("engagement_screen_did_continue");
            end;
            if l_ThirdPartyUserService_0 then
                l_ThirdPartyUserService_0:RegisterActiveUser(Enum.UserInputType.Gamepad1);
            end;
            l_navigateWithPlatformAccount_0(l_useSingleSignOn_0, v14.replace);
        end,
        onSwitchAccounts = v17
    };
end;


local _ = require(script.Components.EngagementScreen);
return {
    EngagementScreenContainer = require(script.Components.EngagementScreenContainer),
    engagementScreenTokenMapper = require(script.Components.engagementScreenTokenMapper),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "TenFootUiTesting",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return function(v0, v1)
    local l_EventStream_0 = v0.EventStream;
    return {
        ButtonActivated = function(v3, v4)
            v1(l_EventStream_0, "TenFootUiGlobalNav", v3, v4);
        end
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiGlobalNav");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.UIBlox);
local v5 = require(l_Parent_0.Style);
local v6 = require(l_script_FirstAncestor_0.Components.GlobalNavOptionGroup);
local v7 = require(l_script_FirstAncestor_0.Components.utils.eraseKeys);
local l_IconTabGroup_0 = v4.App.Navigation.PrimaryNavBar.IconTabGroup;
local l_useDesignTokens_0 = v5.useDesignTokens;
local v12 = v3.forwardRef(function(v10, v11)
    return v3.createElement("CanvasGroup", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        GroupTransparency = v10.GroupTransparency,
        ref = v11
    }, v3.createElement("Frame", v2.Dictionary.join({
        AutomaticSize = Enum.AutomaticSize.XY,
        Position = UDim2.new(0, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0, 0.5),
        BackgroundTransparency = 1
    }, (v7({
        "children",
        "GroupTransparency"
    }, v10))), v10.children));
end);
return (v3.forwardRef(function(v13, v14)
    local v16 = l_useDesignTokens_0(function(v15)
        return v15.Global.Space_800;
    end);
    local v18 = l_useDesignTokens_0(function(v17)
        return v17.Global.Size_100;
    end);
    local v19 = v7({
        "optionGroupProps",
        "tabGroupProps",
        "animationProps"
    }, v13);
    local v20 = nil;
    local v21 = nil;
    if v13.tabGroupProps then
        v20 = v3.createElement(v12, {
            GroupTransparency = v13.animationProps.tabGroupTransparency,
            ref = v13.animationProps.tabGroupRef
        }, v3.createElement(l_IconTabGroup_0, v13.tabGroupProps));
    end;
    if v13.optionGroupProps then
        v21 = v3.createElement(v12, {
            Position = UDim2.new(1, 0, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            GroupTransparency = v13.animationProps.optionGroupTransparency,
            ref = v13.animationProps.optionGroupRef
        }, v3.createElement(v6, v2.Dictionary.join(v13.optionGroupProps, {
            AnchorPoint = Vector2.new(1, 0),
            spacing = v18
        })));
    end;
    return v3.createElement("Frame", v2.Dictionary.join({
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        ref = v14
    }, v19), v3.createElement("UIPadding", {
        PaddingRight = UDim.new(0, v16),
        PaddingLeft = UDim.new(0, v16)
    }), {
        TabGroup = v20,
        OptionGroup = v21
    });
end));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiGlobalNav");
local l_Parent_0 = script:FindFirstAncestor("TenFootUiGlobalNav").Parent;
local v2 = require(l_Parent_0.React);
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
local v4 = require(l_script_FirstAncestor_0.Components.GlobalNavContainer.useGlobalNavProps);
local v5 = require(l_script_FirstAncestor_0.Components.GlobalNavContainer.useGlobalNavDisplayOptions);
local l_getActiveChildNavigationOptionsRecursively_0 = require(l_Parent_0.Navigation).getActiveChildNavigationOptionsRecursively;
local v7 = require(l_script_FirstAncestor_0.Components.GlobalNav);
return function()
    local v8 = l_useNavigation_0();
    return v2.createElement(v7, (v4(v8, (v5(v8, l_getActiveChildNavigationOptionsRecursively_0)))));
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiGlobalNav").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ReactOtter);
local l_FocusNavigationContext_0 = require(l_Parent_0.ReactFocusNavigation).FocusNavigationContext;
local l_useDescendantHasFocus_0 = require(l_Parent_0.FocusNavigationUtils).useDescendantHasFocus;
local v5 = {
    stiffness = 711.1,
    damping = 40,
    mass = 1
};
return function(v6)
    local v7, v8 = v1.useState(v6);
    local v9 = v1.useContext(l_FocusNavigationContext_0);
    local v10 = v1.useRef(nil);
    local v11 = l_useDescendantHasFocus_0(v10.current);
    local v13, v14 = v2.useAnimatedBinding(not v7 and 1 or 0, function(v12)
        if v12 == 1 then
            v8(false);
        end;
    end);
    v1.useEffect(function()
        if not v6 then
            v14(v2.spring(1, v5));
            return ;
        else
            v8(true);
            v14(v2.spring(0, v5));
            return ;
        end;
    end, {
        v6
    });
    v1.useEffect(function()
        if not ((not v9 or v6) or not v11) then
            v9:focusGuiObject(nil, true);
        end;
    end, {
        v6,
        v11
    });
    return {
        isVisible = v7,
        transparency = v13,
        ref = v10
    };
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiGlobalNav").Parent;
local v1 = require(l_Parent_0.React);
local l_GlobalNavDisplayOption_0 = require(l_Parent_0.TenFootUiCommon).TenFootUiRNTypes.GlobalNavDisplayOption;
return function(v3, v4)
    local v5, v6 = v1.useState(l_GlobalNavDisplayOption_0.ShowAll);
    v1.useEffect(function()
        local v7 = v4(v3);
        if not v7 or not v7.globalNavDisplayOption then
            v6(l_GlobalNavDisplayOption_0.ShowAll);
            return ;
        else
            v6(v7.globalNavDisplayOption);
            return ;
        end;
    end, {
        v3,
        v4
    });
    return v5;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiGlobalNav");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.TenFootUiCommon);
local l_TenFootUiContext_0 = v4.TenFootUiContext;
local l_AppNotificationService_0 = require(l_Parent_0.RoactServiceTags).AppNotificationService;
local v7 = require(l_script_FirstAncestor_0.Analytics.makeGlobalNavAnalytics);
local l_GlobalNavDisplayOption_0 = v4.TenFootUiRNTypes.GlobalNavDisplayOption;
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local v10 = require(l_script_FirstAncestor_0.Components.GlobalNavContainer.useGlobalNavAnimation);
local l_getCurrentTabName_0 = require(l_Parent_0.NavigationRodux).Utils.getCurrentTabName;
local l_FFlagUnifyNavigationGraph_0 = require(l_Parent_0.SharedFlags).FFlagUnifyNavigationGraph;
return function(v13, v14)
    local v15 = v2.useContext(l_TenFootUiContext_0);
    assert(v15, "TenFootUiContext must be configured before using GlobalNav");
    local v16 = v15.useRoactService(l_AppNotificationService_0);
    local v17 = v7(v15.useRoactService(v15.RoactAnalytics), v15.buttonClick);
    local l_globalNavConfig_0 = v15.globalNavConfig;
    local l_state_0 = v13.state;
    local v20 = if not l_FFlagUnifyNavigationGraph_0 then l_state_0.routes[l_state_0.index].routeName else l_getCurrentTabName_0(l_state_0);
    local function v23(v21)
        local l_page_0 = v21.page;
        if v20 == l_page_0 then
            v15.LuaAppEvents.ReloadPage:fire(l_page_0);
            return ;
        else
            v13.navigate(l_page_0);
            if v21.actionType then
                v16:ActionTaken(v21.actionType);
            end;
            v17.ButtonActivated(l_page_0, v20);
            return ;
        end;
    end;
    local v25 = l_useLocalization_0((v3.List.map(l_globalNavConfig_0.tabs, function(v24)
        return v24.titleLocalizationKey;
    end)));
    local v27 = l_useLocalization_0((v3.List.map(l_globalNavConfig_0.options, function(v26)
        return v26.titleLocalizationKey;
    end)));
    local v28 = nil;
    local v29 = nil;
    local l_v10_0 = v10;
    local v31 = true;
    if v14 ~= l_GlobalNavDisplayOption_0.ShowAll then
        v31 = v14 == l_GlobalNavDisplayOption_0.TabGroupOnly;
    end;
    l_v10_0 = l_v10_0(v31);
    v31 = v10;
    local v32 = true;
    if v14 ~= l_GlobalNavDisplayOption_0.ShowAll then
        v32 = v14 == l_GlobalNavDisplayOption_0.OptionGroupOnly;
    end;
    v31 = v31(v32);
    if l_v10_0.isVisible then
        v28 = {
            selection = {
                (v3.List.findWhere(l_globalNavConfig_0.tabs, function(v33, _)
                    return v33.page == v20;
                end))
            },
            items = v3.List.map(l_globalNavConfig_0.tabs, function(v35, v36)
                return {
                    title = v25[v36],
                    icon = v35.icon,
                    iconComponent = v35.iconComponent,
                    onActivated = function()
                        v23(v35);
                    end,
                    showRoundedBackground = v20 == v35.page
                };
            end),
            padding = {
                left = 0,
                right = 0,
                top = 0,
                bottom = 0
            }
        };
    end;
    if v31.isVisible then
        v29 = {
            items = v3.List.map(l_globalNavConfig_0.options, function(v37, v38)
                return {
                    label = v27[v38],
                    icon = v37.iconComponent or v37.icon,
                    onActivated = function()
                        v23(v37);
                    end
                };
            end)
        };
    end;
    return {
        tabGroupProps = v28,
        optionGroupProps = v29,
        animationProps = {
            tabGroupTransparency = l_v10_0.transparency,
            tabGroupRef = l_v10_0.ref,
            optionGroupTransparency = v31.transparency,
            optionGroupRef = v31.ref
        }
    };
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiGlobalNav").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.UIBlox);
local l_Interactable_0 = v2.Core.Control.Interactable;
local l_ControlState_0 = v2.Core.Control.Enum.ControlState;
local l_ImageSetLabel_0 = v2.Core.ImageSet.ImageSetLabel;
local l_useStyle_0 = v2.Core.Style.useStyle;
local l_IconSize_0 = v2.App.ImageSet.Enum.IconSize;
local l_getIconSize_0 = v2.App.ImageSet.getIconSize;
local l_useCursor_0 = v2.App.SelectionCursor.useCursor;
local function v13(v10, v11)
    local v12 = {
        Color = v11.Theme.SystemPrimaryDefault.Color,
        Transparency = v11.Theme.SystemPrimaryDefault.Transparency
    };
    if not (v10 ~= l_ControlState_0.Disabled) or v10 == l_ControlState_0.Pressed then
        v12.Transparency = 0.5 * v12.Transparency + 0.5;
    end;
    return v12;
end;
return function(v14)
    local v15 = l_useStyle_0();
    local v16 = l_useCursor_0(UDim.new(0.5, 0), 0);
    local v17, v18 = v1.useState(l_ControlState_0.Initialize);
    local v19 = v13(v17, v15);
    local v20 = l_getIconSize_0(l_IconSize_0.Medium, v15);
    return v1.createElement(l_Interactable_0, {
        AnchorPoint = Vector2.new(0, 0),
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.fromOffset(v20 + 2 * v15.Tokens.Global.Size_150, v20 + 2 * v15.Tokens.Global.Size_50),
        onStateChanged = v18,
        BackgroundTransparency = 1,
        AutoButtonColor = false,
        [v1.Event.Activated] = v14.onActivated,
        SelectionImageObject = v16
    }, v1.createElement(l_ImageSetLabel_0, {
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = UDim2.fromScale(0.5, 0.5),
        Size = UDim2.fromOffset(v20, v20),
        BackgroundTransparency = 1,
        Image = v14.icon,
        ImageColor3 = v19.Color,
        ImageTransparency = v19.Transparency
    }));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiGlobalNav");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(script.Parent.GlobalNavOption);
local v5 = require(script.Parent.GlobalNavOptionTooltip);
local v6 = require(l_script_FirstAncestor_0.Components.utils.eraseKeys);
local function v14(v7, v8)
    return v3.List.foldLeft(v3.List.filter(v7:GetDescendants(), function(v9, _)
        return v9:IsA("ImageButton");
    end), function(v11, v12, v13)
        v11[v12] = if not v8[v13] then nil else v8[v13].label;
        return v11;
    end, {});
end;
local function v19(v15, v16, v17)
    local v18 = v17[v15];
    if not v18 then
        return nil;
    else
        return {
            label = v18,
            xOffset = (v15.AbsolutePosition.X - v16.AbsolutePosition.X) + v15.Size.X.Offset / 2,
            yOffset = (v15.Position.Y.Offset + v15.Size.Y.Offset) - 10
        };
    end;
end;
return function(v20)
    local v21, v22 = v2.useState(nil);
    return v2.createElement("Frame", v3.Dictionary.join({
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 1, 0)
    }, (v6({
        "items",
        "spacing"
    }, v20))), v2.createElement("Frame", {
        Name = "Options",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        [v2.Event.SelectionChanged] = function(v23, _, _, v26)
            v22((v19(v26, v23, (v14(v23, v20.items)))));
        end
    }, v2.createElement("UIListLayout", {
        key = "globalNavOptionGroupLayout",
        FillDirection = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, v20.spacing or 0)
    }), table.unpack((v3.List.map(v20.items, function(v27, v28)
        return v2.createElement(v4, {
            key = v27.label .. "-" .. v28,
            icon = v27.icon,
            onActivated = v27.onActivated
        });
    end)))), if not v21 then nil else v2.createElement(v5, v21));
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiGlobalNav").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.UIBlox);
local l_useStyle_0 = v2.Core.Style.useStyle;
local l_StyledTextLabel_0 = v2.App.Text.StyledTextLabel;
local v5 = game:DefineFastFlag("TenFootUiGlobalNavFixOptionText", false);
return function(v6)
    local v7 = l_useStyle_0();
    return v1.createElement("Frame", {
        Transparency = 1,
        BackgroundTransparency = 1,
        Size = UDim2.new(0, 300, 1, 0),
        AnchorPoint = Vector2.new(0.5, -1),
        Position = UDim2.new(0, v6.xOffset, 0, v6.yOffset)
    }, v1.createElement(l_StyledTextLabel_0, {
        size = UDim2.new(1, 0, 1, 0),
        text = v6.label,
        textXAlignment = Enum.TextXAlignment.Center,
        colorStyle = {
            Color = v7.Theme.TextDefault.Color,
            Transparency = 0
        },
        fontStyle = if not v5 then v7.Font.Header2 else v7.Tokens.Semantic.Typography.Body
    }));
end;


eraseKeys = function(v0, v1)
    local v2 = table.clone(v1);
    for _, v4 in pairs(v0) do
        v2[v4] = nil;
    end;
    return v2;
end;
return eraseKeys;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiGlobalNav");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Dev.RoactCompat);
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.Dev.RobloxAppUIBloxConfig);
local v5 = require(l_Parent_0.UIBlox);
v5.init(v4);
local l_AppStyleProvider_0 = v5.App.Style.AppStyleProvider;
v2.setGlobalConfig({
    elementTracing = true
});
local v7 = {
    themeName = "Light",
    fontName = "Gotham"
};
local v8 = {
    themeName = "Dark",
    fontName = "Gotham"
};
local v9 = {
    Default = v8,
    Light = v7,
    Dark = v8
};
return {
    name = "TenFootUIGlobalNav",
    storyRoots = {
        l_script_FirstAncestor_0.Stories
    },
    roact = v2,
    mapStory = function(v10)
        return function(v11)
            return v3.createElement(l_AppStyleProvider_0, {
                style = not not v11 and v9[v11.theme] or v9.Default
            }, {
                Child = v3.createElement(v10, v11)
            });
        end;
    end
};


return {
    GlobalNav = require(script.Components.GlobalNav),
    GlobalNavContainer = require(script.Components.GlobalNavContainer),
    useGlobalNavDisplayOptions = require(script.Components.GlobalNavContainer.useGlobalNavDisplayOptions),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "TenFootUiGlobalNav",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local v0 = require(script:FindFirstAncestor("TenFootUiSharedComponents").Parent.React);
local l_TextService_0 = game:GetService("TextService");
return function(v2)
    local l_X_0 = l_TextService_0:GetTextSize(v2.text, v2.fontSize, v2.font, Vector2.new(math.huge, v2.fontSize)).X;
    return v0.createElement("Frame", {
        LayoutOrder = v2.layoutOrder,
        Size = if not v2.size then UDim2.new(0, v2.width, 0, v2.height) else v2.size,
        BackgroundTransparency = 1
    }, v0.createElement("Frame", {
        Position = UDim2.new(0, 0, 0.5, 0),
        Size = UDim2.new(0.5, -l_X_0 / 2 - v2.padding, 0, 1),
        BackgroundTransparency = v2.transparency,
        BackgroundColor3 = v2.color3
    }), v0.createElement("Frame", {
        Position = UDim2.new(0.5, l_X_0 / 2 + v2.padding, 0.5, 0),
        Size = UDim2.new(0.5, -l_X_0 / 2 - v2.padding, 0, 1),
        BackgroundTransparency = v2.transparency,
        BackgroundColor3 = v2.color3
    }), v0.createElement("TextLabel", {
        Position = UDim2.new(0.5, 0, 0.5, 0),
        Text = v2.text,
        TextSize = v2.fontSize,
        Font = v2.font,
        TextXAlignment = Enum.TextXAlignment.Center,
        TextYAlignment = Enum.TextYAlignment.Center,
        TextTransparency = v2.transparency,
        TextColor3 = v2.color3,
        BackgroundTransparency = 1
    }));
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiSharedComponents").Parent;
local v1 = require(l_Parent_0.Cryo);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Style);
local l_useDesignTokens_0 = v3.useDesignTokens;
local l_mapTypographyVariantToFontEnum_0 = v3.mapTypographyVariantToFontEnum;
local l_GetTextSize_0 = v3.GetTextSize;
local l_TooltipOrientation_0 = require(l_Parent_0.UIBlox).App.Dialog.Enum.TooltipOrientation;
local l_IconWithTooltip_0 = require(l_Parent_0.AppBlox).IconWithTooltip;
local v9 = require(l_Parent_0.SharedFlags);
local l_GetFFlagTenFootUiSupportSortHeaderTooltip_0 = v9.GetFFlagTenFootUiSupportSortHeaderTooltip;
local l_GetFFlagTenFootUiSupportSortSubtitle_0 = v9.GetFFlagTenFootUiSupportSortSubtitle;
local v12 = Vector2.new(math.huge, math.huge);
return function(v13)
    local v15 = l_useDesignTokens_0(function(v14)
        return {
            textStyles = {
                Font = l_mapTypographyVariantToFontEnum_0(v14.Semantic.Typography.Header),
                TextSize = v14.Semantic.Typography.Header.FontSize,
                LineHeight = v14.Semantic.Typography.Header.LineHeight,
                TextColor3 = v14.Semantic.Color.Text.Emphasis.Color3,
                TextTransparency = v14.Semantic.Color.Text.Emphasis.Transparency
            },
            subtitleTextStyles = if not l_GetFFlagTenFootUiSupportSortSubtitle_0() then nil else {
                Font = v14.Semantic.Typography.Body.Font,
                TextSize = v14.Semantic.Typography.Body.FontSize,
                LineHeight = v14.Semantic.Typography.Body.LineHeight,
                TextColor3 = v14.Semantic.Color.Text.Default.Color3
            },
            paddingAboveSubtitle = if not l_GetFFlagTenFootUiSupportSortSubtitle_0() then nil else v14.Global.Space_50,
            paddingBottom = v14.Global.Space_200
        };
    end);
    local v16 = v13.margin or 0;
    local v17 = l_GetTextSize_0(v13.text, v15.textStyles.TextSize, v15.textStyles.Font, v12);
    local v18 = nil;
    if not (not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() and not l_GetFFlagTenFootUiSupportSortSubtitle_0()) then
        v18 = {
            TitleAndTooltipPadding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, v16),
                PaddingRight = UDim.new(0, v16),
                PaddingBottom = if not l_GetFFlagTenFootUiSupportSortSubtitle_0() then UDim.new(0, v15.paddingBottom) else nil
            }),
            TitleAndTooltipLayout = if not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() then nil else v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            SortTitleTextLabel = v2.createElement("TextLabel", v1.Dictionary.join(v15.textStyles, {
                Size = if not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() then UDim2.fromScale(1, 1) else UDim2.new(0, v17.X, 1, 0),
                BackgroundTransparency = 1,
                Text = v13.text,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                LayoutOrder = if not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() then nil else 1
            })),
            SortTooltip = if not not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() and v13.tooltipHoverText then v2.createElement(l_IconWithTooltip_0, {
                tooltipOrientation = l_TooltipOrientation_0.Right,
                hoverText = v13.tooltipHoverText,
                triggerPointName = "GameSortTooltip",
                supportTenFootUi = true,
                layoutOrder = 2
            }) else nil
        };
    end;
    if not l_GetFFlagTenFootUiSupportSortSubtitle_0() then
        if not l_GetFFlagTenFootUiSupportSortHeaderTooltip_0() then
            return v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v17.Y + v15.paddingBottom),
                BackgroundTransparency = 1
            }, v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, v16),
                PaddingRight = UDim.new(0, v16),
                PaddingBottom = UDim.new(0, v15.paddingBottom)
            }), v2.createElement("TextLabel", v1.Dictionary.join(v15.textStyles, {
                Size = UDim2.fromScale(1, 1),
                BackgroundTransparency = 1,
                Text = v13.text,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top
            })));
        else
            return v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v17.Y + v15.paddingBottom),
                BackgroundTransparency = 1
            }, v18);
        end;
    else
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, ((v17.Y + v15.paddingBottom) + if not not v13.subtitleText and v13.subtitleHeight then v13.subtitleHeight else 0) + (not v13.subtitleText and 0 or v15.paddingAboveSubtitle)),
            BackgroundTransparency = 1
        }, {
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, v16),
                PaddingRight = UDim.new(0, v16),
                PaddingBottom = UDim.new(0, v15.paddingBottom)
            }),
            HeaderLayout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, v15.paddingAboveSubtitle)
            }),
            TitleAndTooltipFrame = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v17.Y),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, v18),
            SubtitleTextLabel = if not v13.subtitleText then nil else v2.createElement("TextLabel", v1.Dictionary.join(v15.subtitleTextStyles, {
                Size = UDim2.fromScale(1, 1),
                BackgroundTransparency = 1,
                Text = v13.subtitleText,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                LayoutOrder = 2
            }))
        });
    end;
end;


return {
    TenFootUiGridCarouselHeader = require(script.Components.TenFootUiGridCarouselHeader),
    DividerWithText = require(script.Components.DividerWithText),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "TenFootUiSharedComponents",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return require(script:FindFirstAncestor("TenFootUiShell").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        error = v0
    };
end);


return require(script:FindFirstAncestor("TenFootUiShell").Parent.Rodux).makeActionCreator(script.Name, function()
    return {};
end);


return require(script:FindFirstAncestor("TenFootUiShell").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        privileges = v0
    };
end);


return require(script:FindFirstAncestor("TenFootUiShell").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        crossPlayValue = v0
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local l_CrossPlayCapabilities_0 = require(l_Parent_0.UniversalAppPolicy).Enum.CrossPlayCapabilities;
local v4 = require(l_script_FirstAncestor_0.Hooks.CrossPlay.Constants);
local v5 = require(script.Parent.CrossPlaySetPrivileges);
local l_PrivilegeCheckResults_0 = v4.PrivilegeCheckResults;
return function(v7)
    return v5((v2.Dictionary.join(v7 or {}, {
        [l_CrossPlayCapabilities_0.CrossPlatform] = {
            CanJoinGame = true,
            PrivilegeCheckResult = l_PrivilegeCheckResults_0.NO_ISSUE,
            Success = true
        }
    })));
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiShell").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ReactFocusNavigation);
local v3 = require(l_Parent_0.UIBlox);
local l_CursorKind_0 = v3.App.SelectionImage.CursorKind;
local l_useSelectionCursor_0 = v3.App.SelectionImage.useSelectionCursor;
local v6 = game:DefineFastFlag("AllowSurfaceSelectionJumping", false);
local function v8(v7)
    return v1.createElement("Frame", {
        Name = "FocusBumper",
        Position = v7.position,
        Size = v7.size,
        Selectable = not v6 and true or game:GetEngineFeature("UISelectionSurfaceJumping") == false,
        BackgroundTransparency = 1,
        ref = v2.useEventHandler("focus", v7.onFocus, "Target"),
        SelectionImageObject = l_useSelectionCursor_0(l_CursorKind_0.Invisible)
    });
end;
return (v1.forwardRef(function(v9, v10)
    return v1.createElement("Frame", {
        Name = "FocusNavigableWrapper",
        Position = v9.position or UDim2.new(0, 0, 0, 0),
        Size = v9.size or UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, v1.createElement("Frame", {
        Name = "FocusNavigableWrapperInner",
        Position = v9.position or UDim2.new(0, 0, 0, 0),
        Size = v9.size or UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        SelectionBehaviorUp = Enum.SelectionBehavior.Stop,
        SelectionBehaviorDown = Enum.SelectionBehavior.Stop,
        SelectionBehaviorLeft = Enum.SelectionBehavior.Stop,
        SelectionBehaviorRight = Enum.SelectionBehavior.Stop,
        ref = v10
    }, v9.children), v9.onSelectStart and v1.createElement(v8, {
        onFocus = v9.onSelectStart,
        position = UDim2.new(0, 0, 0, 0),
        size = UDim2.new(0, 1, 1, 0)
    }), v9.onSelectEnd and v1.createElement(v8, {
        onFocus = v9.onSelectEnd,
        position = UDim2.new(1, -1, 0, 0),
        size = UDim2.new(0, 1, 1, 0)
    }), v9.onSelectUp and v1.createElement(v8, {
        onFocus = v9.onSelectUp,
        position = UDim2.new(0, 0, 0, 0),
        size = UDim2.new(1, 0, 0, 1)
    }), v9.onSelectDown and v1.createElement(v8, {
        onFocus = v9.onSelectDown,
        position = UDim2.new(0, 0, 1, -1),
        size = UDim2.new(1, 0, 0, 1)
    }));
end));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.React);
local v4 = require(l_script_FirstAncestor_0.Constants);
local v5 = require(l_Parent_0.RoactNavigation);
local _ = require(l_Parent_0.AppCommonLib);
local v7 = require(l_script_FirstAncestor_0.Hooks.TenFootUiScene);
local v8 = require(l_script_FirstAncestor_0.ReactNavigationExtend.createTenFootUiNavigator);
local l_GlobalNavContainer_0 = require(l_Parent_0.TenFootUiGlobalNav).GlobalNavContainer;
local l_TenFootUiContext_0 = require(l_Parent_0.TenFootUiCommon).TenFootUiContext;
local l_useGlobalFocusHandler_0 = require(l_Parent_0.FocusNavigationUtils).useGlobalFocusHandler;
local v12 = require(l_script_FirstAncestor_0.ReactNavigationExtend.Hooks.useProcessNavigationStateChange);
local v13 = require(l_script_FirstAncestor_0.Hooks.CrossPlay.useInitializeCrossPlaySettings);
local v14 = require(l_script_FirstAncestor_0.Hooks.useRegisterPlatformFriendListRefresh);
local v15 = require(l_script_FirstAncestor_0.ReactNavigationExtend.RnBypassAdapter);
local v16 = require(l_Parent_0.TenFootUiControllerBar);
local l_ControllerBarContainer_0 = v16.ControllerBarContainer;
local l_ControllerBarContext_0 = v16.ControllerBarContext;
local v19 = require(script.Parent.TenFootUiLayout);
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
local v21 = require(l_Parent_0.RoactUtils);
local l_useSelector_0 = v21.Hooks.RoactRodux.useSelector;
local l_useDispatch_0 = v21.Hooks.RoactRodux.useDispatch;
local l_useNavigation_0 = v21.Hooks.useNavigation;
local l_usePrevious_0 = v21.Hooks.usePrevious;
local l_ProviderContainer_0 = v21.Components.ProviderContainer;
local l_SetCentralOverlay_0 = require(l_Parent_0.CentralOverlay).Actions.SetCentralOverlay;
local l_CentralOverlayType_0 = require(l_Parent_0.RobloxAppEnums).CentralOverlayType;
local v29 = require(l_script_FirstAncestor_0.Hooks.useHideMouseCursorEffect);
local v30 = require(l_script_FirstAncestor_0.Hooks.useForceNotificationServiceThemeEffect);
local v31 = require(script.Parent.utils.avatarInteractions);
local l_getStackRootIsAvatar_0 = v31.getStackRootIsAvatar;
local l_getAutoFocusDisabledForAvatar_0 = v31.getAutoFocusDisabledForAvatar;
local l_useGamepadDisconnectOverlayEffect_0 = require(l_Parent_0.InputUi).Gamepad.useGamepadDisconnectOverlayEffect;
local l_getRouteIsActive_0 = require(l_Parent_0.Navigation).getRouteIsActive;
local l_AppEventIngestService_0 = require(l_Parent_0.RoactServiceTags).AppEventIngestService;
local l_useRoactService_0 = require(l_Parent_0.RobloxAppHooks).useRoactService;
local v38 = require(l_Parent_0.SharedFlags);
local l_FFlagEnableUniversalFocusNavigation_0 = v38.FFlagEnableUniversalFocusNavigation;
local l_FFlagUnifyNavigationGraph_0 = v38.FFlagUnifyNavigationGraph;
local l_GetFFlagGamepadAnalytics_0 = v38.GetFFlagGamepadAnalytics;
local function _(v42)
    return l_getRouteIsActive_0(v42, l_AppPage_0.AvatarExperienceRoot);
end;
local function v48(v44, v45)
    local v46 = if not l_FFlagUnifyNavigationGraph_0 then l_getStackRootIsAvatar_0(v44) else l_getRouteIsActive_0(v44, l_AppPage_0.AvatarExperienceRoot);
    local v47 = if not l_FFlagUnifyNavigationGraph_0 then l_getStackRootIsAvatar_0(v45) else l_getRouteIsActive_0(v45, l_AppPage_0.AvatarExperienceRoot);
    if not ((not v46 or v47) or not workspace.CurrentCamera) then
        workspace.CurrentCamera.CFrame = CFrame.new(v4.CAMERA_POSITION);
    end;
end;
local function v53(v49, v50)
    if v49 then
        for _, v52 in ipairs(v49:GetChildren()) do
            if v52:IsA("BasePart") then
                v52.Transparency = v50;
            end;
        end;
    end;
end;
local function v58(v54)
    local v55 = v7.getBackgroundInstance();
    if v55 then
        local v56 = if not l_FFlagUnifyNavigationGraph_0 then l_getStackRootIsAvatar_0(v54) else l_getRouteIsActive_0(v54, l_AppPage_0.AvatarExperienceRoot);
        local v57 = not v56 and 0 or 1;
        if not v56 then
            v53(v55, v57);
        else
            task.spawn(function()
                if workspace:WaitForChild("AvatarSceneNew") then
                    v53(v55, v57);
                end;
            end);
            return ;
        end;
    end;
end;
local function _()
    local l_l_CoreGui_0_FirstChild_0 = l_CoreGui_0:FindFirstChild(v4.SURFACE_GUI_FOLDER_NAME);
    if not l_l_CoreGui_0_FirstChild_0 then
        local l_Folder_0 = Instance.new("Folder");
        l_Folder_0.Name = v4.SURFACE_GUI_FOLDER_NAME;
        l_Folder_0.Parent = l_CoreGui_0;
        l_l_CoreGui_0_FirstChild_0 = l_Folder_0;
    end;
    return l_l_CoreGui_0_FirstChild_0;
end;
local function _()
    local l_workspace_FirstChild_0 = workspace:FindFirstChild(v4.WORKSPACE_FOLDER_NAME);
    if not l_workspace_FirstChild_0 then
        local l_Folder_1 = Instance.new("Folder");
        l_Folder_1.Name = v4.WORKSPACE_FOLDER_NAME;
        l_Folder_1.Parent = workspace;
        l_workspace_FirstChild_0 = l_Folder_1;
    end;
    return l_workspace_FirstChild_0;
end;
local function v77(v65, v66, v67, v68)
    local l_l_CoreGui_0_FirstChild_1 = l_CoreGui_0:FindFirstChild(v4.SURFACE_GUI_FOLDER_NAME);
    if not l_l_CoreGui_0_FirstChild_1 then
        local l_Folder_2 = Instance.new("Folder");
        l_Folder_2.Name = v4.SURFACE_GUI_FOLDER_NAME;
        l_Folder_2.Parent = l_CoreGui_0;
        l_l_CoreGui_0_FirstChild_1 = l_Folder_2;
    end;
    local l_l_l_CoreGui_0_FirstChild_1_0 = l_l_CoreGui_0_FirstChild_1;
    local l_workspace_FirstChild_1 = workspace:FindFirstChild(v4.WORKSPACE_FOLDER_NAME);
    if not l_workspace_FirstChild_1 then
        local l_Folder_3 = Instance.new("Folder");
        l_Folder_3.Name = v4.WORKSPACE_FOLDER_NAME;
        l_Folder_3.Parent = workspace;
        l_workspace_FirstChild_1 = l_Folder_3;
    end;
    l_l_CoreGui_0_FirstChild_1 = l_workspace_FirstChild_1;
    local v74 = v8(v65, {
        initialRouteName = l_AppPage_0.Landing,
        surfaceGuiContainer = l_l_l_CoreGui_0_FirstChild_1_0,
        worldContainer = l_l_CoreGui_0_FirstChild_1,
        resetOnBlur = false
    });
    local v75 = v3.Component:extend("TenFootUiRootNavigator");
    v75.router = v74.router;
    v75.render = function(v76)
        return v3.createElement(v3.Fragment, nil, {
            Toast = v68,
            CentralOverlay = v67,
            RnBypassAdapter = v3.createElement(v15, {
                rnBypassActionSignal = v66
            }),
            TenFootUiLayout = v3.createElement(v19, {
                adorneeParent = l_l_CoreGui_0_FirstChild_1,
                surfaceGuiParent = l_l_l_CoreGui_0_FirstChild_1_0,
                rootViewSlot = v3.createElement(v74, {
                    navigation = v76.props.navigation,
                    screenProps = {
                        surfaceGuiContainer = l_l_l_CoreGui_0_FirstChild_1_0,
                        worldContainer = l_l_CoreGui_0_FirstChild_1
                    }
                }),
                globalNavSlot = v3.createElement(l_GlobalNavContainer_0),
                controllerBarSlot = v3.createElement(l_ControllerBarContainer_0)
            })
        });
    end;
    return v5.createAppContainer(v75);
end;
local function v83()
    local v78 = l_useDispatch_0();
    local v80 = l_useSelector_0(function(v79)
        return v79.CentralOverlay.OverlayType == l_CentralOverlayType_0.GamepadDisconnected;
    end);
    local v81 = v3.useCallback(function()
        if v80 then
            v78(l_SetCentralOverlay_0());
        end;
    end, {
        v78,
        v80
    });
    local v82 = v3.useCallback(function()
        v78(l_SetCentralOverlay_0(l_CentralOverlayType_0.GamepadDisconnected));
    end, {
        v78
    });
    if not l_GetFFlagGamepadAnalytics_0() then
        l_useGamepadDisconnectOverlayEffect_0(v82, v81);
        return ;
    else
        l_useGamepadDisconnectOverlayEffect_0(v82, v81, l_useRoactService_0(l_AppEventIngestService_0), "InApp");
        return ;
    end;
end;
local function _()
    return l_getRouteIsActive_0(l_useNavigation_0().state, l_AppPage_0.AvatarExperienceRoot) and not l_useSelector_0(function(v84)
        return v84.CentralOverlay.OverlayType ~= nil;
    end);
end;
local function v88()
    local l_state_0 = l_useNavigation_0().state;
    local v87 = l_usePrevious_0(l_state_0) or l_state_0;
    v3.useEffect(function()
        v48(v87, l_state_0);
        v58(l_state_0);
    end, {
        l_state_0
    });
end;
local function v92(v89)
    local l_disableAutoFocus_0 = v89.disableAutoFocus;
    if l_FFlagUnifyNavigationGraph_0 then
        l_disableAutoFocus_0 = l_getRouteIsActive_0(l_useNavigation_0().state, l_AppPage_0.AvatarExperienceRoot) and not l_useSelector_0(function(v91)
            return v91.CentralOverlay.OverlayType ~= nil;
        end);
        v88();
    end;
    v30();
    v29();
    if not l_FFlagEnableUniversalFocusNavigation_0 then
        l_useGlobalFocusHandler_0(l_disableAutoFocus_0);
    end;
    v13();
    v83();
    v14();
    if l_FFlagUnifyNavigationGraph_0 then
        v3.useLayoutEffect(function()
            v7.initialize();
            return function()
                v7.deinitialize();
            end;
        end, {});
    end;
    return v3.createElement(v3.Fragment, nil, v89.children);
end;
local function v99(v93)
    local l_l_CoreGui_0_FirstChild_2 = l_CoreGui_0:FindFirstChild(v4.SURFACE_GUI_FOLDER_NAME);
    if not l_l_CoreGui_0_FirstChild_2 then
        local l_Folder_4 = Instance.new("Folder");
        l_Folder_4.Name = v4.SURFACE_GUI_FOLDER_NAME;
        l_Folder_4.Parent = l_CoreGui_0;
        l_l_CoreGui_0_FirstChild_2 = l_Folder_4;
    end;
    local l_l_l_CoreGui_0_FirstChild_2_0 = l_l_CoreGui_0_FirstChild_2;
    local l_workspace_FirstChild_2 = workspace:FindFirstChild(v4.WORKSPACE_FOLDER_NAME);
    if not l_workspace_FirstChild_2 then
        local l_Folder_5 = Instance.new("Folder");
        l_Folder_5.Name = v4.WORKSPACE_FOLDER_NAME;
        l_Folder_5.Parent = workspace;
        l_workspace_FirstChild_2 = l_Folder_5;
    end;
    return v3.createElement(v93.dependencies.RootNavigator, {
        navigation = l_useNavigation_0(),
        screenProps = {
            surfaceGuiContainer = l_l_l_CoreGui_0_FirstChild_2_0,
            worldContainer = l_workspace_FirstChild_2
        }
    });
end;
return function(v100)
    local v101 = nil;
    if not l_FFlagUnifyNavigationGraph_0 then
        local v102, v103 = v3.useState(false);
        local v105 = l_useSelector_0(function(v104)
            return v104.CentralOverlay.OverlayType ~= nil;
        end);
        v3.useLayoutEffect(function()
            v7.initialize();
            return function()
                v7.deinitialize();
            end;
        end, {});
        local v106 = v12(v100.dependencies.ApplyRoactNavigationHistory, v100.updateRoute);
        local v111 = v3.useMemo(function()
            local v107 = {};
            for _, v109 in v100.dependencies.routerConfig.commonStackRoutes, nil, nil do
                for v110 in v109, nil, nil do
                    v107[v110] = true;
                end;
            end;
            return v107;
        end, {
            v100.dependencies.routerConfig
        });
        v101 = v3.createElement(v92, {
            disableAutoFocus = v102 and not v105
        }, v3.createElement(v3.useMemo(function()
            return v77(v100.dependencies.routerConfig, v100.rnBypassActionSignal, v100.centralOverlay, v100.toast);
        end, {
            v100.dependencies.routerConfig,
            v100.rnBypassActionSignal,
            v100.centralOverlay,
            v100.toast
        }), {
            detached = true,
            onNavigationStateChange = function(v112, v113, v114)
                v103((l_getAutoFocusDisabledForAvatar_0(v113, v111)));
                v48(v112, v113);
                v58(v113);
                v106(v112, v113, v114);
            end
        }));
    else
        local l_l_CoreGui_0_FirstChild_3 = l_CoreGui_0:FindFirstChild(v4.SURFACE_GUI_FOLDER_NAME);
        if not l_l_CoreGui_0_FirstChild_3 then
            local l_Folder_6 = Instance.new("Folder");
            l_Folder_6.Name = v4.SURFACE_GUI_FOLDER_NAME;
            l_Folder_6.Parent = l_CoreGui_0;
            l_l_CoreGui_0_FirstChild_3 = l_Folder_6;
        end;
        local l_l_l_CoreGui_0_FirstChild_3_0 = l_l_CoreGui_0_FirstChild_3;
        local l_workspace_FirstChild_3 = workspace:FindFirstChild(v4.WORKSPACE_FOLDER_NAME);
        if not l_workspace_FirstChild_3 then
            local l_Folder_7 = Instance.new("Folder");
            l_Folder_7.Name = v4.WORKSPACE_FOLDER_NAME;
            l_Folder_7.Parent = workspace;
            l_workspace_FirstChild_3 = l_Folder_7;
        end;
        v101 = v3.createElement(v3.Fragment, nil, {
            Toast = v100.toast,
            CentralOverlay = v100.centralOverlay,
            TenFootUiLayout = v3.createElement(v19, {
                adorneeParent = l_workspace_FirstChild_3,
                surfaceGuiParent = l_l_l_CoreGui_0_FirstChild_3_0,
                rootViewSlot = v3.createElement(v99, v100),
                globalNavSlot = v3.createElement(l_GlobalNavContainer_0),
                controllerBarSlot = v3.createElement(l_ControllerBarContainer_0)
            }),
            GlobalEffects = v3.createElement(v92)
        });
    end;
    local v120 = {};
    table.insert(v120, {
        class = l_TenFootUiContext_0.Provider,
        props = {
            value = v100.dependencies
        }
    });
    table.insert(v120, {
        class = l_ControllerBarContext_0.Provider
    });
    return v3.createElement(l_ProviderContainer_0, {
        providers = v120
    }, v101);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.SceneManagement);
local v4 = require(l_Parent_0.FocusNavigationUtils);
local l_Components_0 = l_script_FirstAncestor_0.Components;
local l_FocusNavigableSurfaceRegistry_0 = v4.FocusNavigableSurfaceRegistry;
local l_useFocusRegistryEntry_0 = l_FocusNavigableSurfaceRegistry_0.useFocusRegistryEntry;
local l_useRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useRegisterFocusNavigableSurface;
local l_useDeRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useDeRegisterFocusNavigableSurface;
local l_FocusNavigableSurfaceIdentifierEnum_0 = v4.FocusNavigableSurfaceIdentifierEnum;
local v11 = require(l_script_FirstAncestor_0.Hooks.useRootFocusNavigationBindings);
local v12 = require(l_Components_0.FocusNavigableWrapper);
local v13 = require(l_script_FirstAncestor_0.ReactNavigationExtend.Views.Constants);
local l_SurfaceGuiWithAdornee_new_0 = v3.SurfaceGuiWithAdornee_new;
local l_useCameraFacingGeometry_0 = v3.useCameraFacingGeometry;
local function _(v16)
    return function(v17)
        return (Vector3.new(v17.X, v17.Y * v16, v13.ADORNEE_DEPTH));
    end;
end;
local v19 = 1;
local l_v19_0 = v19 --[[ copy: 18 -> 25 ]];
local function v22(v21)
    return (Vector3.new(v21.X, v21.Y * l_v19_0, v13.ADORNEE_DEPTH));
end;
local l_TOP_BAR_HEIGHT_RATIO_0 = v13.TOP_BAR_HEIGHT_RATIO;
local l_l_TOP_BAR_HEIGHT_RATIO_0_0 = l_TOP_BAR_HEIGHT_RATIO_0 --[[ copy: 19 -> 26 ]];
v19 = function(v25)
    return (Vector3.new(v25.X, v25.Y * l_l_TOP_BAR_HEIGHT_RATIO_0_0, v13.ADORNEE_DEPTH));
end;
local l_CONTROLLER_BAR_HEIGHT_RATIO_0 = v13.CONTROLLER_BAR_HEIGHT_RATIO;
local l_l_CONTROLLER_BAR_HEIGHT_RATIO_0_0 = l_CONTROLLER_BAR_HEIGHT_RATIO_0 --[[ copy: 20 -> 27 ]];
l_TOP_BAR_HEIGHT_RATIO_0 = function(v28)
    return (Vector3.new(v28.X, v28.Y * l_l_CONTROLLER_BAR_HEIGHT_RATIO_0_0, v13.ADORNEE_DEPTH));
end;
l_CONTROLLER_BAR_HEIGHT_RATIO_0 = function(v29)
    local l_Y_0 = v29.viewportFillDimensions.Y;
    return v29.cFrame * CFrame.new(0, l_Y_0 / 2 - (l_Y_0 * v13.TOP_BAR_HEIGHT_RATIO) / 2, 0);
end;
local function v33(v31)
    local l_Y_1 = v31.viewportFillDimensions.Y;
    return v31.cFrame * CFrame.new(0, (l_Y_1 * v13.CONTROLLER_BAR_HEIGHT_RATIO) / 2 - l_Y_1 / 2, 0);
end;
local function v36(v34)
    local v35 = l_useCameraFacingGeometry_0(v13.DEFAULT_SCREEN_DISTANCE_TO_CAMERA);
    return v2.createElement(l_SurfaceGuiWithAdornee_new_0, {
        name = "RootViewSurface",
        adorneeSize = v35.viewportFillDimensions:map(v22),
        adorneeCFrame = v35.cFrame,
        adorneeParent = v34.adorneeParent,
        isVisible = true,
        canvasSize = v13.FULLSCREEN_CANVAS_SIZE,
        surfaceGuiParent = v34.surfaceGuiParent
    }, v34.content);
end;
local function v47(v37)
    local v38 = l_useFocusRegistryEntry_0(l_FocusNavigableSurfaceIdentifierEnum_0.RouterView);
    local v39 = l_useRegisterFocusNavigableSurface_0();
    local v40 = l_useDeRegisterFocusNavigableSurface_0();
    local v41, v42 = v2.useState(nil);
    local v43 = v11(v42);
    local v44 = l_useCameraFacingGeometry_0(v13.DEFAULT_SCREEN_DISTANCE_TO_CAMERA);
    local v45 = v44.viewportFillDimensions:map(v19);
    local v46 = v2.joinBindings({
        viewportFillDimensions = v44.viewportFillDimensions,
        cFrame = v44.cFrame
    }):map(l_CONTROLLER_BAR_HEIGHT_RATIO_0);
    v2.useEffect(function()
        if v41 then
            v39(l_FocusNavigableSurfaceIdentifierEnum_0.NavBar, v41);
        end;
        return function()
            v40(l_FocusNavigableSurfaceIdentifierEnum_0.NavBar, nil);
        end;
    end, {
        v39,
        v41
    });
    return v2.createElement(l_SurfaceGuiWithAdornee_new_0, {
        adorneeSize = v45,
        adorneeCFrame = v46,
        canvasSize = v13.TOP_BAR_CANVAS_SIZE,
        isVisible = true,
        name = "GlobalNavBarSurface",
        adorneeParent = v37.adorneeParent,
        surfaceGuiParent = v37.surfaceGuiParent
    }, (v2.createElement(v12, {
        ref = v43,
        onSelectDown = v38
    }, v37.content)));
end;
local function v50(v48)
    local v49 = l_useCameraFacingGeometry_0(v13.DEFAULT_SCREEN_DISTANCE_TO_CAMERA - 1);
    return v2.createElement(l_SurfaceGuiWithAdornee_new_0, {
        adorneeSize = v49.viewportFillDimensions:map(l_TOP_BAR_HEIGHT_RATIO_0),
        adorneeCFrame = v2.joinBindings({
            viewportFillDimensions = v49.viewportFillDimensions,
            cFrame = v49.cFrame
        }):map(v33),
        canvasSize = v13.CONTROLLER_BAR_CANVAS_SIZE,
        isVisible = true,
        name = "ControllerBarSurface",
        adorneeParent = v48.adorneeParent,
        surfaceGuiParent = v48.surfaceGuiParent
    }, v48.content);
end;
return function(v51)
    return v2.createElement(v2.Fragment, nil, {
        RootViewSlot = if not v51.rootViewSlot then nil else v2.createElement(v36, {
            adorneeParent = v51.adorneeParent,
            surfaceGuiParent = v51.surfaceGuiParent,
            content = v51.rootViewSlot
        }),
        GlobalNavBarSlot = if not v51.globalNavSlot then nil else v2.createElement(v47, {
            adorneeParent = v51.adorneeParent,
            surfaceGuiParent = v51.surfaceGuiParent,
            content = v51.globalNavSlot
        }),
        ControllerBarSlot = if not v51.controllerBarSlot then nil else v2.createElement(v50, {
            adorneeParent = v51.adorneeParent,
            surfaceGuiParent = v51.surfaceGuiParent,
            content = v51.controllerBarSlot
        })
    });
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiShell").Parent;
local v1 = require(l_Parent_0.Navigation);
local l_SwitchTab_0 = require(l_Parent_0.RobloxAppEnums).SwitchTab;
local l_getCurrentNavigationState_0 = v1.getCurrentNavigationState;
local function v5(v4)
    return v4.routes[v4.index].key == l_SwitchTab_0.AvatarExperienceTab;
end;
local function _(v6, v7)
    local v8 = l_getCurrentNavigationState_0(v6);
    local v9 = if not v8 then nil else v8.routeName;
    if not v9 then
        return false;
    else
        return v7[v9];
    end;
end;
return {
    getAutoFocusDisabledForAvatar = function(v11, v12)
        local v13 = v11.routes[v11.index].key == l_SwitchTab_0.AvatarExperienceTab;
        local v14 = l_getCurrentNavigationState_0(v11);
        local v15 = if not v14 then nil else v14.routeName;
        return v13 and not (not not v15 and v12[v15]);
    end,
    getStackRootIsAvatar = v5
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_ReactNavigationExtend_0 = l_script_FirstAncestor_0.ReactNavigationExtend;
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.Style);
local _ = require(l_Parent_0.TenFootUiCommon);
local v6 = require(l_ReactNavigationExtend_0.Views.Constants);
local l_useDesignTokens_0 = v4.useDesignTokens;
local function v12(v8, v9)
    local l_Y_0 = v6.TOP_BAR_CANVAS_SIZE.Y;
    local l_PAGE_CONTENT_HEIGHT_RATIO_0 = v6.PAGE_CONTENT_HEIGHT_RATIO;
    return {
        showOverflowFade = v8.screenKind == "Default",
        paddingTop = if v8.screenKind == "Default" then l_Y_0 - v9.Global.Space_300 else 0,
        pageHeightRatio = l_PAGE_CONTENT_HEIGHT_RATIO_0,
        overflowStop = v9.Global.Space_200 / v6.CANVAS_SIZE.Y + l_PAGE_CONTENT_HEIGHT_RATIO_0
    };
end;
return function(v13)
    local v14 = v12(v13, (l_useDesignTokens_0()));
    return v3.createElement("CanvasGroup", {
        Name = "TenFootUiOverflowScreen",
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        GroupTransparency = v13.groupTransparency
    }, v3.createElement("UIPadding", {
        PaddingTop = UDim.new(0, v14.paddingTop)
    }), v13.children, if not v14.showOverflowFade then nil else v3.createElement("UIGradient", {
        Transparency = NumberSequence.new({
            NumberSequenceKeypoint.new(0, 0),
            NumberSequenceKeypoint.new(v14.pageHeightRatio, 0),
            NumberSequenceKeypoint.new(v14.overflowStop, 1),
            NumberSequenceKeypoint.new(1, 1)
        }),
        Rotation = 270
    }));
end;


return {
    BACKGROUND_MODEL_NAME = "TenFootUiBackgroundShapes",
    SURFACE_GUI_FOLDER_NAME = "TenFootUiSurfaceGuiFolder",
    WORKSPACE_FOLDER_NAME = "TenFootUiWorkspaceFolder",
    CAMERA_POSITION = Vector3.new(0, 15, 0),
    TOP_BAR_CANVAS_SIZE = require(script.Parent.ReactNavigationExtend.Views.Constants).TOP_BAR_CANVAS_SIZE
};


local l_CrossPlayCapabilities_0 = require(script:FindFirstAncestor("TenFootUiShell").Parent.UniversalAppPolicy).Enum.CrossPlayCapabilities;
return {
    PrivilegeCodes = {
        [l_CrossPlayCapabilities_0.CrossPlatform] = 185,
        [l_CrossPlayCapabilities_0.Multiplayer] = 254,
        [l_CrossPlayCapabilities_0.SharedContent] = 247
    },
    PrivilegeCheckResults = {
        NO_ISSUE = "NoIssue",
        BANNED = "Banned",
        PURCHASE_REQUIRED = "PurchaseRequired",
        ERROR = "Error"
    }
};


game:DefineFastFlag("CrossPlayRearrangement", false);
return function()
    return game:GetFastFlag("CrossPlayRearrangement");
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local v1 = require(l_script_FirstAncestor_0.ServiceWrappers.PlatformServiceOrStub);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.Promise);
local l_CrossPlayCapabilities_0 = require(l_Parent_0.UniversalAppPolicy).Enum.CrossPlayCapabilities;
local l_PrivilegeCodes_0 = require(script.Parent.Constants).PrivilegeCodes;
return function(v7)
    local v8 = v3.List.join({
        l_CrossPlayCapabilities_0.CrossPlatform
    }, v7 or {});
    return v4.new(function(v9, v10)
        local l_status_0, l_result_0 = pcall(function()
            return v3.List.foldLeft(v8, function(v11, v12)
                return v3.Dictionary.join(v11, {
                    [v12] = v1:BeginCheckXboxPrivilege(l_PrivilegeCodes_0[v12])
                });
            end, {});
        end);
        if not l_status_0 then
            v10(l_result_0);
            return ;
        else
            v9(l_result_0);
            return ;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local v5 = require(l_script_FirstAncestor_0.Hooks.CrossPlay.useCrossPlayApi);
local l_NetworkStatus_0 = require(l_script_FirstAncestor_0.Networking).roduxNetworking.Enum.NetworkStatus;
local v7 = require(l_script_FirstAncestor_0.Selectors.getCrossPlayIsEnabled);
return function()
    local v8 = v5();
    local v9 = l_useSelector_0(v7);
    local v11 = l_useSelector_0(function(v10)
        return v3.List.find(v3.Dictionary.values(v10.CrossPlaySettings.NetworkStatus), l_NetworkStatus_0.Fetching) ~= nil;
    end);
    local v13 = l_useSelector_0(function(v12)
        return v12.CrossPlaySettings.HttpError;
    end);
    local v15 = l_useSelector_0(function(v14)
        return v14.CrossPlaySettings.DispatchError;
    end);
    local v17 = l_useSelector_0(function(v16)
        return v16.CrossPlaySettings.SystemError;
    end);
    local v19 = l_useSelector_0(function(v18)
        return v18.CrossPlaySettings.SystemPrivileges;
    end);
    local v20 = (v13 or v15) or v17;
    return {
        isEnabled = v9,
        systemPrivileges = v19,
        hasError = v20 ~= nil,
        isLoading = v11 and not v20,
        toggle = v2.useCallback(function()
            return v8.update(not v9);
        end, {
            v8.update,
            v9
        }),
        reload = v8.fetch,
        invokeSystemUi = v8.invokeSystemUi
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local v1 = require(l_script_FirstAncestor_0.ServiceWrappers.PlatformServiceOrStub);
local v2 = require(l_script_FirstAncestor_0.ServiceWrappers.ThirdPartyUserServiceOrStub);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_LoginStatus_0 = require(l_Parent_0.RobloxAppEnums).LoginStatus;
local v8 = require(l_script_FirstAncestor_0.Hooks.CrossPlay.useCrossPlayApi);
local v9 = require(script.Parent.getFFlagCrossPlayRearrangement);
return function()
    local v10 = v8();
    local v11 = l_useDispatch_0();
    local v13 = l_useSelector_0(function(v12)
        return {
            authenticationStatus = v12.AuthenticationStatus.status,
            preloading = v12.Startup.Preloading
        };
    end);
    local v14, v15 = v4.useState(false);
    local l_authenticationStatus_0 = v13.authenticationStatus;
    local l_preloading_0 = v13.preloading;
    local v18 = l_authenticationStatus_0 == l_LoginStatus_0.LOGGED_IN;
    v4.useEffect(function()
        if v18 == v14 then
            return ;
        else
            if not v18 or not l_preloading_0 then
                if not v18 then
                    v10.reset();
                end;
            else
                v10.fetch();
            end;
            v15(v18);
            return ;
        end;
    end, {
        v10,
        v18,
        v14,
        l_preloading_0
    });
    local v19 = {
        v11
    };
    if v9() then
        v19 = {
            v11,
            v10
        };
    end;
    v4.useEffect(function()
        local v20 = v2.ActiveUserSignedOut:connect(function()
            v10.reset();
        end);
        local v21 = v1.OnLeaveConstrained:connect(function()
            v10.fetch();
        end);
        return function()
            v20:disconnect();
            v21:disconnect();
        end;
    end, v19);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local v1 = require(l_script_FirstAncestor_0.Constants);
local v2 = require(l_script_FirstAncestor_0.ReactNavigationExtend.Views.Constants);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.SceneManagement);
local l_Lighting_0 = v4.Lighting;
local l_BackgroundScene_0 = v4.BackgroundScene;
local v7 = require(l_Parent_0.Otter);
local l_BACKGROUND_MODEL_NAME_0 = v1.BACKGROUND_MODEL_NAME;
local v9 = {
    BackgroundConfigs = {
        BackgroundModelName = l_BACKGROUND_MODEL_NAME_0,
        PositionOffset = Vector3.new(10, 0, 0),
        RotationOffset = Vector3.new(0, 50, 0),
        DistanceToCamera = v2.DEFAULT_BACKGROUND_DISTANCE_TO_CAMERA
    },
    CameraConfigs = {
        FieldOfView = 50,
        Position = v1.CAMERA_POSITION
    }
};
local v10 = {
    positionX = v7.createSingleMotor(0),
    positionZ = v7.createSingleMotor(0)
};
local v11 = {};
local function v14()
    for _, v13 in v11, nil, nil do
        v13();
    end;
    table.clear(v11);
end;
local function v21(v15)
    for _, v17 in v11, nil, nil do
        v17();
    end;
    table.clear(v11);
    local l_Position_0 = v15:GetPivot().Position;
    v11 = {
        v10.positionX:onStep(function(v19)
            l_BackgroundScene_0.updateXPosition(l_BACKGROUND_MODEL_NAME_0, l_Position_0.X + v19);
        end),
        v10.positionZ:onStep(function(v20)
            l_BackgroundScene_0.updateZPosition(l_BACKGROUND_MODEL_NAME_0, l_Position_0.Z + v20);
        end)
    };
end;
return {
    initialize = function(v22)
        l_Lighting_0.configure();
        v10 = v22 or v10;
        local v23, v24 = l_BackgroundScene_0.initialize(v9);
        v21(v23);
        return v23, v24;
    end,
    deinitialize = v14,
    updateXPosition = function(v25)
        v10.positionX:setGoal(v7.spring(v25, v2.X_DIRECTION_ANIMATION_SPRING_CONFIG));
    end,
    updateZPosition = function(v26)
        v10.positionZ:setGoal(v7.spring(v26, v2.Z_DIRECTION_ANIMATION_SPRING_CONFIG));
    end,
    getBackgroundInstance = function()
        return l_BackgroundScene_0.getBackgroundInstance(l_BACKGROUND_MODEL_NAME_0);
    end
};


local l_Parent_0 = script:FindFirstAncestor("TenFootUiShell").Parent;
local l_useGlobalNavDisplayOptions_0 = require(l_Parent_0.TenFootUiGlobalNav).useGlobalNavDisplayOptions;
local l_getActiveChildNavigationOptionsRecursively_0 = require(l_Parent_0.Navigation).getActiveChildNavigationOptionsRecursively;
local l_GlobalNavDisplayOption_0 = require(l_Parent_0.TenFootUiCommon).TenFootUiRNTypes.GlobalNavDisplayOption;
local v4 = require(l_Parent_0.FocusNavigationUtils);
local l_useFocusRegistryEntry_0 = v4.FocusNavigableSurfaceRegistry.useFocusRegistryEntry;
local l_FocusNavigableSurfaceIdentifierEnum_0 = v4.FocusNavigableSurfaceIdentifierEnum;
return function(v7)
    local v8 = l_useGlobalNavDisplayOptions_0(v7, l_getActiveChildNavigationOptionsRecursively_0) ~= l_GlobalNavDisplayOption_0.HideAll;
    local v9 = l_useFocusRegistryEntry_0(l_FocusNavigableSurfaceIdentifierEnum_0.NavBar);
    if not v8 then
        return nil;
    else
        return v9;
    end;
end;


local l_NotificationService_0 = game:GetService("NotificationService");
local v1 = require(script:FindFirstAncestor("TenFootUiShell").Parent.React);
local v2 = require(script.Parent.useAppPolicy);
return function()
    local v4 = v2(function(v3)
        return v3.getForceTheme();
    end);
    v1.useLayoutEffect(function()
        if v4 then
            l_NotificationService_0.SelectedTheme = v4;
        end;
    end, {
        v4
    });
end;


local l_UserInputService_0 = game:GetService("UserInputService");
local v1 = require(script:FindFirstAncestor("TenFootUiShell").Parent.React);
return function()
    v1.useEffect(function()
        l_UserInputService_0.MouseIconEnabled = false;
    end, {});
end;


local v0 = nil;
local v1 = nil;
pcall(function()
    v0 = game:GetService("PlatformService");
end);
pcall(function()
    v1 = game:GetService("AppLifecycleService");
end);
local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_LoginStatus_0 = require(l_Parent_0.RobloxAppEnums).LoginStatus;
local _ = require(l_Parent_0.AppCommonLib);
local l_TenFootUiContext_0 = require(l_Parent_0.TenFootUiCommon).TenFootUiContext;
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
local v10 = require(l_script_FirstAncestor_0.Networking.networkRequests.platformFriendListRefresh);
local function _(v11, v12, v13)
    return function()
        v10(v11, v12, v13);
    end;
end;
return function()
    local v15 = v4.useContext(l_TenFootUiContext_0);
    assert(v15, "TenFootUiContext must be configured before useRegisterPlatformFriendListRefresh");
    local v16 = v15.useRoactService(v15.RoactAnalytics);
    local v17 = v15.useRoactService(v15.RoactNetworking);
    local v18 = l_useDispatch_0();
    local v20 = l_useSelector_0(function(v19)
        return {
            authenticationStatus = v19.AuthenticationStatus.status
        };
    end).authenticationStatus == l_LoginStatus_0.LOGGED_IN;
    local v21, v22 = v4.useState(false);
    v4.useEffect(function()
        if v20 == v21 then
            return ;
        else
            if v20 then
                local l_v18_0 = v18;
                local l_v17_0 = v17;
                local l_v16_0 = v16;
                local function v26()
                    v10(l_v18_0, l_v17_0, l_v16_0);
                end;
                if not v0 then
                    if v1 then
                        v1:RegisterCallback(Enum.AppLifecycleState.Active, v26, true, false);
                    end;
                else
                    v0.OnLeaveConstrained:connect(v26);
                end;
            end;
            v22(v20);
            return ;
        end;
    end, {
        v20,
        v21
    });
end;


local l_Parent_0 = script:FindFirstAncestor("TenFootUiShell").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ReactFocusNavigation);
local v3 = require(l_Parent_0.InputHandlers);
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
local v5 = require(l_Parent_0.TenFootUiCommon);
local v6 = require(l_Parent_0.TenFootUiGlobalNav);
local v7 = require(l_Parent_0.FocusNavigationUtils);
local v8 = require(l_Parent_0.Navigation);
local v9 = require(l_Parent_0.Dash);
local l_useGlobalNavDisplayOptions_0 = v6.useGlobalNavDisplayOptions;
local l_getActiveChildNavigationOptionsRecursively_0 = v8.getActiveChildNavigationOptionsRecursively;
local l_FocusNavigationEventNameEnum_0 = v7.FocusNavigationEventNameEnum;
local l_TenFootUiContext_0 = v5.TenFootUiContext;
local l_GlobalNavDisplayOption_0 = v5.TenFootUiRNTypes.GlobalNavDisplayOption;
local l_useFocusRegistryEntry_0 = v7.FocusNavigableSurfaceRegistry.useFocusRegistryEntry;
local l_FocusNavigableSurfaceIdentifierEnum_0 = v7.FocusNavigableSurfaceIdentifierEnum;
local l_useDescendantHasFocus_0 = v7.useDescendantHasFocus;
local l_useRegistryEntry_0 = v7.FocusNavigableSurfaceRegistry.useRegistryEntry;
local l_getCurrentTabName_0 = require(l_Parent_0.NavigationRodux).Utils.getCurrentTabName;
local l_FFlagUnifyNavigationGraph_0 = require(l_Parent_0.SharedFlags).FFlagUnifyNavigationGraph;
local function _(v21, v22)
    if type(v21) == "function" then
        v21(v22);
        return ;
    else
        if type(v21) == "table" then
            v21.current = v22;
        end;
        return ;
    end;
end;
local function _(v24, v25)
    for v26, v27 in v25, nil, nil do
        if v27.page == v24 then
            local v28 = v25[v26 + 1];
            if v28 ~= nil then
                return v28.page;
            end;
        end;
    end;
    return nil;
end;
local function _(v30, v31)
    for v32, v33 in v31, nil, nil do
        if v33.page == v30 then
            local v34 = v31[v32 - 1];
            if v34 ~= nil then
                return v34.page;
            end;
        end;
    end;
    return nil;
end;
local function _(v36)
    return (("TenFootUiNavBinding%*"):format(v36));
end;
local v38 = ("TenFootUiNavBinding%*"):format(l_FocusNavigationEventNameEnum_0.Search);
local v39 = ("TenFootUiNavBinding%*"):format(l_FocusNavigationEventNameEnum_0.TabForward);
local v40 = ("TenFootUiNavBinding%*"):format(l_FocusNavigationEventNameEnum_0.TabBackward);
local v41 = ("TenFootUiNavBinding%*"):format(l_FocusNavigationEventNameEnum_0.NavigateBack);
useRootFocusNavigationBindings = function(v42)
    local v45 = v1.useCallback(function(v43)
        if v42 then
            local l_v42_0 = v42;
            if type(l_v42_0) == "function" then
                l_v42_0(v43);
                return ;
            elseif type(l_v42_0) == "table" then
                l_v42_0.current = v43;
            end;
        end;
    end, {
        v42
    });
    local v46 = v1.useContext(l_TenFootUiContext_0);
    local v47 = l_useNavigation_0();
    local v48 = l_useFocusRegistryEntry_0(l_FocusNavigableSurfaceIdentifierEnum_0.NavBar);
    local v49 = l_useDescendantHasFocus_0((l_useRegistryEntry_0(l_FocusNavigableSurfaceIdentifierEnum_0.NavBar)));
    local v50 = l_useGlobalNavDisplayOptions_0(v47, l_getActiveChildNavigationOptionsRecursively_0);
    local v51 = true;
    if v50 ~= l_GlobalNavDisplayOption_0.TabGroupOnly then
        v51 = v50 == l_GlobalNavDisplayOption_0.ShowAll;
    end;
    local v52 = v47.state.key or v47.state.routes[v47.state.index].key;
    local v53 = if not v46 then {} else v46.globalNavConfig.tabs;
    local v54 = if not v46 then nil else v46.useRoactService(v46.RoactAnalytics).EventStream;
    local v55 = if not v46 then v9.noop else v46.buttonClick;
    local v56 = if not l_FFlagUnifyNavigationGraph_0 then v52 else l_getCurrentTabName_0(v47.state);
    local v57;
    for v58, v59 in v53, nil, nil do
        if v59.page == v56 then
            local v60 = v53[v58 - 1];
            if v60 ~= nil then
                v57 = v60.page;
                goto label0 --[[  true, false  ]];
            end;
        end;
    end;
    v57 = nil;
    ::label0::;
    local v61;
    for v62, v63 in v53, nil, nil do
        if v63.page == v56 then
            local v64 = v53[v62 + 1];
            if v64 ~= nil then
                v61 = v64.page;
                goto label1 --[[  true, false  ]];
            end;
        end;
    end;
    v61 = nil;
    ::label1::;
    return (v2.useEventHandlerMap(v1.useMemo(function()
        local v65 = {};
        if not v51 then
            v65[l_FocusNavigationEventNameEnum_0.NavigateBack] = {
                handler = v3.onRelease(function()
                    if v47.pop ~= nil then
                        v47.pop();
                    else
                        v47.goBack();
                    end;
                    v55(v54, v41, "unknown", v52);
                end)
            };
            return v65;
        else
            v65[l_FocusNavigationEventNameEnum_0.Search] = {
                handler = v3.onRelease(function(_)
                    v47.navigate("SearchPage");
                    v55(v54, v38, "SearchPage", v52);
                end)
            };
            v65[l_FocusNavigationEventNameEnum_0.TabForward] = {
                handler = v3.onRelease(function(_)
                    if v61 then
                        v47.navigate(v61);
                        v55(v54, v39, v61, v52);
                    end;
                end)
            };
            v65[l_FocusNavigationEventNameEnum_0.TabBackward] = {
                handler = v3.onRelease(function(_)
                    if v57 then
                        v47.navigate(v57);
                        v55(v54, v40, v57, v52);
                    end;
                end)
            };
            v65[l_FocusNavigationEventNameEnum_0.NavigateBack] = {
                handler = v3.onRelease(function(_)
                    if not v49 then
                        v48();
                    end;
                end)
            };
            return v65;
        end;
    end, {
        v47,
        v54,
        v55,
        v61,
        v57,
        v52,
        v48,
        v49,
        v51
    }), (v2.useEventMap(v1.useMemo(function()
        return {
            [Enum.KeyCode.ButtonB] = l_FocusNavigationEventNameEnum_0.NavigateBack,
            [Enum.KeyCode.Escape] = l_FocusNavigationEventNameEnum_0.NavigateBack,
            [Enum.KeyCode.ButtonR1] = l_FocusNavigationEventNameEnum_0.TabForward,
            [Enum.KeyCode.ButtonL1] = l_FocusNavigationEventNameEnum_0.TabBackward,
            [Enum.KeyCode.ButtonY] = l_FocusNavigationEventNameEnum_0.Search
        };
    end, {}), v45))));
end;
return useRootFocusNavigationBindings;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local v1 = require(l_script_FirstAncestor_0.Networking.networkRequests.createGetUserSettingsPlatform);
local v2 = require(l_script_FirstAncestor_0.Networking.networkRequests.createUpdateUserSettingsPlatform);
return function(v3)
    return {
        GetUserSettingsPlatform = v1(v3),
        UpdateUserSettingsPlatform = v2(v3)
    };
end;


local l_Players_0 = game:GetService("Players");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("TenFootUiShell");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.RoduxNetworking);
local v4 = require(l_Parent_0.HttpRequest);
local v5 = require(l_script_FirstAncestor_0.Networking.createRequestThunks);
local v9 = v3.config({
    keyPath = "CrossPlaySettings.NetworkStatus",
    networkImpl = v4.config({
        requestFunction = function(v6, v7, v8)
            v8.headers = {
                ["robloxctx-authenticated-userid"] = if not not l_Players_0 and l_Players_0.LocalPlayer then tostring(l_Players_0.LocalPlayer.UserId) else ""
            };
            return v4.requestFunctions.RequestInternal(v6, v7, v8);
        end,
        maxRetryCount = 0
    })
});
return {
    roduxNetworking = v9,
    thunks = v5({
        roduxNetworking = v9
    })
};


local l_Url_0 = require(script:FindFirstAncestor("TenFootUiShell").Parent.Http).Url;
local v1 = require(script.Parent.FStringDebugOverrideCrossPlayApiUrl);
return function(v2)
    return v2.roduxNetworking.GET(script, function(v3, v4, v5, v6)
        local v7 = v3(if v1 ~= "" then v1 else l_Url_0.APIS_URL, {
            crossPlaySettingsKey = v5
        }):path("user-settings-api"):path("v1"):path("user-settings");
        if not v6 then
            v7 = v7:path("platform");
        end;
        return v7:queryArgs({
            [not v6 and "requestedPlatformSettings" or "requestedUserSettings"] = v4
        });
    end);
end;