local l_Parent_0 = script:FindFirstAncestor("Localization").Parent;
local l_LocalizationService_0 = game:GetService("LocalizationService");
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.ArgCheck);
local v4 = require(script.Parent.RobloxLocaleIdKey);
local v5 = require(script.Parent.LocalizationRoactContext);
local v6 = require(script.Parent.localizeStrings);
local v7 = v2.Component:extend("LocalizationConsumer");
v7.init = function(v8)
    local l_localization_0 = v8.props.localization;
    if l_localization_0 == nil then
        error("LocalizationConsumer must be below a LocalizationProvider.");
    end;
    v8.state = {
        locale = l_LocalizationService_0.RobloxLocaleId
    };
    v8.updateLocalization = function(v10)
        v10 = l_localization_0:GetLocale();
        if v10 ~= v8.state.locale then
            v8:setState({
                locale = v10
            });
        end;
    end;
    v8.connections = {
        l_localization_0.changed:connect(v8.updateLocalization)
    };
end;
v7.willUnmount = function(v11)
    for _, v13 in pairs(v11.connections) do
        v13:disconnect();
    end;
end;
v7.render = function(v14)
    local l_localization_1 = v14.props.localization;
    local l_render_0 = v14.props.render;
    local l_stringsToBeLocalized_0 = v14.props.stringsToBeLocalized;
    v3.isType(l_render_0, "function", "LocalizationConsumer.props.render");
    v3.isType(l_stringsToBeLocalized_0, "table", "LocalizationConsumer.props.stringsToBeLocalized");
    local v18 = v6(l_localization_1, l_stringsToBeLocalized_0);
    v18[v4] = v14.state.locale;
    return l_render_0(v18);
end;
return function(v19)
    return v2.createElement(v5.Consumer, {
        render = function(v20)
            return v2.createElement(v7, {
                localization = v20,
                render = v19.render,
                stringsToBeLocalized = v19.stringsToBeLocalized
            });
        end
    });
end;


local v0 = {};
v0.__index = v0;
v0.getBaseLanguage = function(v1)
    return v1:match("^(%w+)[-_]");
end;
v0.new = function(v2)
    local v3 = {
        _translations = v2
    };
    setmetatable(v3, v0);
    return v3;
end;
v0.addTranslations = function(v4, v5)
    v4._translations = v5;
end;
v0.getRelevantLanguages = function(v6)
    local v7 = {};
    table.insert(v7, v6);
    local v8 = v0.getBaseLanguage(v6);
    if v8 then
        table.insert(v7, v8);
    end;
    table.insert(v7, "en-us");
    return v7;
end;
v0._getSourceString = function(v9, v10, v11)
    local v12 = v9._translations[v10];
    if v12 then
        return v12[v11];
    else
        return nil;
    end;
end;
v0.getString = function(v13, v14, v15, v16)
    local v17 = v13:_getSourceString(v14, v15);
    local v18 = v0.getBaseLanguage(v14);
    local v19 = nil;
    if v18 then
        v19 = v13:_getSourceString(v18, v15);
    end;
    local v20 = (v17 or v19) or v13:_getSourceString("en-us", v15);
    if not v20 then
        error(("Couldn't find value for translation key %q %s, %s, %s"):format(v15, v14, v18, "en-us"), 2);
    end;
    if not v16 then
        return v20;
    else
        return (v20:gsub("{(.-)}", v16));
    end;
end;
return v0;


local v0 = require(script:FindFirstAncestor("Localization").Parent.React);
local v1 = require(script.Parent.LocalizationRoactContext);
return function(v2)
    return v0.createElement(v1.Provider, {
        value = v2.localization
    }, v2.children);
end;


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


local v0 = require(script.Parent.RoundingBehaviour);
local v1 = require(script.Parent.Logger);
game:DefineFastFlag("AllowNumberLocalizationSigFigParam", false);
local l_GetFFlagFixThaiNumberFormatting_0 = require(game:GetService("CorePackages").Workspace.Packages.SharedFlags).GetFFlagFixThaiNumberFormatting;
local v3 = {
    ["en-us"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "K"
        },
        {
            1000000,
            "M"
        },
        {
            1000000000,
            "B"
        }
    },
    ["es-es"] = {
        decimalSeparator = ",",
        groupDelimiter = ".";
        {
            1,
            ""
        },
        {
            1000,
            " mil"
        },
        {
            1000000,
            " M"
        }
    },
    ["fr-fr"] = {
        decimalSeparator = ",",
        groupDelimiter = " ";
        {
            1,
            ""
        },
        {
            1000,
            " k"
        },
        {
            1000000,
            " M"
        },
        {
            1000000000,
            " Md"
        }
    },
    ["de-de"] = {
        decimalSeparator = ",",
        groupDelimiter = " ";
        {
            1,
            ""
        },
        {
            1000,
            " Tsd."
        },
        {
            1000000,
            " Mio."
        },
        {
            1000000000,
            " Mrd."
        }
    },
    ["pt-br"] = {
        decimalSeparator = ",",
        groupDelimiter = ".";
        {
            1,
            ""
        },
        {
            1000,
            " mil"
        },
        {
            1000000,
            " mi"
        },
        {
            1000000000,
            " bi"
        }
    },
    ["zh-cn"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "\229\141\131"
        },
        {
            10000,
            "\228\184\135"
        },
        {
            100000000,
            "\228\186\191"
        }
    },
    ["zh-cjv"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "\229\141\131"
        },
        {
            10000,
            "\228\184\135"
        },
        {
            100000000,
            "\228\186\191"
        }
    },
    ["zh-tw"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "\229\141\131"
        },
        {
            10000,
            "\232\144\172"
        },
        {
            100000000,
            "\229\132\132"
        }
    },
    ["ko-kr"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "\236\178\156"
        },
        {
            10000,
            "\235\167\140"
        },
        {
            100000000,
            "\236\150\181"
        }
    },
    ["ja-jp"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            "\229\141\131"
        },
        {
            10000,
            "\228\184\135"
        },
        {
            100000000,
            "\229\132\132"
        }
    },
    ["it-it"] = {
        decimalSeparator = ",",
        groupDelimiter = " ";
        {
            1,
            ""
        },
        {
            1000,
            " mila"
        },
        {
            1000000,
            " Mln"
        },
        {
            1000000000,
            " Mld"
        }
    },
    ["ru-ru"] = {
        decimalSeparator = ",",
        groupDelimiter = ".";
        {
            1,
            ""
        },
        {
            1000,
            " \209\130\209\139\209\129"
        },
        {
            1000000,
            " \208\188\208\187\208\189"
        },
        {
            1000000000,
            " \208\188\208\187\209\128\208\180"
        }
    },
    ["id-id"] = {
        decimalSeparator = ",",
        groupDelimiter = ".";
        {
            1,
            ""
        },
        {
            1000,
            " rb"
        },
        {
            1000000,
            " jt"
        },
        {
            1000000000,
            " M"
        }
    },
    ["vi-vn"] = {
        decimalSeparator = ".",
        groupDelimiter = " ";
        {
            1,
            ""
        },
        {
            1000,
            " N"
        },
        {
            1000000,
            " Tr"
        },
        {
            1000000000,
            " T"
        }
    }
};
if not l_GetFFlagFixThaiNumberFormatting_0() then
    v3["th-th"] = {
        decimalSeparator = ".",
        groupDelimiter = ",";
        {
            1,
            ""
        },
        {
            1000,
            " \224\184\158"
        },
        {
            10000,
            " \224\184\161"
        },
        {
            100000,
            " \224\184\170"
        },
        {
            1000000,
            " \224\184\165"
        }
    };
end;
v3["tr-tr"] = {
    decimalSeparator = ",",
    groupDelimiter = ".";
    {
        1,
        ""
    },
    {
        1000,
        " B"
    },
    {
        1000000,
        " Mn"
    },
    {
        1000000000,
        " Mr"
    }
};
v3["en-gb"] = v3["en-us"];
v3["es-mx"] = v3["es-es"];
if l_GetFFlagFixThaiNumberFormatting_0() then
    v3["th-th"] = v3["en-us"];
end;
local function _(v4)
    return string.find(v4, "%.") or #v4 + 1;
end;
local function _(v6)
    if v6 == 0 then
        return 0;
    else
        return -(math.floor((math.log10((math.abs(v6))))) + 1);
    end;
end;
local _ = function(v8, v9, v10)
    local v11 = 10 ^ (v9 + (v8 == 0 and 0 or -(math.floor((math.log10((math.abs(v8))))) + 1)));
    local _ = nil;
    return if v10 == v0.Truncate then math.modf(v8 * v11) else math.floor(v8 * v11 + 0.5) / v11;
end;
local function v20(v14, v15)
    local l_v14_0 = v14;
    local v17 = string.format("%%1%s%%2", v15);
    while true do
        local v18, v19 = string.gsub(l_v14_0, "^(-?%d+)(%d%d%d)", v17);
        l_v14_0 = v18;
        if not (v19 ~= 0) then
            break;
        end;
    end;
    return l_v14_0;
end;
local function v29(v21, v22, v23)
    local v24 = v21[1];
    local v25 = math.abs(v22);
    for v26 = #v21, 2, -1 do
        local v27 = v21[v26];
        local _ = nil;
        if if v23 == v0.Truncate then v27[1] else v27[1] - v21[v26 - 1][1] / 2 <= v25 then
            return v27;
        end;
    end;
    return v24;
end;
return {
    localize = function(v30, v31)
        if v30 == 0 then
            return "0";
        else
            local v32 = v3[v31];
            if not v32 then
                v32 = v3["en-us"];
                v1:warning(string.format("Warning: Locale not found: '%s', reverting to '%s' instead.", tostring(v31), "en-us"));
            end;
            if not v32.groupDelimiter then
                return v30;
            else
                return (v20(v30, v32.groupDelimiter));
            end;
        end;
    end,
    abbreviate = function(v33, v34, v35, v36)
        if v33 == 0 then
            return "0";
        else
            if v35 == nil then
                v35 = v0.RoundToClosest;
            end;
            if not game:GetFastFlag("AllowNumberLocalizationSigFigParam") then
                v36 = 3;
            elseif v36 == nil then
                v36 = 3;
            end;
            local v37 = v3[v34];
            if not v37 then
                v37 = v3["en-us"];
                v1:warning(string.format("Warning: Locale not found: '%s', reverting to '%s' instead.", tostring(v34), "en-us"));
            end;
            local v38 = v29(v37, v33, v35);
            local v39 = v38[1];
            local v40 = v38[2];
            local v41 = v33 / v39;
            local l_v36_0 = v36;
            local l_v35_0 = v35;
            local v44 = 10 ^ (l_v36_0 + (v41 == 0 and 0 or -(math.floor((math.log10((math.abs(v41))))) + 1)));
            local _ = nil;
            local v46 = if l_v35_0 == v0.Truncate then math.modf(v41 * v44) else math.floor(v41 * v44 + 0.5) / v44;
            v41 = nil;
            l_v36_0 = tostring(if v35 == v0.Truncate then math.modf(v46 * 10) / 10 else math.floor(v46 * 10 + 0.5) / 10);
            l_v35_0 = string.find(l_v36_0, "%.") or #l_v36_0 + 1;
            local v47 = string.sub(l_v36_0, 1, l_v35_0 - 1);
            v44 = string.sub(l_v36_0, l_v35_0 + 1, #l_v36_0);
            if v37.groupDelimiter then
                v47 = v20(v47, v37.groupDelimiter);
            end;
            if #v44 > 0 then
                return v47 .. v37.decimalSeparator .. v44 .. v40;
            else
                return v47 .. v40;
            end;
        end;
    end,
    logger = v1
};


return require(script:FindFirstAncestor("Localization").Parent.enumerate)("RoundingBehaviour", {
    "RoundToClosest",
    "Truncate"
});


local v0 = require(script.Parent.NumberLocalization);
return function(v1, v2)
    return v0.abbreviate(v1, v2);
end;


return {
    LocalizationConsumer = require(script.LocalizationConsumer),
    LocalizationContext = require(script.LocalizationContext),
    LocalizationProvider = require(script.LocalizationProvider),
    LocalizationRoactContext = require(script.LocalizationRoactContext),
    localizeStrings = require(script.localizeStrings),
    NumberLocalization = require(script.NumberLocalization),
    RobloxLocaleIdKey = require(script.RobloxLocaleIdKey),
    RoundingBehaviour = require(script.RoundingBehaviour),
    withLocalization = require(script.withLocalization),
    abbreviateCount = require(script.abbreviateCount),
    Logger = require(script.Logger),
    Hooks = require(script.Hooks)
};


local v0 = require(script:FindFirstAncestor("Localization").Parent.ArgCheck);
return function(v1, v2)
    local v3 = {};
    for v4, v5 in pairs(v2) do
        if typeof(v5) == "table" then
            if typeof(v5[1]) == "string" then
                local l_status_0, l_result_0 = pcall(function()
                    return v1:Format(v5[1], v5);
                end);
                v0.isEqual(l_status_0, true, string.format("LocalizationConsumer finding value for translation key[%s]: %s", v4, v5[1]));
                v3[v4] = not not l_status_0 and l_result_0 or "";
            else
                error(string.format("%s[1] in stringsToBeLocalized must be a string, got %s instead", v4, (typeof(v5[1]))));
            end;
        elseif typeof(v5) == "string" then
            local l_status_1, l_result_1 = pcall(function()
                return v1:Format(v5);
            end);
            v0.isEqual(l_status_1, true, string.format("LocalizationConsumer finding value for translation key[%s]: %s", v4, v5));
            v3[v4] = not not l_status_1 and l_result_1 or "";
        else
            error(string.format("%s in stringsToBeLocalized must be a string or table, got %s instead", v4, (typeof(v5))));
        end;
    end;
    return v3;
end;


local l_Parent_0 = script:FindFirstAncestor("Localization").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(script.Parent.LocalizationConsumer);
return function(v4)
    v2.isType(v4, "table", "stringsToBeLocalized passed to withLocalization()");
    return function(v5)
        v2.isType(v5, "function", "render passed to withLocalization()");
        return v1.createElement(v3, {
            render = v5,
            stringsToBeLocalized = v4
        });
    end;
end;


local v0 = require(script.Parent.Parent.Lumberyak).Logger.new(nil, "Logger");
local v1 = v0.Levels.fromString((game:DefineFastString("DebugLuaLogLevel", "")));
local v2 = game:DefineFastString("DebugLuaLogPattern", "");
v0:setContext({
    prefix = "[{loggerName}] - "
});
v0:addSink({
    maxLevel = v1,
    log = function(_, v4, _)
        if string.match(v4, v2) then
            print(v4);
        end;
    end
});
return v0;


return {
    Logger = require(script.Logger),
    mutedError = require(script.mutedError)
};


local l_Parent_0 = script:FindFirstAncestor("Loggers").Parent;
local v1 = require(l_Parent_0.RobloxAppEvents);
local l_FFlagDebugUnmuteLuaErrors_0 = require(l_Parent_0.SharedFlags).Debug.FFlagDebugUnmuteLuaErrors;
local function _()
    return game:GetService("RunService"):IsStudio();
end;
return function(v4, v5)
    if type(v4) ~= "string" then
        warn("mutedError: errorMessage should be a string");
        local l_status_0, _ = pcall(function()
            v4 = tostring(v4);
        end);
        if not l_status_0 then
            v4 = "mutedError";
        end;
    end;
    if not (l_FFlagDebugUnmuteLuaErrors_0 or game:GetService("RunService"):IsStudio()) and not _G.__TESTEZ_RUNNING_TEST__ then
        if type(v5) == "table" and type(v5.stacks) == "table" then
            table.insert(v5.stacks, debug.traceback());
        end;
        v1.ReportMutedError:fire(v4, debug.traceback(), script, v5);
    else
        error(v4);
    end;
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_MessageBus_0 = require(l_Parent_1.MessageBus).MessageBus;
local v3 = require(l_Parent_1.t);
local v4 = require(l_Parent_1.ArgCheck);
local _ = require(l_Parent_0.LoggingProtocolTypes);
local l_callOnce_0 = require(l_Parent_1.AppCommonLib).callOnce;
game:DefineFastFlag("EnableTelemetryProtocol", false);
getDomainName = function()
    if not game:GetFastFlag("EnableTelemetryProtocol") then
        return "Logging";
    else
        return "Telemetry";
    end;
end;
local v7 = {
    UNSPECIFIED = "UNSPECIFIED",
    EventIngest = "EventIngest",
    Points = "Points",
    EphemeralCounter = "EphemeralCounter",
    EphemeralStat = "EphemeralStat",
    Counter = "RobloxTelemetryCounter",
    Stats = "RobloxTelemetryStat"
};
local v8 = {
    TelemetryBackends = v7,
    StandardizedFields = {
        addPlaceId = "addPlaceId",
        addUniverseId = "addUniverseId",
        addPlaceInstanceId = "addPlaceInstanceId",
        addSessionId = "addSessionId",
        addOsInfo = "addOSInfo"
    },
    LOG_EVENT_WITH_TIMESTAMP_DESCRIPTOR = {
        fid = l_MessageBus_0.getMessageId(getDomainName(), "logEventWithTimestamp"),
        validateParams = v3.strictInterface({
            eventName = v3.string,
            timestamp = v3.optional(v3.number),
            metadata = v3.optional(v3.keys(v3.string))
        })
    },
    GET_TIMESTAMP_DESCRIPTOR = {
        fid = l_MessageBus_0.getMessageId(getDomainName(), "getTimestamp"),
        validateParams = v3.table
    },
    LOG_EVENT_FROM_LUA_DESCRIPTOR = {
        fid = l_MessageBus_0.getMessageId(getDomainName(), "logEventFromLua"),
        validateParams = v3.interface({
            eventType = v3.string,
            config = v3.optional(v3.strictInterface({
                eventName = v3.string,
                backends = v3.array(v3.valueOf(v7)),
                throttlingPercentage = v3.optional(v3.number),
                lastUpdated = v3.optional(v3.array(v3.integer)),
                description = v3.optional(v3.string),
                links = v3.optional(v3.string)
            })),
            data = v3.optional(v3.table)
        })
    }
};
v8.__index = v8;
v8.new = function(v9)
    local v10 = {
        messageBus = v9 or l_MessageBus_0
    };
    setmetatable(v10, v8);
    return v10;
end;
v8.logEventWithTimestamp = function(v11, v12, v13, v14)
    v4.isType(v12, "string", "eventName");
    v4.isType(v13, "number", "timestamp");
    v11.messageBus.call(v11.LOG_EVENT_WITH_TIMESTAMP_DESCRIPTOR, {
        eventName = v12,
        timestamp = v13,
        metadata = v14
    });
end;
v8.logEvent = function(v15, v16, v17)
    v4.isType(v16, "string", "eventName");
    v15:logEventWithTimestamp(v16, 0, v17);
end;
v8.logEventOnce = function(v18, v19, v20)
    v4.isType(v19, "string", "eventName");
    l_callOnce_0(string.format("logging_protocol_key-%s", v19), function()
        v18:logEvent(v19, v20);
    end);
end;
v8.getTimestamp = function(v21)
    return v21.messageBus.call(v21.GET_TIMESTAMP_DESCRIPTOR, {});
end;
v8.logRobloxTelemetryCounter = function(v22, v23, v24, v25)
    v22.messageBus.call(v22.LOG_EVENT_FROM_LUA_DESCRIPTOR, {
        eventType = "RobloxTelemetryCounter",
        config = v23,
        data = if not v24 then if v25 then {
            customFields = v25
        } else nil else {
            incrementValue = v24,
            customFields = v25
        }
    });
end;
v8.logRobloxTelemetryStat = function(v26, v27, v28, v29)
    v26.messageBus.call(v26.LOG_EVENT_FROM_LUA_DESCRIPTOR, {
        eventType = "RobloxTelemetryStat",
        config = v27,
        data = {
            statValue = v28,
            customFields = v29
        }
    });
end;
v8.logRobloxTelemetryEvent = function(v30, v31, v32, v33, v34)
    v30.messageBus.call(v30.LOG_EVENT_FROM_LUA_DESCRIPTOR, {
        eventType = "RobloxTelemetry",
        config = v31,
        data = {
            standardizedFields = v32,
            customFields = v33,
            eventContext = v34
        }
    });
end;
v8.logEphemeralCounterEvent = function(v35, v36, v37)
    v35.messageBus.call(v35.LOG_EVENT_FROM_LUA_DESCRIPTOR, {
        eventType = "EphemeralCounter",
        config = v36,
        data = if not v37 then nil else {
            incrementValue = v37
        }
    });
end;
v8.logEphemeralStatEvent = function(v38, v39, v40)
    v38.messageBus.call(v38.LOG_EVENT_FROM_LUA_DESCRIPTOR, {
        eventType = "EphemeralStat",
        config = v39,
        data = {
            statValue = v40
        }
    });
end;
v8.default = v8.new();
return v8;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local l_FullscreenPageWithSafeArea_0 = require(l_Parent_0.AppBlox).FullscreenPageWithSafeArea;
local v4 = require(l_script_FirstAncestor_0.Enums.LoginPageState);
local v5 = require(l_script_FirstAncestor_0.Context.LoginContext);
AuthenticationScreen = function(v6)
    local l_state_0 = v2.useContext(v5).state;
    return v2.createElement(l_FullscreenPageWithSafeArea_0, {
        includeStatusBar = true
    }, {
        UIListLayout = v2.createElement("UIListLayout", {
            Padding = UDim.new(0, 0),
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Title = v2.createElement("TextLabel", {
            LayoutOrder = 1,
            Text = "AuthenticationScreen",
            Size = UDim2.new(1, 0, 0, 50),
            BackgroundTransparency = 1,
            TextColor3 = Color3.fromRGB(0, 0, 0),
            TextSize = 24
        }),
        UserIdentifier = v2.createElement("TextLabel", {
            LayoutOrder = 2,
            Text = "User Identifier: " .. (not not l_state_0 and l_state_0.userIdentifier or ""),
            Size = UDim2.new(1, 0, 0, 50),
            BackgroundTransparency = 1,
            TextColor3 = Color3.fromRGB(0, 0, 0),
            TextSize = 24
        }),
        UserIdentifierType = v2.createElement("TextLabel", {
            LayoutOrder = 3,
            Text = "ID type: " .. (not not l_state_0 and l_state_0.userIdentifierType or ""),
            Size = UDim2.new(1, 0, 0, 50),
            BackgroundTransparency = 1,
            TextColor3 = Color3.fromRGB(0, 0, 0),
            TextSize = 24
        }),
        Button = v2.createElement("TextButton", {
            LayoutOrder = 2,
            Text = "Navigate to Login",
            Size = UDim2.new(0, 200, 0, 50),
            BackgroundColor3 = Color3.fromRGB(255, 0, 0),
            TextColor3 = Color3.fromRGB(255, 255, 255),
            [v2.Event.Activated] = function()
                v6.navigation.navigate(v4.LoginScreenV2);
            end
        })
    });
end;
return AuthenticationScreen;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.AppBlox);
local v4 = require(l_Parent_0.FitFrame);
local v5 = require(l_Parent_0.AuthCommon);
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
local v8 = require(l_script_FirstAncestor_0.Enums.LoginActionType);
local v9 = require(l_script_FirstAncestor_0.Enums.UserIdentifierType);
local l_FullscreenPageWithSafeArea_0 = v3.FullscreenPageWithSafeArea;
local v11 = require(l_Parent_0.UIBlox);
local l_useDesignTokens_0 = require(l_Parent_0.Style).useDesignTokens;
local l_useStyle_0 = v11.Core.Style.useStyle;
local l_Colors_0 = v11.App.Style.Colors;
local l_Button_0 = v11.App.Button.Button;
local l_ButtonType_0 = v11.App.Button.Enum.ButtonType;
local l_ButtonStack_0 = v11.App.Button.ButtonStack;
local l_IconButton_0 = v11.App.Button.IconButton;
local l_Images_0 = v11.App.ImageSet.Images;
local l_StandardButtonSize_0 = v11.App.Button.Enum.StandardButtonSize;
local l_StyledTextLabel_0 = v11.App.Text.StyledTextLabel;
local l_TextField_0 = v11.App.Input.TextField;
local v23 = require(l_script_FirstAncestor_0.Enums.LoginPageState);
local v24 = require(l_script_FirstAncestor_0.Context.LoginContext);
local l_isStringEmail_0 = v5.Utils.isStringEmail;
local l_isStringPhone_0 = v5.Utils.isStringPhone;
local l_CrossDeviceLogin_0 = v5.Thunks.CrossDeviceLogin;
getUserIdentifierType = function(v28)
    if not l_isStringEmail_0(v28) then
        if not l_isStringPhone_0(v28) then
            return v9.Username;
        else
            return v9.Phone;
        end;
    else
        return v9.Email;
    end;
end;
LoginScreenV2 = function(v29)
    local v30 = v2.useContext(v24);
    local v31 = l_useStyle_0();
    local v32 = l_useDesignTokens_0();
    local v33 = l_useDispatch_0();
    local v34 = l_useLocalization_0({
        signInHeadingText = "Authentication.Login.Heading.SignIn",
        identifierLabelText = "Authentication.Login.Label.UsernameEmailOrPhone",
        tapToEnterLabelText = "Authentication.Login.Label.TapToEnter",
        orTryAnotherWayText = "Authentication.Login.Label.OrTryAnotherWay",
        nextActionText = "Authentication.Login.Action.Next",
        quickSignInActionText = "Authentication.Login.Action.QuickSignIn",
        usePasskeyActionText = "Authentication.SignUp.Action.UsePasskey"
    });
    local l_state_0 = v30.state;
    local v36, v37 = v2.useState(not not l_state_0 and l_state_0.userIdentifier or "");
    return v2.createElement(l_FullscreenPageWithSafeArea_0, {
        includeStatusBar = true,
        BackgroundColor3 = l_Colors_0.Carbon
    }, {
        UIPadding = v2.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v32.Global.Space_100),
            PaddingLeft = UDim.new(0, v32.Global.Space_100),
            PaddingRight = UDim.new(0, v32.Global.Space_100),
            PaddingBottom = UDim.new(0, v32.Global.Space_100)
        }),
        Wrapper = v2.createElement(v4.FitFrameVertical, {
            width = UDim.new(1, 0),
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            AutomaticSize = Enum.AutomaticSize.Y
        }, {
            BackButton = v2.createElement(l_IconButton_0, {
                layoutOrder = 0,
                icon = l_Images_0["icons/navigation/close"],
                onActivated = function()
                    v30.parentNavigation.goBack();
                end
            }),
            Content = v2.createElement(v4.FitFrameVertical, {
                width = UDim.new(1, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, {
                Layout = v2.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, v32.Global.Space_150)
                }),
                UIPadding = v2.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v32.Global.Space_100),
                    PaddingRight = UDim.new(0, v32.Global.Space_100),
                    PaddingBottom = UDim.new(0, v32.Global.Space_200)
                }),
                SignInHeading = v2.createElement(l_StyledTextLabel_0, {
                    layoutOrder = 1,
                    text = v34.signInHeadingText,
                    fontStyle = v31.Font.Title,
                    colorStyle = v31.Theme.TextEmphasis
                }),
                IdentifierLabel = v2.createElement(l_StyledTextLabel_0, {
                    layoutOrder = 2,
                    text = v34.identifierLabelText,
                    fontStyle = v31.Font.Body,
                    colorStyle = v31.Theme.TextEmphasis
                }),
                UserIdentifierTextField = v2.createElement(l_TextField_0, {
                    LayoutOrder = 3,
                    text = v36,
                    placeholder = v34.tapToEnterLabelText,
                    width = UDim.new(1, 0),
                    onChange = function(v38)
                        v37(v38);
                    end
                }),
                Spacing = v2.createElement("Frame", {
                    LayoutOrder = 4,
                    Size = UDim2.new(1, 0, 0, v32.Global.Space_100),
                    BackgroundTransparency = 1
                }),
                NextButton = v2.createElement(l_Button_0, {
                    layoutOrder = 5,
                    standardSize = l_StandardButtonSize_0.Regular,
                    buttonType = l_ButtonType_0.PrimarySystem,
                    text = v34.nextActionText,
                    onActivated = function()
                        v30.dispatch({
                            type = v8.SetUserIdentifierAndType,
                            data = {
                                userIdentifier = v36,
                                userIdentifierType = getUserIdentifierType(v36)
                            }
                        });
                        v29.navigation.navigate(v23.AuthenticationScreen);
                    end,
                    isDisabled = v36 == ""
                })
            })
        }),
        Footer = v2.createElement(v4.FitFrameVertical, {
            width = UDim.new(1, 0),
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            Position = UDim2.new(0, 0, 0.8, 0)
        }, {
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            UIPadding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, v32.Global.Space_100),
                PaddingRight = UDim.new(0, v32.Global.Space_100)
            }),
            AlternativeLoginLabel = v2.createElement(l_StyledTextLabel_0, {
                layoutOrder = 1,
                text = v34.orTryAnotherWayText,
                fontStyle = v31.Font.Header2,
                colorStyle = v31.Theme.TextEmphasis,
                textXAlignment = Enum.TextXAlignment.Left
            }),
            Spacing = v2.createElement("Frame", {
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, v32.Global.Space_200),
                BackgroundTransparency = 1
            }),
            AlternativeLoginButtonFrame = v2.createElement("Frame", {
                LayoutOrder = 3,
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1
            }, {
                AlternativeLoginButtons = v2.createElement(l_ButtonStack_0, {
                    forcedFillDirection = Enum.FillDirection.Horizontal,
                    buttons = {
                        {
                            buttonType = l_ButtonType_0.Secondary,
                            props = {
                                onActivated = function()
                                end,
                                text = v34.usePasskeyActionText,
                                icon = l_Images_0["icons/menu/passkey"]
                            }
                        },
                        {
                            buttonType = l_ButtonType_0.Secondary,
                            props = {
                                onActivated = function()
                                    v33(l_CrossDeviceLogin_0.OpenLoginCodePrompt({
                                        loginCallback = function()
                                        end,
                                        isOverlay = true
                                    }));
                                end,
                                text = v34.quickSignInActionText,
                                icon = l_Images_0["icons/menu/scanqr"]
                            }
                        }
                    }
                })
            })
        })
    });
end;
return LoginScreenV2;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_GuiService_0 = game:GetService("GuiService");
local l_HttpService_0 = game:GetService("HttpService");
local l_UserInputService_0 = game:GetService("UserInputService");
local v5 = require(l_Parent_0.React);
local v6 = require(l_Parent_0.RoactNavigation);
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
local l_useEffect_0 = v5.useEffect;
local v9 = require(l_script_FirstAncestor_0.Context.LoginContextProvider);
local v10 = require(l_script_FirstAncestor_0.Navigators.LoginSwitchNavigator);
local v11 = {
    SET_STATUS_BAR_STYLE = 22
};
local v12 = {
    LIGHT = "lightcontent",
    DEFAULT = "default"
};
local function v14(v13)
    if l_UserInputService_0:GetPlatform() == Enum.Platform.IOS then
        l_GuiService_0:BroadcastNotification(l_HttpService_0:JSONEncode({
            style = v13
        }), v11.SET_STATUS_BAR_STYLE);
    end;
end;
return function(_)
    local v16 = l_useNavigation_0();
    local v17 = v6.createAppContainer(v10);
    l_useEffect_0(function()
        v14(v12.LIGHT);
        return function()
            v14(v12.DEFAULT);
        end;
    end, {});
    return v5.createElement(v9, {
        parentNavigation = v16
    }, {
        NavigationAppContainer = v5.createElement(v17)
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local _ = require(l_script_FirstAncestor_0.Enums.LoginActionType);
local _ = require(l_script_FirstAncestor_0.Enums.UserIdentifierType);
return {};


return {
    AuthenticationScreen = require(script.AuthenticationScreen),
    LoginV2Container = require(script.LoginV2Container),
    LoginScreenV2 = require(script.LoginScreenV2),
    Types = require(script.Types)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local v1 = require(l_script_FirstAncestor_0.Parent.React);
local _ = require(l_script_FirstAncestor_0.Components.Types);
return v1.createContext({
    state = nil,
    dispatch = nil,
    parentNavigation = nil
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Context.LoginContext);
local v3 = require(l_script_FirstAncestor_0.Reducers.LoginStateReducer);
local v4 = require(l_script_FirstAncestor_0.Enums);
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v6 = require(l_Parent_0.React);
local v7 = {
    userIdentifier = "",
    userIdentifierType = v4.UserIdentifierType.Unknown,
    numLoginAttempts = 0,
    availableLoginMethods = {}
};
return function(v8)
    local v9, v10 = v6.useReducer(v3, v7);
    return v6.createElement(v2.Provider, {
        value = {
            state = v9,
            dispatch = v10,
            parentNavigation = v8.parentNavigation
        }
    }, v8.children);
end;


return {
    LoginContext = require(script.LoginContext),
    LoginContextProvider = require(script.LoginContextProvider)
};


return {
    SetUserIdentifierAndType = "SetUserIdentifierAndType",
    IncrementLoginAttempts = "IncrementLoginAttempts",
    ResetLoginAttempts = "ResetLoginAttempts",
    SetAvailableLoginMethods = "SetAvailableLoginMethods"
};


return {
    LoginScreenV2 = "LoginScreenV2",
    AuthenticationScreen = "AuthenticationScreen"
};


return {
    Unknown = "Unknown",
    Username = "Username",
    Phone = "Phone",
    Email = "Email"
};


return {
    LoginPageState = require(script.LoginPageState),
    LoginActionType = require(script.LoginActionType),
    UserIdentifierType = require(script.UserIdentifierType)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.RoactNavigation);
local v4 = require(l_script_FirstAncestor_0.Enums.LoginPageState);
local _ = require(l_Parent_0.Navigation);
local v6 = require(l_script_FirstAncestor_0.Components.AuthenticationScreen);
local v7 = require(l_script_FirstAncestor_0.Components.LoginScreenV2);
return (v3.createRobloxSwitchNavigator({
    {
        [v4.LoginScreenV2] = {
            screen = function(v8)
                return v2.createElement(v7, v8);
            end,
            navigationOptions = {
                title = v4.LoginScreenV2
            }
        }
    },
    {
        [v4.AuthenticationScreen] = {
            screen = function(v9)
                return v2.createElement(v6, v9);
            end,
            navigationOptions = {
                title = v4.AuthenticationScreen
            }
        }
    }
}, {
    initialRouteName = v4.LoginScreenV2,
    keepVisitedScreensMounted = false,
    backBehavior = v3.BackBehavior.InitialRoute
}));


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("LoginV2");
local _ = require(l_script_FirstAncestor_0.Components.Types);
local v2 = require(l_script_FirstAncestor_0.Enums.LoginActionType);
return function(v3, v4, _)
    local v6 = table.clone(v3);
    local l_type_0 = v4.type;
    if l_type_0 == v2.SetUserIdentifierAndType then
        v6.userIdentifier = v4.data.userIdentifier;
        v6.userIdentifierType = v4.data.userIdentifierType;
        return v6;
    elseif l_type_0 == v2.IncrementLoginAttempts then
        v6.numLoginAttempts = v6.numLoginAttempts + 1;
        return v6;
    elseif l_type_0 == v2.ResetLoginAttempts then
        v6.numLoginAttempts = 0;
        return v6;
    else
        if l_type_0 == v2.SetAvailableLoginMethods then
            v6.availableLoginMethods = v4.data;
        end;
        return v6;
    end;
end;


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


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


local _ = require(script:FindFirstAncestor("MessageBus").Parent.LuauPolyfill);
return nil;


local v0 = require(script.MessageBus);
local _ = require(script.MessageBusTypes);
return {
    MessageBus = v0
};


return {
    DefaultErrorTitle = "IAPExperience.PurchaseError.Title.Error",
    DefaultErrorSubtitle = "Feature.Toast.NetworkingError.SomethingIsWrong"
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local v2 = require(l_Parent_0.Common.Types);
local l_Dash_0 = v1.Dash;
local l_Toast_0 = v1.UIBlox.App.Dialog.Toast;
local l_React_0 = v1.React;
local l_useLocalization_0 = v1.Hooks.useLocalization;
local l_useNavigation_0 = v1.Hooks.useNavigation;
local l_dependencyArray_0 = v1.Hooks.dependencyArray;
local l_useDidUpdate_0 = v1.Hooks.useDidUpdate;
local v10 = require(script.Parent.getTranslationKeys);
local v11 = {
    messageType = v2.DefaultError,
    duration = 2
};
return function(v12)
    local v13 = l_Dash_0.join(v11, v12 or {});
    local v14 = l_useLocalization_0(v10(v13.messageType, v13.localizationOverrides));
    local v15 = l_useNavigation_0();
    local v16 = l_useDidUpdate_0();
    return l_React_0.createElement(l_Toast_0, {
        toastContent = l_React_0.useMemo(function()
            return {
                toastTitle = v14.toastTitle,
                toastSubtitle = v14.toastSubtitle,
                onDismissed = function()
                    if not v16.current then
                        v15.goBack();
                        return ;
                    else
                        return ;
                    end;
                end
            };
        end, l_dependencyArray_0(v14.toastTitle, v14.toastSubtitle)),
        duration = v13.duration
    });
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Common.TextKeys);
local v2 = require(l_Parent_0.Common.Types);
local v3 = {
    [v2.DefaultError] = {
        toastTitle = v1.DefaultErrorTitle,
        toastSubtitle = v1.DefaultErrorSubtitle
    }
};
return function(v4, v5)
    if not (v4 == v2.Custom) or not v5 then
        return v3[v4];
    else
        return v5;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("MessageToast");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local v3 = require(l_Parent_0.Dev.RobloxAppUIBloxConfig);
local l_UIBlox_0 = v2.UIBlox;
l_UIBlox_0.init(v3);
local l_Roact_0 = v2.Roact;
local l_Dash_0 = v2.Dash;
local l_AppStyleProvider_0 = l_UIBlox_0.App.Style.AppStyleProvider;
local l_mockLocale_0 = require(l_Parent_0.Dev.SocialTestHelpers).StoryHelpers.mockLocale;
l_Roact_0.setGlobalConfig({
    propValidation = true,
    elementTracing = true
});
local v9 = {
    Default = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Light = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Dark = {
        themeName = "Dark",
        fontName = "Gotham"
    }
};
local v10 = {
    language = "en-us"
};
return {
    name = "MessageToast",
    storyRoot = script,
    roact = l_Roact_0,
    mapDefinition = function(v11)
        return l_Dash_0.join(v11, {
            controls = l_Dash_0.join(v10, v11.controls or {})
        });
    end,
    mapStory = function(v12)
        return function(v13)
            return l_Roact_0.createElement(l_AppStyleProvider_0, {
                style = not not v13 and v9[v13.theme] or v9.Default
            }, {
                Child = l_mockLocale_0(v12, v13)
            });
        end;
    end
};


local l_Parent_0 = script.Parent.Parent;
return {
    React = require(l_Parent_0.React),
    Roact = require(l_Parent_0.Roact),
    Rodux = require(l_Parent_0.Rodux),
    RoactRodux = require(l_Parent_0.RoactRodux),
    Dash = require(l_Parent_0.Dash),
    Hooks = {
        useNavigation = require(l_Parent_0.RoactUtils).Hooks.useNavigation,
        useLocalization = require(l_Parent_0.Localization).Hooks.useLocalization,
        useDidUpdate = require(l_Parent_0.RoactUtils).Hooks.useDidUpdate,
        dependencyArray = require(l_Parent_0.RoactUtils).Hooks.dependencyArray
    },
    UIBlox = require(l_Parent_0.UIBlox),
    LocalizationProvider = require(l_Parent_0.Localization).LocalizationProvider,
    RoactNavigation = require(l_Parent_0.RoactNavigation)
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Dev.JestGlobals);
v1.expect.extend(require(l_Parent_0.Dev.LuaSocialLibrariesDeps).CollisionMatchers.Jest);
return {
    JestGlobals = v1,
    UnitTestHelpers = require(l_Parent_0.Dev.SocialTestHelpers).TestHelpers,
    Rhodium = require(l_Parent_0.Dev.Rhodium),
    RhodiumHelpers = function()
        return require(l_Parent_0.Dev.RhodiumHelpers);
    end,
    createTreeWithProviders = require(l_Parent_0.Dev.SocialTestHelpers).TestHelpers.createTreeWithProviders
};


return {
    RootScreen = require(script.Components.MessageToastScreen),
    Types = require(script.Common.Types),
    ["jest.config"] = script["jest.config"]
};


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


local v0 = {};
v0.__index = v0;
v0.new = function(v1, v2)
    local v3 = {
        status = v1 or "",
        updateError = v2 or false
    };
    setmetatable(v3, {
        __index = v0
    });
    return v3;
end;
v0.CheckForUpdate = function(v4, v5)
    if v4.updateError then
        error("Error: CheckForUpdate");
    end;
    v5(v4.status);
end;
v0.PerformManagedUpdate = function(_)
end;
v0.CanPerformBinaryUpdate = function(_)
    return false;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(v1)
    local v2 = {
        mockPatches = v1 or {}
    };
    setmetatable(v2, v0);
    return v2;
end;
v0.RegisterPatch = function(_, _, _, _, _)
end;
v0.GetPatch = function(v8, v9)
    return v8.mockPatches[v9];
end;
v0.UpdatePatch = function(_, _, _, _)
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function()
    local v1 = {
        methodCalls = {}
    };
    setmetatable(v1, {
        __index = v0
    });
    return v1;
end;
v0._resetMockData = function(v2)
    v2.methodCalls = {};
end;
v0.setRBXEvent = function(v3, v4, v5, v6)
    table.insert(v3.methodCalls, {
        name = "setRBXEvent",
        args = {
            eventContext = v4,
            eventName = v5,
            additionalArgs = v6
        }
    });
end;
v0.setRBXEventStream = function(v7, v8, v9, v10)
    table.insert(v7.methodCalls, {
        name = "setRBXEventStream",
        args = {
            eventContext = v8,
            eventName = v9,
            additionalArgs = v10
        }
    });
end;
v0.sendEventImmediately = function(v11, v12, v13, v14)
    table.insert(v11.methodCalls, {
        name = "sendEventImmediately",
        args = {
            eventContext = v12,
            eventName = v13,
            additionalArgs = v14
        }
    });
end;
v0.sendEventDeferred = function(v15, v16, v17, v18)
    table.insert(v15.methodCalls, {
        name = "sendEventDeferred",
        args = {
            eventContext = v16,
            eventName = v17,
            additionalArgs = v18
        }
    });
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function()
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local v5 = {
        broadcasts = {},
        ShowLeaveConfirmation = {
            Connect = function(_, v3)
                return l_BindableEvent_0.Event:Connect(v3);
            end,
            Fire = function(_, ...)
                l_BindableEvent_0:Fire(...);
            end
        }
    };
    setmetatable(v5, {
        __index = v0
    });
    return v5;
end;
v0.BroadcastNotification = function(v6, v7, v8)
    v6.broadcasts[#v6.broadcasts + 1] = {
        data = v7,
        notification = v8
    };
end;
v0.SetGlobalGuiInset = function(_, _, _, _, _)
end;
v0.SafeZoneOffsetsChanged = function(_)
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.ScheduleNotification = function(_, _, _, _)
end;
v0.CancelNotification = function(_, _)
end;
v0.CancelAllNotification = function(_)
end;
v0.GetScheduledNotifications = function(_)
end;
v0.ActionEnabled = function(_)
end;
v0.ActionTaken = function(_)
end;
v0.GetPropertyChangedSignal = function(v11, v12)
    if v12 == "SelectedTheme" then
        return v11._selectedThemeChanged.Event;
    else
        error(("%s is not a valid property name"):format((tostring(v12))));
        return ;
    end;
end;
v0.new = function()
    local v13 = {
        SelectedTheme = "",
        _selectedThemeChanged = Instance.new("BindableEvent")
    };
    setmetatable(v13, v0);
    v13.RobloxEventReceived = {
        BindableEvent = Instance.new("BindableEvent")
    };
    v13.RobloxConnectionChanged = {
        BindableEvent = Instance.new("BindableEvent")
    };
    v13.RobloxEventReceived.Connect = function(_, v15)
        return v13.RobloxEventReceived.BindableEvent.Event:Connect(v15);
    end;
    v13.RobloxEventReceived.Fire = function(_, v17)
        v13.RobloxEventReceived.BindableEvent:Fire(v17);
    end;
    v13.RobloxConnectionChanged.Connect = function(_, v19)
        return v13.RobloxConnectionChanged.BindableEvent.Event:Connect(v19);
    end;
    v13.RobloxConnectionChanged.Fire = function(_, v21, v22, v23)
        v13.RobloxConnectionChanged.BindableEvent:Fire(v21, v22, v23);
    end;
    return v13;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local v2 = {
        CharacterAutoLoads = true
    };
    setmetatable(v2, {
        __index = v0
    });
    return v2;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local l_BindableEvent_1 = Instance.new("BindableEvent");
    local v6 = {
        finishedReplicatingEvent = l_BindableEvent_0,
        FinishedReplicating = l_BindableEvent_0.Event,
        mockIsFinishedReplicating = false,
        IsFinishedReplicating = function(v4)
            return v4.mockIsFinishedReplicating;
        end,
        removeDefaultLoadingGuiSignalEvent = l_BindableEvent_1,
        RemoveDefaultLoadingGuiSignal = l_BindableEvent_1.Event,
        mockIsDefaultLoadingGuiRemoved = false,
        IsDefaultLoadingGuiRemoved = function(v5)
            return v5.mockIsDefaultLoadingGuiRemoved;
        end,
        SetDefaultLoadingGuiRemoved = function()
        end
    };
    setmetatable(v6, {
        __index = v0
    });
    return v6;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local v11 = {
        RenderStepped = {
            callCallbacksWith = function(v2, v3)
                for _, v5 in v2.callbacks, nil, nil do
                    v5(v3);
                end;
            end,
            callbacks = {},
            Connect = function(v6, v7)
                local l_callbacks_0 = v6.callbacks;
                table.insert(l_callbacks_0, v7);
                return {
                    Disconnect = function()
                        for v9, v10 in l_callbacks_0, nil, nil do
                            if v10 == v7 then
                                table.remove(l_callbacks_0, v9);
                            end;
                        end;
                    end
                };
            end
        },
        Heartbeat = game:GetService("RunService").Heartbeat
    };
    setmetatable(v11, {
        __index = v0
    });
    return v11;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local v10 = {
        VREnabled = false,
        QuestDisplayRefreshRate = 90,
        events = {},
        GetPropertyChangedSignal = function(v2, v3)
            local l_BindableEvent_0 = Instance.new("BindableEvent");
            v2.events[v3] = v2.events[v3] or {};
            table.insert(v2.events[v3], l_BindableEvent_0);
            return l_BindableEvent_0.Event;
        end,
        callPropertyChanged = function(v5, v6)
            local v7 = v5.events[v6];
            if v7 then
                for _, v9 in v7, nil, nil do
                    v9:Fire();
                end;
            end;
        end
    };
    setmetatable(v10, {
        __index = v0
    });
    return v10;
end;
return v0;


return {
    MockAppUpdateService = require(script.MockAppUpdateService),
    MockDataModelPatchService = require(script.MockDataModelPatchService),
    MockEventIngestService = require(script.MockEventIngestService),
    MockGuiService = require(script.MockGuiService),
    MockReplicatedFirstService = require(script.MockReplicatedFirstService),
    MockPlayersService = require(script.MockPlayersService),
    MockRunService = require(script.MockRunService),
    MockVRService = require(script.MockVRService),
    MockNotificationService = require(script.MockNotificationService)
};


local v1 = {
    ["jest.config"] = script["jest.config"],
    game = game,
    waitProxy = function(v0)
        wait(v0);
    end,
    settingsProxy = function()
        return settings();
    end
};
setmetatable(v1, {
    __index = function(_, v3)
        return game:GetService(v3);
    end
});
return v1;


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


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


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


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


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


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


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


local v0 = require(script.NativeUtilProtocol);
local _ = require(script.NativeUtilProtocolTypes);
return {
    NativeUtilProtocol = v0
};


local l_Parent_0 = script:FindFirstAncestor("Navigation").Parent;
local _ = require(l_Parent_0.React);
local _ = require(l_Parent_0.Rodux).makeActionCreator;
return nil;


local _ = require(script.Parent.NavigationTypes);
local function _(v1, v2, v3, v4)
    local v5 = {
        key = v1,
        routeName = v1,
        params = v2,
        isTransitioning = v4
    };
    if v3 ~= nil then
        v5.routes = v3;
        v5.index = #v3;
    end;
    return v5;
end;
return {
    createMockStackState = function(v7, v8)
        local v9 = {
            key = v7,
            routeName = v7,
            params = nil,
            isTransitioning = false
        };
        if v8 ~= nil then
            v9.routes = v8;
            v9.index = #v8;
        end;
        return v9;
    end,
    createMockSwitchState = function(v10, v11)
        local v12 = {
            key = v10,
            routeName = v10,
            params = nil,
            isTransitioning = nil
        };
        if v11 ~= nil then
            v12.routes = v11;
            v12.index = #v11;
        end;
        return v12;
    end,
    createMockScreenState = function(v13, v14)
        return {
            key = v13,
            routeName = v13,
            params = v14,
            isTransitioning = nil
        };
    end
};


local l_Actions_0 = require(script:FindFirstAncestor("Navigation").Parent.RoactNavigation).Actions;
local _ = require(script.Parent.NavigationTypes);
local v2 = require(script.Parent.getRootNavigation);
return function(v3)
    local v4 = v2(v3);
    local l_state_0 = v4.state;
    return v4.router.getStateForAction(l_Actions_0.back(), l_state_0) ~= l_state_0;
end;


local _ = require(script.Parent.NavigationTypes);
return function(v1, v2)
    local l_state_0 = v1.state;
    local l_router_0 = v1.router;
    local l_getChildNavigation_0 = v1.getChildNavigation;
    local l_routes_0 = l_state_0.routes;
    local _ = nil;
    local v8 = nil;
    local v9 = nil;
    while l_routes_0 do
        v8 = l_getChildNavigation_0(l_routes_0[l_state_0.index].key);
        v9 = l_router_0.getScreenOptions(v8, v2);
        if v8 then
            l_getChildNavigation_0 = v8.getChildNavigation;
            l_state_0 = v8.state;
            l_routes_0 = l_state_0.routes;
            l_router_0 = v8.router;
        else
            break;
        end;
    end;
    return v9;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Navigation");
local _ = require(l_script_FirstAncestor_0.NavigationTypes);
local l_Array_0 = require(l_script_FirstAncestor_0.Parent.LuauPolyfill).Array;
local function _(v3)
    local v4 = false;
    if v3.index ~= nil then
        v4 = false;
        if v3.routes ~= nil then
            v4 = v3.isTransitioning ~= nil;
        end;
    end;
    return v4;
end;
local function v6(v7)
    local v8 = {};
    if v7 == nil then
        return v8;
    else
        if not (not v7.key and not v7.routeName) then
            table.insert(v8, v7);
        end;
        if v7.routes and v7.index ~= nil then
            local l_routes_0 = v7.routes;
            local l_index_0 = v7.index;
            local v11 = false;
            if v7.index ~= nil then
                v11 = false;
                if v7.routes ~= nil then
                    v11 = v7.isTransitioning ~= nil;
                end;
            end;
            if v11 then
                for v12 = 1, l_index_0 - 1 do
                    v8 = l_Array_0.concat(v8, v6(l_routes_0[v12]));
                end;
            end;
            v8 = l_Array_0.concat(v8, v6(l_routes_0[l_index_0]));
        end;
        return v8;
    end;
end;
return v6;


local _ = require(script.Parent.NavigationTypes);
local function v1(v2)
    if not v2.routes or not v2.index then
        return v2;
    else
        return v1(v2.routes[v2.index]);
    end;
end;
return v1;


local _ = require(script.Parent.NavigationTypes);
local v1 = require(script.Parent.getCurrentRouteState);
return function(v2)
    local v3 = v1(v2);
    if not v3 then
        return nil;
    else
        return v3.key;
    end;
end;


local _ = require(script.Parent.NavigationTypes);
local v1 = require(script.Parent.getCurrentNavigationState);
return function(v2)
    if v2 then
        if v2.state then
            return (v1(v2.state));
        else
            return nil;
        end;
    else
        return nil;
    end;
end;


local _ = require(script.Parent.NavigationTypes);
local function v1(v2)
    local v3 = v2._dangerouslyGetParent();
    if not v3 then
        return v2;
    else
        return (v1(v3));
    end;
end;
return v1;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Navigation");
local l_Array_0 = require(l_script_FirstAncestor_0.Parent.LuauPolyfill).Array;
local v2 = require(l_script_FirstAncestor_0.getActiveRoutes);
local _ = require(l_script_FirstAncestor_0.NavigationTypes);
return function(v4, v5)
    return l_Array_0.find(v2(v4), function(v6)
        return v6.routeName == v5;
    end) ~= nil;
end;


local _ = require(script.Parent.NavigationTypes);
local function v1(v2, v3)
    if v3.key == v2 then
        return true;
    else
        if v3.routes then
            for _, v5 in pairs(v3.routes) do
                if v1(v2, v5) then
                    return true;
                end;
            end;
        end;
        return false;
    end;
end;
return v1;


local _ = require(script.NavigationTypes);
return {
    ["jest.config"] = script["jest.config"],
    canGoBack = require(script.canGoBack),
    getCurrentRouteKey = require(script.getCurrentRouteKey),
    getCurrentRouteState = require(script.getCurrentRouteState),
    getCurrentNavigationState = require(script.getCurrentNavigationState),
    getActiveRoutes = require(script.getActiveRoutes),
    getRouteIsActive = require(script.getRouteIsActive),
    getRouteKeyIsInNavigationState = require(script.getRouteKeyIsInNavigationState),
    getActiveChildNavigationOptionsRecursively = require(script.getActiveChildNavigationOptionsRecursively),
    wrapNavigatorWith = require(script.wrapNavigatorWith),
    TestUtils = require(script.TestUtils)
};


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


local l_Parent_0 = script:FindFirstAncestor("Navigation").Parent;
local v1 = require(script.Parent.getCurrentRouteKey);
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
return function()
    return v1((l_useNavigation_0()));
end;


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.Parent.React);
local _ = require(l_Parent_0.NavigationTypes);
return function(v3, v4)
    local v5 = v1.Component:extend("WrappedNavigator");
    v5.router = v3.router;
    v5.render = function(v6)
        return v1.createElement(v1.Fragment, nil, {
            Navigator = v1.createElement(v3, v6.props),
            Component = v1.createElement(v4)
        });
    end;
    return v5;
end;


local l_Parent_0 = script:FindFirstAncestor("NavigationRodux").Parent;
local l_makeActionCreator_0 = require(l_Parent_0.Rodux).makeActionCreator;
local v2 = require(l_Parent_0.ArgCheck);
return l_makeActionCreator_0(script.Name, function(v3)
    return {
        locked = v2.isType(v3, "boolean", "locked")
    };
end);


return {
    ApplySetNavigationLocked = require(script:FindFirstAncestor("NavigationRodux").Actions.ApplySetNavigationLocked)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_Parent_0.Navigation);
local l_GetFFlagLuaAppRefactorSelectRoute_0 = require(l_Parent_0.SharedFlags).GetFFlagLuaAppRefactorSelectRoute;
local l_getLegacyRouteFromRoactNavigationState_0 = require(l_script_FirstAncestor_0.Utils).getLegacyRouteFromRoactNavigationState;
local _ = require(l_script_FirstAncestor_0.types);
local function _(v6)
    return v6.Navigation;
end;
local function v9(v8)
    return v8.Navigation.roactNavigationState;
end;
local function v11(v10)
    return v10.Navigation.currentRoute;
end;
local function _(v12)
    return v12.Navigation.history;
end;
return {
    selectRoactNavigationState = v9,
    selectCurrentRoactNavigationRoute = v11,
    selectCurrentLegacyRoute = function(v14)
        if not l_GetFFlagLuaAppRefactorSelectRoute_0() then
            local l_history_0 = v14.Navigation.history;
            return l_history_0[#l_history_0];
        else
            return l_getLegacyRouteFromRoactNavigationState_0(v14.Navigation.roactNavigationState);
        end;
    end,
    selectCurrentLegacyPage = function(v16)
        local v17;
        if not l_GetFFlagLuaAppRefactorSelectRoute_0() then
            local l_history_1 = v16.Navigation.history;
            v17 = l_history_1[#l_history_1];
        else
            v17 = l_getLegacyRouteFromRoactNavigationState_0(v16.Navigation.roactNavigationState);
        end;
        return v17[#v17];
    end
};


local v0 = require(script:FindFirstAncestor("NavigationRodux").Parent.Cryo);
return function(v1, v2)
    v1 = v1 or {
        Navigation = {
            lockNavigationActions = nil
        }
    };
    if v2.type == "ApplySetNavigationLocked" then
        if v1.Navigation.lockNavigationActions == v2.locked then
            return v1;
        else
            return {
                Navigation = v0.Dictionary.join(v1.Navigation, {
                    lockNavigationActions = v2.locked or false
                })
            };
        end;
    else
        return v1;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local v1 = require(l_script_FirstAncestor_0.Parent.Navigation);
local l_getCurrentRouteState_0 = v1.getCurrentRouteState;
local _ = require(l_script_FirstAncestor_0.types);
local l_getLegacyRouteFromRoactNavigationState_0 = require(l_script_FirstAncestor_0.Utils).getLegacyRouteFromRoactNavigationState;
return {
    createMockReducerStateFromRouteState = function(v5)
        return {
            history = {
                (l_getLegacyRouteFromRoactNavigationState_0(v5))
            },
            currentRoute = l_getCurrentRouteState_0({
                state = v5
            }),
            roactNavigationState = v5,
            lockNavigationActions = false,
            backNavigationDisableCounter = 0
        };
    end,
    createMockStackState = v1.TestUtils.createMockStackState,
    createMockSwitchState = v1.TestUtils.createMockSwitchState,
    createMockScreenState = v1.TestUtils.createMockScreenState
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked);
local v3 = require(l_Parent_0.ArgCheck);
local v4 = require(l_Parent_0.RoactNavigation);
local v5 = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk);
return function(v6)
    v3.isTypeOrNil(v6, "boolean", "bypassNavigationLock");
    return v5.new("NavigateBack", function(v7, v8)
        if not v7:getState().Navigation.lockNavigationActions or v6 then
            v7:dispatch(v2(true));
            v8(v4.Actions.back());
            return ;
        else
            return ;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked);
local v4 = require(l_Parent_0.ArgCheck);
local v5 = require(l_Parent_0.RoactNavigation);
local v6 = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk);
return function(v7, v8)
    v4.isType(v7, "table", "page");
    v4.isTypeOrNil(v8, "boolean", "bypassNavigationLock");
    return v6.new("NavigateDown", function(v9, v10)
        if not v9:getState().Navigation.lockNavigationActions or v8 then
            v9:dispatch(v3(true));
            v10(v5.StackActions.push({
                routeName = v7.name,
                params = v2.Dictionary.join(v7, {
                    name = v2.None,
                    rnKey = v2.None
                })
            }));
            return ;
        else
            return ;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local v3 = require(l_Parent_0.RobloxAppEnums);
local v4 = require(l_Parent_0.UrlBuilder);
local v5 = require(l_Parent_0.t);
local l_AppPage_0 = v3.AppPage;
local l_UrlBuilder_0 = v4.UrlBuilder;
return function(v8)
    assert(v5.callback(v8) or v5.none(v8), "");
    return v2({
        name = l_AppPage_0.GenericWebPage,
        detail = l_UrlBuilder_0.static.groups(),
        extraProps = {
            titleKey = "CommonUI.Features.Label.Groups",
            onClose = v8
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
return function(v5)
    v2.isTypeOrNil(v5, "function", "onClose");
    return v3({
        name = l_AppPage_0.Notifications,
        extraProps = {
            onClose = v5
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local v4 = require(l_Parent_0.RobloxAppEnums);
local v5 = require(l_Parent_0.UrlBuilder);
local l_AppPage_0 = v4.AppPage;
local l_UrlBuilder_0 = v5.UrlBuilder;
return function(v8)
    v2.isTypeOrNil(v8, "function", "onClose");
    return v3({
        name = l_AppPage_0.SettingsSubPage,
        detail = l_UrlBuilder_0.static.settings.privacy(),
        extraProps = {
            titleKey = "Feature.AccountSettings.Heading.Tab.Privacy",
            onClose = v8
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local v4 = require(l_Parent_0.RobloxAppEnums);
local v5 = require(l_Parent_0.UrlBuilder);
local l_AppPage_0 = v4.AppPage;
local l_UrlBuilder_0 = v5.UrlBuilder;
return function(v8, v9, v10)
    v2.isInTypes(v8, {
        "string",
        "number"
    }, "userId");
    v2.isInTypes(v9, {
        "string",
        "number"
    }, "conversationId");
    v2.isTypeOrNil(v10, "function", "onClose");
    return v3({
        name = l_AppPage_0.ReportAbuse,
        detail = l_UrlBuilder_0.user.report({
            userId = v8,
            conversationId = v9
        }),
        extraProps = {
            onClose = v10
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
return function(v4)
    return v2({
        name = l_AppPage_0.SquadPage,
        conversationId = v4
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(l_script_FirstAncestor_0.Thunks.NavigateDown);
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
return function(v5, v6)
    v2.isInTypes(v5, {
        "string",
        "number"
    }, "userId");
    v2.isTypeOrNil(v6, "function", "onClose");
    return v3({
        name = l_AppPage_0.ViewUserProfile,
        detail = v5,
        extraProps = {
            onClose = v6
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.ArgCheck);
local v4 = require(l_Parent_0.RoactNavigation);
local v5 = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked);
local v6 = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk);
return function(v7, v8)
    v3.isType(v7, "table", "page");
    v3.isTypeOrNil(v8, "boolean", "bypassNavigationLock");
    return v6.new("NavigateFromWebView", function(v9, v10)
        if not v9:getState().Navigation.lockNavigationActions or v8 then
            v9:dispatch(v5(true));
            v10(v4.StackActions.replace({
                routeName = v7.name,
                key = v7.key,
                params = v2.Dictionary.join(v7, {
                    name = v2.None,
                    rnKey = v2.None
                })
            }));
            return ;
        else
            return ;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.ArgCheck);
local v5 = require(l_Parent_0.RoactNavigation);
local v6 = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk);
return function(v7, v8)
    v4.isType(v7, "table", "page");
    v4.isTypeOrNil(v8, "boolean", "bypassNavigationLock");
    return v6.new("NavigateSideways", function(v9, v10)
        if not v9:getState().Navigation.lockNavigationActions or v8 then
            v9:dispatch(v2(true));
            v10(v5.Actions.navigate({
                routeName = v7.name,
                key = v7.key,
                params = v3.Dictionary.join(v7, {
                    name = v3.None,
                    rnKey = v3.None
                })
            }));
            return ;
        else
            return ;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked);
local v3 = require(l_Parent_0.ArgCheck);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_Parent_0.RoactNavigation);
local v6 = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk);
return function(v7, v8)
    v3.isType(v7, "table", "route");
    v3.isTypeOrNil(v8, "boolean", "bypassNavigationLock");
    return v6.new("NavigateToRoute", function(v9, v10)
        if not v9:getState().Navigation.lockNavigationActions or v8 then
            v9:dispatch(v2(true));
            local v11 = v7[#v7];
            v10(v5.Actions.navigate({
                routeName = v11.name,
                params = v4.Dictionary.join(v11, {
                    name = v4.None,
                    rnKey = v4.None
                })
            }));
            return ;
        else
            return ;
        end;
    end);
end;


local l_Parent_0 = script:FindFirstAncestor("NavigationRodux").Parent;
local v1 = require(l_Parent_0.ArgCheck);
local l_Symbol_0 = require(l_Parent_0.AppCommonLib).Symbol;
local v3 = {};
local v4 = l_Symbol_0.named("RNAdapterThunkTag");
v3.middleware = function(v5)
    v1.isType(v5, "function", "rnDispatcher");
    return function(v6, v7)
        return function(v8)
            if typeof(v8) == "table" and v8[v4] == true then
                return v8(v7, v5);
            else
                return v6(v8);
            end;
        end;
    end;
end;
v3.new = function(v9, v10)
    v1.isNonEmptyString(v9, "name");
    v1.isType(v10, "function", "onInvoke");
    return (setmetatable({
        [v4] = true,
        type = v9
    }, {
        __call = function(_, ...)
            v10(...);
        end
    }));
end;
v3.test = function(v12, v13, v14)
    local l_assert_0 = v1.assert;
    local v16 = false;
    if type(v12) == "table" then
        v16 = v12[v4] == true;
    end;
    l_assert_0(v16, "'thunk' must be a valid RNAdapterThunk");
    return v12(v13, v14);
end;
v3.is = function(v17)
    if type(v17) == "table" then
        return v17[v4] == true;
    else
        return false;
    end;
end;
return v3;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Actions.ApplySetNavigationLocked);
local v3 = require(l_Parent_0.ArgCheck);
return function(v4)
    v3.isType(v4, "boolean", "locked");
    return function(v5)
        v5:dispatch(v2(v4));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
return {
    NavigateBack = require(l_script_FirstAncestor_0.Thunks.NavigateBack),
    NavigateDown = require(l_script_FirstAncestor_0.Thunks.NavigateDown),
    NavigateSideways = require(l_script_FirstAncestor_0.Thunks.NavigateSideways),
    NavigateToRoute = require(l_script_FirstAncestor_0.Thunks.NavigateToRoute),
    NavigateFromWebView = require(l_script_FirstAncestor_0.Thunks.NavigateFromWebView),
    RNAdapterThunk = require(l_script_FirstAncestor_0.Thunks.RNAdapterThunk),
    SetNavigationLocked = require(l_script_FirstAncestor_0.Thunks.SetNavigationLocked),
    NavigateDownToGroups = require(l_script_FirstAncestor_0.Thunks.NavigateDownToGroups),
    NavigateDownToNotifications = require(l_script_FirstAncestor_0.Thunks.NavigateDownToNotifications),
    NavigateDownToPrivacySettings = require(l_script_FirstAncestor_0.Thunks.NavigateDownToPrivacySettings),
    NavigateDownToReportAbuse = require(l_script_FirstAncestor_0.Thunks.NavigateDownToReportAbuse),
    NavigateDownToSquadLobby = require(l_script_FirstAncestor_0.Thunks.NavigateDownToSquadLobby),
    NavigateDownToViewUserProfile = require(l_script_FirstAncestor_0.Thunks.NavigateDownToViewUserProfile)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NavigationRodux");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local l_getActiveRoutes_0 = require(l_Parent_0.Navigation).getActiveRoutes;
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
local _ = require(l_script_FirstAncestor_0.types);
local v6 = require(l_script_FirstAncestor_0.Constants);
local function v9(v7)
    local v8 = false;
    if v7.routeName ~= v6.TempRnSwitchNavigatorName then
        v8 = v7.key ~= "StackRouterRoot";
    end;
    return v8;
end;
local function v11(v10)
    return v2.Dictionary.join(v10.params or {}, {
        name = v10.routeName,
        rnKey = v10.key
    });
end;
local function v13(v12)
    return v2.List.map(v2.List.filter(l_getActiveRoutes_0(v12), v9), v11);
end;
local function v14(v15)
    if v15.routeName == v6.TempRnSwitchNavigatorName then
        return v15;
    else
        local v16 = v15.routes[v15.index];
        if not v16.routes then
            return nil;
        else
            return v14(v16);
        end;
    end;
end;
return {
    getLegacyPageFromRoactNavigationRoute = v11,
    getLegacyRouteFromRoactNavigationState = v13,
    getCurrentTabName = function(v17)
        local v18;
        if v17.routeName == v6.TempRnSwitchNavigatorName then
            v18 = v17;
        else
            local v19 = v17.routes[v17.index];
            v18 = if not v19.routes then nil else v14(v19);
        end;
        if v18 ~= nil then
            return v18.routes[v18.index].routeName;
        else
            return l_AppPage_0.None;
        end;
    end
};


local _ = require(script.types);
return {
    Constants = require(script.Constants),
    Actions = require(script.Actions),
    Selectors = require(script.Selectors),
    Thunks = require(script.Thunks),
    Utils = require(script.Utils),
    TestUtils = require(script.TestHelpers.TestUtils),
    ["jest.config"] = script["jest.config"]
};


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


local _ = require(script:FindFirstAncestor("NavigationRodux").Parent.Navigation);
return nil;


local _ = require(script:FindFirstAncestor("NetworkingVirtualEvents").types);
return function(v1)
    return {
        id = v1,
        title = "Event Title",
        description = "Event description...",
        host = {
            hostType = "user",
            hostId = 1,
            hostName = "Roblox",
            hasVerifiedBadge = false
        },
        eventTime = {
            startUtc = DateTime.fromLocalTime(2022, 1, 1):ToIsoDate(),
            endUtc = DateTime.fromLocalTime(2022, 1, 7):ToIsoDate()
        },
        universeId = 1,
        eventStatus = "active",
        createdUtc = DateTime.fromLocalTime(2022, 1, 1):ToIsoDate(),
        updatedUtc = DateTime.fromLocalTime(2022, 1, 1):ToIsoDate(),
        userRsvpStatus = "none"
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NetworkingVirtualEvents");
local v1 = require(l_script_FirstAncestor_0.Parent.Http);
local _ = require(l_script_FirstAncestor_0.types);
return function(v3)
    return (v3.POST(script, function(v4, v5)
        return v4(v1.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):path("create"):body({
            title = v5.title,
            description = v5.description,
            eventTime = {
                startTime = v5.eventTime.startTime:ToIsoDate(),
                endTime = v5.eventTime.endTime:ToIsoDate()
            },
            universeId = v5.universeId
        });
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.POST(script, function(v2, v3)
        return v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v3);
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.GET(script, function(v2, v3)
        local v4 = v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):path("active");
        if v3 then
            v4 = v4:queryArgs(v3);
        end;
        return v4;
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.GET(script, function(v2)
        return v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):path("my-events");
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.GET(script, function(v2, v3)
        return v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v3);
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.GET(script, function(v2, v3)
        return v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v3):path("rsvps"):path("counters");
    end));
end;


local v0 = require(script:FindFirstAncestor("NetworkingVirtualEvents").Parent.Http);
return function(v1)
    return (v1.GET(script, function(v2, v3, v4)
        local v5 = v2(v0.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v3):path("rsvps");
        if v4 then
            v5 = v5:queryArgs(v4);
        end;
        return v5;
    end));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NetworkingVirtualEvents");
local v1 = require(l_script_FirstAncestor_0.Parent.Http);
local _ = require(l_script_FirstAncestor_0.types);
return function(v3)
    return (v3.POST(script, function(v4, v5, v6)
        return (v4(v1.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v5):path("rsvps"):body({
            rsvpStatus = v6
        }));
    end));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NetworkingVirtualEvents");
local v1 = require(l_script_FirstAncestor_0.Parent.Http);
local _ = require(l_script_FirstAncestor_0.types);
return function(v3)
    return (v3.POST(script, function(v4, v5, v6)
        local l_eventTime_0 = v6.eventTime;
        return v4(v1.Url.APIS_URL):path("virtual-events"):path("v1"):path("virtual-events"):id(v5):body({
            title = v6.title,
            description = v6.description,
            eventTime = if not l_eventTime_0 then nil else {
                startTime = l_eventTime_0.startTime:ToIsoDate(),
                endTime = l_eventTime_0.endTime:ToIsoDate()
            },
            universeId = v6.universeId
        });
    end));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("NextDataExpirationTimeRodux");
local v1 = require(l_script_FirstAncestor_0.SetNextDataExpirationTime);
local l_Immutable_0 = require(l_script_FirstAncestor_0.Parent.AppCommonLib).Immutable;
return function(v3, v4)
    v3 = v3 or {};
    assert(v3, "");
    if v4.type == v1.name then
        v3 = l_Immutable_0.Set(v3, v4.key, v4.nextDataExpirationTime);
    end;
    return v3;
end;


return require(script:FindFirstAncestor("NextDataExpirationTimeRodux").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    assert(type(v0) == "string", "SetNextDataExpirationTime: key must be a string");
    local v2 = false;
    if type(v1) == "number" then
        v2 = v1 > 0;
    end;
    assert(v2, "SetNextDataExpirationTime: nextDataExpirationTime must be a positive number");
    return {
        key = v0,
        nextDataExpirationTime = v1
    };
end);


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


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


local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_GuiService_0 = game:GetService("GuiService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.React);
local v5 = require(l_Parent_0.ReactRoblox);
local v6 = require(l_Parent_0.ReactOtter);
local l_useState_0 = v4.useState;
local l_useEffect_0 = v4.useEffect;
local l_useMemo_0 = v4.useMemo;
local l_Localization_0 = require(l_Parent_0.InExperienceLocales).Localization;
local l_LocalizationProvider_0 = require(l_Parent_0.Localization).LocalizationProvider;
local l_StyleProviderWithDefaultTheme_0 = require(l_Parent_0.Style).StyleProviderWithDefaultTheme;
local v13 = require(script.Parent.Parent.Flags.GetFFlagManagerCloseModalOnMenuOpen);
local v14 = {
    stiffness = 400,
    damping = 40,
    mass = 1
};
return function(v15)
    local v16, v17 = l_useState_0({});
    local v18, v19 = l_useState_0(l_GuiService_0.MenuIsOpen);
    l_useEffect_0(function()
        local v20 = l_GuiService_0.MenuOpened:Connect(function()
            if not (not v13() or not v15.CloseModal) then
                v15.CloseModal();
            end;
            v19(true);
        end);
        local v21 = l_GuiService_0.MenuClosed:Connect(function()
            v19(false);
        end);
        return function()
            v20:Disconnect();
            v21:Disconnect();
        end;
    end, {});
    local v22, v23 = v6.useAnimatedBinding(0, function()
        if v16 ~= v15 then
            v17(v15);
        end;
    end);
    l_useEffect_0(function()
        local v24 = nil;
        if v15.ModalKey then
            v17(v15);
            v24 = l_UserInputService_0.InputBegan:Connect(function(v25)
                if not (not ((not (v25.KeyCode ~= Enum.KeyCode.Backspace) or v25.KeyCode == Enum.KeyCode.ButtonB) and l_UserInputService_0:GetFocusedTextBox() == nil) or not v15.CloseModal) then
                    v15.CloseModal();
                end;
            end);
        end;
        return function()
            if v24 then
                v24:Disconnect();
            end;
        end;
    end, {
        v15
    });
    local v26 = l_useMemo_0(function()
        if not (v15.ModalKey ~= nil) or v18 then
            return 0;
        else
            return 1;
        end;
    end, {
        v15.ModalKey,
        v18
    });
    l_useEffect_0(function()
        v23(v6.spring(v26, v14));
    end, {
        v26
    });
    return v4.createElement("ScreenGui", {
        IgnoreGuiInset = true,
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        ResetOnSpawn = false,
        DisplayOrder = 0,
        Enabled = v22:map(function(v27)
            return v27 > 0;
        end)
    }, {
        Background = v4.createElement("Frame", {
            BackgroundColor3 = Color3.new(0, 0, 0),
            Size = UDim2.new(1, 0, 1, 0),
            BorderSizePixel = 1,
            BackgroundTransparency = v22:map(function(v28)
                return 1 - v28 * 0.5;
            end),
            ZIndex = 0
        }),
        Container = v4.createElement("TextButton", {
            ZIndex = 1,
            Text = "",
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 0),
            Modal = true,
            Selectable = false,
            Position = v22:map(function(v29)
                return UDim2.new(0, 0, 1 - v29, 0);
            end),
            [v5.Event.Activated] = function()
                if v15.CloseModal then
                    v15.CloseModal();
                end;
            end
        }, {
            LocalizationProvider = v4.createElement(l_LocalizationProvider_0, {
                localization = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId)
            }, {
                StyleProvider = v4.createElement(l_StyleProviderWithDefaultTheme_0, {}, {
                    ModalComponent = if not v16.Component then nil else v4.createElement(v16.Component, not not v16.Params and v16.Params.Props or {})
                })
            })
        })
    });
end;


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


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.ReactRoblox);
local v2 = require(l_Parent_0.React);
local v3 = require(script.Parent.Components.NotificationModalBase);
local v4 = nil;
local v5 = {};
local function _(v6)
    if not ((not (v5 and v5.ModalKey ~= v6.ModalKey) or not v5.Params) or not v5.Params.CloseCallback) then
        v5.Params.CloseCallback();
    end;
    v5 = v6;
    v4:render(v2.createElement(v3, v6));
end;
return {
    OpenModal = function(v8, v9, v10)
        if not v4 then
            local l_Folder_0 = Instance.new("Folder");
            l_Folder_0.Name = "NotificationModals";
            l_Folder_0.Parent = game.CoreGui;
            v4 = v1.createRoot(l_Folder_0);
        end;
        local v14 = {
            ModalKey = v8,
            Component = v9,
            Params = v10,
            CloseModal = function()
                local l_v8_0 = v8;
                if v4 and l_v8_0 == v5.ModalKey then
                    local v13 = {};
                    if not ((not (v5 and v5.ModalKey ~= v13.ModalKey) or not v5.Params) or not v5.Params.CloseCallback) then
                        v5.Params.CloseCallback();
                    end;
                    v5 = v13;
                    v4:render(v2.createElement(v3, v13));
                end;
            end
        };
        if not ((not (v5 and v5.ModalKey ~= v14.ModalKey) or not v5.Params) or not v5.Params.CloseCallback) then
            v5.Params.CloseCallback();
        end;
        v5 = v14;
        v4:render(v2.createElement(v3, v14));
        return true;
    end,
    CloseModal = function(v15)
        if v4 and v15 == v5.ModalKey then
            local v16 = {};
            if not ((not (v5 and v5.ModalKey ~= v16.ModalKey) or not v5.Params) or not v5.Params.CloseCallback) then
                v5.Params.CloseCallback();
            end;
            v5 = v16;
            v4:render(v2.createElement(v3, v16));
        end;
    end
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.ReactRoblox);
local v2 = require(l_Parent_0.React);
local l_Toast_0 = require(l_Parent_0.UIBlox).App.Dialog.Toast;
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Localization_0 = require(l_Parent_0.InExperienceLocales).Localization;
local l_LocalizationProvider_0 = require(l_Parent_0.Localization).LocalizationProvider;
local l_StyleProviderWithDefaultTheme_0 = require(l_Parent_0.Style).StyleProviderWithDefaultTheme;
local v8 = nil;
local function v10(v9)
    return v2.createElement(l_LocalizationProvider_0, {
        localization = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId)
    }, {
        StyleProvider = v2.createElement(l_StyleProviderWithDefaultTheme_0, {}, {
            ToastWrapper = v2.createElement("ScreenGui", {
                IgnoreGuiInset = true,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                ResetOnSpawn = false,
                DisplayOrder = 7
            }, {
                Toast = v2.createElement(l_Toast_0, {
                    duration = 3,
                    toastContent = v9
                })
            })
        })
    });
end;
return function(v11)
    if not v8 then
        local l_Folder_0 = Instance.new("Folder");
        l_Folder_0.Name = "UIBloxToast";
        l_Folder_0.Parent = game.CoreGui;
        v8 = v1.createRoot(l_Folder_0);
    end;
    v8:render(v2.createElement(v10, v11));
end;


return {
    ["jest.config"] = script["jest.config"],
    OpenModal = require(script.ModalRenderController).OpenModal,
    CloseModal = require(script.ModalRenderController).CloseModal,
    SetUIBloxToast = require(script.SetUIBloxToast)
};


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


local l_Parent_0 = script.Parent.Parent;
local l_default_0 = require(l_Parent_0.LinkingProtocol).LinkingProtocol.default;
local l_isSubjectToDesktopPolicies_0 = require(l_Parent_0.SharedFlags).isSubjectToDesktopPolicies;
local l_FFlagEnableToastNotificationsForMobile_0 = require(l_Parent_0.SharedFlags).FFlagEnableToastNotificationsForMobile;
local l_GetFFlagEnableShareLinkInExperienceToastNotificationFix_0 = require(l_Parent_0.SharedFlags).GetFFlagEnableShareLinkInExperienceToastNotificationFix;
return function(v5, v6)
    return pcall(function()
        if not ((not l_FFlagEnableToastNotificationsForMobile_0() or not v6) or l_isSubjectToDesktopPolicies_0()) then
            game:Shutdown();
        end;
        l_default_0:isURLRegistered(v5):andThen(function(v7)
            if not v7 then
                if not (not l_GetFFlagEnableShareLinkInExperienceToastNotificationFix_0() or not v6) then
                    game:Shutdown();
                    l_default_0:detectURL(v5);
                end;
                return ;
            else
                l_default_0:detectURL(v5);
                return ;
            end;
        end);
    end);
end;


local l_EventIngestService_0 = game:GetService("EventIngestService");
local l_getPlatformTarget_0 = require(script.Parent.Parent.Parent.Analytics).getPlatformTarget;
return function(v2, v3, v4)
    l_EventIngestService_0:SendEventDeferred(l_getPlatformTarget_0(), v2, v3, v4 or {});
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_GuiService_0 = game:GetService("GuiService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.UIBlox);
local v5 = require(l_Parent_0.ReactRoblox);
local l_GetFFlagSupportToastInVR_0 = require(l_Parent_0.SharedFlags).GetFFlagSupportToastInVR;
local l_InteractiveAlert_0 = v4.App.Dialog.Alert.InteractiveAlert;
local l_ButtonType_0 = v4.App.Button.Enum.ButtonType;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v10 = game:DefineFastFlag("EnableToastNotificationsDeeplinkConfirmationModalHeightFix", false);
local v11 = nil;
local l_RobloxTranslator_0 = l_RobloxGui_0.Modules:FindFirstChild("RobloxTranslator");
if l_RobloxTranslator_0 then
    local l_status_0, l_result_0 = pcall(function()
        return require(l_RobloxTranslator_0);
    end);
    if l_status_0 then
        v11 = l_result_0;
    end;
end;
return function(v15)
    local v16, v17 = v3.useState(Vector2.new(800, 600));
    local v18 = "Leaving Experience";
    local v19 = "Are you sure you want to leave and join another experience?";
    local v20 = "Cancel";
    local v21 = "Confirm";
    if v11 then
        v18 = v11:FormatByKey("Notifications.ToastNotifications.Title.LeavingExperience") or v18;
        v19 = v11:FormatByKey("Notifications.ToastNotifications.Label.LeaveExperienceConfirmation") or v19;
        v20 = v11:FormatByKey("InGame.InspectMenu.Action.Cancel") or v20;
        v21 = v11:FormatByKey("InGame.InspectMenu.Action.Confirm") or v21;
    end;
    return v3.createElement("Frame", {
        Active = true,
        BackgroundTransparency = if not not l_GetFFlagSupportToastInVR_0() and v15.backgroundTransparency then v15.backgroundTransparency else 0.5,
        BackgroundColor3 = Color3.new(0, 0, 0),
        Size = UDim2.new(1, 0, 1, not v10 and 0 or l_GuiService_0.TopbarInset.Height),
        [v5.Change.AbsoluteSize] = function(v22)
            v17(v22.AbsoluteSize);
        end,
        Position = if not v10 then nil else UDim2.fromOffset(0, -l_GuiService_0.TopbarInset.Height)
    }, {
        Alert = v3.createElement(l_InteractiveAlert_0, {
            screenSize = v16,
            title = v18,
            bodyText = v19,
            buttonStackInfo = {
                buttons = {
                    {
                        props = {
                            onActivated = function()
                                v15.closeCallback(false);
                            end,
                            text = v20
                        }
                    },
                    {
                        buttonType = l_ButtonType_0.PrimarySystem,
                        props = {
                            onActivated = function()
                                v15.closeCallback(true);
                            end,
                            text = v21
                        }
                    }
                }
            }
        })
    });
end;