local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Focusable_0 = v5.Focusable;
local v7 = require(l_CorePackages_0.Cryo);
local v8 = require(l_CorePackages_0.UIBlox);
local l_CursorKind_0 = v8.App.SelectionImage.CursorKind;
local l_withSelectionCursorProvider_0 = v8.App.SelectionImage.withSelectionCursorProvider;
local l_withStyle_0 = v8.Style.withStyle;
local v12 = require(l_Modules_0.LuaApp.FitChildren);
local v13 = require(l_Modules_0.LuaApp.Components.SearchBarListPickerItem);
local v14 = game:DefineFastFlag("LuaAppSearchListFramesSelectable", false);
local v15 = v2.PureComponent:extend("SearchBarListPicker");
v15.validateProps = v3.strictInterface({
    items = v3.array(v3.any),
    width = v3.UDim,
    height = v3.optional(v3.number),
    layoutOrder = v3.optional(v3.integer),
    forwardRef = v3.optional(v3.table),
    NextSelectionUp = v3.optional(v3.table),
    NextSelectionDown = v3.optional(v3.table),
    NextSelectionLeft = v3.optional(v3.table),
    NextSelectionRight = v3.optional(v3.table),
    formFactor = v3.optional(v3.string),
    screenHeight = v3.optional(v3.integer),
    topBarHeight = v3.optional(v3.integer),
    globalGuiInset = v3.optional(v3.table)
});
v15.init = function(v16)
    v16.focusableRefs = v5.createRefCache();
end;
v15.renderWithProviders = function(v17, v18)
    local l_items_0 = v17.props.items;
    local l_layoutOrder_0 = v17.props.layoutOrder;
    local v21 = nil;
    local l_screenHeight_0 = v17.props.screenHeight;
    local l_topBarHeight_0 = v17.props.topBarHeight;
    local l_globalGuiInset_0 = v17.props.globalGuiInset;
    local l_height_0 = v17.props.height;
    v21 = if not l_height_0 then UDim2.new(v17.props.width.Scale, v17.props.width.Offset, 0, ((l_screenHeight_0 - l_globalGuiInset_0.top) - l_topBarHeight_0) - l_globalGuiInset_0.bottom) else UDim2.new(v17.props.width.Scale, v17.props.width.Offset, 0, l_height_0);
    local v26 = {
        Layout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        TopPadding = v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 5),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = 0
        })
    };
    local function _(v27, v28)
        local v29 = v27 + v28;
        if v29 < 1 then
            return v17.props.NextSelectionUp;
        elseif #l_items_0 < v29 then
            return v17.props.NextSelectionDown or v17.focusableRefs[v27];
        else
            return v17.focusableRefs[v29];
        end;
    end;
    local function _(v31)
        local v32 = false;
        if v31 >= 1 then
            v32 = v31 <= #l_items_0;
        end;
        return not not v32 and v17.focusableRefs[v31] or nil;
    end;
    local l_forwardRef_0 = v17.props.forwardRef;
    if v14 and #v17.props.items > 0 then
        v17.focusableRefs[1] = l_forwardRef_0;
    end;
    for v35, v36 in ipairs(l_items_0) do
        local l_createElement_0 = v2.createElement;
        local v38 = l_Focusable_0[v13];
        local v39 = {
            item = v36,
            layoutOrder = v35,
            separatorEnabled = v35 < #l_items_0
        };
        local v40;
        if not v14 then
            local v41 = v35 - 1;
            local v42 = false;
            if v41 >= 1 then
                v42 = v41 <= #l_items_0;
            end;
            v40 = not not v42 and v17.focusableRefs[v41] or nil;
        else
            local v43 = v35 + -1;
            v40 = if v43 < 1 then v17.props.NextSelectionUp else if #l_items_0 < v43 then v17.props.NextSelectionDown or v17.focusableRefs[v35] else v17.focusableRefs[v43];
        end;
        v39.NextSelectionUp = v40;
        if not v14 then
            local v44 = math.min(#l_items_0, v35 + 1);
            local v45 = false;
            if v44 >= 1 then
                v45 = v44 <= #l_items_0;
            end;
            v40 = not not v45 and v17.focusableRefs[v44] or nil;
        else
            local v46 = v35 + 1;
            v40 = if v46 < 1 then v17.props.NextSelectionUp else if #l_items_0 < v46 then v17.props.NextSelectionDown or v17.focusableRefs[v35] else v17.focusableRefs[v46];
        end;
        v39.NextSelectionDown = v40;
        if not v14 then
            local v47 = false;
            if v35 >= 1 then
                v47 = v35 <= #l_items_0;
            end;
            v40 = not not v47 and v17.focusableRefs[v35] or nil;
        else
            v40 = v17.props.NextSelectionRight;
        end;
        v39.NextSelectionRight = v40;
        if not v14 then
            local v48 = false;
            if v35 >= 1 then
                v48 = v35 <= #l_items_0;
            end;
            v40 = not not v48 and v17.focusableRefs[v35] or nil;
        else
            v40 = v17.props.NextSelectionLeft;
        end;
        v39.NextSelectionLeft = v40;
        v39.SelectionImageObject = v18(l_CursorKind_0.RoundedRectNoInset);
        v40 = v2.Ref;
        local v49 = false;
        if v35 >= 1 then
            v49 = v35 <= #l_items_0;
        end;
        v39[v40] = not not v49 and v17.focusableRefs[v35] or nil;
        v26[v35] = l_createElement_0(v38, v39);
    end;
    return l_withStyle_0(function(v50)
        return v2.createElement(l_Focusable_0.Frame, {
            AnchorPoint = Vector2.new(0.5, 0),
            Position = UDim2.fromScale(0.5, 0),
            Size = v21 + UDim2.fromOffset(48, 0),
            BackgroundColor3 = v50.Theme.BackgroundDefault.Color,
            BackgroundTransparency = v50.Theme.BackgroundDefault.Transparency,
            BorderSizePixel = 0,
            NextSelectionLeft = if not v14 then v17.props.NextSelectionLeft else nil,
            NextSelectionRight = if not v14 then v17.props.NextSelectionRight else nil,
            NextSelectionUp = if not v14 then v17.props.NextSelectionUp else nil,
            NextSelectionDown = if not v14 then v17.props.NextSelectionDown else nil,
            defaultChild = if not not l_items_0 and #l_items_0 > 0 then v17.focusableRefs[1] else nil,
            [v2.Ref] = if not v14 then l_forwardRef_0 else nil,
            SelectionGroup = not not v14 or nil,
            SelectionBehaviorDown = if not v14 then nil else Enum.SelectionBehavior.Stop,
            SelectionBehaviorLeft = if not v14 then nil else Enum.SelectionBehavior.Stop,
            SelectionBehaviorRight = if not v14 then nil else Enum.SelectionBehavior.Stop
        }, {
            list = v2.createElement(v12.FitScrollingFrame, {
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.fromScale(0.5, 0),
                BorderSizePixel = 0,
                BackgroundColor3 = v50.Theme.BackgroundDefault.Color,
                BackgroundTransparency = v50.Theme.BackgroundDefault.Transparency,
                LayoutOrder = l_layoutOrder_0,
                ScrollBarThickness = 0,
                ScrollingDirection = Enum.ScrollingDirection.Y,
                ElasticBehavior = Enum.ElasticBehavior.Always,
                Size = v21 - UDim2.new(0, 48, 0, 0),
                fitFields = {
                    CanvasSize = v12.FitAxis.Height
                },
                Selectable = if not v14 then nil else false
            }, v26)
        });
    end);
end;
v15.render = function(v51)
    return l_withSelectionCursorProvider_0(function(v52)
        return v51:renderWithProviders(v52);
    end);
end;
v15 = v4.connect(function(v53, _)
    return {
        formFactor = v53.FormFactor,
        screenHeight = v53.ScreenSize.Y,
        topBarHeight = v53.TopBar.topBarHeight,
        globalGuiInset = v53.GlobalGuiInset
    };
end)(v15);
return v2.forwardRef(function(v55, v56)
    return v2.createElement(v15, v7.Dictionary.join(v55, {
        forwardRef = v56
    }));
end);


local l_UserInputService_0 = game:GetService("UserInputService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v6 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v6.Style.withStyle;
local l_withSelectionCursorProvider_0 = v6.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v6.App.SelectionImage.CursorKind;
local l_LoadableImage_0 = v6.App.Loading.LoadableImage;
local v11 = require(l_Modules_0.LuaApp.FitChildren);
local v12 = require(l_Modules_0.LuaApp.Components.FitTextLabel);
local v13 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v14 = v4.PureComponent:extend("SearchBarListPickerItem");
v14.defaultProps = {
    displayIcon = nil
};
v14.init = function(v15)
    v15.state = {
        menuItemDown = false
    };
    v15.onMenuItemInputBegan = function(_, v17)
        if (not (v17.UserInputType ~= Enum.UserInputType.Touch) or v17.UserInputType == Enum.UserInputType.MouseButton1) and v17.UserInputState == Enum.UserInputState.Begin then
            v15.onMenuItemDown();
        end;
    end;
    v15.onMenuItemInputEnd = function(_, _)
        v15.onMenuItemUp();
    end;
    v15.eventDisconnect = function()
        if v15.userInputServiceConn then
            v15.userInputServiceConn:Disconnect();
            v15.userInputServiceConn = nil;
        end;
    end;
    v15.onMenuItemDown = function()
        if not v15.state.menuItemDown then
            v15.eventDisconnect();
            v15.userInputServiceConn = l_UserInputService_0.InputEnded:Connect(function()
                v15.onMenuItemUp();
            end);
            v15:setState({
                menuItemDown = true
            });
        end;
    end;
    v15.onMenuItemUp = function(v20)
        if v15.state.menuItemDown or v15.state.menuItemActive ~= v20 then
            v15:setState({
                menuItemDown = false
            });
        end;
        v15.eventDisconnect();
    end;
end;
v14.renderWithProviders = function(v21, v22)
    local l_item_0 = v21.props.item;
    local l_layoutOrder_0 = v21.props.layoutOrder;
    local l_separatorEnabled_0 = v21.props.separatorEnabled;
    local l_menuItemDown_0 = v21.state.menuItemDown;
    local l_isRichItem_0 = l_item_0.isRichItem;
    local l_forwardRef_0 = v21.props.forwardRef;
    return l_withStyle_0(function(v29)
        return v4.createElement(l_Focusable_0.ImageButton, {
            BackgroundColor3 = not not l_menuItemDown_0 and v29.Theme.BackgroundOnPress.Color or v29.Theme.BackgroundDefault.Color,
            BackgroundTransparency = not not l_menuItemDown_0 and v29.Theme.BackgroundOnPress.Transparency or 1,
            AutoButtonColor = false,
            BorderSizePixel = 0,
            ClipsDescendants = false,
            LayoutOrder = l_layoutOrder_0,
            Size = UDim2.new(1, 0, 0, not l_isRichItem_0 and 56 or 64),
            [v4.Event.Activated] = l_item_0.onSelect,
            [v4.Event.InputBegan] = v21.onMenuItemInputBegan,
            [v4.Event.InputEnded] = v21.onMenuItemInputEnd,
            NextSelectionLeft = v21.props.NextSelectionLeft,
            NextSelectionRight = v21.props.NextSelectionRight,
            NextSelectionUp = v21.props.NextSelectionUp,
            NextSelectionDown = v21.props.NextSelectionDown,
            [v4.Ref] = l_forwardRef_0,
            SelectionImageObject = v22(l_CursorKind_0.RoundedRectNoInset)
        }, {
            Container = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0
            }, {
                Layout = v4.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 9)
                }),
                LeftSpacing = v4.createElement("Frame", {
                    Size = UDim2.new(0, 0, 1, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    LayoutOrder = 1
                }),
                SearchIcon = v4.createElement(v13, {
                    Size = UDim2.new(0, 24, 0, 24),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Image = "LuaApp/icons/ic-search-new",
                    ImageColor3 = v29.Theme.IconDefault.Color,
                    ImageTransparency = v29.Theme.IconDefault.Transparency,
                    LayoutOrder = 2
                }),
                Content = v4.createElement("Frame", {
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, -112, 1, 0),
                    LayoutOrder = 3
                }, {
                    Layout = v4.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        Padding = UDim.new(0, 5)
                    }),
                    TitleText = v4.createElement(v12, {
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        LayoutOrder = 1,
                        Size = UDim2.new(1, 0, 0, 0),
                        Text = l_item_0.text,
                        Font = v29.Font.Body.Font,
                        TextSize = v29.Font.BaseSize * v29.Font.Body.RelativeSize,
                        TextColor3 = v29.Theme.TextDefault.Color,
                        TextTransparency = v29.Theme.TextDefault.Transparency,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextWrapped = true,
                        fitAxis = v11.FitAxis.Height
                    }),
                    CategoryText = l_isRichItem_0 and v4.createElement(v12, {
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        LayoutOrder = 1,
                        Size = UDim2.new(1, 0, 0, 0),
                        Text = "Game",
                        Font = v29.Font.CaptionBody.Font,
                        TextSize = v29.Font.BaseSize * v29.Font.CaptionBody.RelativeSize,
                        TextColor3 = v29.Theme.TextMuted.Color,
                        TextTransparency = v29.Theme.TextMuted.Transparency,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextWrapped = true,
                        fitAxis = v11.FitAxis.Height
                    })
                }),
                RichIcon = l_isRichItem_0 and v4.createElement("Frame", {
                    Size = UDim2.new(0, 44, 0, 44),
                    Position = UDim2.new(1, -44, 0, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    LayoutOrder = 4
                }, {
                    Shadow = v4.createElement("Frame", {
                        Size = UDim2.new(0, 36, 0, 36),
                        Position = UDim2.new(0, 8, 0, 0),
                        BorderSizePixel = 0,
                        BackgroundColor3 = v29.Theme.BackgroundOnHover.Color,
                        BackgroundTransparency = v29.Theme.BackgroundOnHover.Transparency,
                        ZIndex = 10
                    }),
                    Border = v4.createElement("Frame", {
                        Size = UDim2.new(0, 36, 0, 36),
                        Position = UDim2.new(0, 2, 0, 6),
                        BorderSizePixel = 0,
                        BackgroundColor3 = v29.Theme.BackgroundDefault.Color,
                        BackgroundTransparency = v29.Theme.BackgroundDefault.Transparency,
                        ZIndex = 11
                    }),
                    GameIcon = v4.createElement(l_LoadableImage_0, {
                        Size = UDim2.new(0, 36, 0, 36),
                        Position = UDim2.new(0, 0, 0, 8),
                        BackgroundTransparency = 1,
                        Image = l_item_0.displayIcon,
                        useShimmerAnimationWhileLoading = true,
                        ZIndex = 12
                    })
                })
            }),
            Separator = l_separatorEnabled_0 and v4.createElement("Frame", {
                BackgroundColor3 = v29.Theme.Divider.Color,
                BackgroundTransparency = v29.Theme.Divider.Transparency,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, 1),
                Position = UDim2.new(0, 0, 1, 0)
            })
        });
    end);
end;
v14.render = function(v30)
    return l_withSelectionCursorProvider_0(function(v31)
        return v30:renderWithProviders(v31);
    end);
end;
v14.willUnmount = function(v32)
    v32.eventDisconnect();
end;
return v4.forwardRef(function(v33, v34)
    return v4.createElement(v14, v3.Dictionary.join(v33, {
        forwardRef = v34
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Common.Immutable);
local v3 = require(l_Modules_0.LuaApp.Components.GenericTextButton);
local v4 = require(l_Modules_0.LuaApp.ThemeContext_DEPRECATED);
local v5 = v1.PureComponent:extend("SecondaryButton");
v5.render = function(v6)
    return v1.createElement(v4.Consumer, {
        render = function(v7)
            return v1.createElement(v3, (v2.Set(v6.props, "themeSettings", v7.SecondaryButton)));
        end
    });
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v4 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Components.GenericTextButton);
local v5 = v2.PureComponent:extend("SecondaryButtonRetheme");
v5.render = function(v6)
    local l_props_0 = v6.props;
    l_props_0 = v1.Dictionary.join(l_props_0, {
        forwardRef = v1.None,
        [v2.Ref] = l_props_0.forwardRef
    });
    return l_withStyle_0(function(v8)
        return v2.createElement(v4, v1.Dictionary.join(l_props_0, {
            themeSettings = {
                Transparency = 1,
                OnPressTransparency = 0.5,
                DisabledTransparency = 0.5,
                Text = {
                    Color = v8.Theme.SecondaryContent.Color,
                    Transparency = v8.Theme.SecondaryContent.Transparency
                },
                Border = {
                    Hidden = false,
                    Color = v8.Theme.SecondaryDefault.Color,
                    Transparency = v8.Theme.SecondaryDefault.Transparency
                }
            },
            Font = v8.Font.Header2.Font,
            TextSize = if not v6.props.TextSize then v8.Font.BaseSize * v8.Font.Header2.RelativeSize else v6.props.TextSize
        }));
    end);
end;
return v2.forwardRef(function(v9, v10)
    return v2.createElement(v5, v1.Dictionary.join(v9, {
        forwardRef = v10
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v4 = require(l_Modules_0.LuaApp.Constants);
local v5 = require(l_Modules_0.LuaApp.FitChildren);
local v6 = require(l_Modules_0.LuaApp.Components.FitTextLabel);
local v7 = require(l_Modules_0.LuaApp.Components.LocalizedFitTextLabel);
local v8 = require(l_Modules_0.Common.Text);
local v9 = require(l_Modules_0.Personalization.Flags.FFlagLuaAppConsoleSupportRFY);
local l_SECTION_HEADER_HEIGHT_0 = v4.SECTION_HEADER_HEIGHT;
local v11 = v2.PureComponent:extend("SectionHeader");
v11.defaultProps = {
    Size = UDim2.new(1, 0, 0, l_SECTION_HEADER_HEIGHT_0),
    useLocalizedText = false
};
v11.render = function(v12)
    local l_text_0 = v12.props.text;
    local l_LayoutOrder_0 = v12.props.LayoutOrder;
    local l_Size_0 = v12.props.Size;
    local l_Position_0 = v12.props.Position;
    local l_TextTransparency_0 = v12.props.TextTransparency;
    local l_useLocalizedText_0 = v12.props.useLocalizedText;
    return l_withStyle_0(function(v19)
        local l_Font_0 = v19.Font;
        local l_Theme_0 = v19.Theme;
        local v22 = v12.props.Font or l_Font_0.Header1.Font;
        local v23 = if not v9 then l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize else v12.props.TextSize or l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize;
        local v24 = v12.props.TextColor3 or l_Theme_0.TextEmphasis.Color;
        l_TextTransparency_0 = l_Theme_0.TextEmphasis.Transparency;
        l_Size_0 = UDim2.new(1, 0, 0, (v8.GetTextHeight(l_text_0, v22, v23, 10000)));
        return v2.createElement(not not l_useLocalizedText_0 and v7 or v6, {
            LayoutOrder = l_LayoutOrder_0,
            Size = l_Size_0,
            Position = l_Position_0,
            BackgroundTransparency = 1,
            TextSize = v23,
            TextColor3 = v24,
            TextTransparency = l_TextTransparency_0,
            Font = v22,
            Text = l_text_0,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            fitAxis = v5.FitAxis.Height
        });
    end);
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppSessionService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppSessionService;
local v6 = require(l_Modules_0.LuaApp.mutedError);
local l_SessionType_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SessionType;
local v8 = require(l_Modules_0.LuaApp.AppPage);
local v9 = require(l_Modules_0.LuaApp.FlagSettings);
local v10 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux);
local l_selectCurrentLegacyRoute_0 = v10.Selectors.selectCurrentLegacyRoute;
local l_selectCurrentLegacyPage_0 = v10.Selectors.selectCurrentLegacyPage;
local function v22(v13)
    local l_Level2a_0 = l_SessionType_0.StructuralIdentifier.Level2a;
    local l_Level2b_0 = l_SessionType_0.StructuralIdentifier.Level2b;
    local v16 = {};
    local v17 = false;
    for v18 = #v13, 1, -1 do
        local l_name_0 = v13[v18].name;
        local v20 = nil;
        local v21 = nil;
        v20 = l_SessionType_0.Tag.Level2a[l_name_0];
        v21 = l_SessionType_0.Tag.Level2b[l_name_0];
        if not v20 then
            if not (v17 or not v21) then
                v16[l_Level2b_0] = v13[v18];
                v17 = true;
            end;
        else
            v16[l_Level2a_0] = v13[v18];
            break;
        end;
    end;
    v16[l_Level2a_0] = v16[l_Level2a_0] or {
        name = l_SessionType_0.Tag.Level2a.Unknown,
        detail = nil
    };
    return v16;
end;
local v23 = v2.Component:extend("SessionManager");
v23.init = function(v24)
    v24.updateGameSearchSession = function()
        local l_sessionService_0 = v24.props.sessionService;
        local l_currentRoute_0 = v24.props.currentRoute;
        if l_sessionService_0 == nil then
            v6("SessionManager requires valid SessionService.");
            return ;
        else
            local v27 = false;
            if l_currentRoute_0 then
                for v28 = 1, #l_currentRoute_0 do
                    if l_currentRoute_0[v28].name == v8.SearchPage then
                        v27 = true;
                        break;
                    end;
                end;
            end;
            if not v27 then
                l_sessionService_0:RemoveSession(l_SessionType_0.StructuralIdentifier.GameSearch);
                l_sessionService_0:RemoveSession(l_SessionType_0.StructuralIdentifier.GameSearchAutocomplete);
                l_sessionService_0:RemoveSession(l_SessionType_0.StructuralIdentifier.OmniSearch);
            end;
            return ;
        end;
    end;
    v24.updateSessionService = function(v29, v30, v31, v32)
        local l_sessionService_1 = v24.props.sessionService;
        local l_Level1_0 = l_SessionType_0.StructuralIdentifier.Level1;
        local l_Level2a_1 = l_SessionType_0.StructuralIdentifier.Level2a;
        local l_Level2b_1 = l_SessionType_0.StructuralIdentifier.Level2b;
        v31 = v31 or {
            name = l_SessionType_0.Tag.Level2a.Unknown
        };
        v32 = v32 or {};
        v29 = v29 or {};
        v30 = v30 or {};
        if not l_sessionService_1:SessionExists(l_Level1_0) then
            l_sessionService_1:SetSession(l_sessionService_1:GetRootSID(), l_Level1_0, l_SessionType_0.Tag.Level1.Default);
            l_sessionService_1:SetMetadata(l_Level1_0, l_SessionType_0.Metadata.User.UserId, "Unknown");
        end;
        if not (v31.name == v29.name) or v32.name ~= v30.name then
            l_sessionService_1:RemoveSessionsWithMetadataKey(l_SessionType_0.Metadata.GamePlay.DeleteOnGameLeave);
        end;
        if not (v31.detail == v29.detail) or v31.name ~= v29.name then
            if not l_sessionService_1:SessionExists(l_Level2a_1) then
                l_sessionService_1:SetSession(l_Level1_0, l_Level2a_1, v31.name);
            else
                l_sessionService_1:ReplaceSession(l_Level2a_1, v31.name);
            end;
            if v32.name == nil and v30.name == nil then
                l_sessionService_1:SetSession(l_Level2a_1, l_Level2b_1, v31.name .. "Page");
            end;
        end;
        if not (v32.detail == v30.detail) or v32.name ~= v30.name then
            if not l_sessionService_1:SessionExists(l_Level2b_1) then
                l_sessionService_1:SetSession(l_Level2a_1, l_Level2b_1, v32.name or v31.name .. "Page");
            else
                l_sessionService_1:ReplaceSession(l_Level2b_1, v32.name or v31.name .. "Page");
                return ;
            end;
        end;
    end;
    v24:setState({
        RNLevel2a = {
            name = v9.GetDefaultAppPage()
        },
        RNLevel2b = {}
    });
    v24._processRouteSignal = function(v37)
        local v38 = v22(v37) or {};
        v24:setState({
            RNLevel2a = v38[l_SessionType_0.StructuralIdentifier.Level2a],
            RNLevel2b = v38[l_SessionType_0.StructuralIdentifier.Level2b] or {}
        });
    end;
end;
v23.render = function(_)
end;
v23.didMount = function(v40)
    v40.updateGameSearchSession();
    v40.updateSessionService(nil, nil, v40.state.RNLevel2a, v40.state.RNLevel2b);
    if not v40.props.connectRouteSignal then
        v6("Did not find a listener function in props, Session will not update");
        return ;
    else
        v40._routeChangedConnection = v40.props.connectRouteSignal(v40._processRouteSignal);
        return ;
    end;
end;
v23.didUpdate = function(v41, v42, v43)
    if (not v41.props.currentPage and "" or v41.props.currentPage.name) ~= if not not v42 and v42.currentPage then v42.currentPage.name else "" then
        v41.updateGameSearchSession();
    end;
    v41.updateSessionService(v43.RNLevel2a, v43.RNLevel2b, v41.state.RNLevel2a, v41.state.RNLevel2b);
    if v42.connectRouteSignal ~= v41.props.connectRouteSignal then
        if v41._routeChangedConnection ~= nil then
            v41._routeChangedConnection:disconnect();
            v41._routeChangedConnection = nil;
        end;
        if v41.props.connectRouteSignal then
            v41._routeChangedConnection = v41.props.connectRouteSignal(v41._processRouteSignal);
        end;
    end;
end;
v23.willUnmount = function(v44)
    if v44._routeChangedConnection ~= nil then
        v44._routeChangedConnection:disconnect();
        v44._routeChangedConnection = nil;
    end;
end;
return l_RoactServices_0.connect({
    sessionService = l_AppSessionService_0
})((v3.connect(function(v45, _)
    return {
        currentPage = l_selectCurrentLegacyPage_0(v45),
        currentRoute = l_selectCurrentLegacyRoute_0(v45)
    };
end)(v23)));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Workspace.Packages.MessageBus);
local v5 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux);
local v6 = require(l_CorePackages_0.Roact);
local v7 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v9 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags);
local _ = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SessionType;
local v11 = require(l_CorePackages_0.UIBlox);
local l_AppRunService_0 = v9.AppRunService;
local l_AppSessionService_0 = v9.AppSessionService;
local l_AppUserInputService_0 = v9.AppUserInputService;
local l_MessageBus_0 = v4.MessageBus;
local l_RoactNetworking_0 = v9.RoactNetworking;
local _ = require(l_Modules_0.LuaApp.AppPage);
local l_ExternalEventConnection_0 = v11.Utility.ExternalEventConnection;
local v19 = require(l_Modules_0.LuaApp.Thunks.PostUserHeartbeatsActionReport);
local v20 = require(l_Modules_0.LuaApp.Http.Requests.UserHeartbeats.PostUserHeartbeatsActionReport);
local v21 = require(l_Modules_0.LuaApp.Thunks.PostUserHeartbeatsPulse);
local l_selectCurrentLegacyPage_0 = v5.Selectors.selectCurrentLegacyPage;
local l_selectCurrentLegacyRoute_0 = v5.Selectors.selectCurrentLegacyRoute;
game:DefineFastInt("UserHeartbeatsActionReportRolloutPerMyriad", 0);
game:DefineFastInt("UserHeartbeatsPulseRolloutPerMyriad", 0);
local v24 = game:DefineFastInt("UserHeartbeatsPulseIntervalSeconds", 30);
local v25 = v6.Component:extend("UserHeartbeatsManager");
local v26 = {
    Invalid = 0,
    Foregrounded = 1,
    Backgrounded = 2,
    Idle = 3
};
local v27 = l_MessageBus_0.getMessageId("Realtime", "appResume");
local v28 = l_MessageBus_0.getMessageId("Realtime", "appStop");
local v30 = {
    mid = v27,
    validateParams = function(_)
        return true;
    end
};
local v32 = {
    mid = v28,
    validateParams = function(_)
        return true;
    end
};
v25.init = function(v33)
    v33._isMounted = false;
    v33._nextPulseTick = tick();
    v33.state = {
        activeState = v26.Foregrounded
    };
    v33._subscriber = l_MessageBus_0.Subscriber.new();
    v33._rollout = Random.new():NextInteger(1, 10000);
    v33._isActionReportEnabled = v33._rollout <= game:GetFastInt("UserHeartbeatsActionReportRolloutPerMyriad");
    v33._isPulseEnabled = v33._rollout <= game:GetFastInt("UserHeartbeatsPulseRolloutPerMyriad");
    v33.onDataModelClose = function()
        if v33._isMounted then
            if v33._isActionReportEnabled then
                v20(v33.props.networking, {
                    logoutActionInfo = {}
                });
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v33.onBackgrounded = function()
        v33:setState({
            activeState = v26.Backgrounded
        });
    end;
    v33.onForegrounded = function()
        v33:setState({
            activeState = v26.Foregrounded
        });
    end;
    v33.heartbeatCallback = function()
        if v33._isPulseEnabled then
            if v24 <= 0 then
                return ;
            else
                local v34 = tick();
                if v34 < v33._nextPulseTick then
                    return ;
                else
                    v33._nextPulseTick = v34 + v24;
                    v33.props.postUserHeartbeatsPulse(v33.props.networking, v33.state.activeState, v33.props.currentPage.name);
                    return ;
                end;
            end;
        else
            return ;
        end;
    end;
end;
v25.render = function(v35)
    local l_runService_0 = v35.props.runService;
    local l_userInputService_0 = v35.props.userInputService;
    return v6.createFragment({
        HeartbeatListener = v6.createElement(l_ExternalEventConnection_0, {
            callback = v35.heartbeatCallback,
            event = l_runService_0.Heartbeat
        }),
        WindowFocusedListener = v6.createElement(l_ExternalEventConnection_0, {
            callback = v35.onForegrounded,
            event = l_userInputService_0.WindowFocused
        }),
        WindowFocusLostListener = v6.createElement(l_ExternalEventConnection_0, {
            callback = v35.onBackgrounded,
            event = l_userInputService_0.WindowFocusReleased
        })
    });
end;
v25.didMount = function(v38)
    v38._isMounted = true;
    v38._subscriber:subscribe(v30, v38.onForegrounded);
    v38._subscriber:subscribe(v32, v38.onBackgrounded);
    if v38._isActionReportEnabled then
        if not l_RunService_0:IsStudio() then
            game:BindToClose(v38.onDataModelClose);
        end;
        v38.props.postUserHeartbeatsActionReport(v38.props.networking, {
            loginActionInfo = {}
        });
    end;
end;
v25.didUpdate = function(v39, _, v41)
    if v39._isActionReportEnabled then
        if v41.activeState ~= v39.state.activeState then
            v39.props.postUserHeartbeatsActionReport(v39.props.networking, {
                universalAppActiveStateChangeActionInfo = {
                    currentActiveState = v39.state.activeState,
                    previousActiveState = v41.activeState
                }
            });
        end;
        return ;
    else
        return ;
    end;
end;
v25.willUnmount = function(v42)
    v42._subscriber:unsubscribeFromAllMessages();
    v42._isMounted = false;
end;
return l_RoactServices_0.connect({
    networking = l_RoactNetworking_0,
    runService = l_AppRunService_0,
    sessionService = l_AppSessionService_0,
    userInputService = l_AppUserInputService_0
})((v7.connect(function(v43)
    return {
        currentPage = l_selectCurrentLegacyPage_0(v43),
        route = l_selectCurrentLegacyRoute_0(v43)
    };
end, function(v44)
    return {
        postUserHeartbeatsActionReport = function(v45, v46)
            v44(v19(v45, v46));
        end,
        postUserHeartbeatsPulse = function(v47, v48, v49)
            v44(v21(v47, v48, v49));
        end
    };
end)(v25)));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_HttpService_0 = game:GetService("HttpService");
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.Enum.NotificationType);
local v4 = require(l_Modules_0.LuaApp.Components.NativePageWrapper);
return function(v5)
    return v2.createElement(v4, {
        isVisible = v5.isVisible,
        DisplayOrder = v5.DisplayOrder,
        notificationData = l_HttpService_0:JSONEncode(v5.data),
        notificationType = v3.NATIVE_SHARE
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_useLogStatusBarTapped_0 = require(l_CorePackages_0.Workspace.Packages.UiShellEvents).useLogStatusBarTapped;
local l_AppEventIngestService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppEventIngestService;
local l_useRoactService_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useRoactService;
local l_useLogInputTypeChanged_0 = require(l_CorePackages_0.Workspace.Packages.UiShellEvents).useLogInputTypeChanged;
local l_GetFFlagLogInputTypeChanged_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLogInputTypeChanged;
return function(v6)
    l_useLogStatusBarTapped_0(v6.currentPage);
    if l_GetFFlagLogInputTypeChanged_0() then
        l_useLogInputTypeChanged_0((l_useRoactService_0(l_AppEventIngestService_0)));
    end;
    return nil;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.LuaApp.Components.TextureScroller);
local v3 = require(l_Modules_0.LuaApp.withTheme_DEPRECATED);
local v4 = v1.PureComponent:extend("ShimmerAnimation");
v4.defaultProps = {
    shimmerSpeed = 2,
    shimmerScale = 2
};
v4.render = function(v5)
    local l_appTheme_0 = v5.props.appTheme;
    local l_Size_0 = v5.props.Size;
    local l_Position_0 = v5.props.Position;
    local l_AnchorPoint_0 = v5.props.AnchorPoint;
    local l_LayoutOrder_0 = v5.props.LayoutOrder;
    local l_shimmerScale_0 = v5.props.shimmerScale;
    local v12 = not not l_appTheme_0 and l_appTheme_0.ShimmerAnimation.Image or "rbxasset://textures/ui/LuaApp/graphic/shimmer.png";
    local v13 = not not l_appTheme_0 and l_appTheme_0.ShimmerAnimation.AspectRatio or 0.876;
    local v14 = not not l_appTheme_0 and l_appTheme_0.ShimmerAnimation.Transparency or 0.65;
    local v15 = UDim2.new(v13 * l_shimmerScale_0, 0, l_shimmerScale_0, 0);
    local l_shimmerSpeed_0 = v5.props.shimmerSpeed;
    local v17 = 0;
    if l_shimmerSpeed_0 ~= 0 then
        v17 = (l_shimmerScale_0 + 1) / l_shimmerSpeed_0;
    end;
    return v1.createElement(v2, {
        Size = l_Size_0,
        Position = l_Position_0,
        AnchorPoint = l_AnchorPoint_0,
        LayoutOrder = l_LayoutOrder_0,
        Image = v12,
        imageSize = v15,
        ImageTransparency = v14,
        imageAnchorPoint = Vector2.new(0, 0.5),
        imagePositionStart = UDim2.new(-l_shimmerScale_0, 0, 0.5, 0),
        imagePositionEnd = UDim2.new(1, 0, 0.5, 0),
        imageScrollCycleTime = v17
    });
end;
return (v3(v4));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.LuaApp.Components.ShimmerAnimation);
local v3 = require(l_Modules_0.LuaApp.ThemeContext_DEPRECATED);
local v4 = v1.PureComponent:extend("ShimmerPanel");
v4.render = function(v5)
    local l_Size_0 = v5.props.Size;
    local l_Position_0 = v5.props.Position;
    local l_LayoutOrder_0 = v5.props.LayoutOrder;
    return v1.createElement(v3.Consumer, {
        render = function(v9)
            return v1.createElement("Frame", {
                Size = l_Size_0,
                Position = l_Position_0,
                BackgroundColor3 = v9.ShimmerPanel.Color,
                BackgroundTransparency = v9.ShimmerPanel.Transparency,
                BorderSizePixel = 0,
                LayoutOrder = l_LayoutOrder_0
            }, {
                v1.createElement(v2, {
                    Size = UDim2.new(1, 0, 1, 0),
                    shimmerScale = 4,
                    shimmerSpeed = 2.5
                })
            });
        end
    });
end;
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = v1.PureComponent:extend("SignalConnection");
v3.validateProps = v2.strictInterface({
    callback = v2.callback,
    signal = v2.table
});
v3.init = function(v4)
    v4.connection = nil;
end;
v3.render = function(_)
    return nil;
end;
v3.didMount = function(v6)
    v6.connection = v6.props.signal:connect(v6.props.callback);
end;
v3.didUpdate = function(v7, v8)
    if not (v7.props.callback == v8.callback) or v7.props.signal ~= v8.signal then
        v7.connection:disconnect();
        v7.connection = v7.props.signal:connect(v7.props.callback);
    end;
end;
v3.willUnmount = function(v9)
    if v9.connection then
        v9.connection:disconnect();
        v9.connection = nil;
    end;
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v5 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v7 = require(l_Modules_0.LuaApp.Thunks.ApiFetchSiteMessage);
local v8 = require(l_Modules_0.LuaApp.Actions.RefreshSiteAlertInfo);
local v9 = v2.PureComponent:extend("SiteAlertManager");
v9.render = function(_)
end;
v9.didUpdate = function(v11, v12)
    if not (v12.updateRequested or not v11.props.updateRequested) then
        local v13 = os.time();
        local l_messageTime_0 = v11.props.messageTime;
        if l_messageTime_0 and v13 - l_messageTime_0 < v11.props.alertRateLimit then
            v11.props.dismissRefresh();
            return ;
        else
            v11.props.refresh(v11.props.networking);
        end;
    end;
end;
return (l_RoactAppPolicy_0.connect(function(v15, _)
    return {
        alertRateLimit = v15.getAlertRateLimit()
    };
end)((l_RoactServices_0.connect({
    networking = v5
})((v3.connect(function(v17, _)
    return {
        messageTime = v17.SiteMessage.timestamp,
        updateRequested = v17.SiteMessage.updateRequested
    };
end, function(v19)
    return {
        refresh = function(v20)
            v19(v7(v20));
        end,
        dismissRefresh = function()
            v19(v8({
                updateRequested = false
            }));
        end
    };
end)(v9))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v6 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v7 = require(l_Modules_0.LuaApp.AppPage);
local v8 = require(l_CorePackages_0.Cryo);
local v9 = require(l_CorePackages_0.UIBlox);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_useSelectionCursor_0 = v9.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v9.App.SelectionImage.CursorKind;
local v13 = require(l_Modules_0.LuaApp.Flags.FFlagDebugShowSiteMessageBanner);
local v14 = require(l_Modules_0.LuaApp.Flags.FFlagShowDOTADogfoodSiteMessage);
local v15 = v2.PureComponent:extend("SiteMessageBanner");
v15.init = function(v16)
    local v17 = true;
    v16.navigate = function()
        if not (not v16.props.messageLink or not v17) then
            v17 = false;
            v16.props.linking:isURLRegistered(v16.props.messageLink):andThen(function(v18)
                if not v18 then
                    v16.props.navigateDown({
                        name = v7.GenericWebPage,
                        detail = v16.props.messageLink,
                        extraProps = {
                            title = v16.props.messageText
                        }
                    });
                else
                    v16.props.linking:detectURL(v16.props.messageLink);
                end;
                v17 = true;
            end);
        end;
    end;
end;
v15.render = function(v19)
    local l_messageText_0 = v19.props.messageText;
    local l_Size_0 = v19.props.Size;
    local l_Position_0 = v19.props.Position;
    local v23 = v19.props[v2.Change.AbsoluteSize];
    if v14 then
        l_messageText_0 = "Happy Dogfooding";
    end;
    if not (not v13 or l_messageText_0) then
        l_messageText_0 = "Testing the SiteMessageBanner";
    end;
    local l_designTokens_0 = v19.props.designTokens;
    local l_autoButtonColor_0 = l_designTokens_0.autoButtonColor;
    local l_cornerRadius_0 = l_designTokens_0.cornerRadius;
    local l_strokeColor_0 = l_designTokens_0.strokeColor;
    local l_Color3_0 = l_designTokens_0.textColor.Color3;
    local l_Transparency_0 = l_designTokens_0.textColor.Transparency;
    local l_Font_0 = l_designTokens_0.typography.Font;
    local l_FontSize_0 = l_designTokens_0.typography.FontSize;
    local l_verticalPadding_0 = l_designTokens_0.verticalPadding;
    local l_horizontalPadding_0 = l_designTokens_0.horizontalPadding;
    return v2.createElement("TextButton", {
        Position = l_Position_0,
        Size = UDim2.fromScale(1, 0),
        AutomaticSize = if not l_messageText_0 then nil else Enum.AutomaticSize.Y,
        AutoButtonColor = l_autoButtonColor_0,
        BackgroundColor3 = l_designTokens_0.backgroundColor.Color3,
        BackgroundTransparency = l_designTokens_0.backgroundColor.Transparency,
        SelectionImageObject = v19.props.selectionCursor,
        BorderSizePixel = 0,
        Text = "",
        [v2.Change.AbsoluteSize] = v23,
        [v2.Event.Activated] = v19.navigate
    }, {
        Padding = l_messageText_0 and v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, l_horizontalPadding_0),
            PaddingRight = UDim.new(0, l_horizontalPadding_0),
            PaddingTop = UDim.new(0, l_verticalPadding_0),
            PaddingBottom = UDim.new(0, l_verticalPadding_0)
        }),
        MessageTextLabel = l_messageText_0 and v2.createElement("TextLabel", {
            Size = l_Size_0,
            AutomaticSize = Enum.AutomaticSize.Y,
            Font = l_Font_0,
            TextSize = l_FontSize_0,
            TextColor3 = l_Color3_0,
            TextTransparency = l_Transparency_0,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Text = l_messageText_0,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextWrapped = true
        }),
        UIStroke = if not l_strokeColor_0 then nil else v2.createElement("UIStroke", {
            ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
            Color = l_strokeColor_0.Color3,
            Transparency = l_strokeColor_0.Transparency,
            Thickness = 1
        }),
        UICorner = if not l_cornerRadius_0 then nil else v2.createElement("UICorner", {
            CornerRadius = l_cornerRadius_0
        })
    });
end;
v15 = l_RoactServices_0.connect({
    linking = l_AppLinking_0
})((v3.connect(function(v34, _)
    return {
        messageText = v34.SiteMessage.Text,
        messageLink = v34.SiteMessage.Link
    };
end, function(v36)
    return {
        navigateDown = function(v37)
            v36(v6(v37));
        end
    };
end)(v15)));
return function(v38)
    return v2.createElement(v15, v8.Dictionary.join(v38, {
        designTokens = l_useDesignTokens_0().LuaApps.Banner.siteMessageBanner,
        selectionCursor = l_useSelectionCursor_0(l_CursorKind_0.RoundedRect)
    }));
end;


local _ = script:FindFirstAncestor("Modules");
local v1 = require(script.Parent.SocialTabLoader);
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_CorePackages_0.Roact);
return require(l_CorePackages_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).RoduxTools.compose(require(l_CorePackages_0.RoactRodux).connect(require(script.Parent.mapStateToProps), (require(script.Parent.mapDispatchToProps))), require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy.connect(function(v4, _)
    return {
        showUserAlias = v4.getShowAlias()
    };
end))(function(v6)
    return v3.createElement(v1, v6);
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = l_CoreGui_0.RobloxGui.Modules;
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Cryo);
local l_Logger_0 = require(l_CorePackages_0.Workspace.Packages.Loggers).Logger;
local v7 = require(script:FindFirstAncestor("SocialTab").SocialTab);
local l_SocialTabEntryPoint_0 = v7.Components.SocialTabEntryPoint;
local l_Context_0 = v7.Context;
local v10 = v4.PureComponent:extend("SocialTabLoader");
v10.defaultProps = {
    receivedCanShowUserAlias = nil,
    showUserAlias = nil,
    renderSocialTab = function(v11)
        return v4.createElement(l_SocialTabEntryPoint_0, {
            isVisible = v11.isVisible,
            parameters = v11.parameters,
            logger = l_Logger_0,
            setTabBarVisible = v11.setTabBarVisible,
            signal = v11.signal,
            rnBypassActionSignalSocialTab = v11.rnBypassActionSignalSocialTab,
            androidBackButtonConnection = v11.androidBackButtonConnection,
            closeDrawer = v11.closeDrawer,
            initialRouteName = v11.initialRouteName
        });
    end
};
v10.init = function(v12)
    v12.renderSocialTab = l_memoize_0(function(v13)
        return v4.createFragment({
            content = v4.createElement(v12.props.renderSocialTab, v5.Dictionary.join(v13 or {}, {
                closeDrawer = v12.props.closeDrawer
            }))
        });
    end);
end;
v10.render = function(v14)
    return v4.createElement(l_Context_0.Consumer, {
        render = v14.renderSocialTab
    });
end;
v10.didMount = function(v15)
    v15.props.receivedCanShowUserAlias(v15.props.showUserAlias);
end;
v10.didUpdate = function(v16, v17)
    if v17.showUserAlias ~= v16.props.showUserAlias then
        v16.props.receivedCanShowUserAlias(v16.props.showUserAlias);
    end;
end;
return v10;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = l_CoreGui_0.RobloxGui.Modules;
local l_ReceivedCanShowUserAlias_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Http.RoduxAliases.Actions.ReceivedCanShowUserAlias;
return function(v4)
    return {
        receivedCanShowUserAlias = function(v5)
            v4(l_ReceivedCanShowUserAlias_0(v5));
        end
    };
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local _ = game:GetService("CorePackages");
local _ = l_CoreGui_0.RobloxGui.Modules;
return function(_, _)
    return {};
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(script.Parent.SocialTabUniversalAppWrapper);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppGuiService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppGuiService;
local l_AppNotificationService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppNotificationService;
local l_AppUserInputService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppUserInputService;
local v7 = require(l_script_FirstAncestor_0.LuaApp.Services.RoactAnalyticsAppStageLoaded);
local _ = require(l_script_FirstAncestor_0.LuaApp.Experiment.RoactAppExperiment);
local _ = require(l_script_FirstAncestor_0.LuaApp.Experiment.AppUserLayers);
local v10 = require(l_script_FirstAncestor_0.LuaApp.Services.RoactAnalytics);
local v11 = require(l_script_FirstAncestor_0.LuaApp.Services.AppEventIngestService);
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_useEarlyIsFocused_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useEarlyIsFocused;
local l_useNavigationProps_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppNavigation).useNavigationProps;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).UiMode;
local l_EnumScreens_0 = require(l_CorePackages_0.Workspace.Packages.SocialTab).EnumScreens;
local v19 = require(l_CorePackages_0.Roact);
local v20 = require(l_CorePackages_0.Cryo);
local v21 = require(l_CorePackages_0.RoactRodux);
local l_compose_0 = require(l_CorePackages_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).RoduxTools.compose;
local v23 = require(script.Parent.mapStateToProps);
local v24 = require(script.Parent.mapDispatchToProps);
local v25 = game:DefineFastFlag("SocialTabInitialRouteNameFix", false);
return (l_compose_0(v21.connect(v23, v24), l_RoactServices_0.connect({
    analytics = v7,
    guiService = l_AppGuiService_0,
    notificationService = l_AppNotificationService_0,
    userInputService = l_AppUserInputService_0,
    roactAnalytics = v10,
    eventIngestService = v11
}))(function(v26)
    local v28 = {
        isVisible = l_useEarlyIsFocused_0(),
        parameters = l_useNavigationProps_0(function(v27)
            if not v27 then
                return nil;
            else
                return {
                    conversationId = v27
                };
            end;
        end),
        pageType = l_useNavigation_0().state.routeName
    };
    local v29 = l_useDesignTokens_0();
    local v30 = l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot;
    v28.BackgroundColor = v29.LuaApps.App.Page.BackgroundColor;
    v28.BackgroundTransparency = v29.LuaApps.App.Page.BackgroundTransparency;
    v28.useFullScalePage = v30;
    v28.initialRouteName = if not v30 then if v25 then nil else l_EnumScreens_0.SocialTab else l_EnumScreens_0.FriendsLanding;
    return v19.createElement(v2, v20.Dictionary.join(v26, v28));
end));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_UserInputService_0 = game:GetService("UserInputService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.RoactNavigation);
local l_UniversalAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).UniversalAppPolicy;
local l_ExternalContentSharingProtocol_0 = require(l_CorePackages_0.Workspace.Packages.ExternalContentSharingProtocol).ExternalContentSharingProtocol;
local l_withStyle_0 = v4.Style.withStyle;
local l_LoadingStateContainer_0 = v4.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = v4.App.Loading.Enum.RetrievalStatus;
local l_Contexts_0 = require(l_CorePackages_0.Workspace.Packages.SocialLuaAnalytics).Analytics.Enums.Contexts;
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v13 = require(l_CorePackages_0.Workspace.Packages.AppChat);
local v14 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local v15 = require(l_script_FirstAncestor_0.LuaApp.Models.User);
local v16 = require(l_script_FirstAncestor_0.LuaApp.Util.joinGame);
local l_getEntryPointWithParentContext_0 = require(l_CorePackages_0.Workspace.Packages.FriendsLanding).getEntryPointWithParentContext;
local v18 = require(l_script_FirstAncestor_0.LuaApp.Config);
local l_Logger_0 = require(l_CorePackages_0.Workspace.Packages.Loggers).Logger;
local v20 = require(l_script_FirstAncestor_0.LuaApp.PerformanceTesting);
local l_RobloxEventReceiver_0 = require(l_CorePackages_0.Workspace.Packages.RealtimeDelivery).RobloxEventReceiver;
local l_SetAppLoaded_0 = v13.Actions.SetAppLoaded;
local v23 = require(l_script_FirstAncestor_0.LuaApp.Enum.NotificationType);
local v24 = require(l_script_FirstAncestor_0.LuaApp.Enum.RetrievalStatus);
local l_llama_0 = require(l_CorePackages_0.LuaSocialLibrariesDeps).llama;
local v26 = require(script.Parent.Parent.utils.formatUser);
local l_ChatEventReceiver_0 = v13.Components.EventReceivers.ChatEventReceiver;
local v28 = require(l_script_FirstAncestor_0.LuaApp.Components.FullscreenPageWithSafeArea);
local v29 = require(l_script_FirstAncestor_0.Common.Signal);
local v30 = require(l_script_FirstAncestor_0.Common.GetDefaultQualityLevel);
local l_AndroidBackButtonConnection_0 = require(l_CorePackages_0.Workspace.Packages.SocialTab).AndroidBackButtonConnection;
local l_EnumScreens_0 = require(l_CorePackages_0.Workspace.Packages.SocialTab).EnumScreens;
local _ = require(l_CorePackages_0.Workspace.Packages.AppChat).Screens;
local v34 = require(l_script_FirstAncestor_0.LuaApp.Components.SocialTab.SocialTabLoader.Container);
local l_Context_0 = require(l_script_FirstAncestor_0.LuaApp.Components.SocialTab.SocialTab).Context;
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v37 = require(l_script_FirstAncestor_0.LuaApp.Components.Players.PlayerSearch);
local _ = require(l_script_FirstAncestor_0.Profile.Flags.ProfileIXPTest);
local l_OffPlatformFriendRequestsIXP_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).Flags.OffPlatformFriendRequestsIXP;
local v40 = require(l_CorePackages_0.Workspace.Packages.SharedFlags);
local v41 = require(l_script_FirstAncestor_0.LuaApp.Flags.GetFFlagLuaProfileShareEnabled);
local v42 = require(l_script_FirstAncestor_0.LuaApp.Http.UrlBuilder);
local l_GetFFlagLuafiedReportEntryPoints_0 = v40.GetFFlagLuafiedReportEntryPoints;
local l_EntryPoint_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).EntryPoint;
local v45 = require(l_script_FirstAncestor_0.LuaApp.Components.Chat.ExternalNavigationHandler.Container);
local v46 = require(l_script_FirstAncestor_0.LuaApp.Hooks.useRoactService);
local v47 = require(l_script_FirstAncestor_0.LuaApp.Services.RoactAnalytics);
local l_RoactAnalyticsCommonGameEvents_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).RoactAnalyticsCommonGameEvents;
local _ = require(l_CorePackages_0.Workspace.Packages.ProfileQRCode);
local v50 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenGameDetails);
local v51 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDown);
local v52 = require(l_script_FirstAncestor_0.LuaApp.Constants);
local l_ConvertUniverseIdToString_0 = v40.ConvertUniverseIdToString;
local v54 = require(l_script_FirstAncestor_0.LuaApp.Experiment.RoactAppExperiment);
local v55 = require(l_script_FirstAncestor_0.LuaApp.Experiment.AppUserLayers);
local l_SelfViewProfileDiscoverabilityUpsellIXP_0 = require(l_CorePackages_0.Workspace.Packages.DiscoverabilityModal).Flags.SelfViewProfileDiscoverabilityUpsellIXP;
local v57 = require(l_script_FirstAncestor_0.LuaApp.Common.withThrottleFramerateGivenPolicy);
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.PermissionsProtocol).PermissionsProtocol.default;
local v59 = game:DefineFastFlag("SocialTabShouldRequestPushPermissions", false);
local l_GetFFlagLuaAppEnableSquadPage_0 = v40.GetFFlagLuaAppEnableSquadPage;
local l_isAppChatChannelsAPIEnabled_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Flags.isAppChatChannelsAPIEnabled;
local v62 = v3.PureComponent:extend("SocialTabUniversalAppWrapper");
v62.defaultProps = {
    renderSocialTab = function()
        return v3.createElement(v34);
    end,
    renderRoactChat = function()
        return l_Context_0.with(function(v63)
            return not not v63.wasEverVisible and v3.createElement(l_EntryPoint_0, v63) or nil;
        end);
    end,
    runService = l_RunService_0,
    externalContentSharingProtocol = l_ExternalContentSharingProtocol_0.default
};
v62.init = function(v64)
    v64.state = {
        wasChatEverTapped = v64.props.isVisible,
        externalNavigationByScreen = {}
    };
    v64.chatToastRef = v3.createRef();
    v64.androidBackButtonConnection = l_AndroidBackButtonConnection_0(v64.props.guiService, v23);
    v64.androidBackButtonConnectionSocialTab = l_AndroidBackButtonConnection_0(v64.props.guiService, v23);
    v64._rnBypassActionSignal = v29.new();
    v64._rnBypassActionSignalSocialTab = v29.new();
    v64.backButtonEnabled = false;
    v64._performanceTesting = v20;
    v64._robloxEventReceiver = l_RobloxEventReceiver_0.new(v64.props.notificationService);
    if not l_isAppChatChannelsAPIEnabled_0() then
        v64.fetchChatSettings = function()
            return v64.props.fetchChatSettings();
        end;
        v64.getLoadingState = function()
            if v64.state.wasChatEverTapped then
                local v65 = l_RetrievalStatus_0.fromRawValue(v64.props.retrievalStatus);
                if v64.state.wasEverDoneRetrieving then
                    v65 = l_RetrievalStatus_0.fromRawValue(v24.Done);
                end;
                return v3.createElement(l_LoadingStateContainer_0, {
                    dataStatus = v65,
                    onRetry = v64.fetchChatSettings,
                    renderOnLoaded = v64.renderOnLoaded
                });
            else
                return nil;
            end;
        end;
    end;
    v64.renderOnLoaded = function()
        if v64.state.wasChatEverTapped then
            return v3.createFragment({
                screen = v64.props.renderSocialTab(),
                externalNavigation = v3.createElement(v45, {
                    navigationByScreen = v64.state.externalNavigationByScreen
                })
            });
        else
            return nil;
        end;
    end;
    v64.setBackButtonEnabled = function(v66)
        v64.backButtonEnabled = v66;
    end;
    v64.setTabBarVisibleFromChat = function(v67)
        v64.props.setTabBarVisibleFromChat(not not v64.props.shouldSystemBarUsuallyBePresent or v67);
    end;
    v64.setActiveConversationId = function(v68)
        l_Logger_0:debug("{} setting activeConversationId as {}", script.Name, v68);
        v64:setState({
            activeConversationId = v68 or v3.None
        });
    end;
    v64.getActiveConversationId = function()
        return v64.state.activeConversationId;
    end;
    v64.initRoactChatNavigation = function()
        v64._rnBypassActionSignalSocialTab:fire(v5.Actions.navigate({
            routeName = l_EnumScreens_0.RoactChat
        }));
    end;
    v64.updateExternalNavigationForScreen = function(v69, v70)
        v64:setState(function(v71, _)
            if not v69 then
                local v73 = l_llama_0.Dictionary.copy(v71.externalNavigationByScreen);
                v73[v70] = nil;
                return {
                    externalNavigationByScreen = v73
                };
            else
                return {
                    externalNavigationByScreen = l_llama_0.Dictionary.join(v71.externalNavigationByScreen, {
                        [v70] = v69
                    })
                };
            end;
        end);
    end;
    v64.navigateDownToNotifications = function(v74)
        v74 = v74 or false;
        v64.props.navigateDownToNotifications(function()
            if v74 then
                v64.setTabBarVisibleFromChat(true);
            end;
        end);
    end;
    v64.openProfileWebView = function(v75)
        v64.props.navigateDownToViewUserProfile(v75, function()
            if v64.props.wideMode then
                v64.setTabBarVisibleFromChat(v64.props.wideMode);
            end;
        end);
    end;
    v64.openProfilePeekView = function(v76, v77)
        v64.props.openProfilePeekView(v76, {
            onClose = function()
                if v64.state.getIsTabBarEnabled then
                    v64.setTabBarVisibleFromChat(v64.state.getIsTabBarEnabled());
                end;
                if not (not v77 or not v77.onClose) then
                    v77.onClose();
                end;
            end,
            onOpen = function()
                v64.setTabBarVisibleFromChat(false);
                if not (not v77 or not v77.onOpen) then
                    v77.onOpen();
                end;
            end,
            resetPeekView = true
        });
    end;
    v64.navigateDownToReportAbuse = function(v78, v79)
        if not v64.props.useLuafiedReportFlow then
            v64.props.navigateDownToReportAbuse(v78, v79);
            return ;
        else
            v64.props.openReportDialog(v78, v79);
            return ;
        end;
    end;
    v64.navigateDownToPrivacySettings = function()
        v64.props.navigateDownToPrivacySettings();
    end;
    v64.navigateDownToGroups = function()
        v64.props.navigateDownToGroups(function()
            v64.setTabBarVisibleFromChat(true);
        end);
    end;
    v64.navigateDownToAddFriends = function()
        v64.props.navigateDownToAddFriends(function()
            v64.setTabBarVisibleFromChat(true);
        end);
    end;
    v64.navigateDownToProfileShare = function(v80)
        v64.props.externalContentSharingProtocol:shareUrl({
            url = v42.user.appsflyer({
                userId = v80,
                sourceType = "ProfileShare"
            }),
            context = "ProfileShareAtSocialTabPage"
        });
    end;
    v64.navigateDownToSquadLobby = function(v81)
        v64.props.navigateDownToSquadLobby(v81);
    end;
    v64.FriendFinder = function()
        v64.props.navigateDownToFriendFinder(function()
            v64.setTabBarVisibleFromChat(true);
        end);
    end;
    v64.AddFriendsAccountProvider = function(v82)
        v64.props.navigateDownToAddFriendsAccountProvider(v82);
    end;
    v64.setIsTabBarEnabled = function(v83)
        v64:setState({
            getIsTabBarEnabled = v83
        });
    end;
    v64.openUserContextualMenu = function(v84)
        local l_onClose_0 = v84.onClose;
        v64.props.openContextualMenu((l_llama_0.Dictionary.join(v84, {
            onCloseGameDetails = function()
                v64.setTabBarVisibleFromChat(true);
            end,
            onClose = function()
                if l_onClose_0 then
                    l_onClose_0();
                end;
            end,
            onCloseProfileWebview = function()
                v64.setTabBarVisibleFromChat(true);
            end,
            user = v26(v84.user)
        })));
    end;
    v64.navigateToUserInfo = function(v86, v87)
        if v87 then
            local v88 = v87.contextualMenuProps or {};
            if v87.contextualMenuProps then
                v88 = l_llama_0.Dictionary.join(v88, {
                    onCloseGameDetails = function()
                        v64.setTabBarVisibleFromChat(true);
                    end,
                    onClose = function()
                        if v87.contextualMenuProps.onClose then
                            v87.contextualMenuProps.onClose();
                        end;
                    end,
                    onCloseProfileWebview = function()
                        v64.setTabBarVisibleFromChat(true);
                    end,
                    user = v26(v87.contextualMenuProps.user)
                });
            end;
            v64.props.navigateToUserInfo(v86, {
                contextualMenuProps = v88,
                profilePeekViewProps = l_llama_0.Dictionary.join(v87.profilePeekViewProps or {}, {
                    resetPeekView = true,
                    onClose = function()
                        if v64.state.getIsTabBarEnabled then
                            v64.setTabBarVisibleFromChat(v64.state.getIsTabBarEnabled());
                        end;
                        if not (not v87.profilePeekViewProps or not v87.profilePeekViewProps.onClose) then
                            v87.profilePeekViewProps.onClose();
                        end;
                    end,
                    onOpen = function()
                        v64.setTabBarVisibleFromChat(false);
                        if not (not v87.profilePeekViewProps or not v87.profilePeekViewProps.onOpen) then
                            v87.profilePeekViewProps.onOpen();
                        end;
                    end,
                    source = v87.source
                }),
                openJoinable = v87.openJoinable,
                entryPoint = v87.entryPoint
            });
            return ;
        else
            v64.openProfileWebView(v86);
            return ;
        end;
    end;
    v64.navigateToLuaAppPages = {
        [l_EnumScreens_0.GameDetail] = v64.props.navigateToGameDetails,
        [l_EnumScreens_0.ViewUserProfile] = v64.navigateToUserInfo,
        [l_EnumScreens_0.Notifications] = v64.navigateDownToNotifications,
        [l_EnumScreens_0.LearnMore] = v64.props.openLearnMoreLink,
        [l_EnumScreens_0.ReportAbuse] = v64.navigateDownToReportAbuse,
        [l_EnumScreens_0.PrivacySettings] = v64.navigateDownToPrivacySettings,
        [l_EnumScreens_0.AddFriends] = v64.navigateDownToAddFriends,
        [l_EnumScreens_0.Groups] = v64.navigateDownToGroups,
        [l_EnumScreens_0.FriendFinder] = v64.FriendFinder,
        [l_EnumScreens_0.AddFriendsAccountProvider] = v64.AddFriendsAccountProvider,
        [l_EnumScreens_0.ProfileShare] = v64.navigateDownToProfileShare,
        [l_EnumScreens_0.ViewUser] = v64.openUserContextualMenu,
        [l_EnumScreens_0.VerifiedBadgeModal] = v64.props.openVerifiedBadgeModal,
        [l_EnumScreens_0.DiscoverabilityModal] = v64.props.openDiscoverabilityModal,
        [l_EnumScreens_0.ProfileQRCode] = function()
            v64.props.navigateTo3DQRCodePage({
                source = l_Contexts_0.AddFriends
            });
        end,
        [l_EnumScreens_0.SearchPage] = function()
            v64.props.navigation.navigate(v14.SearchPage, {
                defaultSearchType = v52.SearchTypes.Players
            });
        end,
        [l_EnumScreens_0.AmpWizardContainer] = v64.props.openAmpWizardContainer,
        [l_EnumScreens_0.SquadLobby] = if not l_GetFFlagLuaAppEnableSquadPage_0() then nil else v64.navigateDownToSquadLobby
    };
    v64.luaAppPages = {
        playerSearchPage = v37
    };
    local v89 = nil;
    v89 = l_RunService_0.RenderStepped:Connect(function()
        if v89 then
            v89:Disconnect();
        end;
        settings().Rendering.QualityLevel = v30();
    end);
    v64.onBackButtonPressed = function()
        if not v64.props.canGoBack then
            if not v64.backButtonEnabled then
                v64.androidBackButtonConnection.showExitDialog();
                return ;
            else
                v64._rnBypassActionSignal:fire(v5.Actions.back());
                return ;
            end;
        else
            v64.props.navigateBack();
            return ;
        end;
    end;
    v64.isAndroidBackButtonHandlerDisabled = function(v90)
        local v91 = true;
        if v90 ~= v14.GameDetail then
            v91 = true;
            if v90 ~= v14.ShareGameToChat then
                v91 = true;
                if v90 ~= v14.ProfilePeekView then
                    v91 = true;
                    if v90 ~= v14.AvatarExperienceWrapperTransparent then
                        v91 = v90 == v14.AvatarExperienceWrapper;
                    end;
                end;
            end;
        end;
        return v91;
    end;
    v64._navigatingFromSocialTabEvent = nil;
    v64.setNavigatingFromSocialTabEvent = function(v92)
        v64._navigatingFromSocialTabEvent = {
            startTime = os.clock(),
            startPage = l_EnumScreens_0.SocialTab,
            endPage = v92
        };
    end;
    v64.getNavigatingFromSocialTabEvent = function()
        return v64._navigatingFromSocialTabEvent;
    end;
    if v59 then
        l_default_0:requestPermissions({
            l_default_0.Permissions.POST_NOTIFICATIONS
        });
    end;
    v64.generateContext = l_memoize_0(function(v93, v94, v95, v96, v97, v98, v99, v100, v101, v102)
        return {
            wasEverVisible = v64.state.wasEverVisible,
            localUserId = v94,
            isVisible = v93,
            pageType = v97,
            parameters = v98,
            navigationProps = v95,
            logger = l_Logger_0,
            navigateToLuaAppPages = v64.navigateToLuaAppPages,
            rnBypassActionSignal = v64._rnBypassActionSignal,
            rnBypassActionSignalSocialTab = v64._rnBypassActionSignalSocialTab,
            getActiveConversationId = v64.getActiveConversationId,
            setActiveConversationId = v64.setActiveConversationId,
            setBackButtonEnabled = v64.setBackButtonEnabled,
            setTabBarVisible = v64.setTabBarVisibleFromChat,
            luaAppPages = v64.luaAppPages,
            wideMode = v99,
            notificationCount = v96,
            robloxEventReceiver = v64._robloxEventReceiver,
            userInputService = l_UserInputService_0,
            roactChatEntryPoint = l_EntryPoint_0,
            getFriendsLandingEntryPoint = l_getEntryPointWithParentContext_0,
            androidBackButtonConnection = v64.androidBackButtonConnectionSocialTab,
            signal = v29,
            androidBackButtonHandlerDisabled = v64.isAndroidBackButtonHandlerDisabled(v100),
            setIsTabBarEnabled = not not v101 and v64.setIsTabBarEnabled or nil,
            isLuaProfilePageEnabled = v101,
            useRoactService = v46,
            roactAnalytics = v47,
            roactAnalyticsCommonGameEvents = l_RoactAnalyticsCommonGameEvents_0,
            joinGame = v16,
            openGameDetails = v50,
            navigateDown = v51,
            presenceType = v15.PresenceType,
            appPage = v14,
            convertUniverseIdToString = l_ConvertUniverseIdToString_0,
            setNavigatingFromSocialTabEvent = v64.setNavigatingFromSocialTabEvent,
            getNavigatingFromSocialTabEvent = v64.getNavigatingFromSocialTabEvent,
            isProfileShareEnabled = v64.props.isProfileSharePolicyEnabled and (v41() or v64.props.luaProfileShareEnabled),
            luaAddFriendsPageEnabled = v102,
            setAppLoaded = l_SetAppLoaded_0,
            fetchUnreadConversationCount = v64.props.fetchUnreadConversationCount,
            notificationService = v64.props.notificationService,
            config = v18,
            toggleChatPaused = v64.props.toggleChatPaused,
            performanceTesting = v20,
            notificationType = v23,
            contactImporterAndPYMKEnabled = (not not v64.props.contactImporterAndPYMKEnabled and v64.props.isContactImporterPolicyEnabled or v64.props.isLocalUserSoothsayer) or nil,
            diagService = v64.props.roactAnalytics.Diag,
            eventIngestService = v64.props.eventIngestService,
            openProfilePeekView = v64.props.openProfilePeekView,
            closeCentralOverlay = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else v64.props.closeCentralOverlay,
            openLearnMoreLink = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else v64.props.openLearnMoreLink,
            showToast = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else v64.props.showToast,
            discoverabilityUpsellOnProfileSelfViewEnabled = v64.props.discoverabilityUpsellOnProfileSelfViewEnabled,
            updateExternalNavigationForScreen = v64.updateExternalNavigationForScreen,
            initialRouteName = v64.props.initialRouteName,
            openPlayerContextualMenu = v64.props.openPlayerContextualMenu
        };
    end);
end;
v62.render = function(v103)
    return l_withStyle_0(function(_)
        return v3.createElement(l_Context_0.Provider, {
            value = v103.generateContext(v103.props.isVisible, v103.props.localUserId, v103.props.navigationProps, v103.props.notificationCount, v103.props.pageType, v103.props.parameters, v103.props.wideMode, v103.props.currentAppPage, true, v103.props.luaAddFriendsPageEnabled)
        }, {
            SocialTab = v3.createElement(v28, {
                BorderSizePixel = 0,
                BackgroundColor3 = v103.props.BackgroundColor,
                BackgroundTransparency = v103.props.BackgroundTransparency,
                useFullScalePage = v103.props.useFullScalePage,
                includeStatusBar = true
            }, {
                ChatEventReceiver = v3.createElement(l_ChatEventReceiver_0, {
                    robloxEventReceiver = v103._robloxEventReceiver,
                    rnBypassActionSignal = v103._rnBypassActionSignal,
                    initRoactChatNavigation = v103.initRoactChatNavigation,
                    activeConversationId = v103.state.activeConversationId
                }),
                SocialTab = v103.renderOnLoaded()
            })
        });
    end);
end;
v62.didMount = function(v105)
    l_Logger_0:info("Initializing SocialTabUniversalAppWrapper");
    if v105.props.isVisible and v105.props.toggleChatPaused ~= nil then
        v105.props.toggleChatPaused(false);
    end;
end;
v62.didUpdate = function(v106, v107, _)
    if v107.isVisible ~= v106.props.isVisible then
        v106.androidBackButtonConnection.disconnect();
        if v107.isVisible then
            v106._performanceTesting:Stop();
            v106.props.setThrottleFramerateEnabled(false);
            v106.props.toggleChatPaused(true);
        else
            v106._performanceTesting:Initialize();
            v106.props.setThrottleFramerateEnabled(v18.General.PerformanceTestingMode == Enum.VirtualInputMode.None);
            v106.props.toggleChatPaused(false);
            return ;
        end;
    end;
end;
v62.getDerivedStateFromProps = function(v109, v110)
    local v111 = nil;
    local v112 = nil;
    local v113 = nil;
    if v109.isVisible then
        v111 = true;
    end;
    if v109.retrievalStatus == v24.Done then
        v112 = true;
    end;
    if v110.wasChatEverTapped == false and v109.isVisible == true then
        v113 = true;
    end;
    return {
        wasChatEverTapped = v113,
        wasEverVisible = v111,
        wasEverDoneRetrieving = v112
    };
end;
v62.willUnmount = function(v114)
    v114.androidBackButtonConnection.disconnect();
end;
return (v54.connectUserLayer({
    v55.SocialFriendsLayer,
    v55.SocialProfileLayer
}, function(v115, _)
    local v117 = v115[v55.SocialFriendsLayer] or {};
    return {
        luaAddFriendsPageEnabled = v117.show_lua_add_friends_page == "True",
        luaProfileShareEnabled = v117.show_profile_share == "True",
        discoverabilityUpsellOnProfileSelfViewEnabled = l_SelfViewProfileDiscoverabilityUpsellIXP_0.experimentOrRolloutEnabled(v115),
        contactImporterAndPYMKEnabled = l_OffPlatformFriendRequestsIXP_0.experimentOrRolloutEnabled(v115),
        contactImporterExperimentVariant = l_OffPlatformFriendRequestsIXP_0.getExperimentVariant(v115)
    };
end)((v57((l_UniversalAppPolicy_0.connect(function(v118)
    return {
        isProfileSharePolicyEnabled = v118.getProfileShareEnabled(),
        isContactImporterPolicyEnabled = v118.getContactImporterEnabled(),
        shouldSystemBarUsuallyBePresent = v118.getShouldSystemBarUsuallyBePresent(),
        useLuafiedReportFlow = if not l_GetFFlagLuafiedReportEntryPoints_0() then nil else v118.getUseLuafiedReportFlow()
    };
end)(v62))))));


local l_Players_0 = game:GetService("Players");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_join_0 = require(game:GetService("CorePackages").Cryo).Dictionary.join;
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v5 = require(l_CorePackages_0.Workspace.Packages.SharedFlags);
local v6 = require(l_script_FirstAncestor_0.LuaApp.Constants);
local v7 = require(l_CorePackages_0.Workspace.Packages.AppChat);
local v8 = require(l_script_FirstAncestor_0.LuaApp.Components.SocialTab.SocialTab);
local v9 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux);
local v10 = require(l_script_FirstAncestor_0.Common.Analytics);
local v11 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateBack);
local l_NavigateDownToNotifications_0 = v9.Thunks.NavigateDownToNotifications;
local l_NavigateDownToPrivacySettings_0 = v9.Thunks.NavigateDownToPrivacySettings;
local l_NavigateDownToReportAbuse_0 = v9.Thunks.NavigateDownToReportAbuse;
local l_NavigateDownToViewUserProfile_0 = v9.Thunks.NavigateDownToViewUserProfile;
local l_NavigateDownToGroups_0 = v9.Thunks.NavigateDownToGroups;
local v17 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDownToAddFriends);
local v18 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDownToFriendRequests);
local v19 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDownToAddFriendsAccountProvider);
local l_NavigateDownToSquadLobby_0 = v9.Thunks.NavigateDownToSquadLobby;
local v21 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenProfilePeekView);
local v22 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenCentralOverlayForPeopleList);
local l_SetTabBarVisibleFromChat_0 = require(l_CorePackages_0.Workspace.Packages.AppTabBarRodux).Thunks.SetTabBarVisibleFromChat;
local _ = require(l_CorePackages_0.Workspace.Packages.AppTabBarRodux).Actions.SetTabBarVisible;
local l_ToggleChatPaused_0 = v7.Actions.ToggleChatPaused;
local l_SetAppLoaded_0 = v7.Actions.SetAppLoaded;
local l_RoactChatAnalytics_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).LegacyAnalytics.RoactChatAnalytics;
local l_GetUnreadConversationCount_0 = v8.Requests.GetUnreadConversationCount;
local v29 = require(l_script_FirstAncestor_0.LuaApp.Actions.SetCurrentToastMessage);
local v30 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenGameDetails);
local v31 = require(l_script_FirstAncestor_0.LuaApp.Thunks.openGameDetailsPageFromChat);
local v32 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateToUserInfo);
local v33 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenVerifiedBadgeModal);
local v34 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenReportDialog);
local v35 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenCentralOverlayForDiscoverabilityUpsell);
local v36 = require(l_script_FirstAncestor_0.LuaApp.Thunks.CloseCentralOverlay);
local v37 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenContactImporterLearnMoreLink);
local l_SelfViewProfileDiscoverabilityUpsellIXP_0 = require(l_CorePackages_0.Workspace.Packages.DiscoverabilityModal).Flags.SelfViewProfileDiscoverabilityUpsellIXP;
local v39 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDownTo3DQRCodePage);
local v40 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenCentralOverlayForPlayerContextualMenu);
local l_GetFFlagLuaAppEnableSquadPage_0 = v5.GetFFlagLuaAppEnableSquadPage;
local l_GetFFlagLuafiedReportEntryPoints_0 = v5.GetFFlagLuafiedReportEntryPoints;
local v43 = require(l_script_FirstAncestor_0.LuaApp.Components.AmpUpsell.OpenAmpWizardContainer);
local l_isAppChatChannelsAPIEnabled_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Flags.isAppChatChannelsAPIEnabled;
return function(v45)
    return {
        fetchChatSettings = not l_isAppChatChannelsAPIEnabled_0() and function()
            v45(function(v46)
                return v45(v8.Requests.GetUserV2FromUserId.API(v46:getState().LocalUserId));
            end);
            return v45(v8.Requests.FetchChatSettings.API()):andThen(function(_)
                l_RoactChatAnalytics_0.new(v10.new(l_RbxAnalyticsService_0), (tostring(l_Players_0.LocalPlayer.UserId))):userLoadedChat();
            end):andThen(function()
                v45(l_SetAppLoaded_0(true));
            end):catch(function(v48)
                warn("SocialTab.Requests.FetchChatSettings with error: ", (tostring(v48)));
            end);
        end or nil,
        navigateBack = function()
            v45(v11());
        end,
        navigateDownToNotifications = function(v49)
            v45(l_NavigateDownToNotifications_0(v49));
        end,
        navigateDownToPrivacySettings = function(v50)
            v45(l_NavigateDownToPrivacySettings_0(v50));
        end,
        navigateDownToReportAbuse = function(v51, v52, v53)
            v45(l_NavigateDownToReportAbuse_0(v51, v52, v53));
        end,
        openReportDialog = if not l_GetFFlagLuafiedReportEntryPoints_0() then nil else function(v54, v55)
            v45(v34({
                reportEntryPoint = v6.ReportDialogEntryPoints.Chat,
                userId = v54,
                conversationId = v55
            }));
        end,
        navigateDownToViewUserProfile = function(v56, v57)
            v45(l_NavigateDownToViewUserProfile_0(v56, v57));
        end,
        navigateDownToAddFriends = function(v58)
            v45(v17(v58));
        end,
        navigateDownToFriendFinder = function(v59)
            v45(v18(v59));
        end,
        navigateDownToAddFriendsAccountProvider = function(v60, v61)
            v45(v19(v60, v61));
        end,
        openProfilePeekView = function(v62, v63)
            v45(v21(v62, v63));
        end,
        navigateDownToGroups = function(v64)
            v45(l_NavigateDownToGroups_0(v64));
        end,
        setTabBarVisibleFromChat = function(v65)
            v45(l_SetTabBarVisibleFromChat_0(v65));
        end,
        toggleChatPaused = function(v66)
            v45(l_ToggleChatPaused_0(v66));
        end,
        openContextualMenu = function(v67)
            v45(v22(l_join_0(v67, {
                analyticContext = "SocialTab"
            })));
        end,
        fetchUnreadConversationCount = function()
            v45(l_GetUnreadConversationCount_0.API());
        end,
        openGameDetailsPeekView = function(v68)
            assert(type(v68) == "string", "Expected universeId to be a string");
            v45(v30(v68));
        end,
        navigateToGameDetails = function(v69, v70)
            v45(v31(v69, v70));
        end,
        navigateToUserInfo = function(v71, v72)
            assert(type(v71) == "string", "Expected userId to be a string");
            v45(v32(v71, v72));
        end or nil,
        openVerifiedBadgeModal = function()
            v45(v33());
        end,
        openLearnMoreLink = function()
            v45(v37());
        end,
        openDiscoverabilityModal = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else function(v73)
            v45(v35(v73));
        end,
        closeCentralOverlay = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else function()
            v45(v36());
        end,
        showToast = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else function(v74)
            v45(v29({
                toastMessage = v74
            }));
        end,
        navigateTo3DQRCodePage = function(v75)
            v45(v39(v75));
        end,
        openAmpWizardContainer = function(v76, v77)
            v45(v43(v76, v77));
        end,
        navigateDownToSquadLobby = if not l_GetFFlagLuaAppEnableSquadPage_0() then nil else function(v78)
            v45(l_NavigateDownToSquadLobby_0(v78));
        end,
        openPlayerContextualMenu = function(v79)
            v45(v40(v79));
        end
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_script_FirstAncestor_0.LuaApp.Components.SocialTab.SocialTab);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_getFFlagSoothsayerCheckForContactImporter_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagSoothsayerCheckForContactImporter;
return function(v5, _)
    local l_history_0 = v5.Navigation.history;
    local v8 = l_history_0[#l_history_0];
    return {
        chatLoaded = v5.ChatAppReducer.AppLoaded,
        canGoBack = #v8 > 1,
        retrievalStatus = v2.Requests.FetchChatSettings.getStatus(v5),
        wideMode = v5.FormFactor == l_FormFactor_0.WIDE,
        notificationCount = v5.NotificationBadgeCounts.TopBarNotificationIcon,
        localUserId = v5.LocalUserId,
        currentAppPage = v8[#v8] and v8[#v8].name,
        isLocalUserSoothsayer = not not l_getFFlagSoothsayerCheckForContactImporter_0() and v5.IsLocalUserSoothsayer
    };
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v5.Style.withStyle;
local l_Images_0 = v5.App.ImageSet.Images;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local v9 = require(l_Modules_0.Common.RoactUtilities.ExternalEventConnection);
local v10 = v4.PureComponent:extend("Spinner");
v10.defaultProps = {
    Size = UDim2.new(0, 20, 0, 20),
    spinSpeed = 540
};
v10.init = function(v11)
    v11.renderSteppedCallback = function(v12)
        local l_isSpinning_0 = v11.props.isSpinning;
        local l_spinSpeed_0 = v11.props.spinSpeed;
        if not (not l_isSpinning_0 or not v11.ref.current) then
            v11.ref.current.Rotation = v11.ref.current.Rotation + l_spinSpeed_0 * v12;
        end;
    end;
end;
v10.render = function(v15)
    local l_Size_0 = v15.props.Size;
    local l_Position_0 = v15.props.Position;
    local l_AnchorPoint_0 = v15.props.AnchorPoint;
    local l_ImageColor3_0 = v15.props.ImageColor3;
    local l_ImageTransparency_0 = v15.props.ImageTransparency;
    local l_isSpinning_1 = v15.props.isSpinning;
    v15.ref = (v15.props.forwardRef or v15.ref) or v4.createRef();
    return l_withStyle_0(function(v22)
        return v4.createElement(l_ImageSetLabel_0, {
            Size = l_Size_0,
            Position = l_Position_0,
            AnchorPoint = l_AnchorPoint_0,
            BackgroundTransparency = 1,
            Image = l_Images_0["icons/common/refresh"],
            ImageColor3 = l_ImageColor3_0 or v22.Theme.SystemPrimaryDefault.Color,
            ImageTransparency = l_ImageTransparency_0 or v22.Theme.SystemPrimaryDefault.Transparency,
            [v4.Ref] = v15.ref
        }, {
            renderStepped = l_isSpinning_1 and v4.createElement(v9, {
                event = l_RunService_0.renderStepped,
                callback = v15.renderSteppedCallback
            })
        });
    end);
end;
return v4.forwardRef(function(v23, v24)
    return v4.createElement(v10, v3.Dictionary.join(v23, {
        forwardRef = v24
    }));
end);


local v0 = require(game:GetService("CorePackages").Roact);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Immutable);
local v3 = require(l_Modules_0.LuaApp.Enum.ButtonState);
local v4 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v5 = require(l_Modules_0.LuaApp.StateTable);
local v6 = v0.PureComponent:extend("StateButton");
v6.init = function(v7)
    v7.state = {
        currentState = v3.Default
    };
    v7.id = "StateButton" .. tostring(v7);
    v7.stateTable = v5.new(v7.id, v3.Default, {}, {
        [v3.Default] = {
            OnPressed = {
                nextState = v3.Pressed
            },
            StartHover = {
                nextState = v3.Hover
            },
            OnSelectionGained = {
                nextState = v3.Selected
            },
            Disable = {
                nextState = v3.Disabled
            }
        },
        [v3.Hover] = {
            OnSelectionGained = {
                nextState = v3.Selected
            },
            OnPressed = {
                nextState = v3.Pressed
            },
            EndHover = {
                nextState = v3.Default
            },
            Disable = {
                nextState = v3.Disabled
            }
        },
        [v3.Pressed] = {
            OnSelectionGained = {
                nextState = v3.SelectedPressed
            },
            OnReleased = {
                nextState = v3.Default
            },
            OnReleasedHover = {
                nextState = v3.Hover
            },
            Disable = {
                nextState = v3.Disabled
            }
        },
        [v3.Selected] = {
            OnSelectionLost = {
                nextState = v3.Default
            },
            OnPressed = {
                nextState = v3.SelectedPressed
            },
            Disable = {
                nextState = v3.Disabled
            }
        },
        [v3.SelectedPressed] = {
            OnSelectionLost = {
                nextState = v3.Default
            },
            OnReleased = {
                nextState = v3.Selected
            },
            Disable = {
                nextState = v3.Disabled
            }
        },
        [v3.Disabled] = {
            Enable = {
                nextState = v3.Default
            }
        }
    });
    v7.stateTable:onStateChange(function(v8, v9, _)
        v7:setState({
            currentState = v9
        });
        if v7.props.StateChanged then
            v7.props.StateChanged(v8, v9);
        end;
    end);
end;
v6.render = function(v11)
    local l_props_0 = v11.props;
    local v13 = v2.RemoveFromDictionary(v11.props, "Disabled", "StateChanged", v0.Event.Activated);
    v13.Selectable = true;
    v13[v0.Event.MouseEnter] = function(...)
        v11.stateTable.events.StartHover();
        if l_props_0[v0.Event.MouseEnter] ~= nil then
            return l_props_0[v0.Event.MouseEnter](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.MouseLeave] = function(...)
        v11.stateTable.events.EndHover();
        if l_props_0[v0.Event.MouseLeave] ~= nil then
            return l_props_0[v0.Event.MouseLeave](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.InputBegan] = function(...)
        local v14 = select(2, ...);
        if not (v14.UserInputType ~= Enum.UserInputType.MouseButton1 and v14.UserInputType ~= Enum.UserInputType.Touch) or v14.KeyCode == Enum.KeyCode.ButtonA then
            v11.stateTable.events.OnPressed();
        end;
        if l_props_0[v0.Event.InputBegan] ~= nil then
            return l_props_0[v0.Event.InputBegan](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.InputEnded] = function(...)
        local v15 = select(2, ...);
        if v15.UserInputType == Enum.UserInputType.MouseButton1 then
            v11.stateTable.events.OnReleasedHover();
        elseif not (v15.UserInputType ~= Enum.UserInputType.Touch and v15.KeyCode ~= Enum.KeyCode.ButtonA) or v15.UserInputType == Enum.UserInputType.MouseMovement then
            v11.stateTable.events.OnReleased();
        end;
        if l_props_0[v0.Event.InputEnded] ~= nil then
            return l_props_0[v0.Event.InputEnded](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.SelectionGained] = function(...)
        v11.stateTable.events.OnSelectionGained();
        if l_props_0[v0.Event.SelectionGained] ~= nil then
            return l_props_0[v0.Event.SelectionGained](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.SelectionLost] = function(...)
        v11.stateTable.events.OnSelectionLost();
        if l_props_0[v0.Event.SelectionLost] ~= nil then
            return l_props_0[v0.Event.SelectionLost](...);
        else
            return ;
        end;
    end;
    v13[v0.Event.Activated] = function(...)
        if v11.state ~= v3.Disabled and v11.props[v0.Event.Activated] ~= nil then
            return v11.props[v0.Event.Activated](...);
        else
            return ;
        end;
    end;
    return v0.createElement(v4, v13);
end;
v6.didUpdate = function(v16, v17, _)
    if v16.props.Disabled ~= v17.Disabled then
        if not v16.props.Disabled then
            v16.stateTable.events.Enable();
        else
            v16.stateTable.events.Disable();
            return ;
        end;
    end;
end;
return v6;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Packages.UIBlox);
local l_Images_0 = v4.App.ImageSet.Images;
local l_IconButton_0 = v4.App.Button.IconButton;
local l_withTooltip_0 = v4.App.Dialog.TooltipV2.withTooltip;
local l_TooltipOrientation_0 = v4.App.Dialog.Enum.TooltipOrientation;
local v9 = require(l_CorePackages_0.Promise);
local v10 = require(l_Modules_0.LuaApp.buildCreatorWebNavUrl);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v12 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useEffectOnce_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useEffectOnce;
local v14 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v16 = require(l_Modules_0.LuaApp.openExternalBrowser);
return function(v17)
    local v18 = v10({
        utm_content = "side_bar_blue_icon"
    });
    local v19 = v12(l_AppLinking_0);
    local v20 = v12(v14);
    local v21, v22 = v3.useState(false);
    local v23 = v3.useCallback(function()
        v20:setRBXEventStream("StudioCTA", "OpenStudioCreatePage");
        v16(v19, v18);
    end);
    local v24 = l_useLocalization_0({
        TitleText = "CommonUI.Features.StudioCTA.Tooltip.Title",
        BodyText = "CommonUI.Features.StudioCTA.Tooltip.Body"
    });
    local v25 = v3.useRef(nil);
    l_useEffectOnce_0(function()
        v20:setRBXEventStream("StudioCTA", "MountStudioButton");
    end, {});
    local function _()
        v25.current = v9.delay(0.4):andThenCall(function()
            v25.current = nil;
            v22(true);
        end);
    end;
    local function _()
        if v25.current then
            v25.current:cancel();
            v25.current = nil;
        end;
        if v21 then
            v22(false);
        end;
    end;
    if not v17.hovered or not v17.showTooltip then
        if v25.current then
            v25.current:cancel();
            v25.current = nil;
        end;
        if v21 then
            v22(false);
        end;
    else
        v25.current = v9.delay(0.4):andThenCall(function()
            v25.current = nil;
            v22(true);
        end);
    end;
    return l_withTooltip_0({
        headerText = v24.TitleText,
        bodyText = v24.BodyText
    }, {
        preferredOrientation = l_TooltipOrientation_0.Top,
        guiTarget = l_CoreGui_0,
        active = v21,
        DisplayOrder = 10
    }, function(v28)
        return v3.createElement("Frame", {
            Size = v17.Size,
            Position = v17.Position,
            AnchorPoint = v17.AnchorPoint,
            BackgroundTransparency = 1,
            [v3.Tag] = v17.Tag,
            [v3.Change.AbsoluteSize] = v28,
            [v3.Change.AbsolutePosition] = v28
        }, {
            StudioIcon = v3.createElement(l_IconButton_0, {
                size = UDim2.fromOffset(44, 44),
                anchorPoint = Vector2.new(0.5, 0.5),
                position = UDim2.fromScale(0.5, 0.5),
                icon = l_Images_0["icons/logo/studiologo"],
                iconColor3 = Color3.fromRGB(0, 159, 255),
                onActivated = v23
            })
        });
    end);
end;