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


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.DiscoveryUiBloxApi);
local l_useStyle_0 = v2.useStyle;
local l_ImageSetLabel_0 = v2.ImageSetLabel;
local l_StyledTextLabel_0 = v2.StyledTextLabel;
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local v7 = require(l_Parent_0.UserLib);
local l_Constants_0 = v7.Utils.Constants;
local l_getRbxthumbWithTypeSizeAndOptions_0 = v7.Utils.getRbxthumbWithTypeSizeAndOptions;
local function v11(v10)
    return v1.createElement(v1.Fragment, nil, {
        Corner = v1.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        Border = v1.createElement("UIStroke", {
            ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
            Color = v10.Theme.BackgroundUIDefault.Color,
            Transparency = v10.Theme.BackgroundUIDefault.Transparency,
            Thickness = 2
        })
    });
end;
local function v19(v12, v13)
    local v14 = {};
    if not v12 then
        return nil, nil;
    else
        local v15 = 0;
        for _, v17 in pairs(v12) do
            v15 = v15 + 1;
            local v18 = tostring(v17);
            if v15 <= 3 then
                v14["mini_avatar_" .. v18] = v1.createElement(l_ImageSetLabel_0, {
                    AnchorPoint = Vector2.new(0, 0.5),
                    Position = UDim2.new(0, (v15 * 16) / 2, 0.5, 0),
                    Size = UDim2.fromOffset(16, 16),
                    BackgroundTransparency = 0,
                    Image = l_getRbxthumbWithTypeSizeAndOptions_0(v18, l_Constants_0.RbxthumbTypes.AvatarHeadShot, 100),
                    BackgroundColor3 = Color3.fromRGB(209, 209, 209),
                    ZIndex = 4 - v15
                }, {
                    v11(v13)
                });
            end;
        end;
        v14.online_indicator = v1.createElement("Frame", {
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.new(0, 0, 0.5, 0),
            Size = UDim2.fromOffset(14, 14),
            BackgroundTransparency = 0,
            BackgroundColor3 = Color3.fromRGB(0, 180, 109),
            ZIndex = 4
        }, {
            v11(v13);
            InExperienceCounter = v1.createElement(l_StyledTextLabel_0, {
                colorStyle = v13.Theme.TextEmphasis,
                fontStyle = v13.Font.Footer,
                textXAlignment = Enum.TextXAlignment.Center,
                size = UDim2.fromScale(1, 1),
                lineHeight = 1,
                text = tostring(v15),
                textTruncate = Enum.TextTruncate.None,
                richText = false
            })
        });
        return v1.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            BackgroundTransparency = 1
        }, v14), v15;
    end;
end;
return function(v20)
    local v21 = l_useStyle_0();
    local l_Font_0 = v21.Font;
    local v23, v24 = v19(v20.friends, v21);
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        UIListLayout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 6)
        }),
        PresenceList = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(0, 16 + (math.min(3, v24 or 0) * 16) / 2, 0, 22),
            LayoutOrder = 1
        }, {
            ActiveFriends = v23
        }),
        FriendsLabel = v1.createElement(l_StyledTextLabel_0, {
            colorStyle = v21.Theme.TextMuted,
            fontStyle = l_Font_0.CaptionHeader,
            textXAlignment = Enum.TextXAlignment.Left,
            size = UDim2.new(1, -40, 0, l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize),
            lineHeight = 1,
            text = l_useLocalization_0({
                friendsText = "CommonUI.Features.Label.Friends"
            }).friendsText,
            textTruncate = Enum.TextTruncate.AtEnd,
            richText = false,
            layoutOrder = 2
        })
    });
end;


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.UserLib);
local l_Constants_0 = v2.Utils.Constants;
local l_getRbxthumbWithTypeSizeAndOptions_0 = v2.Utils.getRbxthumbWithTypeSizeAndOptions;
local l_AppChatConstants_0 = require(l_Parent_0.DiscoveryAppChatApi).AppChatConstants;
local l_ImageSetLabel_0 = require(l_Parent_0.DiscoveryUiBloxApi).ImageSetLabel;
local l_GetImageData_0 = require(l_Parent_0.RobloxAppAssets).GetImageData;
local l_Colors_0 = require(l_Parent_0.DiscoveryStyleApi).Colors;
local v9 = v1.PureComponent:extend("FriendIcon");
v9.defaultProps = {
    layoutOrder = 0,
    maskColor = l_Colors_0.White,
    showBackground = true
};
v9.render = function(v10)
    local l_user_0 = v10.props.user;
    local l_dotSize_0 = v10.props.dotSize;
    local l_itemSize_0 = v10.props.itemSize;
    local l_layoutOrder_0 = v10.props.layoutOrder;
    local l_showBackground_0 = v10.props.showBackground;
    local l_maskColor_0 = v10.props.maskColor;
    local v17 = l_dotSize_0 ~= nil;
    local l_l_AppChatConstants_0_PresenceIndicatorSizeKey_0 = l_AppChatConstants_0:GetPresenceIndicatorSizeKey(l_dotSize_0);
    local v19 = nil;
    local v20 = nil;
    if l_user_0 then
        if v17 then
            v20 = l_AppChatConstants_0.PresenceIndicatorImagesBySize[l_l_AppChatConstants_0_PresenceIndicatorSizeKey_0][l_user_0.presence];
        end;
        v19 = l_getRbxthumbWithTypeSizeAndOptions_0(l_user_0.id, l_Constants_0.RbxthumbTypes.AvatarHeadShot, 48);
    end;
    return v1.createElement("Frame", {
        BackgroundColor3 = Color3.fromRGB(209, 209, 209),
        BackgroundTransparency = not l_showBackground_0 and 1 or 0,
        BorderSizePixel = 0,
        LayoutOrder = l_layoutOrder_0,
        Size = UDim2.new(0, l_itemSize_0, 0, l_itemSize_0)
    }, {
        Profile = v1.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Image = l_GetImageData_0(v19) or v19,
            Size = UDim2.new(0, l_itemSize_0, 0, l_itemSize_0),
            ZIndex = 1
        }),
        Mask = not not l_showBackground_0 and v1.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Image = "rbxasset://textures/ui/LuaApp/graphic/gr-avatar-frame-36x36.png",
            ImageColor3 = l_maskColor_0,
            Size = UDim2.new(0, l_itemSize_0, 0, l_itemSize_0),
            ZIndex = 2
        }) or nil,
        Dot = (not not l_showBackground_0 and v17) and v1.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Image = v20,
            Position = UDim2.new(1, -l_dotSize_0, 1, -l_dotSize_0),
            Size = UDim2.new(0, l_dotSize_0, 0, l_dotSize_0),
            ZIndex = 3
        }) or nil
    });
end;
return v9;


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local v1 = require(l_Parent_0.React);
local l_ImageSetLabel_0 = require(l_Parent_0.DiscoveryUiBloxApi).ImageSetLabel;
local l_useDesignTokens_0 = require(l_Parent_0.DiscoveryStyleApi).useDesignTokens;
local l_Colors_0 = require(l_Parent_0.DiscoveryStyleApi).Colors;
local l_mutedError_0 = require(l_Parent_0.Loggers).mutedError;
return function(v6)
    local v7 = l_useDesignTokens_0();
    local l_Space_50_0 = v7.Global.Space_50;
    local l_Space_100_0 = v7.Global.Space_100;
    local l_Space_150_0 = v7.Global.Space_150;
    local l_Space_300_0 = v7.Global.Space_300;
    if v6.icons then
        local v12 = 2 * l_Space_100_0 + (l_Space_150_0 + l_Space_50_0) * #v6.icons;
        local v13 = {
            Corner = v1.createElement("UICorner", {
                CornerRadius = UDim.new(0, l_Space_100_0)
            }),
            Padding = v1.createElement("UIPadding", {
                PaddingRight = UDim.new(0, l_Space_100_0),
                PaddingLeft = UDim.new(0, l_Space_100_0)
            }),
            Layout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, l_Space_100_0)
            })
        };
        for v14, v15 in pairs(v6.icons) do
            v13["PillIcon" .. tostring(v14)] = v1.createElement(l_ImageSetLabel_0, {
                Size = UDim2.fromOffset(l_Space_150_0, l_Space_150_0),
                SizeConstraint = Enum.SizeConstraint.RelativeYY,
                BackgroundTransparency = 1,
                LayoutOrder = v14,
                Image = v15,
                ImageColor3 = l_Colors_0.White,
                ImageTransparency = 0,
                ScaleType = Enum.ScaleType.Fit
            });
        end;
        return v1.createElement("Frame", {
            Size = UDim2.new(0, v12, 0, l_Space_300_0),
            Position = v6.Position,
            AnchorPoint = v6.AnchorPoint,
            BackgroundTransparency = 0.2,
            BackgroundColor3 = Color3.fromRGB(17, 18, 20)
        }, v13);
    else
        l_mutedError_0("Creating a gameTileOverlayPill without anything to display");
        return nil;
    end;
end;


local l_TextService_0 = game:GetService("TextService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.React);
local l_useDesignTokens_0 = require(l_Parent_0.DiscoveryStyleApi).useDesignTokens;
local v5 = require(l_Parent_0.DiscoveryUiBloxApi);
local l_Images_0 = v5.Images;
local l_ImageSetLabel_0 = v5.ImageSetLabel;
local l_GetUIBloxEnableFontNameMapping_0 = require(l_Parent_0.SharedFlags).UIBlox.GetUIBloxEnableFontNameMapping;
local v9 = require(l_script_FirstAncestor_0.Footer.getGameTileMetadataFont);
local v10 = require(l_script_FirstAncestor_0.Flags.FFlagLuaAppTextLabelHeightIsOffset);
local v11 = l_Images_0["icons/status/games/rating_small"];
local v12 = l_Images_0["icons/status/games/people-playing_small"];
local v13 = Vector2.new(math.huge, math.huge);
return function(v14)
    local v15 = l_useDesignTokens_0();
    local l_Space_250_0 = v15.Global.Space_250;
    local l_Space_50_0 = v15.Global.Space_50;
    local l_Space_100_0 = v15.Global.Space_100;
    local l_Default_0 = v15.Semantic.Color.Text.Default;
    local v20 = v9(v14.useLargerFont, v15);
    local v21 = if not l_GetUIBloxEnableFontNameMapping_0() then v20.FontSize * 1.2 else v20.FontSize;
    local l_Font_0 = v20.Font;
    local l_ratingText_0 = v14.ratingText;
    local v24 = v3.useMemo(function()
        if not (l_ratingText_0 ~= nil) or l_ratingText_0 == "" then
            return 0;
        else
            return l_TextService_0:GetTextSize(l_ratingText_0, v21, l_Font_0, v13).X;
        end;
    end, {
        l_ratingText_0,
        v21,
        l_Font_0
    });
    local v25 = ((v21 + l_Space_50_0) + v24) + l_Space_100_0;
    local v26 = UDim.new(1, -((v25 + l_Space_50_0) + v21));
    return v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_Space_250_0),
        Position = v14.Position,
        ClipsDescendants = false,
        BackgroundTransparency = 1
    }, {
        RatingIconSlot = v3.createElement("Frame", {
            LayoutOrder = 1,
            Size = UDim2.fromOffset(v21, v21),
            ClipsDescendants = false,
            BackgroundTransparency = 1,
            Position = UDim2.fromScale(0, 0.5),
            AnchorPoint = Vector2.new(0, 0.5)
        }, {
            Icon = v3.createElement(l_ImageSetLabel_0, {
                Image = v11,
                ImageColor3 = l_Default_0.Color3,
                ImageTransparency = 0,
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromOffset(v21, v21),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1
            })
        }),
        RatingText = v3.createElement("TextLabel", {
            LayoutOrder = 2,
            Text = l_ratingText_0,
            Size = UDim2.new(0, v24 + l_Space_50_0, if not v10 then v21 else 0, not v10 and 0 or v21),
            Position = UDim2.new(0, v21 + l_Space_50_0, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            BackgroundTransparency = 1,
            TextSize = v21,
            Font = v20.Font,
            TextTransparency = l_Default_0.Transparency,
            TextColor3 = l_Default_0.Color3,
            TextWrapped = false,
            TextTruncate = Enum.TextTruncate.None,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        }),
        PlayerCountIconSlot = v3.createElement("Frame", {
            Position = UDim2.new(0, v25, 0.5, 0),
            LayoutOrder = 1,
            Size = UDim2.fromOffset(v21, v21),
            ClipsDescendants = false,
            BackgroundTransparency = 1,
            AnchorPoint = Vector2.new(0, 0.5)
        }, {
            Icon = v3.createElement(l_ImageSetLabel_0, {
                Image = v12,
                ImageColor3 = l_Default_0.Color3,
                ImageTransparency = 0,
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromOffset(v21, v21),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1
            })
        }),
        PlayerCountText = v3.createElement("TextLabel", {
            LayoutOrder = 2,
            Text = v14.playerCountText,
            Size = if not l_GetUIBloxEnableFontNameMapping_0() then UDim2.new(v26, UDim.new(0, v20.FontSize * 1.2)) else UDim2.new(v26, UDim.new(0, v20.FontSize)),
            Position = UDim2.new(0, (v25 + v21) + l_Space_50_0, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            BackgroundTransparency = 1,
            TextSize = if not l_GetUIBloxEnableFontNameMapping_0() then v20.FontSize * 1.2 else v20.FontSize,
            Font = v20.Font,
            TextTransparency = l_Default_0.Transparency,
            TextColor3 = l_Default_0.Color3,
            TextWrapped = false,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local l_useDesignTokens_0 = require(l_Parent_0.DiscoveryStyleApi).useDesignTokens;
local l_ImageSetLabel_0 = require(l_Parent_0.DiscoveryUiBloxApi).ImageSetLabel;
local v5 = require(l_script_FirstAncestor_0.Footer.getGameTileMetadataFont);
local v6 = require(l_script_FirstAncestor_0.Flags.getFFlagLuaAppSponsoredGridTiles);
local l_GetUIBloxEnableFontNameMapping_0 = require(l_Parent_0.SharedFlags).UIBlox.GetUIBloxEnableFontNameMapping;
local v8 = require(l_script_FirstAncestor_0.Flags.FFlagLuaAppTextLabelHeightIsOffset);
return function(v9)
    local v10 = l_useDesignTokens_0();
    local l_Space_250_0 = v10.Global.Space_250;
    local l_Space_75_0 = v10.Global.Space_75;
    local l_Default_0 = v10.Semantic.Color.Text.Default;
    local v14 = v5(v9.useLargerFont, v10);
    local v15 = if not l_GetUIBloxEnableFontNameMapping_0() then v14.FontSize * 1.2 else v14.FontSize;
    local v16 = nil;
    local v17 = nil;
    if not v9.iconSize then
        v17 = v15;
        v16 = v15;
    else
        v17 = v9.iconSize;
        v16 = v10.Global.Size_250;
    end;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_Space_250_0),
        Position = v9.Position,
        ClipsDescendants = false,
        BackgroundTransparency = 1
    }, {
        IconSlot = v2.createElement("Frame", {
            LayoutOrder = 1,
            Size = UDim2.fromOffset(v16, v16),
            ClipsDescendants = false,
            BackgroundTransparency = 1,
            Position = UDim2.fromScale(0, 0.5),
            AnchorPoint = Vector2.new(0, 0.5)
        }, {
            Icon = if not not v6() and v9.iconElement then v9.iconElement else v2.createElement(l_ImageSetLabel_0, {
                Image = v9.icon,
                ImageColor3 = l_Default_0.Color3,
                ImageTransparency = 0,
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromOffset(v17, v17),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1
            })
        }),
        Text = v2.createElement("TextLabel", {
            LayoutOrder = 2,
            Text = v9.text,
            Size = UDim2.new(1, -(v16 + l_Space_75_0), if not v8 then v15 else 0, not v8 and 0 or v15),
            Position = UDim2.new(0, v16 + l_Space_75_0, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            BackgroundTransparency = 1,
            TextSize = v15,
            Font = v14.Font,
            TextTransparency = l_Default_0.Transparency,
            TextColor3 = l_Default_0.Color3,
            TextWrapped = false,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local l_useDesignTokens_0 = require(l_Parent_0.DiscoveryStyleApi).useDesignTokens;
local v4 = require(l_script_FirstAncestor_0.Footer.getGameTileMetadataFont);
local l_GetUIBloxEnableFontNameMapping_0 = require(l_Parent_0.SharedFlags).UIBlox.GetUIBloxEnableFontNameMapping;
local v6 = require(l_script_FirstAncestor_0.Flags.FFlagLuaAppTextLabelHeightIsOffset);
return function(v7)
    local v8 = l_useDesignTokens_0();
    local l_Space_250_0 = v8.Global.Space_250;
    local l_Default_0 = v8.Semantic.Color.Text.Default;
    local v11 = v4(v7.useLargerFont, v8);
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_Space_250_0),
        Position = v7.Position,
        ClipsDescendants = false,
        BackgroundTransparency = 1
    }, {
        Text = v2.createElement("TextLabel", {
            Text = v7.text,
            Size = if not l_GetUIBloxEnableFontNameMapping_0() then UDim2.new(1, 0, if not v6 then v11.FontSize * 1.2 else 0, not v6 and 0 or v11.FontSize * 1.2) else UDim2.new(1, 0, if not v6 then v11.FontSize else 0, not v6 and 0 or v11.FontSize),
            Position = UDim2.new(0, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            BackgroundTransparency = 1,
            TextSize = if not l_GetUIBloxEnableFontNameMapping_0() then v11.FontSize * 1.2 else v11.FontSize,
            Font = v11.Font,
            TextTransparency = l_Default_0.Transparency,
            TextColor3 = l_Default_0.Color3,
            TextWrapped = false,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Roact);
local l_ImageSetLabel_0 = require(l_Parent_0.DiscoveryUiBloxApi).ImageSetLabel;
local l_GetImageData_0 = require(l_Parent_0.RobloxAppAssets).GetImageData;
local v5 = require(l_script_FirstAncestor_0.Footer.FriendIcon);
local l_SourceSans_0 = Enum.Font.SourceSans;
local v7 = Color3.fromRGB(117, 117, 117);
local function v10(v8)
    local l_size_0 = v8.size;
    return v2.createElement(l_ImageSetLabel_0, {
        Size = UDim2.new(0, l_size_0, 0, l_size_0),
        LayoutOrder = v8.layoutOrder,
        Image = l_GetImageData_0("LuaApp/graphic/gr-counter-slot-32x32") or "LuaApp/graphic/gr-counter-slot-32x32",
        BackgroundTransparency = 1
    }, {
        Count = v2.createElement("TextLabel", {
            Size = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            Font = l_SourceSans_0,
            TextSize = 15,
            Text = "+" .. v8.count,
            TextColor3 = v7,
            BackgroundTransparency = 1
        })
    });
end;
local v11 = v2.PureComponent:extend("UserIconList");
v11.defaultProps = {
    users = {}
};
v11.render = function(v12)
    local l_width_0 = v12.props.width;
    local l_height_0 = v12.props.height;
    local l_layoutOrder_0 = v12.props.layoutOrder;
    local l_users_0 = v12.props.users;
    local v17 = #l_users_0;
    local v18 = 0;
    local l_maskColor_0 = v12.props.maskColor;
    if v17 <= 0 then
        return nil;
    else
        local function _(v20, v21)
            return (math.floor((v21 + 3) / (v20 + 3)));
        end;
        local v23 = nil;
        v23 = (l_height_0 >= 32 and math.floor((l_width_0 + 3) / 35) >= 3) and 32 or (l_height_0 >= 24 and 24 or l_height_0);
        local v24 = {};
        local v25 = math.floor((l_width_0 + 3) / (v23 + 3));
        if v25 > 0 then
            if v25 < v17 then
                v18 = v17 - (v25 - 1);
            end;
            v24.ListLayout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 3)
            });
            local v26 = v18 > 0 and v25 - 1 or math.min(v25, v17);
            for v27 = 1, v26 do
                v24["UserIcon" .. v27] = v2.createElement(v5, {
                    user = l_users_0[v27],
                    itemSize = v23,
                    layoutOrder = v27,
                    maskColor = l_maskColor_0
                });
            end;
            local v28 = false;
            if v18 > 0 then
                v28 = v2.createElement(v10, {
                    size = v23,
                    layoutOrder = v25,
                    count = v18
                });
            end;
            v24.NumberedIcon = v28;
        end;
        return v2.createElement("Frame", {
            Size = UDim2.new(0, l_width_0, 0, l_height_0),
            LayoutOrder = l_layoutOrder_0,
            BackgroundTransparency = 1
        }, v24);
    end;
end;
return v11;


return function(v0, v1)
    if not v0 then
        return v1.Semantic.Typography.CaptionHeader;
    else
        return v1.Semantic.Typography.Body;
    end;
end;


local l_useAbbreviatedNumberLocalization_0 = require(script:FindFirstAncestor("GameTile").Parent.Localization).Hooks.useAbbreviatedNumberLocalization;
return function(v1)
    local v2 = l_useAbbreviatedNumberLocalization_0(v1);
    if not (v2 ~= nil) or v1 == -1 then
        return "--";
    else
        return v2;
    end;
end;


return {
    TileOverlay = {
        BottomRightPosition = UDim2.new(0.96, 0, 0.93, 0)
    },
    PlayButtonStyleValues = {
        Enabled = "Enabled",
        Disabled = "Disabled"
    },
    PlayerCountStyleValues = {
        Hover = "Hover",
        Always = "Always",
        Footer = "Footer"
    }
};


local l_Signal_0 = require(script:FindFirstAncestor("GameTile").Parent.AppCommonLib).Signal;
local v1 = {};
v1.__index = v1;
v1.new = function()
    local v2 = {
        changed = l_Signal_0.new(),
        hoveredKey = nil,
        waitingForHover = nil
    };
    setmetatable(v2, v1);
    return v2;
end;
v1.requestHover = function(v3, v4)
    if v3.hoveredKey == v4 then
        return ;
    elseif v3.waitingForHover == v4 then
        return ;
    elseif not (v3.hoveredKey ~= nil) or v3.waitingForHover ~= nil then
        v3.hoveredKey = v4;
        v3.waitingForHover = nil;
        v3.changed:fire(v3.hoveredKey);
        return ;
    else
        v3.waitingForHover = v4;
        return ;
    end;
end;
v1.cancelHover = function(v5, v6)
    if v5.hoveredKey == v6 then
        if v5.waitingForHover ~= nil then
            v5.hoveredKey = v5.waitingForHover;
            v5.waitingForHover = nil;
        else
            v5.hoveredKey = nil;
        end;
        v5.changed:fire(v5.hoveredKey);
        return ;
    else
        if v5.waitingForHover == v6 then
            v5.waitingForHover = nil;
        end;
        return ;
    end;
end;
v1.reset = function(v7)
    local l_hoveredKey_0 = v7.hoveredKey;
    v7.waitingForHover = nil;
    v7.hoveredKey = nil;
    if l_hoveredKey_0 ~= nil then
        v7.changed:fire(v7.hoveredKey);
    end;
end;
v1.default = v1.new();
return v1;


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local l_CentralOverlayType_0 = require(l_Parent_0.RobloxAppEnums).CentralOverlayType;
local l_SetCentralOverlay_0 = require(l_Parent_0.CentralOverlay).Actions.SetCentralOverlay;
return function(v3, v4, v5)
    return function(v6)
        v6:dispatch(l_SetCentralOverlay_0(l_CentralOverlayType_0.PlacesList, {
            game = v3,
            anchorSpaceSize = v4,
            anchorSpacePosition = v5
        }));
    end;
end;


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local v1 = require(l_Parent_0.RobloxAppEnums);
local l_CentralOverlayType_0 = v1.CentralOverlayType;
local l_AppPage_0 = v1.AppPage;
local l_DeviceType_0 = v1.DeviceType;
local l_SetCentralOverlay_0 = require(l_Parent_0.CentralOverlay).Actions.SetCentralOverlay;
local l_NavigateDown_0 = require(l_Parent_0.NavigationRodux).Thunks.NavigateDown;
local l_getDeviceType_0 = require(l_Parent_0.AppCommonLib).getDeviceType;
local l_GetFFlagLuaAppUseGetDeviceTypeHelper_0 = require(l_Parent_0.SharedFlags).GetFFlagLuaAppUseGetDeviceTypeHelper;
return function(v9)
    return function(v10)
        local v11 = nil;
        if not l_GetFFlagLuaAppUseGetDeviceTypeHelper_0() then
            v11 = v9;
        else
            local v12 = l_getDeviceType_0(v10:getState().DeviceOrientation);
            local v13 = true;
            if v12 ~= l_DeviceType_0.Phone then
                v13 = v12 == l_DeviceType_0.Tablet;
            end;
            v11 = v13;
        end;
        if not v11 then
            v10:dispatch(l_SetCentralOverlay_0(l_CentralOverlayType_0.SponsoredTooltip));
            return ;
        else
            v10:dispatch(l_NavigateDown_0({
                name = l_AppPage_0.SponsoredTooltipPeekView
            }));
            return ;
        end;
    end;
end;


local l_Url_0 = require(script:FindFirstAncestor("GameTile").Parent.Http).Url;
return function(v1, v2)
    return v1(string.format("%sv1/sponsored-games/click", l_Url_0.ADS_URL), "POST", {
        postBody = "\"" .. v2 .. "\""
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local v1 = require(l_script_FirstAncestor_0.WideGameTileViewConfig);
local v2 = require(l_script_FirstAncestor_0.AppExperienceActionRow);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local l_useDesignTokens_0 = require(l_Parent_0.DiscoveryStyleApi).useDesignTokens;
return function(v6)
    return v4.createElement(v2, {
        universeId = v6.universeId,
        launchExperienceEventContext = v6.launchExperienceEventContext,
        referralSource = v6.referralSource,
        launchSource = v6.launchSource,
        reportExperienceLaunched = v6.reportExperienceLaunched,
        entry = v6.entry,
        openGameDetails = v6.openGameDetails,
        height = v1.getPlayButtonHeight((l_useDesignTokens_0())),
        horizontalPadding = 0,
        verticalPadding = 0,
        fetchDelayInSeconds = v6.fetchDelayInSeconds
    });
end;


return {
    getTileHeight = function(v0, v1)
        return v1 * 0.5625 + (((v0.Global.Space_250 + v0.Global.Space_250) + v0.Global.Space_100) + v0.Global.Space_50);
    end,
    getFooterHeight = function(v2)
        return ((v2.Global.Space_250 + v2.Global.Space_250) + v2.Global.Space_100) + v2.Global.Space_50;
    end,
    getMetadataHeight = function(v3)
        return v3.Global.Space_250;
    end,
    getPlayButtonHeight = function(v4)
        return v4.Global.Size_450;
    end
};


local l_Parent_0 = script:FindFirstAncestor("GameTile").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.Otter);
ZoomAnimatedFrame = function(v3)
    local l_isZoomEnabled_0 = v3.isZoomEnabled;
    local v5 = v1.useRef(nil);
    if v5.current == nil then
        v5.current = v2.createSingleMotor(0);
    end;
    assert(v5.current, "zoomMotorRef should always exist; assert only needed for the linter");
    local v6, v7 = v1.useBinding(0);
    v1.useEffect(function()
        v5.current:onStep(v7);
    end, {});
    v1.useEffect(function()
        v5.current:setGoal(v2.spring(not l_isZoomEnabled_0 and 0 or 1, {
            frequency = not v3.reducedMotion and 6.5 or 200
        }));
    end, {
        l_isZoomEnabled_0
    });
    return v1.createElement("Frame", {
        Position = v6:map(function(v8)
            local v9 = v8 > 0.9 and 1 or v8;
            return UDim2.fromOffset((-v3.expansionOffsetX * v9) / 2, -v3.expansionOffsetTop * v9 - (not v3.reducedMotion and 0 or 12 + v3.expansionOffsetX / 2) * v9);
        end),
        Size = v6:map(function(v10)
            local v11 = v10 > 0.9 and 1 or v10;
            return UDim2.new(1, v3.expansionOffsetX * v11, 1, (v3.expansionOffsetTop * v11 + v3.expansionOffsetBottom * v11) + (not v3.reducedMotion and 0 or 12 + v3.expansionOffsetX) * v11);
        end),
        BackgroundTransparency = 1
    }, v3.children);
end;
return ZoomAnimatedFrame;


local _ = require(script.GameTileTypes);
local v1 = game:DefineFastFlag("LuaAppGameTileOTA2", false);
local v2 = game:DefineFastFlag("DisableDiscoveryOtaPackages", false);
if not v1 or not game:GetEngineFeature("RegisterPatchFix") then
    return require(script.starter);
else
    local l_requirePackage_0 = require(script.Parent.DiscoveryOtaPatch).requirePackage;
    if not v2 then
        return l_requirePackage_0("GameTile", script.starter, script.otaValidator, "gameTileOtaValidator");
    else
        return require(script.starter);
    end;
end;


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


local function v0(v1, v2)
    if v1 == nil then
        return true, "";
    else
        local v3 = type(v1);
        if v3 ~= type(v2) then
            return false, (("ota type failed to be a table; was type %*"):format((type(v2))));
        else
            if v3 == "table" then
                for v4, v5 in pairs(v1) do
                    local v6 = v2[v4];
                    if v6 == nil then
                        return false, (("ota missing key %*"):format(v4));
                    else
                        local v7 = type(v5);
                        if v7 ~= type(v6) then
                            return false, (("ota value mis-matched type; local type %* ~= ota type %*"):format(v7, (type(v6))));
                        elseif v7 == "table" then
                            local v8, v9 = v0(v5, v6);
                            if not v8 then
                                return v8, v9;
                            end;
                        end;
                    end;
                end;
            end;
            return true, "";
        end;
    end;
end;
return function(v10, v11)
    local v12, v13 = v0(v10.Flags, v11.Flags);
    if v12 then
        local v14, v15 = v0(v10.GameTileConstants, v11.GameTileConstants);
        if v14 then
            return true, "";
        else
            return false, (("GameTileConstants file failed with '%*'"):format(v15));
        end;
    else
        return false, (("Flags file failed with '%*'"):format(v13));
    end;
end;


local l_UserModel_0 = require(script:FindFirstAncestor("GameTile").Parent.UserLib).Models.UserModel;
local v1 = {
    [l_UserModel_0.PresenceType.IN_GAME] = 3,
    [l_UserModel_0.PresenceType.ONLINE] = 2,
    [l_UserModel_0.PresenceType.IN_STUDIO] = 1,
    [l_UserModel_0.PresenceType.OFFLINE] = 0
};
local function _(v2, v3)
    local v4 = false;
    if typeof(v2) == "number" then
        v4 = false;
        if typeof(v3) == "number" then
            v4 = v2 ~= v3;
        end;
    end;
    return v4;
end;
local function _(v6)
    local v7 = nil;
    if not (not v6 or not v6.presence) then
        v7 = v1[v6.presence];
    end;
    if v7 == nil then
        v7 = v1[l_UserModel_0.PresenceType.OFFLINE];
    end;
    return v7;
end;
return function(v9)
    return function(v10, v11)
        local v12 = nil;
        if not (not v10 or not v10.presence) then
            v12 = v1[v10.presence];
        end;
        if v12 == nil then
            v12 = v1[l_UserModel_0.PresenceType.OFFLINE];
        end;
        local l_v12_0 = v12;
        local v14 = nil;
        if not (not v11 or not v11.presence) then
            v14 = v1[v11.presence];
        end;
        if v14 == nil then
            v14 = v1[l_UserModel_0.PresenceType.OFFLINE];
        end;
        v12 = v14;
        if l_v12_0 == v12 then
            if v10.presence ~= l_UserModel_0.PresenceType.OFFLINE then
                local l_lastOnline_0 = v10.lastOnline;
                local l_lastOnline_1 = v11.lastOnline;
                v14 = false;
                if typeof(l_lastOnline_0) == "number" then
                    v14 = false;
                    if typeof(l_lastOnline_1) == "number" then
                        v14 = l_lastOnline_0 ~= l_lastOnline_1;
                    end;
                end;
                if v14 then
                    return v11.lastOnline < v10.lastOnline;
                end;
            end;
            return (v10[v9] or ""):lower() < (v11[v9] or ""):lower();
        else
            return v12 < l_v12_0;
        end;
    end;
end;


return {
    Flags = {
        getFFlagLuaAppSingleHoveredGridTile = require(script.Parent.Flags.getFFlagLuaAppSingleHoveredGridTile)
    },
    AppExperienceActionRow = require(script.Parent.AppExperienceActionRow),
    AppGameTile = require(script.Parent.AppGameTile),
    ExperienceFooter = require(script.Parent.Footer.ExperienceFooter),
    FriendIcon = require(script.Parent.Footer.FriendIcon),
    GameStats = require(script.Parent.Footer.GameStats),
    GameTileConstants = require(script.Parent.GameTileConstants),
    OpenCentralOverlayForPlacesList = require(script.Parent.OpenCentralOverlayForPlacesList),
    OpenSponsoredTooltip = require(script.Parent.OpenSponsoredTooltip),
    SponsoredGamesRecordClick = require(script.Parent.SponsoredGamesRecordClick),
    usePlayerCountText = require(script.Parent.Footer.usePlayerCountText),
    UserIconList = require(script.Parent.Footer.UserIconList),
    WideGameTileViewConfig = require(script.Parent.WideGameTileViewConfig),
    gameTileOtaValidator = require(script.Parent.gameTileOtaValidator),
    ["jest.config"] = script.Parent["jest.config"]
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameTile");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local _ = require(l_Parent_0.AppCommonLib);
local v4 = require(l_script_FirstAncestor_0.HoverTileCoordinator);
return function(v5, v6, v7, v8)
    local v9 = v8 or v4.default;
    local v10, v11 = v2.useState(false);
    v2.useEffect(function()
        if v7 then
            local function _(v12)
                local v13 = false;
                if v12 ~= nil then
                    v13 = v12 == v6;
                end;
                v11(v13);
            end;
            local l_hoveredKey_0 = v9.hoveredKey;
            local v16 = false;
            if l_hoveredKey_0 ~= nil then
                v16 = l_hoveredKey_0 == v6;
            end;
            v11(v16);
            l_hoveredKey_0 = v9.changed:connect(function(v17)
                local v18 = false;
                if v17 ~= nil then
                    v18 = v17 == v6;
                end;
                v11(v18);
            end);
            return function()
                if l_hoveredKey_0 ~= nil then
                    l_hoveredKey_0:disconnect();
                    l_hoveredKey_0 = nil;
                end;
            end;
        else
            return ;
        end;
    end, {
        v7,
        v6,
        v9
    });
    v2.useEffect(function()
        if v7 then
            local v19 = {};
            if v5.current ~= nil then
                table.insert(v19, v5.current.MouseLeave:Connect(function()
                    v9:cancelHover(v6);
                end));
                table.insert(v19, v5.current.MouseEnter:Connect(function()
                    v9:requestHover(v6);
                end));
            end;
            return function()
                for _, v21 in v19, nil, nil do
                    v21:Disconnect();
                end;
            end;
        else
            return ;
        end;
    end, {
        v6,
        v5,
        v7,
        v9
    });
    v2.useEffect(function()
        return function()
            if v6 then
                v9:cancelHover(v6);
            end;
        end;
    end, {
        v6,
        v9
    });
    return v7 and v10;
end;


return {
    PlayGame = "PlayGame",
    FloodCheckThresholdMet = "FloodCheckThresholdMet",
    AssetNotVoteable = "AssetNotVoteable"
};


return {
    VotedUp = "VotedUp",
    VotedDown = "VotedDown",
    NotVoted = "NotVoted"
};


return {
    ReasonForNotVoteable = require(script.ReasonForNotVoteable),
    VoteStatus = require(script.VoteStatus)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameVotesRodux");
local l_Immutable_0 = require(l_script_FirstAncestor_0.Parent.AppCommonLib).Immutable;
local v2 = require(l_script_FirstAncestor_0.GameVotes.SetGameVotes);
return function(v3, v4)
    v3 = v3 or {};
    assert(v3, "");
    if v4.type == v2.name then
        v3 = l_Immutable_0.Set(v3, v4.universeId, {
            upVotes = v4.upVotes,
            downVotes = v4.downVotes
        });
    end;
    return v3;
end;


local l_Url_0 = require(script:FindFirstAncestor("GameVotesRodux").Parent.Http).Url;
return function(v1, v2)
    assert(type(v2) == "string", "GetGameVotes request expects universeId to be a string");
    return v1(string.format("%sv1/games/%s/votes", l_Url_0.GAME_URL, v2), "GET");
end;


return require(script:FindFirstAncestor("GameVotesRodux").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2)
    assert(type(v0) == "string", "SetGameVotes: universeId must be a string");
    assert(type(v1) == "number", "SetGameVotes: upVotes must be a number");
    assert(type(v2) == "number", "SetGameVotes: downVotes must be a number");
    return {
        universeId = v0,
        upVotes = v1,
        downVotes = v2
    };
end);


return {
    FetchGameVotes = require(script.FetchGameVotes),
    GameVotes = require(script.GameVotes)
};


return require(script:FindFirstAncestor("GameVotesRodux").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    assert(type(v0) == "string", "ClearUserGameVotes: universeId must be a string");
    return {
        universeId = v0
    };
end);


local l_Url_0 = require(script:FindFirstAncestor("GameVotesRodux").Parent.Http).Url;
return function(v1, v2)
    assert(type(v2) == "string", "GetUserGameVotes request expects universeId to be a string");
    return v1(string.format("%sv1/games/%s/votes/user", l_Url_0.GAME_URL, v2), "GET");
end;


return require(script:FindFirstAncestor("GameVotesRodux").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3)
    assert(type(v0) == "string", "SetUserGameVotes: universeId must be a string");
    assert(type(v1) == "boolean", "SetUserGameVotes: canVote must be a boolean");
    assert(type(v2) == "string", "SetUserGameVotes: userVote must be a string");
    assert(type(v3) == "string", "SetUserGameVotes: reasonForNotVoteable must be a string");
    return {
        universeId = v0,
        canVote = v1,
        userVote = v2,
        reasonForNotVoteable = v3
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GameVotesRodux");
local l_Immutable_0 = require(l_script_FirstAncestor_0.Parent.AppCommonLib).Immutable;
local v2 = require(l_script_FirstAncestor_0.UserGameVotes.SetUserGameVotes);
local v3 = require(l_script_FirstAncestor_0.UserGameVotes.ClearUserGameVotes);
return function(v4, v5)
    v4 = v4 or {};
    if v5.type == v2.name then
        return (l_Immutable_0.Set(v4, v5.universeId, {
            canVote = v5.canVote,
            userVote = v5.userVote,
            reasonForNotVoteable = v5.reasonForNotVoteable
        }));
    else
        if v5.type == v3.name then
            v4 = l_Immutable_0.Set(v4, v5.universeId, nil);
        end;
        return v4;
    end;
end;


return {
    ClearUserGameVotes = require(script.ClearUserGameVotes),
    FetchUserGameVotes = require(script.FetchUserGameVotes),
    PatchUserVotes = require(script.PatchUserVotes),
    UserGameVotes = require(script.UserGameVotes)
};


return {
    Enums = require(script.Enums),
    GameVotes = require(script.GameVotes),
    UserGameVotes = require(script.UserGameVotes),
    ["jest.config"] = script["jest.config"]
};


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


local _ = require(script.Parent.ChallengeHeaders);
local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local v2 = require(l_script_FirstAncestor_0.Utils.constants);
local v3 = require(l_script_FirstAncestor_0.Utils.Base64);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_NotificationService_0 = game:GetService("NotificationService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_UrlBuilder_0 = require(l_Parent_0.UrlBuilder).UrlBuilder;
local function v12(v8)
    local v9 = "";
    for v10, v11 in pairs(v8) do
        v9 = v9 .. string.format("%s=%s&", v10, v11);
    end;
    return v9;
end;
local function _()
    if not (string.lower(l_NotificationService_0.SelectedTheme) == "dark") then
        return "false";
    else
        return "true";
    end;
end;
local function v16()
    local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
    local v15 = "unknown";
    if l_l_UserInputService_0_Platform_0 == Enum.Platform.Android then
        return "android";
    elseif l_l_UserInputService_0_Platform_0 == Enum.Platform.IOS then
        return "ios";
    elseif l_l_UserInputService_0_Platform_0 == Enum.Platform.Windows then
        return "windows";
    elseif l_l_UserInputService_0_Platform_0 == Enum.Platform.OSX then
        return "osx";
    elseif l_l_UserInputService_0_Platform_0 == Enum.Platform.UWP then
        return "uwp";
    else
        if l_l_UserInputService_0_Platform_0 == Enum.Platform.XBoxOne then
            v15 = "xbox";
        end;
        return v15;
    end;
end;
return function(v17)
    assert(string.len(v17.challengeId) > 0, "challenge id does not exist");
    assert(v17.challengeType.typed ~= nil, "challenge is of an unknown type");
    return l_UrlBuilder_0.fromString("www:challenge/cdn/hybrid?" .. v12({
        [v2.appTypeQueryParam] = v16(),
        [v2.challengeTypeQueryParam] = v2.genericChallengeType,
        [v2.darkModeQueryParam] = not (string.lower(l_NotificationService_0.SelectedTheme) == "dark") and "false" or "true"
    }) .. v12({
        [v2.genericChallengeIdQueryParam] = v17.challengeId,
        [v2.genericChallengeTypeQueryParam] = v17.challengeType.raw,
        [v2.challengeMetadataJsonQueryParam] = v3.EncodeUrl(v17.challengeMetadata.decoded)
    }))();
end;


local v0 = require(script:FindFirstAncestor("GenericChallenges").Types.JavascriptHybrid);
local l_HttpService_0 = game:GetService("HttpService");
return function(v2)
    return function(v3)
        local v4 = l_HttpService_0:JSONDecode(v3);
        if not (not (v4.moduleID == v0.Module.Navigation and v4.functionName == v0.Function.navigateToFeature) or not v4.params) and v4.params.params then
            local l_params_0 = v4.params.params;
            if l_params_0.feature == v0.Feature.ChallengeParsed and l_params_0.data.parsed == false then
                v2.OnChallengeLoadFailed(l_params_0);
                return ;
            elseif l_params_0.feature == v0.Feature.ChallengeInitialized and l_params_0.data.initialized == false then
                v2.OnChallengeLoadFailed(l_params_0);
                return ;
            else
                for _, v7 in v2.Hooks, nil, nil do
                    if v7(l_params_0) then
                        return ;
                    end;
                end;
                if l_params_0.feature == v0.Feature.ChallengeCompleted then
                    v2.OnChallengeCompleted(l_params_0);
                    return ;
                elseif l_params_0.feature == v0.Feature.ChallengeInvalidated then
                    v2.OnChallengeInvalidated(l_params_0);
                    return ;
                else
                    if v4.params.params.feature == v0.Feature.ChallengeDisplayed and v2.OnChallengeDisplayed ~= nil then
                        v2.OnChallengeDisplayed(l_params_0);
                    end;
                    return ;
                end;
            end;
        else
            return ;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Types.ErrorKind);
local v3 = require(l_Parent_0.LuauPolyfill);
local v4 = {};
v4.__index = v4;
v4.new = function(v5, v6)
    return (setmetatable({
        kind = v5,
        data = v6
    }, v4));
end;
v4.match = function(v7)
    return v3.instanceof(v7, v4);
end;
v4.matchAbandoned = function(v8)
    return v4.match(v8) and v8.kind == v2.Abandoned;
end;
return v4;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local v1 = require(l_script_FirstAncestor_0.Utils.constants);
local v2 = require(l_script_FirstAncestor_0.Types.GenericType);
local v3 = require(l_script_FirstAncestor_0.Utils.Base64);
local l_HttpService_0 = game:GetService("HttpService");
local v5 = {};
v5.__index = v5;
v5.new = function(v6)
    local v7 = {
        challengeId = v6[v1.challengeIdHeader]
    };
    local v8 = v3.Decode(v6[v1.challengeMetadataHeader]);
    v7.challengeMetadata = {
        raw = v6[v1.challengeMetadataHeader],
        decoded = v8,
        typed = l_HttpService_0:JSONDecode(v8)
    };
    v7.challengeType = {
        raw = v6[v1.challengeTypeHeader],
        typed = v2.fromRawValue(v6[v1.challengeTypeHeader])
    };
    return (setmetatable(v7, v5));
end;
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local v1 = require(script.Parent.BuildHybridCallback);
local _ = require(script.Parent.ChallengeWebView);
local v3 = require(script.Parent.ChallengeError);
local v4 = require(l_script_FirstAncestor_0.Utils.completionDataToRawHeaders);
local _ = require(l_script_FirstAncestor_0.Parent.LuauPolyfill);
local v6 = require(l_script_FirstAncestor_0.Types.ErrorKind);
return function(v7, v8, v9, v10, v11, v12, v13)
    return v1({
        Hooks = {},
        OnChallengeLoadFailed = function(_)
            if v11 ~= nil then
                v11();
            end;
            v13(v3.new(v6.LoadFailed, {
                challengeType = v8
            }));
            v9:close();
        end,
        OnChallengeInvalidated = function(v15)
            if v11 ~= nil and v15.data ~= nil then
                v11(v15.data);
            end;
            v13(v3.new(v6.Invalidated, v15.data));
            v9:close();
        end,
        OnChallengeCompleted = function(v16)
            if (v16.data ~= nil and v16.data.challengeType ~= nil) and v16.data.metadata ~= nil then
                v12(v10(v4({
                    challengeId = v7,
                    challengeType = v16.data.challengeType,
                    metadata = v16.data.metadata
                })));
            end;
            v9:close();
        end
    });
end;


local v0 = require(script:FindFirstAncestor("GenericChallenges").Utils.constants);
return function(v1, v2)
    local v3 = false;
    if v1 == v0.forbiddenStatusCode then
        v3 = false;
        if v2[v0.challengeTypeHeader] ~= nil then
            v3 = false;
            if v2[v0.challengeIdHeader] ~= nil then
                v3 = v2[v0.challengeMetadataHeader] ~= nil;
            end;
        end;
    end;
    return v3;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Utils.addRawValueMethodToEnum);
local v3 = require(l_Parent_0.enumerate);
local v4 = {
    Unknown = "Unknown",
    Invalidated = "Invalidated",
    Abandoned = "Abandoned",
    LoadFailed = "LoadFailed"
};
local v5 = v3(script.Name, v4);
v2(v5, v4);
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GenericChallenges");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Utils.addRawValueMethodToEnum);
local v3 = require(l_Parent_0.enumerate);
local v4 = {
    Captcha = "captcha",
    TwoStepVerification = "twostepverification",
    SecurityQuestions = "securityquestions",
    Reauthentication = "reauthentication",
    ProofOfWork = "proofofwork",
    ForceAuthenticator = "forceauthenticator",
    ForceTwoStepVerification = "forcetwostepverification",
    DeviceIntegrity = "deviceintegrity",
    DeviceAccessToken = "deviceaccesstoken"
};
local v5 = v3(script.Name, v4);
v2(v5, v4);
return v5;


return {
    ErrorKind = require(script.ErrorKind),
    GenericType = require(script.GenericType),
    JavascriptHybrid = require(script.JavascriptHybrid)
};


local v0 = require(script.Parent.constants);
local v1 = require(script.Parent.Base64);
local l_HttpService_0 = game:GetService("HttpService");
return function(v3)
    assert(v3.challengeId ~= nil, "challenge id must not be nil");
    assert(v3.challengeType ~= nil, "challenge type must not be nil");
    assert(v3.metadata ~= nil, "metadata must not be nil");
    return {
        [v0.challengeIdHeader] = v3.challengeId,
        [v0.challengeTypeHeader] = v3.challengeType,
        [v0.challengeMetadataHeader] = v1.Encode(l_HttpService_0:JSONEncode(v3.metadata))
    };
end;


return {
    appTypeQueryParam = "app-type",
    challengeTypeQueryParam = "challenge-type",
    darkModeQueryParam = "dark-mode",
    genericChallengeIdQueryParam = "generic-challenge-id",
    genericChallengeTypeQueryParam = "generic-challenge-type",
    challengeMetadataJsonQueryParam = "challenge-metadata-json",
    genericChallengeType = "generic",
    forbiddenStatusCode = 403,
    challengeTypeHeader = "rblx-challenge-type",
    challengeIdHeader = "rblx-challenge-id",
    challengeMetadataHeader = "rblx-challenge-metadata"
};


local l_Parent_0 = script:FindFirstAncestor("GenericChallenges").Parent;
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Localization_0 = require(l_Parent_0.RobloxAppLocales).Localization;
local l_localizeStrings_0 = require(l_Parent_0.Localization).localizeStrings;
return function(v4)
    local v5 = "Feature.AccountSettings.Heading.Tab.Security";
    if v4 ~= nil then
        v5 = v4;
    end;
    return l_localizeStrings_0(l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId), {
        title = v5
    }).title;
end;


return {
    Types = require(script.Types),
    Middleware = require(script.Middleware),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "GenericChallenges",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local l_Players_0 = game:GetService("Players");
local v1 = {
    ERR_RA_CHARACTER = "ERR_RA_CHARACTER",
    ERR_RA_HUMPLAYER = "ERR_RA_HUMPLAYER",
    ERR_RA_HUMOBJ = "ERR_RA_HUMOBJ",
    ERR_RA_HUMDESC = "ERR_RA_HUMDESC",
    OK = "OK"
};
local function v6(v2)
    local v3 = {};
    for _, v5 in ipairs(v2) do
        table.insert(v3, {
            AccessoryType = v5.AccessoryType.Value,
            AssetId = v5.AssetId,
            IsLayered = v5.IsLayered,
            Order = v5.Order,
            Puffiness = v5.Puffiness
        });
    end;
    return v3;
end;
return function(v7)
    local l_l_Players_0_PlayerByUserId_0 = l_Players_0:GetPlayerByUserId(v7);
    local v9 = {
        BackAccessory = "",
        BodyTypeScale = 0,
        ClimbAnimation = 0,
        DepthScale = 0,
        Face = 0,
        FaceAccessory = "",
        FallAnimation = 0,
        FrontAccessory = "",
        GraphicTShirt = 0,
        HairAccessory = "",
        HatAccessory = "",
        Head = 0,
        HeadColor = {
            0,
            0,
            0
        },
        HeadScale = 0,
        HeightScale = 0,
        IdleAnimation = 0,
        JumpAnimation = 0,
        LeftArm = 0,
        LeftArmColor = {
            0,
            0,
            0
        },
        LeftLeg = 0,
        LeftLegColor = {
            0,
            0,
            0
        },
        MoodAnimation = 0,
        NeckAccessory = "",
        Pants = 0,
        ProportionScale = 0,
        RightArm = 0,
        RightArmColor = {
            0,
            0,
            0
        },
        RightLeg = 0,
        RightLegColor = {
            0,
            0,
            0
        },
        RunAnimation = 0,
        Shirt = 0,
        ShouldersAccessory = "",
        SwimAnimation = 0,
        Torso = 0,
        TorsoColor = {
            0,
            0,
            0
        },
        WaistAccessory = "",
        WalkAnimation = 0,
        WidthScale = 0
    };
    if l_l_Players_0_PlayerByUserId_0 then
        local l_Character_0 = l_l_Players_0_PlayerByUserId_0.Character;
        if not l_Character_0 then
            return v9, v1.ERR_RA_CHARACTER;
        else
            local v11 = l_Character_0:WaitForChild("Humanoid", 1);
            if v11 then
                local v12 = nil;
                local v13 = nil;
                local l_status_0, l_result_0 = pcall(function()
                    return (v11:GetAppliedDescription());
                end);
                v13 = l_status_0;
                v12 = l_result_0;
                if v13 then
                    if v12 then
                        l_status_0 = 0;
                        do
                            local l_v12_0 = v12;
                            l_result_0 = function(v17)
                                if typeof(l_v12_0[v17]) == "Color3" then
                                    v9[v17] = {
                                        l_v12_0[v17].R,
                                        l_v12_0[v17].G,
                                        l_v12_0[v17].B
                                    };
                                    return ;
                                else
                                    v9[v17] = l_v12_0[v17];
                                    return ;
                                end;
                            end;
                            for v18, _ in pairs(v9) do
                                if not pcall(l_result_0, v18) then
                                    l_status_0 = l_status_0 + 1;
                                end;
                            end;
                            local l_status_1, l_result_1 = pcall(l_v12_0.GetAccessories, l_v12_0, false);
                            if not l_status_1 then
                                l_status_0 = l_status_0 + 1;
                            else
                                local l_status_2, l_result_2 = pcall(v6, l_result_1);
                                if not l_status_2 then
                                    l_status_0 = l_status_0 + 1;
                                else
                                    v9.AccessoryBlob = l_result_2;
                                end;
                            end;
                            v9.FieldErrorCount = l_status_0;
                        end;
                        return v9, v1.OK;
                    else
                        return v9, v1.ERR_RA_HUMDESC;
                    end;
                else
                    return v9, v1.ERR_RA_HUMOBJ;
                end;
            else
                return v9, v1.ERR_RA_HUMOBJ;
            end;
        end;
    else
        return v9, v1.ERR_RA_HUMPLAYER;
    end;
end;


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


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


local _ = require(script:FindFirstAncestor("GraphQLServer").Parent.LuauPolyfill);
return {};


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local v1 = require(l_Parent_0.Promise);
local l_Error_0 = require(l_Parent_0.LuauPolyfill).Error;
local l_stringify_0 = require(l_Parent_0.GraphQL).stringify;
local v4 = {};
v4.__index = v4;
v4.new = function(v5)
    local v6 = {
        body = v5
    };
    setmetatable(v6, v4);
    return v6;
end;
v4.text = function(v7)
    return v1.new(function(v8, v9)
        local l_status_0, l_result_0 = pcall(function()
            if v7.body.errors then
                for v10, v11 in v7.body.errors, nil, nil do
                    if type(v11) == "table" and v11.name == "GraphQLError" then
                        v7.body.errors[v10] = {
                            message = v11.message,
                            locations = v11.locations,
                            extensions = v11.extensions,
                            path = v11.path
                        };
                    end;
                end;
            end;
            return l_stringify_0(v7.body);
        end);
        if not l_status_0 then
            v9(l_Error_0.new(l_result_0));
            return ;
        else
            v8(l_result_0);
            return ;
        end;
    end);
end;
return v4;


return function(v0, v1)
    return {
        RequestInternal = function(_)
            return {
                Start = function(_, v4)
                    v4(v0, v1);
                end
            };
        end
    };
end;


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local l_MakeOmniRecommendationsRequest_0 = require(l_Parent_0.GraphQlShared).MakeOmniRecommendationsRequest;
local _ = require(l_Parent_0.LuauPolyfill);
local _ = require(l_Parent_0.Fetch);
local _ = function(v4)
    return function(v5, _, v7)
        return v4(v5, {
            body = v7.postBody,
            method = "POST",
            headers = {
                ["Content-Type"] = "application/json",
                Accept = "application/json"
            }
        });
    end;
end;
return function(v9)
    local function v13(v10, _, v12)
        return v9(v10, {
            body = v12.postBody,
            method = "POST",
            headers = {
                ["Content-Type"] = "application/json",
                Accept = "application/json"
            }
        });
    end;
    return function(v14, v15, v16, v17)
        return l_MakeOmniRecommendationsRequest_0(v13, v14, v15, v16, v17);
    end;
end;


return {
    makeThumbnailsDataLoader = require(script.makeThumbnailsDataLoader),
    userProfilesDataLoader = require(script.userProfilesDataLoader)
};


local l_DataLoader_0 = require(script:FindFirstAncestor("GraphQLServer").Parent.DataLoader).DataLoader;
local l_batchFetchThumbnailsByUniverseId_0 = require(script.Parent.Parent.connectors.ExperienceConnector).batchFetchThumbnailsByUniverseId;
local v2 = {
    batchSize = 100,
    batchDelay = 0
};
return function(v3, v4)
    local v5 = v4 or v2;
    return l_DataLoader_0.new(function(v6)
        return l_batchFetchThumbnailsByUniverseId_0(v6, v3);
    end, {
        maxBatchSize = v5.batchSize,
        batchScheduleFn = function(v7)
            task.delay(v5.batchDelay, v7);
        end
    });
end;


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local l_DataLoader_0 = require(l_Parent_0.DataLoader).DataLoader;
local v2 = require(l_Parent_0.Cryo);
local l_fetchProfilesByIds_0 = require(script.Parent.Parent.connectors.UserProfileConnector).fetchProfilesByIds;
local v4 = {};
v4.__index = v4;
local v5 = game:DefineFastInt("UserProfilesDataLoaderClearTime_v1", 15);
local l_getFFlagRemoveDataLoaderTimer_0 = require(l_Parent_0.SharedFlags).getFFlagRemoveDataLoaderTimer;
v4.new = function()
    local v7 = {
        loader = nil,
        lastTime = 0,
        fieldsSet = {},
        dataLoaderOptions = {
            batchSize = 50,
            batchDelay = 0
        }
    };
    setmetatable(v7, v4);
    return v7;
end;
convertToSet = function(v8)
    local v9 = {};
    for _, v11 in v8, nil, nil do
        v9[v11] = true;
    end;
    return v9;
end;
v4.getFields = function(v12)
    local v13 = {};
    for v14, _ in v12.fieldsSet, nil, nil do
        table.insert(v13, v14);
    end;
    return v13;
end;
v4.makeDataLoader = function(v16, v17, v18, v19)
    v16.fieldsSet = v2.Dictionary.join(v16.fieldsSet, convertToSet(v18));
    local v20 = v19 or v16.dataLoaderOptions;
    return l_DataLoader_0.new(function(v21)
        return l_fetchProfilesByIds_0(v21, v16:getFields(), v17);
    end, {
        cache = true,
        maxBatchSize = v20.batchSize,
        batchScheduleFn = function(v22)
            task.delay(v20.batchDelay, v22);
        end
    });
end;
v4.getLoader = function(v23, v24, v25, v26)
    v23.fieldsSet = v2.Dictionary.join(v23.fieldsSet, convertToSet(v25));
    local v27 = os.clock();
    local v28 = if not l_getFFlagRemoveDataLoaderTimer_0() then v5 < v27 - v23.lastTime else false;
    if not (v23.loader and not v28) then
        v23.lastTime = v27;
        v23.loader = v23:makeDataLoader(v24, v25, v26);
    end;
    return v23.loader;
end;
return v4;


return {
    alias = "alias",
    combinedName = "combinedName",
    contactName = "contactName",
    displayName = "displayName",
    username = "username",
    platformName = "platformName"
};


return {
    UserProfileNestedFields = require(script.UserProfileNestedFields),
    UserProfileNameFields = require(script.UserProfileNameFields)
};


local _ = require(script:FindFirstAncestor("GraphQLServer").Parent.LuauPolyfill);
return {
    Access = {
        Actionable = "Actionable",
        Denied = "Denied",
        Granted = "Granted",
        Pending = "Pending"
    },
    EventStatus = {
        Active = "active",
        Cancelled = "cancelled",
        Moderated = "moderated",
        Unpublished = "unpublished"
    },
    HostType = {
        Group = "group",
        User = "user"
    },
    MediaAssetType = {
        Image = "Image",
        YouTubeVideo = "YouTubeVideo"
    },
    PresenceType = {
        InGame = "InGame",
        InStudio = "InStudio",
        Offline = "Offline",
        Online = "Online"
    },
    RecourseActions = {
        AddedEmail = "AddedEmail",
        Email = "Email",
        GovernmentId = "GovernmentId",
        Phone = "Phone"
    },
    RsvpStatus = {
        Going = "going",
        MaybeGoing = "maybeGoing",
        None = "none",
        NotGoing = "notGoing"
    },
    ShareLinkType = {
        ExperienceDetails = "ExperienceDetails",
        ExperienceInvite = "ExperienceInvite",
        FriendInvite = "FriendInvite",
        Home = "Home",
        NotificationExperienceInvite = "NotificationExperienceInvite",
        PrivateServer = "PrivateServer",
        Profile = "Profile",
        ScreenshotInvite = "ScreenshotInvite",
        Server = "Server"
    }
};


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
return {
    typeDefs = require(l_Parent_0.GraphQL).print((require(l_Parent_0.GraphqlToolsMerge).mergeTypeDefs((require(script.luaTypeDefs))))),
    resolvers = require(script.resolvers),
    generatedTypes = require(script.generatedTypes),
    dataLoaders = require(script.dataLoaders),
    mocks = require(script.mocks)
};


return "    enum MediaAssetType {\n        Image\n        YouTubeVideo\n    }\n\n    type ExperienceMedia {\n        assetTypeId: ID\n        assetType: MediaAssetType\n        approved: Boolean\n        imageId: ID\n        videoHash: String\n        videoTitle: String\n        altText: String\n    }\n\n    type ExperienceCreator {\n        id: ID String\n        type: String\n        isRNVAccount: Boolean\n        hasVerifiedBadge: Boolean\n    }\n\n    type ExperienceDetails {\n        id: ID ID\n        name: String\n        description: String\n        sourceName: String\n        sourceDescription: String\n        creator: ExperienceCreator\n        price: Int\n        allowedGearGenres: [ String ]\n        allowedGearCategories: [ String ]\n        isGenreEnforced: Boolean\n        copyingAllowed: Boolean\n        playing: Float\n        visits: Float\n        maxPlayers: Int\n        created: String # $date-time\n        updated: String # $date-time\n        studioAccessToApisAllowed: Boolean\n        createVipServersAllowed: Boolean\n        universeAvatarType: Int\n        genre: String\n        isAllGenre: Boolean\n        isFavoritedByUser: Boolean\n        favoritedCount: Float\n    }\n\n    type Experience {\n        universeId: ID String\n        name: String Int\n        totalDownVotes: Int\n        playerCount: Int\n        description: String\n        under9: Boolean\n        under13: Boolean\n        adId: String\n        isSponsored: Boolean\n        # On mobile, this may just be one thumbnail, on desktop this can be\n        # multiple thumbnails revealed on hover.\n        thumbnails: [Media]\n    }\n\n    type Query {\n        experienceThumbnails(universeIds: [String): [Experience]\n    }\n";


return "\tinterface Friendship {\n\t\tid: ID ID ID Boolean\n\t\tdisplayName: String ID UserPresence\n\t}\n\n\ttype AllFriendsPage {\n\t\ttargetUserId: ID String\n\t\tprevCursor: String\n\t\tnextCursor: String\n\t\tfriends: [Friend]\n\t}\n\n\ttype Query {\n\t\tallFriendsByUserId(userId: ID Int, pageLimit: Int, pageCursor: String): AllFriendsPage\n\t\tonlineFriendsByUserId(userId: ID Int): [Friend]\n\t}\n";


return "  # TODO: expand this type to include more metadata, e.g. Enum MediaType.\n  # In the future, this type should support data for videos, selecting\n  # images of different resolution/dpi, etc.\n  type Media {\n    url: String\n  }\n";


return "  scalar JSONObject\n\n  type OmniFeed {\n    metadata: OmniFeedMetadata\n    pageType: String\n    sortsExpirationTime: Int\n    nextPageToken: String\n    isSessionExpired: Boolean\n    # recommendationsId is used to post session data to the recommendations service.\n    # In the future, this may be replaced with a Recommendation type that contains\n    # more metadata, e.g. for IXP.\n    recommendationsId: String\n    globalLayoutData: JSONObject\n    omniSessionId: String\n    sorts: [OmniFeedItem]\n  }\n\n  # Provides a compatibility layer with Rodux.\n  # This should eventually be removed in favor of merging data into the FeedItemContent\n  type OmniFeedMetadata {\n    GameJSON: JSONObject @deprecated(reason: \"Fetch game metadata from OmniFeedItem instead. Scheduled for deprecation on 2023-01-30\")\n    CatalogAssetJSON: JSONObject\n    CatalogBundleJSON: JSONObject\n    RecommendedFriendJSON: JSONObject\n  }\n\n  type OmniFeedItem {\n    topicId: String\n    topic: String\n    topicLayoutData: JSONObject\n    treatmentType: String\n    recommendations: [OmniFeedRecommendation]\n    # In the future, the OmniFeedItem may also include friends, assets, etc.\n    # These can be added as nullable types, or split out into separate\n    # implementations of a generic FeedItem interface.\n    experiences: [Experience]\n  }\n\n  type OmniFeedRecommendation {\n    contentType: String\n    contentId: String\n    contentMetadata: JSONObject\n  }\n\n  type OmniFeedItemWithMetadata {\n    metadata: OmniFeedMetadata\n    sort: OmniFeedItem\n  }\n\n  input OmniFeedRecommendationDescriptor {\n    contentId: String\n    contentType: String\n  }\n\n  type Query {\n    omniFeed(sessionId: String, pageType: String, nextPageToken: String, supportedTreatmentTypes: [String]): OmniFeed\n    omniFeedItem(sortId: String OmniFeedItem\n    refreshOmniFeedItem(sessionId: String String [OmniFeedRecommendationDescriptor]): OmniFeedItemWithMetadata\n  }\n";


return "    enum PresenceType {\n        InGame,\n        Online,\n        InStudio,\n        Offline,\n    }\n\n    interface Presence {\n        userPresenceType: PresenceType,\n        lastLocation: String,\n        lastOnline: String\n        gameId: String,\n        placeId: String,\n        rootPlaceId: String,\n        universeId: String,\n    }\n\n    type UserPresence implements Presence {\n        id: ID PresenceType,\n        lastLocation: String,\n        lastOnline: String\n        gameId: String,\n        placeId: String,\n        rootPlaceId: String,\n        universeId: String,\n    }\n";


return "\ttype MutualFriend implements User {\n\t\tid: ID String String ID [MutualFriend Boolean ID [ProfileInsights [String] Int, pageId: String): ProfileInsightsPages\n\t\tprofilesInsightsByUserIds(userIds: [String] Int): [ProfileInsights]\n\t}\n";


return "\t enum ShareLinkType {\n\t\tExperienceInvite,\n\t\tFriendInvite,\n\t\tHome,\n\t\tProfile,\n\t\tNotificationExperienceInvite,\n\t\tScreenshotInvite,\n\t\tPrivateServer,\n\t\tServer,\n\t\tExperienceDetails,\n\t }\n\n\tinterface ShareLink {\n\t\tlinkId: ID String ShareLinkType String ID String ShareLinkType String ExperienceDetailsLink\n\t}\n";


return "  interface User {\n    id: ID String ID String String User ID User\n  }\n";


return "\ttype Names {\n\t\talias: String\n\t\tcombinedName: String\n\t\tcontactName: String\n\t\tdisplayName: String\n\t\tusername: String\n\t\tplatformName: String\n\t}\n\n\ttype UserProfile implements User {\n\t\tid: ID String Names\n\t\tplatformProfileId: String\n\t}\n\n\ttype Query {\n\t\tuserProfiles(userIds: [String] [UserProfile]\n\t}\n";


return {
    require(script.User),
    require(script.ProfileInsights),
    require(script.Experience),
    require(script.Media),
    require(script.OmniFeed),
    require(script.VirtualEvent),
    require(script.UserProfile),
    require(script.AmpUpsell),
    require(script.Friends),
    require(script.Presence),
    require(script.ShareLink)
};


local _ = require(script:FindFirstAncestor("GraphQLServer").graphql.generatedTypes);
return function(v1)
    local v2 = DateTime.now();
    local v3 = DateTime.fromUnixTimestamp(v2.UnixTimestamp + 86400);
    return {
        id = v1,
        title = "Event Name",
        description = "Event description goes here...",
        host = {
            hostType = "user",
            hostId = "1",
            hostName = "Roblox",
            hasVerifiedBadge = true
        },
        eventTime = {
            startUtc = v2:ToIsoDate(),
            endUtc = v3:ToIsoDate(),
            startTime = v2,
            endTime = v3
        },
        universeId = "3531439676",
        eventStatus = "active",
        createdTime = v2,
        updatedTime = v2,
        userRsvpStatus = "none",
        experienceDetails = {
            id = "3531439676",
            name = "Experience Name",
            playing = 50000
        },
        rsvpCounters = {
            going = 2500,
            notGoing = 0,
            none = 0,
            maybeGoing = 0
        },
        rsvps = {
            {
                userId = "957765952",
                rsvpStatus = "going"
            },
            {
                userId = "35392",
                rsvpStatus = "going"
            },
            {
                userId = "4416634",
                rsvpStatus = "going"
            },
            {
                userId = "1893522417",
                rsvpStatus = "going"
            },
            {
                userId = "1343930",
                rsvpStatus = "going"
            },
            {
                userId = "29819622",
                rsvpStatus = "notGoing"
            },
            {
                userId = "1668748746",
                rsvpStatus = "notGoing"
            },
            {
                userId = "308199922",
                rsvpStatus = "notGoing"
            }
        }
    };
end;


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


local v0 = {};
local v1 = require(script.Parent.Parent.connectors.UserConnector);
local l_findUserById_0 = v1.findUserById;
local l_findMe_0 = v1.findMe;
v0.default = {
    findUserById = function(_, v5)
        return l_findUserById_0(v5);
    end,
    findMe = function(_)
        return l_findMe_0();
    end
};
return v0;


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local v1 = require(l_Parent_0.Promise);
local l_Array_0 = require(l_Parent_0.LuauPolyfill).Array;
local _ = require(script.Parent.Parent.generatedTypes);
return {
    Experience = {
        thumbnails = function(v4, _, v6)
            local l_thumbnails_0 = v6.dataLoaders.thumbnails;
            if l_thumbnails_0 then
                return (l_thumbnails_0:load(v4.universeId):andThen(function(v8)
                    if v8 then
                        return {
                            {
                                url = v8.imageUrl
                            }
                        };
                    else
                        return {};
                    end;
                end):catch(function()
                    return {};
                end));
            else
                return v1.resolve({});
            end;
        end
    },
    Query = {
        experienceThumbnails = function(_, v10)
            return l_Array_0.map(v10.universeIds, function(v11)
                return {
                    universeId = v11
                };
            end);
        end
    }
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GraphQLServer");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_GraphQLError_0 = require(l_script_FirstAncestor_0.Parent.GraphQL).GraphQLError;
local _ = require(l_script_FirstAncestor_0.graphql.generatedTypes);
local _ = require(l_Parent_0.LuauPolyfill);
local v5 = require(l_script_FirstAncestor_0.graphql.connectors.FriendsConnector);
local l_getAllFriendsByUserId_0 = v5.getAllFriendsByUserId;
local l_getOnlineFriendsByUserId_0 = v5.getOnlineFriendsByUserId;
local function _(v8)
    if not v8 then
        return "";
    else
        return (tostring(v8));
    end;
end;
return {
    UserPresence = {
        id = function(v10)
            return v10.id;
        end,
        userPresenceType = function(v11)
            return v11.userPresence.UserPresenceType;
        end,
        gameId = function(v12)
            local l_gameInstanceId_0 = v12.userPresence.gameInstanceId;
            if not l_gameInstanceId_0 then
                return "";
            else
                return (tostring(l_gameInstanceId_0));
            end;
        end,
        placeId = function(v14)
            local l_placeId_0 = v14.userPresence.placeId;
            if not l_placeId_0 then
                return "";
            else
                return (tostring(l_placeId_0));
            end;
        end,
        rootPlaceId = function(v16)
            local l_rootPlaceId_0 = v16.userPresence.rootPlaceId;
            if not l_rootPlaceId_0 then
                return "";
            else
                return (tostring(l_rootPlaceId_0));
            end;
        end,
        universeId = function(v18)
            local l_universeId_0 = v18.userPresence.universeId;
            if not l_universeId_0 then
                return "";
            else
                return (tostring(l_universeId_0));
            end;
        end,
        lastLocation = function(v20)
            return v20.userPresence.lastLocation;
        end,
        lastOnline = function(v21)
            return v21.userPresence.lastOnline;
        end
    },
    Friend = {
        targetUserId = function(_, _, _, v25)
            return v25.variableValues.userId;
        end,
        displayName = function()
            return l_GraphQLError_0.new("The displayName field is being deprecated, please use UserProfile to retrieve names");
        end,
        presence = function(v26)
            return v26;
        end
    },
    AllFriendsPage = {
        targetUserId = function(_, _, _, v30)
            return v30.variableValues.userId;
        end,
        curCursor = function(_, _, _, v34)
            return v34.variableValues.pageCursor or "";
        end,
        nextCursor = function(v35)
            return v35.NextCursor or "";
        end,
        prevCursor = function(v36)
            return v36.PreviousCursor or "";
        end,
        friends = function(v37)
            return v37.PageItems or {};
        end
    },
    Query = {
        allFriendsByUserId = function(_, v39, v40)
            return l_getAllFriendsByUserId_0(v39, v40.fetchImpl);
        end,
        onlineFriendsByUserId = function(_, v42, v43)
            return l_getOnlineFriendsByUserId_0(v42, v43.fetchImpl);
        end
    }
};


local l_Array_0 = require(script:FindFirstAncestor("GraphQLServer").Parent.LuauPolyfill).Array;
local v1 = {};
local v2 = require(script.Parent.Parent.Parent.connectors.OmniFeed.OmniFeedConnector);
local l_findOmniFeedBySessionId_0 = v2.findOmniFeedBySessionId;
local l_fetchMoreOmniRecommendationMetadata_0 = v2.fetchMoreOmniRecommendationMetadata;
local _ = require(script.Parent.Parent.Parent.generatedTypes);
v1.default = {
    OmniFeedItem = {
        experiences = function(v6)
            if not (not v6.metadata or not v6.metadata.Game) and v6.recommendations then
                local l_Game_0 = v6.metadata.Game;
                local v8 = {};
                for _, v10 in v6.recommendations, nil, nil do
                    if v10.contentId then
                        local v11 = l_Game_0[tostring(v10.contentId)];
                        local l_contentMetadata_0 = v10.contentMetadata;
                        local v13 = if not not l_contentMetadata_0 and l_contentMetadata_0.EncryptedAdTrackingData then l_contentMetadata_0.EncryptedAdTrackingData else nil;
                        if not (not v11 or not v11.universeId) then
                            local v14 = {
                                placeId = if not v11.rootPlaceId then nil else tostring(v11.rootPlaceId),
                                name = v11.name,
                                universeId = tostring(v11.universeId),
                                totalUpVotes = v11.totalUpVotes,
                                totalDownVotes = v11.totalDownVotes,
                                playerCount = v11.playerCount,
                                under9 = not not v11.under9 and v11.under9,
                                under13 = not not v11.under13 and v11.under13,
                                adId = v13 or ""
                            };
                            local v15 = false;
                            if v13 ~= nil then
                                v15 = v13 ~= "";
                            end;
                            v14.isSponsored = v15;
                            table.insert(v8, v14);
                        end;
                    end;
                end;
                return v8;
            else
                return nil;
            end;
        end
    },
    OmniFeedMetadata = {
        GameJSON = function(v16)
            return v16.Game;
        end,
        CatalogAssetJSON = function(v17)
            return v17.CatalogAsset;
        end,
        CatalogBundleJSON = function(v18)
            return v18.CatalogBundle;
        end,
        RecommendedFriendJSON = function(v19)
            return v19.RecommendedFriend;
        end
    },
    OmniFeed = {
        metadata = function(v20)
            return v20.contentMetadata;
        end,
        sortsExpirationTime = function(v21)
            if v21.sortsRefreshInterval then
                return math.floor((tick())) + v21.sortsRefreshInterval;
            else
                return nil;
            end;
        end,
        recommendationsId = function(v22)
            return v22.requestId;
        end,
        globalLayoutData = function(v23)
            return v23.globalLayoutData;
        end,
        sorts = function(v24)
            if v24.sorts then
                return (l_Array_0.map(v24.sorts, function(v25)
                    return {
                        topic = v25.topic,
                        topicId = v25.topicId,
                        treatmentType = v25.treatmentType,
                        recommendations = v25.recommendationList,
                        metadata = v24.contentMetadata
                    };
                end));
            else
                return nil;
            end;
        end
    },
    OmniFeedItemWithMetadata = {
        metadata = function(v26)
            return v26.contentMetadata;
        end,
        sort = function(v27)
            return {
                topicId = v27.topicId,
                metadata = v27.contentMetadata,
                recommendations = v27.recommendations
            };
        end
    },
    Query = {
        omniFeed = function(_, v29, v30)
            return l_findOmniFeedBySessionId_0(v29, v30.fetchImpl);
        end,
        refreshOmniFeedItem = function(_, v32, v33)
            return l_fetchMoreOmniRecommendationMetadata_0(v32, v33.fetchImpl);
        end
    }
};
return v1;


local v0 = {};
local l_findAvatarHeadshotById_0 = require(script.Parent.Parent.connectors.PlayerConnector).findAvatarHeadshotById;
local _ = require(script.Parent.Parent.generatedTypes);
v0.default = {
    Player = {
        avatarHeadshot = function(v3, _, v5, _)
            return l_findAvatarHeadshotById_0(v3.id, v5.fetchImpl);
        end
    }
};
return v0;


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local l_HttpService_0 = game:GetService("HttpService");
local v2 = require(l_Parent_0.Cryo);
local _ = require(script.Parent.Parent.generatedTypes);
local _ = require(l_Parent_0.LuauPolyfill);
local v5 = require(script.Parent.Parent.connectors.ProfileInsightsConnector);
local l_findProfileInsightsByUserIds_0 = v5.findProfileInsightsByUserIds;
local l_findProfileInsightsByUserIdsFeed_0 = v5.findProfileInsightsByUserIdsFeed;
local function _(v8)
    return (not not v8 and v8.profileInsights) and v8.profileInsights[1] or nil;
end;
return {
    ProfileInsights = {
        targetUserId = function(v10)
            return v10.targetUser;
        end,
        mutualFriends = function(v11)
            local v12 = (not not v11 and v11.profileInsights) and v11.profileInsights[1] or nil;
            local v13 = if not not v12 and v12.mutualFriendInsight then v12.mutualFriendInsight.mutualFriends else {};
            if v13 then
                return v2.List.foldLeft(v2.Dictionary.keys(v13), function(v14, v15)
                    local v16 = v13[v15];
                    table.insert(v14, {
                        id = v15,
                        username = v16.username,
                        displayName = v16.displayName
                    });
                    return v14;
                end, {});
            else
                return {};
            end;
        end,
        isOfflineFrequents = function(v17)
            local v18 = (not not v17 and v17.profileInsights) and v17.profileInsights[1] or nil;
            local v19 = not not v18 and v18.offlineFrequentsInsight or nil;
            if not v19 or not v19.havePlayedTogether then
                return false;
            else
                return true;
            end;
        end
    },
    ProfileInsightsPages = {
        id = function(v20)
            if not v20.pageId then
                return (l_HttpService_0:GenerateGUID(false));
            else
                return v20.pageId;
            end;
        end,
        profileInsights = function(v21)
            return v21.profileInsights;
        end
    },
    Query = {
        profilesInsights = function(_, v23, v24)
            return l_findProfileInsightsByUserIdsFeed_0(v23.userIds, v23.count, v23.pageId, v24.fetchImpl);
        end,
        profilesInsightsByUserIds = function(_, v26, v27)
            return l_findProfileInsightsByUserIds_0(v26.userIds, v26.count, v27.fetchImpl);
        end
    }
};


return {
    default = {
        JSONObject = require(script.Parent.Parent.utils.GraphQLJSONType).GraphQLJSONObject
    }
};


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local _ = require(l_Parent_0.LuauPolyfill);
local v2 = require(script.Parent.Parent.generatedTypes);
local v3 = require(script.Parent.Parent.connectors.ShareLinkConnector);
local v4 = require(l_Parent_0.Cryo);
return {
    ExperienceDetailsLink = {
        linkType = function()
            return v2.ShareLinkType.ExperienceDetails;
        end,
        linkId = function(v5)
            return v5.linkId;
        end,
        shortUrl = function(v6)
            return v6.shortUrl;
        end,
        universeId = function(_, _, _, v10)
            return v10.variableValues.universeId;
        end
    },
    Query = {
        experienceDetailsLinkByUniverseId = function(_, v12, v13, _)
            return v3.fetchShareLink(v4.Dictionary.join({
                linkType = v2.ShareLinkType.ExperienceDetails,
                data = v12
            }), v13.fetchImpl);
        end
    }
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GraphQLServer");
local _ = require(l_script_FirstAncestor_0.Parent.LuauPolyfill);
local l_GraphQLError_0 = require(l_script_FirstAncestor_0.Parent.GraphQL).GraphQLError;
local v3 = require(l_script_FirstAncestor_0.graphql.utils.formatUserProfileFields);
local _ = require(script.Parent.Parent.generatedTypes);
local v5 = require(l_script_FirstAncestor_0.Flags.FFlagUserProfileBetterErrors);
return {
    UserProfile = {
        id = function(v6)
            return (tostring(v6.userId));
        end,
        displayName = function()
            return l_GraphQLError_0.new("The displayName field is not available on the UserProfile implementation of User, please use the names field instead");
        end
    },
    Query = {
        userProfiles = function(_, v8, v9, v10)
            return v9.dataLoaders.userProfiles:getLoader(v9.fetchImpl, (v3(v10, v9.collectSubFieldsImpl))):loadMany(v8.userIds):andThen(function(v11)
                return v11 or {};
            end):catch(function(v12)
                if not v5 then
                    return {};
                else
                    return v12;
                end;
            end);
        end
    }
};


local v0 = {};
local v1 = require(script.Parent.Parent.connectors.UserConnector);
local l_findUserById_0 = v1.findUserById;
local l_findMe_0 = v1.findMe;
v0.default = {
    User = {
        __resolveType = function()
            return "Player";
        end
    },
    Query = {
        me = function(_, _, v6)
            return l_findMe_0(v6.fetchImpl);
        end,
        user = function(_, v8, v9)
            return l_findUserById_0(v8.id, v9.fetchImpl);
        end
    }
};
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GraphQLServer");
local v1 = require(l_script_FirstAncestor_0.graphql.connectors.VirtualEventConnector);
local l_findVirtualEventById_0 = v1.findVirtualEventById;
local l_findVirtualEventsByUniverseId_0 = v1.findVirtualEventsByUniverseId;
local l_findRsvpCountersByVirtualEventId_0 = v1.findRsvpCountersByVirtualEventId;
local l_findRsvpsByVirtualEventId_0 = v1.findRsvpsByVirtualEventId;
local l_updateRsvpStatus_0 = v1.updateRsvpStatus;
local l_neverShowNotificationModalAgain_0 = v1.neverShowNotificationModalAgain;
local l_enablePushNotifications_0 = v1.enablePushNotifications;
local v9 = require(l_script_FirstAncestor_0.graphql.connectors.ExperienceConnector);
local l_findExperienceDetailsByUniverseId_0 = v9.findExperienceDetailsByUniverseId;
local l_findExperienceMediaByUniverseId_0 = v9.findExperienceMediaByUniverseId;
local _ = require(l_script_FirstAncestor_0.graphql.generatedTypes);
return {
    VirtualEventMutations = {
        neverShowNotificationModalAgain = function(_, _, v15)
            return l_neverShowNotificationModalAgain_0(v15.fetchImpl);
        end,
        enablePushNotifications = function(_, _, v18)
            return l_enablePushNotifications_0(v18.fetchImpl);
        end
    },
    VirtualEvent = {
        experienceDetails = function(v19, _, v21)
            return l_findExperienceDetailsByUniverseId_0(tostring(v19.universeId), v21.fetchImpl);
        end,
        media = function(v22, _, v24)
            return l_findExperienceMediaByUniverseId_0(tostring(v22.universeId), v24.fetchImpl);
        end,
        rsvpCounters = function(v25, _, v27)
            return l_findRsvpCountersByVirtualEventId_0(v25.id, v27.fetchImpl);
        end,
        rsvps = function(v28, _, v30)
            return l_findRsvpsByVirtualEventId_0(v28.id, v30.fetchImpl);
        end
    },
    Mutation = {
        virtualEvents = function()
            return {};
        end,
        virtualEventRsvp = function(_, v32, v33)
            return l_updateRsvpStatus_0(v32.id, v32.rsvpStatus, v33.fetchImpl);
        end
    },
    Query = {
        virtualEvent = function(_, v35, v36)
            return l_findVirtualEventById_0(v35.id, v36.fetchImpl);
        end,
        virtualEventsByUniverseId = function(_, v38, v39)
            return l_findVirtualEventsByUniverseId_0(v38.universeId, v38.options, v39.fetchImpl);
        end
    }
};


local v0 = {};
local _ = require(script:FindFirstAncestor("GraphQLServer").Parent.LuauPolyfill);
v0.default = require(script.Parent.Parent.utils).mergeResolvers({
    require(script.Parent.UserResolver).default,
    require(script.Parent.PlayerResolver).default,
    require(script.Parent.OmniFeed).default,
    require(script.Parent.ScalarResolver).default,
    require(script.Parent.VirtualEventResolver),
    require(script.Parent.ExperienceResolver),
    require(script.Parent.ProfileInsightsResolver),
    require(script.Parent.AmpUpsellResolver).default,
    require(script.Parent.UserProfileResolver),
    require(script.Parent.FriendsResolver),
    (require(script.Parent.ShareLinkResolver))
});
return v0;


local l_Parent_0 = script:FindFirstAncestor("GraphQLServer").Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local v5 = {};
local v6 = require(l_Parent_0.GraphQL);
local l_GraphQLScalarType_0 = v6.GraphQLScalarType;
local l_Kind_0 = v6.Kind;
local l_print_0 = v6.print;
local v10 = nil;
local function _(v11, v12)
    return (tonumber(v11, v12));
end;
local function v15(v14)
    return v14;
end;
local function v19(v16)
    local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
    local v18 = true;
    if typeof(v16) == "table" then
        v18 = true;
        if v16 ~= nil then
            v18 = l_Array_0.isArray(v16);
        end;
    end;
    if l_toJSBoolean_0(v18) then
        error(l_Error_0.new(("JSONObject cannot represent non-object value: %s"):format((tostring(v16)))));
    end;
    return v16;
end;
local function _(v20, v21, v22)
    local v23 = {};
    l_Array_0.forEach(v21.fields, function(v24)
        v23[v24.name.value] = v10(v20, v24.value, v22);
    end);
    return v23;
end;
v10 = function(v26, v27, v28)
    local l_kind_0 = v27.kind;
    if not (l_kind_0 ~= l_Kind_0.STRING) or l_kind_0 == l_Kind_0.BOOLEAN then
        return v27.value;
    elseif not (l_kind_0 ~= l_Kind_0.INT) or l_kind_0 == l_Kind_0.FLOAT then
        return (tonumber(v27.value, nil));
    elseif l_kind_0 == l_Kind_0.OBJECT then
        local v30 = {};
        l_Array_0.forEach(v27.fields, function(v31)
            v30[v31.name.value] = v10(v26, v31.value, v28);
        end);
        return v30;
    elseif l_kind_0 == l_Kind_0.LIST then
        return l_Array_0.map(v27.values, function(v32)
            return v10(v26, v32, v28);
        end);
    elseif l_kind_0 == l_Kind_0.NULL then
        return nil;
    elseif l_kind_0 == l_Kind_0.VARIABLE then
        if not l_Boolean_0.toJSBoolean(v28) then
            return nil;
        else
            return v28[v27.name.value];
        end;
    else
        error(l_Error_0.new(("%s cannot represent value: %s"):format(v26, l_print_0(v27))));
        return nil;
    end;
end;
local v35 = l_GraphQLScalarType_0.new({
    name = "JSON",
    description = "The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).",
    specifiedByUrl = "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf",
    serialize = v15,
    parseValue = v15,
    parseLiteral = function(v33, v34)
        return v10("JSON", v33, v34);
    end
});
v5.GraphQLJSON = v35;
v5.default = v35;
v5.GraphQLJSONObject = l_GraphQLScalarType_0.new({
    name = "JSONObject",
    description = "The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).",
    specifiedByUrl = "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf",
    serialize = v19,
    parseValue = v19,
    parseLiteral = function(v36, v37)
        if v36.kind ~= l_Kind_0.OBJECT then
            error(l_Error_0.new(("JSONObject cannot represent non-object value: %s"):format(l_print_0(v36))));
        end;
        local v38 = {};
        local l_forEach_0 = l_Array_0.forEach;
        local l_fields_0 = v36.fields;
        local v41 = "JSONObject";
        l_forEach_0(l_fields_0, function(v42)
            v38[v42.name.value] = v10(v41, v42.value, v37);
        end);
        return v38;
    end
});
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("GraphQLServer");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.GraphqlToolsUtils);
local v3 = require(l_Parent_0.LuauPolyfill);
local l_collectSubFields_0 = v2.collectSubFields;
local v5 = require(l_script_FirstAncestor_0.graphql.enums.UserProfileNestedFields);
return function(v6, v7)
    local v8 = v7 or l_collectSubFields_0;
    local v9 = v8(v6.schema, v6.fragments, v6.variableValues, v6.returnType, v6.fieldNodes);
    local v10 = {};
    local function _(v11)
        local v12 = true;
        if v11 ~= nil then
            v12 = true;
            if v11 ~= "id" then
                v12 = v3.String.endsWith(v11, "__typename");
            end;
        end;
        return v12;
    end;
    for _, v15 in v9, nil, nil do
        local v16 = v15[1];
        if not v5[v16] then
            local v17 = true;
            if v16 ~= nil then
                v17 = true;
                if v16 ~= "id" then
                    v17 = v3.String.endsWith(v16, "__typename");
                end;
            end;
            if not v17 then
                table.insert(v10, v16);
            end;
        else
            for _, v19 in (v8(v6.schema, v6.fragments, v6.variableValues, v6.returnType, v9[v16])), nil, nil do
                local v20 = ("%*.%*"):format(v16, v19[1]);
                local v21 = true;
                if v20 ~= nil then
                    v21 = true;
                    if v20 ~= "id" then
                        v21 = v3.String.endsWith(v20, "__typename");
                    end;
                end;
                if not v21 then
                    table.insert(v10, v20);
                end;
            end;
        end;
    end;
    return v10;
end;


local v0 = require(script:FindFirstAncestor("GraphQLServer").Parent.LuauPolyfill);
local l_Object_0 = v0.Object;
local l_Array_0 = v0.Array;
local function _(v3)
    local v4 = false;
    if typeof(v3) == "table" then
        v4 = not (l_Array_0.isArray(v3) and #v3 > 0);
    end;
    return v4;
end;
local function v6(v7, v8)
    local v9 = v7[1] or {};
    local v10 = {};
    for _, v12 in v7, nil, nil do
        local v13 = false;
        if typeof(v9) == "table" then
            v13 = not (l_Array_0.isArray(v9) and #v9 > 0);
        end;
        if v13 then
            v13 = false;
            if typeof(v12) == "table" then
                v13 = not (l_Array_0.isArray(v12) and #v12 > 0);
            end;
            if v13 then
                for v14, v15 in v12, nil, nil do
                    if type(v15) == "table" then
                        if v10[v14] == nil then
                            l_Object_0.assign(v10, {
                                [v14] = v15
                            });
                        else
                            v10[v14] = v6({
                                v10[v14],
                                v15
                            }, v8);
                        end;
                    else
                        l_Object_0.assign(v10, {
                            [v14] = v15
                        });
                    end;
                end;
            end;
        end;
    end;
    return v10;
end;
return v6;