local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.EquipOutfit);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.UnequipOutfit);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetAvatarType);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetAvatarScales);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyColors);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.SetBodyColor3sFromOutfit);
local v8 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearTryOns);
local v9 = require(l_Modules_0.AvatarExperience.Common.Actions.StartedWaitingOnLCUpdate);
local v10 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local v11 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v13 = require(l_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v15 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v16 = require(l_Modules_0.AvatarExperience.Flags.ColorPickerSliderIXPTest);
local v17 = {
    Torso = "27",
    RightArm = "28",
    LeftArm = "29",
    LeftLeg = "30",
    RightLeg = "31"
};
local _ = function(v18)
    for _, v20 in v17, nil, nil do
        if not v18[v20] then
            return false;
        end;
    end;
    return true;
end;
return function(v22)
    local l_outfitInfo_0 = v22.outfitInfo;
    local l_analytics_0 = v22.analytics;
    local l_navigation_0 = v22.navigation;
    local l_isSelected_0 = v22.isSelected;
    local l_fromOutfitPurchase_0 = v22.fromOutfitPurchase;
    local l_tryOnBundleInfo_0 = v22.tryOnBundleInfo;
    local l_blockFullReset_0 = v22.blockFullReset;
    return function(v30)
        v11.isType(l_outfitInfo_0, "table", "EquipOutfit thunk expects outfitInfo to be a table");
        v11.isType(l_analytics_0, "table", "EquipOutfit thunk expects analytics");
        v11.isType(l_navigation_0, "table", "EquipOutfit thunk expects navigation");
        v11.isTypeOrNil(l_blockFullReset_0, "boolean", "EquipOutfit thunk expects blockFullReset");
        local l_isEditable_0 = l_outfitInfo_0.isEditable;
        if not l_isEditable_0 then
            local l_assets_0 = l_outfitInfo_0.assets;
            for _, v34 in v17, nil, nil do
                if not l_assets_0[v34] then
                    l_isEditable_0 = false;
                    goto label0 --[[  true, false  ]];
                end;
            end;
            l_isEditable_0 = true;
        end;
        ::label0::;
        if l_analytics_0 then
            l_analytics_0.outfitClicked(l_outfitInfo_0.outfitId, l_outfitInfo_0.outfitType);
        end;
        local v35 = l_outfitInfo_0.outfitType == v13.OutfitTypes.DynamicHead;
        if v35 then
            for v36, _ in v13.DynamicHeadAssetTypes, nil, nil do
                if not l_outfitInfo_0.assets[v36] then
                    l_outfitInfo_0.assets[v36] = {};
                end;
            end;
            l_outfitInfo_0.assets[v13.AssetTypeIdStrings.Head] = {};
        end;
        if not v35 or not l_isSelected_0 then
            v30:dispatch(v9());
            if not l_tryOnBundleInfo_0 then
                v30:dispatch(v2(v10.removeEmoteAnimationAsset(l_outfitInfo_0.assets), l_isEditable_0));
            else
                local v38 = {};
                for v39, v40 in l_outfitInfo_0.assets, nil, nil do
                    local v41 = {};
                    for v42, v43 in v40, nil, nil do
                        if not ((not v43.order or not l_tryOnBundleInfo_0[v42]) or not l_tryOnBundleInfo_0[v42].order) then
                            v43.order = l_tryOnBundleInfo_0[v42].order;
                        end;
                        v41[v42] = v43;
                    end;
                    v38[v39] = v41;
                end;
                local l_l_isEditable_0_0 = l_isEditable_0;
                if l_blockFullReset_0 then
                    l_l_isEditable_0_0 = false;
                end;
                v30:dispatch(v2(v10.removeEmoteAnimationAsset(v38), l_l_isEditable_0_0));
            end;
            if not l_fromOutfitPurchase_0 then
                v30:dispatch(v8());
                v12.closeFiltersAndItemDetails(l_navigation_0);
            end;
            local l_DefaultBodyColorRanges_0 = v30:getState().AvatarExperience.AvatarEditor.DefaultBodyColorRanges;
            if l_isEditable_0 then
                if not v10.isPresetOutfit(l_outfitInfo_0) then
                    if not v15.readTestVariable(v16.EnabledForUser) then
                        v30:dispatch(v6(l_outfitInfo_0.bodyColors));
                    else
                        v30:dispatch(v7(l_outfitInfo_0.bodyColor3s, l_DefaultBodyColorRanges_0));
                    end;
                end;
                v30:dispatch(v5(l_outfitInfo_0.scales));
                v30:dispatch(v4(l_outfitInfo_0.avatarType));
            end;
            return ;
        else
            v30:dispatch(v3(l_outfitInfo_0.assets));
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Promise);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetPageFinished);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v8 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetUserInventory);
local v9 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetOutfits);
local v10 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
return function(v11, v12, v13)
    v4.isType(v11, "function", "GetOutfits thunk expects networkImpl to be a function");
    v4.isType(v12, "table", "GetOutfits thunk expects categoryInfo to be a table");
    local v14, _ = v10.getSearchUuidAndAssetTypes(v12, v13);
    return l_PerformFetch_0.Single(v14, function(v16)
        if v12.Sort then
            local v17 = true;
            do
                local l_v17_0 = v17;
                local function v19(v20)
                    local v21 = v12.SortOrder[v20] or "";
                    local v22 = v12.Sort[v21];
                    local v23 = v14 .. v21;
                    if v22 == v7.OutfitOrAsset.Outfit then
                        local v24 = v14 == v7.EditableCharacterKey;
                        if v12.OutfitFilter then
                            v24 = v12.OutfitFilter == Enum.OutfitSource.Created;
                        end;
                        v16:dispatch(v9(v11, v14, v24, v23, v21)):andThen(function(v25)
                            if v25 == v6.ReachedLastPage then
                                v19(v20 + 1);
                                return ;
                            else
                                l_v17_0 = false;
                                return ;
                            end;
                        end);
                        return ;
                    elseif v22 == v7.OutfitOrAsset.Asset then
                        v16:dispatch(v8(v12, v23, v14)):andThen(function(v26)
                            if v26 == v6.ReachedLastPage then
                                v19(v20 + 1);
                                return ;
                            else
                                l_v17_0 = false;
                                return ;
                            end;
                        end);
                        return ;
                    else
                        if l_v17_0 then
                            v16:dispatch(v5(v23, l_v17_0));
                        end;
                        return ;
                    end;
                end;
                v19(1);
            end;
        end;
        return v2.resolve();
    end);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Logging);
local v3 = require(l_CorePackages_0.Promise);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v5 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v6 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v7 = require(l_Modules_0.AvatarExperience.Common.RoduxUtils);
local v8 = require(l_Modules_0.AvatarExperience.Common.Analytics.reportAvatarEventCounterNoAnalyticsArgument);
local v9 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v10 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableAvatarEditorServiceAPIErrorLogging);
return v7.convertAvatarEditorServiceThunk("GetAvatarRules", function(v11, v12)
    return l_PerformFetch_0.Single(v6.GetAvatarRulesKey, function(_)
        return v3.new(function(v14, v15)
            local l_status_0, l_result_0 = pcall(function()
                return v12:GetAvatarRules();
            end);
            if not l_status_0 then
                if v10() then
                    v8(v9.Counter.AvatarEditorServiceErrors.GetAvatarRules);
                end;
                v2.warn("WebApi failure in GetAvatarRules");
                v15({
                    HttpError = Enum.HttpError.OK
                });
                return ;
            else
                v14((v5.tableToCamelCaseKeys(l_result_0)));
                return ;
            end;
        end);
    end)(v11);
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Promise);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_CorePackages_0.Cryo);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetOwnedItemIdsBySubtype);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetPageFinished);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v8 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local v9 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetOutfits);
return function(v10)
    v3.isType(v10, "function", "GetEditableOutfits thunk expects networkImpl to be a function");
    return function(v11)
        local v12 = v11:getState();
        if v12.AvatarExperience.AvatarEditor.PageFinished[v7.CharacterKey] then
            local l_OutfitInfos_0 = v12.AvatarExperience.AvatarEditor.OutfitInfos;
            local v14 = v12.AvatarExperience.AvatarEditor.Character.OwnedItemIdsBySubtype[v7.CharacterKey];
            local v15 = true;
            v14 = v4.List.filter(v14, function(v16)
                local v17 = l_OutfitInfos_0[tostring(v16)];
                if not v17 then
                    v15 = false;
                    return false;
                else
                    return not v8.isPresetOutfit(v17);
                end;
            end);
            if not v15 then
                --[[ close >= 6 ]]
            else
                v11:dispatch(v5(v7.EditableCharacterKey, v14));
                v11:dispatch(v6(v7.EditableCharacterKey, true));
                return v2.resolve();
            end;
        end;
        return v11:dispatch(v9(v10, v7.EditableCharacterKey, true));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Logging);
local v3 = require(l_CorePackages_0.Packages.Promise);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v5 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetOutfit);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetOwnedItemIdsBySubtype);
local v8 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetOutfitOrAsset);
local v9 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetPageFinished);
local v10 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v11 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v12 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v13 = require(l_Modules_0.AvatarExperience.Common.RoduxUtils);
local v14 = require(l_Modules_0.AvatarExperience.Common.Analytics.reportAvatarEventCounterNoAnalyticsArgument);
local v15 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v16 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableAvatarEditorServiceAPIErrorLogging);
local function _(v17, v18, v19)
    return v17 .. "." .. tostring(v18) .. tostring(v19);
end;
local function v36(v21, v22, v23, v24, v25, v26, v27, v28, v29)
    local v30 = v12.tableToCamelCaseKeys((v25:GetCurrentPage()));
    local v31 = {};
    for _, v33 in v30, nil, nil do
        local v34 = tostring(v33.id);
        v31[#v31 + 1] = v34;
        if v24:getState().AvatarExperience.AvatarEditor.OutfitInfos[v34] == nil then
            v24:dispatch(v6(v21, v34));
        end;
    end;
    local v35 = nil;
    if v25.IsFinished then
        v35 = v10.ReachedLastPage;
        v24:dispatch(v9(v28 or v22, v25.IsFinished));
    end;
    v26:storePageObject(v22 .. "." .. tostring(v23) .. tostring(v29), v25);
    v24:dispatch(v8(v31, v10.OutfitOrAsset.Outfit));
    v24:dispatch(v7(v22, v31));
    v27(v35);
end;
local function v49(v37, v38, v39, v40, v41, v42, v43, v44, v45, v46)
    local l_status_0, l_result_0 = pcall(function()
        v42:AdvanceToNextPageAsync();
    end);
    if not l_status_0 then
        v2.warn("GetOutfits failure: " .. l_result_0);
        v41(l_result_0);
        return ;
    else
        v36(v37, v38, v44, v39, v42, v43, v40, v45, v46);
        return ;
    end;
end;
local function v62(v50, v51, v52, v53, v54, v55, v56, v57, v58, v59)
    local l_status_1, l_result_1 = pcall(function()
        return v57:GetOutfits(v56, v59);
    end);
    if not l_status_1 then
        v2.warn("GetOutfits failure: " .. l_result_1);
        if v16() then
            v14(v15.Counter.AvatarEditorServiceErrors.GetOutfits);
        end;
        v54(l_result_1);
        return ;
    else
        v36(v50, v51, v56, v52, l_result_1, v55, v53, v58, v59);
        return ;
    end;
end;
return function(v63, v64, v65, v66, v67)
    v5.isType(v63, "function", "GetOutfits thunk expects networkImpl to be a function");
    v5.isTypeOrNil(v65, "boolean", "GetOutfits thunk expects onlyEditableOutfits to be a boolean or nil");
    v5.isTypeOrNil(v67, "string", "GetOutfits thunk expects outfitType to be a string or nil");
    local v68 = v66 or v64;
    return v13.convertPaginatedFetchThunk("GetUserOutfits", function(v69, v70, v71)
        return l_PerformFetch_0.Single(v11.OutfitsKey .. v68, function(v72)
            local v73 = nil;
            v73 = if v65 == nil then Enum.OutfitSource.All else if v65 then Enum.OutfitSource.Created else Enum.OutfitSource.Purchased;
            local l_All_0 = Enum.OutfitType.All;
            if v67 == v11.OutfitTypes.Avatar then
                l_All_0 = Enum.OutfitType.Avatar;
            elseif v67 == v11.OutfitTypes.DynamicHead then
                l_All_0 = Enum.OutfitType.DynamicHead;
            end;
            local v75 = v70:getPageObject(v64 .. "." .. tostring(v73) .. tostring(l_All_0));
            if not v75 or not v75.IsFinished then
                return v3.new(function(v76, v77)
                    if v75 ~= nil then
                        v49(v63, v64, v72, v76, v77, v75, v70, v73, v66, l_All_0);
                        return ;
                    else
                        v62(v63, v64, v72, v76, v77, v70, v73, v71, v66, l_All_0);
                        return ;
                    end;
                end);
            else
                return v3.resolve(v10.ReachedLastPage);
            end;
        end)(v69);
    end);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetOwnedItemIdsBySubtype);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetPageFinished);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetAssetInfoFromInventoryFetch);
local v8 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v9 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v10 = require(l_CorePackages_0.Logging);
local v11 = require(l_CorePackages_0.Promise);
local v12 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v13 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local v14 = require(l_Modules_0.AvatarExperience.Common.RoduxUtils);
local v15 = require(l_Modules_0.AvatarExperience.Common.Analytics.reportAvatarEventCounterNoAnalyticsArgument);
local v16 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v17 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableAvatarEditorServiceAPIErrorLogging);
local function _(v18, v19)
    local v20 = v18.AvatarExperience.Common.AssetInfos[v19];
    if not v20 or not v20.receivedFromInventoryFetch then
        return false;
    else
        return true;
    end;
end;
local function v37(v22, v23, v24, v25, v26, v27)
    local v28 = v23:getState();
    local v29 = v12.tableToCamelCaseKeys((v24:GetCurrentPage()));
    local v30 = {};
    local v31 = {};
    for _, v33 in v29, nil, nil do
        local v34 = tostring(v33.assetId);
        v31[#v31 + 1] = v34;
        local v35 = v28.AvatarExperience.Common.AssetInfos[v34];
        if not (not not v35 and (v35.receivedFromInventoryFetch and true or false)) then
            v30[#v30 + 1] = v33;
        end;
    end;
    if #v30 > 0 then
        v23:dispatch(v7(v30));
    end;
    v23:dispatch(v6(v22, v24.IsFinished));
    v25:storePageObject(v22, v24);
    v23:dispatch(v5(v27 or v22, v31));
    local v36 = nil;
    if v24.IsFinished then
        v36 = v8.ReachedLastPage;
    end;
    v26(v36);
end;
local function v47(v38, v39, v40, v41, v42, v43, v44)
    local l_status_0, l_result_0 = pcall(function()
        v40:AdvanceToNextPageAsync();
    end);
    if not l_status_0 then
        v10.warn("GetUserInventory failure: " .. l_result_0);
        v43();
        return ;
    else
        v37(v38, v39, v40, v41, v42, v44);
        return ;
    end;
end;
local function v61(v48, v49, v50, v51, v52, v53, v54, v55)
    local l_status_1, l_result_1 = pcall(function()
        local v56 = {};
        for _, v58 in v49, nil, nil do
            table.insert(v56, (v12.AssetTypeIdStringToEnumValue(v58)));
        end;
        return v52:GetInventory(v56);
    end);
    if not l_status_1 then
        if v17() then
            v15(v16.Counter.AvatarEditorServiceErrors.GetInventory);
        end;
        v10.warn("GetUserInventory failure: " .. l_result_1);
        v54();
        return ;
    else
        v37(v48, v50, l_result_1, v51, v53, v55);
        return ;
    end;
end;
return function(v62, v63, v64)
    v3.isType(v62, "table", "GetUserInventory thunk expects categoryInfo to be a table");
    return v14.convertPaginatedFetchThunk("GetUserInventory", function(v65, v66, v67)
        local v68, v69 = v13.getSearchUuidAndAssetTypes(v62, v65:getState().AvatarExperience.AvatarEditor.Categories.subButton);
        if v68 then
            v68 = v63 or v68;
            return l_PerformFetch_0.Single(v9.UserInventoryKey .. v68, function(v70)
                local v71 = v66:getPageObject(v68);
                if not v71 or not v71.IsFinished then
                    return v11.new(function(v72, v73)
                        if v71 == nil then
                            v61(v68, v69, v70, v66, v67, v72, v73, v64);
                            return ;
                        else
                            v47(v68, v70, v71, v66, v72, v73, v64);
                            return ;
                        end;
                    end);
                else
                    return v11.resolve(v8.ReachedLastPage);
                end;
            end)(v65);
        else
            return v11.resolve("No SearchUuid");
        end;
    end);
end;


local v0 = require(game:GetService("CorePackages").Workspace.Packages.ArgCheck);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.GrantAsset);
local v3 = require(l_Modules_0.AvatarExperience.Common.Actions.AddNewAssetNotification);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.FetchAssetOrBundleInfo);
local v5 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.GetAvatarEditorCategories);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local function v20(v9, v10, v11)
    local v12 = v10 == v6.AvatarEditor;
    local l_category_0 = v9.AvatarExperience.AvatarEditor.Categories.category;
    local l_subcategory_0 = v9.AvatarExperience.AvatarEditor.Categories.subcategory;
    local v15 = v7()[l_category_0];
    if v12 then
        local v16 = not not v15 and v15.Subcategories or nil;
        local v17 = not not v16 and v16[l_subcategory_0].AssetTypeIdStrings or v15.AssetTypeIdStrings;
        if v17 then
            for _, v19 in v17, nil, nil do
                if v19 == v11 then
                    return true;
                end;
            end;
        end;
    end;
    return false;
end;
return function(v21, v22, v23, v24, v25)
    v0.isType(v22, "string", "GrantAsset request expects assetId");
    v0.isType(v21, "string", "GrantAsset request expects assetTypeIdString");
    return function(v26)
        local l_OwnedItemIdsBySubtype_0 = v26:getState().AvatarExperience.AvatarEditor.Character.OwnedItemIdsBySubtype;
        v26:dispatch(v2(v21, v22));
        v26:dispatch(v4(v23, v24, v22, v5.ItemType.Asset));
        if not (not (l_OwnedItemIdsBySubtype_0 ~= v26:getState().AvatarExperience.AvatarEditor.Character.OwnedItemIdsBySubtype) or v20(v26:getState(), v25, v21)) then
            v26:dispatch(v3(v21));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.GrantOutfit);
local v4 = require(l_Modules_0.AvatarExperience.Common.Actions.AddNewOutfitNotification);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.GrantEditableOutfit);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.GrantPurchasedOutfit);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetOutfit);
local v8 = require(l_Modules_0.AvatarExperience.AvatarEditor.GetAvatarEditorCategories);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v10 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v11 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v12 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.GrantOutfitByType);
local v13 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local function _(v15, v16)
    local v17 = v16 == v9.AvatarEditor;
    local l_category_0 = v15.AvatarExperience.AvatarEditor.Categories.category;
    local l_subcategory_0 = v15.AvatarExperience.AvatarEditor.Categories.subcategory;
    local v20 = v8()[l_category_0];
    local v21 = not not v20 and v20.Subcategories or nil;
    if not (not v17 or not v21) and v21[l_subcategory_0].SearchUuid == v10.PurchasedCharacterKey then
        return true;
    else
        return false;
    end;
end;
local v27 = l_memoize_0(function()
    for _, v24 in (v8()), nil, nil do
        if not (not v24 or not v24.Subcategories) then
            for _, v26 in v24.Subcategories, nil, nil do
                if v26 and v26.OutfitType == v11.OutfitTypes.DynamicHead then
                    return v26.SearchUuid;
                end;
            end;
        end;
    end;
    return nil;
end);
return function(v28, v29, v30)
    v13.isType(v29, "string", "GrantOutfit thunk expects networkImpl to be a function");
    return function(v31)
        local l_OwnedItemIdsBySubtype_0 = v31:getState().AvatarExperience.AvatarEditor.Character.OwnedItemIdsBySubtype;
        v31:dispatch(v3(v29));
        local l_OwnedItemIdsBySubtype_1 = v31:getState().AvatarExperience.AvatarEditor.Character.OwnedItemIdsBySubtype;
        v31:dispatch(v7(v28, v29)):andThen(function()
            local v34 = v31:getState();
            local v35 = v34.AvatarExperience.AvatarEditor.OutfitInfos[tostring(v29)];
            if v29 and v35.outfitType == v11.OutfitTypes.DynamicHead then
                local v36 = v27();
                if v36 then
                    v31:dispatch(v12(v36, v29));
                    v31:dispatch(v4(v11.OutfitTypes.DynamicHead));
                end;
                return ;
            elseif not v29 or not v35.isEditable then
                if l_OwnedItemIdsBySubtype_0 ~= l_OwnedItemIdsBySubtype_1 then
                    if not (not v29 or v35.isEditable) then
                        v31:dispatch(v6(v29));
                    end;
                    local v37 = v30 == v9.AvatarEditor;
                    local l_category_1 = v34.AvatarExperience.AvatarEditor.Categories.category;
                    local l_subcategory_1 = v34.AvatarExperience.AvatarEditor.Categories.subcategory;
                    local v40 = v8()[l_category_1];
                    local v41 = not not v40 and v40.Subcategories or nil;
                    if not (not not v37 and if v41 then v41[l_subcategory_1].SearchUuid == v10.PurchasedCharacterKey else false) then
                        v31:dispatch(v4(v11.OutfitTypes.Avatar));
                    end;
                end;
                return ;
            else
                v31:dispatch(v5(v29));
                return ;
            end;
        end);
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Symbol);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = {};
local v4 = v1.named("PaginatedFetchThunkTag");
v3.middleware = function(v5, v6)
    v2.isType(v5, "table", "pageObjectManager");
    v2.isInTypes(v6, {
        "table",
        "Instance"
    }, "avatarEditorService");
    return function(v7, v8)
        return function(v9)
            if typeof(v9) == "table" and v9[v4] == true then
                return v9(v8, v5, v6);
            else
                return v7(v9);
            end;
        end;
    end;
end;
v3.new = function(v10, v11)
    v2.isNonEmptyString(v10, "name");
    v2.isType(v11, "function", "onInvoke");
    return (setmetatable({
        [v4] = true,
        type = v10
    }, {
        __call = function(_, ...)
            return v11(...);
        end
    }));
end;
v3.test = function(v13, v14, v15, v16)
    local l_assert_0 = v2.assert;
    local v18 = false;
    if type(v13) == "table" then
        v18 = v13[v4] == true;
    end;
    l_assert_0(v18, "'thunk' must be a valid PaginatedFetchThunk");
    return v13(v14, v15, v16);
end;
return v3;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetAvatarSettings);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetDefaultBodyColors);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetExtendedBodyColors);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetDefaultBodyColorRanges);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v6 = require(l_Modules_0.AvatarExperience.Flags.ColorPickerSliderIXPTest);
local l_game_EngineFeature_0 = game:GetEngineFeature("ClientAvatarUsesColor3sForBodyParts");
local v8 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
return function(v9)
    return function(v10)
        v10:dispatch(v1(v9.minimumDeltaEBodyColorDifference, v9.scales));
        if not v8.readTestVariable(v6.EnabledForUser) then
            local l_basicBodyColorsPalette_0 = v9.basicBodyColorsPalette;
            if l_basicBodyColorsPalette_0 then
                v10:dispatch(v2(l_basicBodyColorsPalette_0));
            end;
        else
            v10:dispatch(v4(v5.DefaultBodyColorRanges));
            if not l_game_EngineFeature_0 then
                local l_basicBodyColorsPalette_1 = v9.basicBodyColorsPalette;
                if l_basicBodyColorsPalette_1 then
                    v10:dispatch(v2(l_basicBodyColorsPalette_1));
                end;
            end;
        end;
        if l_game_EngineFeature_0 then
            v10:dispatch(v3(v9.bodyColorsPalette));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Selectors.hasLayeredHair);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.RemoveLayeredClothing);
return function()
    return function(v3)
        v3:dispatch(v2((v1(v3:getState()))));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_CorePackages_0.Promise);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v7 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v8 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v9 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local v10 = require(l_Modules_0.AvatarExperience.Common.RoduxUtils);
local v11 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.OutfitRenamed);
local v12 = {
    toastMessage = "Feature.Avatar.Message.RenameCostumeSuccess",
    isLocalized = false,
    toastType = v8.InformationMessage
};
local v13 = {
    toastMessage = "Feature.Avatar.Message.FailedRenameCostume",
    isLocalized = false,
    toastType = v8.InformationMessage
};
local function _(v14)
    return v6.RenameOutfitKey .. v14;
end;
return function(v16, v17, v18)
    v3.isType(v16, "table", "RenameOutfit thunk expects avatarEditorAnalytics to be a table");
    v3.isType(v17, "string", "RenameOutfit thunk expects id to be a string");
    v3.isType(v18, "string", "RenameOutfit thunk expects name to be a string");
    return v10.convertAvatarEditorServiceThunk("RenameOutfit", function(v19, v20)
        return l_PerformFetch_0.Single(v6.RenameOutfitKey .. v17, function(v21)
            return v4.new(function(v22, v23)
                if v9.doAESCallAndAwaitResult(v20, v20.NoPromptRenameOutfit, v20.PromptRenameOutfitCompleted, v17, v18) == Enum.AvatarPromptResult.Success then
                    v21:dispatch(v11(v17, v18));
                    v21:dispatch(v7(v12));
                    v16.outfitRenamed(v17, v18);
                    v22();
                    return ;
                else
                    v21:dispatch(v7(v13));
                    v23();
                    return ;
                end;
            end);
        end)(v19);
    end);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.RevokeAsset);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.ToggleEquipAsset);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v5, v6, v7)
    return function(v8)
        local l_EquippedAssets_0 = v8:getState().AvatarExperience.AvatarEditor.Character.EquippedAssets;
        v5 = tostring(v5);
        v6 = tostring(v6);
        if v3.isAssetEquipped(v6, v5, l_EquippedAssets_0) then
            v8:dispatch(v2(v5, v6, v7));
        end;
        v8:dispatch(v1(v5, v6));
    end;
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Utils);
return function(v1, v2, v3)
    return function(v4)
        v1(v2, v4:getState().AvatarExperience.AvatarEditor.Categories.category, v4:getState().AvatarExperience.AvatarEditor.Categories.subcategory, v3, v0.getUserId(v4:getState()), v4:getState().AvatarExperience.Common.Widgets.WidgetInfo.RequestId);
    end;
end;


return function(v0)
    return function(v1)
        v0.clickShopForMore(v1:getState().AvatarExperience.AvatarEditor.Categories.category, v1:getState().AvatarExperience.AvatarEditor.Categories.subcategory);
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyPartRangeIds);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyColor3s);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetRangeIdToBodyPartsToSliderAndColor3Values);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.SendAnalytics);
return function(v8, v9, v10, v11)
    return function(v12)
        local v13 = v12:getState();
        local l_AvatarEditor_0 = v13.AvatarExperience.AvatarEditor;
        local l_bodyPartForSkinColoringIds_0 = v2.BodyPartButtonData[l_AvatarEditor_0.BodyColorPickerSettings.selectedBodyPartIndex].bodyPartForSkinColoringIds;
        local v16 = v1.getUserId(v13);
        local l_BodyColor3s_0 = l_AvatarEditor_0.Character.BodyColor3s;
        local l_BodyPartRangeIds_0 = l_AvatarEditor_0.Character.BodyPartRangeIds;
        local v19 = {};
        local v20 = {};
        if l_bodyPartForSkinColoringIds_0 and #l_bodyPartForSkinColoringIds_0 > 0 then
            v19 = table.clone(l_BodyColor3s_0);
            v20 = table.clone(l_BodyPartRangeIds_0);
            for _, v22 in l_bodyPartForSkinColoringIds_0, nil, nil do
                v19[v22] = v8;
                v20[v22] = v9;
            end;
        else
            for _, v24 in v2.allBodyPartForSkinColoringIds, nil, nil do
                v19[v24] = v8;
                v20[v24] = v9;
            end;
        end;
        v12:dispatch(v5(v19));
        v12:dispatch(v4(v20));
        for _, v26 in l_bodyPartForSkinColoringIds_0, nil, nil do
            v12:dispatch(v6(v9, v26, v10, v8));
        end;
        v11.selectedBodyColorRangeWithId(v9, v16);
        v12:dispatch(v7(v11.setBodyColor3s, v19));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyPartRangeIds);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyColor3s);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetRangeIdToBodyPartsToSliderAndColor3Values);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
return function(v6, v7)
    return function(v8)
        local v9 = {};
        for v10, v11 in pairs(v6) do
            local v12, v13 = v5.findRangeAndSliderValueForColor3(v11, v7);
            v4(v12, v10, v13, v11);
            v9[v10] = v12;
        end;
        v8:dispatch(v3(v6));
        v8:dispatch(v2(v9));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetBodyPartRangeIds);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetRangeIdToBodyPartsToSliderAndColor3Values);
return function(v5)
    return function(v6)
        local l_DefaultBodyColorRanges_0 = v6:getState().AvatarExperience.AvatarEditor.DefaultBodyColorRanges;
        assert(l_DefaultBodyColorRanges_0 ~= nil, "defaultBodyColorRanges is nil");
        local v8 = {};
        local v9 = {};
        for v10, v11 in v5, nil, nil do
            local v12, v13 = v1.findRangeAndSliderValueForColor3(v11, l_DefaultBodyColorRanges_0);
            v8[v10] = v12;
            v9[v10] = v13;
        end;
        v6:dispatch(v3(v8));
        for v14, v15 in v9, nil, nil do
            v6:dispatch(v4(v8[v14], v14, v15, v5[v14]));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.tutils);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.ToggleEquipAsset);
local v5 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearTryOns);
local v6 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v8 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v9 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.ClearCurrentSort);
local v10 = require(l_Modules_0.AvatarExperience.Common.Actions.StartedWaitingOnLCUpdate);
local v11 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v14 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXRestrictBodyRemoval);
local l_MaxHats_0 = v7.MaxHats;
local v16 = {
    toastMessage = "Feature.Avatar.Message.HatLimitTooltip",
    isLocalized = false,
    toastType = v11.InformationMessage
};
local v17 = {
    toastMessage = "Feature.Avatar.EmoteAlreadyAssigned",
    isLocalized = false,
    toastType = v11.InformationMessage
};
local v18 = not not v14() and {
    [v6.AssetTypeIdStrings.Head] = true,
    [v6.AssetTypeIdStrings.DynamicHead] = true,
    [v6.AssetTypeIdStrings.LeftArm] = true,
    [v6.AssetTypeIdStrings.RightArm] = true,
    [v6.AssetTypeIdStrings.LeftLeg] = true,
    [v6.AssetTypeIdStrings.RightLeg] = true,
    [v6.AssetTypeIdStrings.Torso] = true
} or nil;
local function _(v19, v20, v21)
    if v18[v19] then
        if not ((v21[v19] and next(v21[v19])) == v20) then
            return false;
        else
            return true;
        end;
    else
        return false;
    end;
end;
return function(v23, v24, v25, v26, v27)
    return function(v28)
        local l_EquippedAssets_0 = v28:getState().AvatarExperience.AvatarEditor.Character.EquippedAssets;
        if l_EquippedAssets_0 then
            if not v28:getState().AvatarExperience.LayeredClothingSort.CharacterUpdatesLocked then
                if v14() then
                    local l_v23_0 = v23;
                    if if v18[l_v23_0] then (l_EquippedAssets_0[l_v23_0] and next(l_EquippedAssets_0[l_v23_0])) == v24 else false then
                        return false;
                    end;
                end;
                if not (v26 or v2.isEmpty(v28:getState().AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems)) then
                    v28:dispatch(v5());
                    if v25 then
                        v12.closeFiltersAndItemDetails(v25);
                    end;
                end;
                if v23 == v6.AssetTypeIdStrings.EmoteAnimation then
                    local l_EquippedEmotes_0 = v28:getState().AvatarExperience.AvatarEditor.EquippedEmotes;
                    local v32 = l_EquippedEmotes_0.slotInfo[l_EquippedEmotes_0.selectedSlot];
                    if not (v32 and v32.assetId == v24) then
                        for _, v34 in l_EquippedEmotes_0.slotInfo, nil, nil do
                            if v34.assetId == v24 then
                                v28:dispatch(v8(v17));
                                return ;
                            end;
                        end;
                    end;
                end;
                local v35 = l_EquippedAssets_0[v6.AssetTypeIdStrings.Hat];
                local v36 = 0;
                if v35 then
                    v36 = v3.fieldCount(v35);
                end;
                if not (not (v23 == v6.AssetTypeIdStrings.Hat) or not v35) and l_MaxHats_0 <= v36 then
                    v35 = v35 or {};
                    local v37 = false;
                    if v35[v24] then
                        v37 = true;
                    end;
                    if not v37 then
                        v28:dispatch(v8(v16));
                    end;
                end;
                if #v28:getState().AvatarExperience.LayeredClothingSort.CurrentSort.OrderedList ~= 0 then
                    v28:dispatch(v9());
                end;
                if v6.LayeredAssetTypes[v23] ~= nil then
                    v28:dispatch(v10());
                end;
                v28:dispatch(v4(v23, v24, v27));
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.UpdateOutfit);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetOutfit);
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v6, v7)
    v4.isType(v7, "string", "GrantOutfit thunk expects networkImpl to be a function");
    return function(v8)
        local v9 = v8:getState().AvatarExperience.AvatarEditor.OutfitInfos[v7];
        local v10 = (not not v9 and v9.updateCounter or 0) + 1;
        v8:dispatch(v2(v7));
        v8:dispatch(v3(v6, v7, v10));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_CorePackages_0.Promise);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.UpdateOutfit);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v8 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v9 = require(l_Modules_0.LuaApp.Enum.ToastType);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v11 = require(l_Modules_0.AvatarExperience.AvatarEditor.Utils);
local v12 = require(l_Modules_0.AvatarExperience.Common.RoduxUtils);
local v13 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAvatarEditorServiceCreateOutfitSupportsGears);
local v14 = {
    toastMessage = "Feature.Avatar.Message.UpdateOutfitSuccess",
    isLocalized = false,
    toastType = v9.SuccessConfirmation
};
local v15 = {
    toastMessage = "Feature.Avatar.Message.FailedUpdateOutfit",
    isLocalized = false,
    toastType = v9.InformationMessage
};
local function _(v16)
    return v7.UpdateOutfitKey .. v16;
end;
return function(v18, v19, v20)
    v3.isType(v20, "string", "UpdateSavedOutfit thunk expects outfitId to be a string");
    v3.isType(v18, "function", "UpdateSavedOutfit thunk expects networkImpl to be a function");
    v3.isType(v19, "table", "UpdateSavedOutfit thunk expects avatarEditorAnalytics to be a table");
    v3.isType(v20, "string", "UpdateSavedOutfit thunk expects outfitId to be a string");
    return v12.convertAvatarEditorServiceThunk("UpdateSavedOutfit", function(v21, v22)
        return l_PerformFetch_0.Single(v7.UpdateOutfitKey .. v20, function(v23)
            local v24 = v23:getState();
            local v25 = v11.getHumanoidDescriptionFromState(v24.AvatarExperience);
            local v26 = Enum.HumanoidRigType[v24.AvatarExperience.AvatarEditor.Character.AvatarType];
            local v27 = 0;
            if v13() then
                v27 = v11.getGearAssetIdFromState(v24.AvatarExperience);
            end;
            return v4.new(function(v28, v29)
                if v11.doAESCallAndAwaitResult(v22, v22.NoPromptUpdateOutfit, v22.PromptUpdateOutfitCompleted, v20, v25, v26, v27) == Enum.AvatarPromptResult.Success then
                    v23:dispatch(v6(v18, v20));
                    v23:dispatch(v8(v14));
                    v19.outfitUpdated(v20);
                    v28();
                    return ;
                else
                    v23:dispatch(v8(v15));
                    v29();
                    return ;
                end;
            end);
        end)(v21);
    end);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_Modules_0.LuaApp.mutedError);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v8 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v9 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v10 = require(l_Modules_0.AvatarExperience.ColorPicker.ColorPickerUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v12 = require(l_Modules_0.AvatarExperience.Flags.ColorPickerSliderIXPTest);
local v13 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.AvatarExperience);
local l_game_EngineFeature_0 = game:GetEngineFeature("ClientAvatarUsesColor3sForBodyParts");
local l_AvatarEditorService_0 = game:GetService("AvatarEditorService");
local v17 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAvatarEditorServiceCreateOutfitSupportsGears);
local v18 = {};
local v19 = require(l_Modules_0.AvatarExperience.Common.Analytics.reportAvatarEventCounterNoAnalyticsArgument);
local v20 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v21 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableAvatarEditorServiceAPIErrorLogging);
local v22 = require(l_Modules_0.AvatarExperience.Flags.FFlagColorPickerSliderEpsilon);
v18.isWearingDynamicHeadOutfit = function(v23, v24)
    local v25 = v18.getEquippedAssetIds(v23.assets);
    if v24 then
        for v26, _ in v23.assets, nil, nil do
            if v24[v26] then
                local v28 = next(v24[v26]);
                if next(v23.assets[v26]) then
                    local v29 = false;
                    for _, v31 in v25, nil, nil do
                        if v31 == v28 then
                            v29 = true;
                        end;
                    end;
                    if not v29 then
                        return false;
                    end;
                end;
            else
                return false;
            end;
        end;
        if v23.assets[v8.AssetTypeIdStrings.DynamicHead] then
            return true;
        else
            return false;
        end;
    else
        return false;
    end;
end;
v18.isWearingOutfitNoState = function(v32, v33, v34, v35, v36, v37)
    local v38 = v18.removeEmoteAnimationAsset(v32.assets);
    if v32.outfitType == v8.OutfitTypes.DynamicHead then
        return v18.isWearingDynamicHeadOutfit(v32, v36);
    else
        local v39 = v18.getEquippedAssetIds(v38);
        local v40 = v18.getEquippedAssetIds(v36);
        if #v39 ~= #v40 then
            return false;
        else
            for _, v42 in v39, nil, nil do
                local v43 = false;
                for _, v45 in v40, nil, nil do
                    if v42 == v45 then
                        v43 = true;
                    end;
                end;
                if not v43 then
                    return false;
                end;
            end;
            if not v18.isPresetOutfit(v32) then
                if not v13.readTestVariable(v12.EnabledForUser) then
                    for v46, v47 in v34, nil, nil do
                        if v32.bodyColors[v46] ~= v47 then
                            return false;
                        end;
                    end;
                else
                    for v48, v49 in v35, nil, nil do
                        if v32.bodyColor3s then
                            if v32.bodyColor3s[v48]:ToHex() ~= v49:ToHex() then
                                return false;
                            end;
                        else
                            return false;
                        end;
                    end;
                end;
            end;
            for v50, v51 in v37, nil, nil do
                if v32.scales[v50] ~= v51 then
                    return false;
                end;
            end;
            if v32.avatarType ~= v33 then
                return false;
            else
                return true;
            end;
        end;
    end;
end;
v18.removeEmoteAnimationAsset = function(v52)
    if v52[v8.AssetTypeIdStrings.EmoteAnimation] then
        return v2.Dictionary.join(v52, {
            [v8.AssetTypeIdStrings.EmoteAnimation] = v2.None
        });
    else
        return v52;
    end;
end;
v18.getEquippedAssetIds = function(v53)
    local v54 = {};
    if v53 then
        for _, v56 in v8.AssetTypeIdStrings, nil, nil do
            local v57 = v53[v56];
            if v57 then
                for v58, _ in v57, nil, nil do
                    table.insert(v54, v58);
                end;
            end;
        end;
        return v54;
    else
        return v54;
    end;
end;
v18.getEquippedAssetIdsForType = function(v60, v61)
    local v62 = {};
    if v60 then
        local v63 = v60[v61];
        if v63 then
            for v64, _ in v63, nil, nil do
                table.insert(v62, v64);
            end;
        end;
        return v62;
    else
        return v62;
    end;
end;
v18.getEquippedAssetIdsForCategory = function(v66, v67)
    local v68 = {};
    if v67.AssetTypeIdStrings then
        for _, v70 in v67.AssetTypeIdStrings, nil, nil do
            for _, v72 in (v18.getEquippedAssetIdsForType(v66, v70)), nil, nil do
                v68[#v68 + 1] = v72;
            end;
        end;
        return v68;
    else
        return v68;
    end;
end;
v18.isAssetEquipped = function(v73, v74, v75)
    if v75 then
        local v76 = v75[v74];
        if v76 ~= nil and next(v76) then
            if v76[v73] then
                return true;
            end;
        else
            return false;
        end;
    end;
    return false;
end;
v18.isWearingOutfit = function(v77, v78)
    return v18.isWearingOutfitNoState(v78, v77.AvatarExperience.AvatarEditor.Character.AvatarType, v77.AvatarExperience.AvatarEditor.Character.BodyColors, v77.AvatarExperience.AvatarEditor.Character.BodyColor3s, v77.AvatarExperience.AvatarEditor.Character.EquippedAssets, v77.AvatarExperience.AvatarEditor.Character.AvatarScales);
end;
v18.isPresetOutfit = function(v79)
    return not v79.isEditable;
end;
v18.isDuplicateOutfitName = function(v80, v81, v82)
    local v83 = string.lower(utf8.nfdnormalize(v82));
    local v84 = v80[v7.EditableCharacterKey] or {};
    for _, v86 in v84, nil, nil do
        local v87 = tostring(v86);
        if v81[v87] and string.lower(utf8.nfdnormalize(v81[v87].name)) == v83 then
            return true;
        end;
    end;
    return false;
end;
local _ = function(v88, v89)
    local v90 = v2.List.toSet(v89);
    return (v2.List.filter(v88, function(v91, _)
        return not v90[v91];
    end));
end;
v18.diffList = function(v94, v95)
    local v96 = v2.List.toSet(v95);
    local v99 = v2.List.filter(v94, function(v97, _)
        return not v96[v97];
    end);
    local v100 = v2.List.toSet(v94);
    return (v2.List.join(v99, (v2.List.filter(v95, function(v101, _)
        return not v100[v101];
    end))));
end;
v18.getEquippedDiffs = function(v103, v104)
    local v105 = {};
    for v106, _ in v104, nil, nil do
        local v108 = v18.getEquippedAssetIdsForType(v104, v106);
        local v109 = v18.getEquippedAssetIdsForType(v103, v106);
        if not next(v109) then
            if next(v108) then
                v105[v106] = v108;
            end;
        else
            local v110 = v18.diffList(v108, v109);
            if next(v110) ~= nil then
                v105[v106] = v110;
            end;
        end;
    end;
    for v111, _ in v103, nil, nil do
        local v113 = v18.getEquippedAssetIdsForType(v103, v111);
        local v114 = v18.getEquippedAssetIdsForType(v104, v111);
        if not next(v114) then
            if next(v113) then
                v105[v111] = v113;
            end;
        else
            local v115 = v18.diffList(v113, v114);
            if next(v115) ~= nil then
                v105[v111] = v115;
            end;
        end;
    end;
    return v105;
end;
v18.hasWrapLayer = function(v116)
    if v116 then
        return v116:FindFirstChildWhichIsA("WrapLayer", true) ~= nil;
    else
        return false;
    end;
end;
v18.hasLayeredAssetsEquipped = l_memoize_0(function(v117)
    if v117 then
        for _, v119 in v117, nil, nil do
            for _, v121 in v119, nil, nil do
                if v121.isLayered then
                    return true;
                end;
            end;
        end;
        return false;
    else
        return false;
    end;
end);
v18.setHumanoidDescriptionColorsFromBodyColors = function(v122, v123)
    if v123 then
        for v124, v125 in v123, nil, nil do
            v122[v8.HumanoidDescriptionBodyColorIdToName[v124]] = BrickColor.new(v125).Color;
        end;
    end;
end;
v18.setHumanoidDescriptionColorsFromBodyColor3s = function(v126, v127)
    if v127 then
        for v128, v129 in v127, nil, nil do
            v126[v8.BodyPartForSkinColoringIdToHumanoidDescription[v128]] = v129;
        end;
    end;
end;
v18.setHumanoidDescriptionColorsFromCharacter = function(v130, v131)
    if not v13.readTestVariable(v12.EnabledForUser) then
        v18.setHumanoidDescriptionColorsFromBodyColors(v130, v131.AvatarEditor.Character.BodyColors);
        return ;
    else
        v18.setHumanoidDescriptionColorsFromBodyColor3s(v130, v131.AvatarEditor.Character.BodyColor3s);
        return ;
    end;
end;
v18.getGearAssetIdFromState = function(v132)
    if v17() then
        local l_EquippedAssets_0 = v132.AvatarEditor.Character.EquippedAssets;
        if l_EquippedAssets_0 == nil then
            return 0;
        else
            local _, v135 = next((v18.getEquippedAssetIdsForType(l_EquippedAssets_0, v8.AssetTypeIdStrings.Gear)));
            if not v135 then
                return 0;
            else
                return (tonumber(v135));
            end;
        end;
    else
        return 0;
    end;
end;
v18.getHumanoidDescriptionFromState = function(v136)
    local l_HumanoidDescription_0 = Instance.new("HumanoidDescription");
    local l_EquippedAssets_1 = v136.AvatarEditor.Character.EquippedAssets;
    local l_AvatarScales_0 = v136.AvatarEditor.Character.AvatarScales;
    if l_EquippedAssets_1 then
        local v140 = {};
        for v141, v142 in l_EquippedAssets_1, nil, nil do
            local v143 = {};
            local v144 = v8.AssetTypeIdToAccessoryTypeEnum[v141];
            for v145, v146 in v142, nil, nil do
                if not v144 then
                    table.insert(v143, v145);
                else
                    table.insert(v140, v9.createHumanoidDescriptionAccessoryInfo(v141, v145, v146));
                end;
            end;
            if v144 == nil and #v143 > 0 then
                local v147 = v8.AssetTypeIdStringToHumanoidDescriptionProp[v141];
                local v148 = table.concat(v143, ",");
                if not v147 then
                    if v141 ~= v8.AssetTypeIdStrings.Gear then
                        v5(string.format("assetTypeId: %s not recognized as member of humanoidDescription", (tostring(v141))));
                    end;
                else
                    l_HumanoidDescription_0[v147] = v148;
                end;
            end;
        end;
        l_HumanoidDescription_0:SetAccessories(v140, true);
    end;
    if l_AvatarScales_0 then
        for v149, v150 in l_AvatarScales_0, nil, nil do
            l_HumanoidDescription_0[v8.HumanoidDescriptionScaleToName[v149]] = v150;
        end;
    end;
    v18.setHumanoidDescriptionColorsFromCharacter(l_HumanoidDescription_0, v136);
    local v151 = {};
    local v152 = {};
    for _, v154 in v136.AvatarEditor.EquippedEmotes.slotInfo, nil, nil do
        v151[tostring(v154.assetId)] = {
            (tonumber(v154.assetId))
        };
        table.insert(v152, {
            Slot = v154.position,
            Name = tostring(v154.assetId)
        });
    end;
    l_HumanoidDescription_0:SetEmotes(v151);
    l_HumanoidDescription_0:SetEquippedEmotes(v152);
    if not (not v13.readTestVariable(v12.EnabledForUser) or l_game_EngineFeature_0) then
        if not v21() then
            l_HumanoidDescription_0 = l_AvatarEditorService_0:ConformToAvatarRules(l_HumanoidDescription_0);
        else
            local l_status_0, l_result_0 = pcall(function()
                return l_AvatarEditorService_0:ConformToAvatarRules(l_HumanoidDescription_0);
            end);
            if not l_status_0 then
                v19(v20.Counter.AvatarEditorServiceErrors.ConformToAvatarRules);
                error(l_result_0);
            else
                l_HumanoidDescription_0 = l_result_0;
            end;
        end;
    end;
    return l_HumanoidDescription_0;
end;
v18.shouldNotifyAssetTypes = function(v157, v158)
    for _, v160 in v157, nil, nil do
        if v158[v160] == true then
            return true;
        end;
    end;
    return false;
end;
v18.doAESCallAndAwaitResult = function(v161, v162, v163, ...)
    local v164 = v162(v161, ...);
    while not v164 do
        v163:Wait();
        v164 = v162(v161, ...);
    end;
    return v163:Wait();
end;
v18.getColor3AtValueInRange = l_memoize_0(function(v165, v166)
    if not v22 then
        if not (v166 >= 0) or v166 > 1 then
            v5(string.format("getColor3AtValueInRange: value %s should be between 0 and 1 inclusive", (tostring(v166))));
            v166 = math.clamp(v166, 0, 1);
        end;
    else
        local v167, v168 = v10.clampBetween0And1(v166);
        if v168 then
            v5(string.format("getColor3AtValueInRange: value %s should be between 0 and 1 inclusive", (tostring(v166))));
        end;
        v166 = v167;
    end;
    if v166 == 0 then
        return v165[1];
    elseif v166 == 1 then
        return v165[#v165];
    else
        local v169 = v166 * (#v165 - 1);
        local v170 = math.floor(v169 + 1);
        return v165[v170]:Lerp(v165[v170 + 1], (v169 + 1) - v170);
    end;
end);
local function v180(v171, v172, v173)
    local v174 = Vector3.new(v171.R, v171.G, v171.B);
    local v175 = Vector3.new(v172.R, v172.G, v172.B);
    local v176 = Vector3.new(v173.R, v173.G, v173.B);
    local v177 = v175 - v174;
    local v178 = v176 - v174;
    if v178:Dot(v177) <= 0 then
        return v178.Magnitude, 0;
    else
        local v179 = v176 - v175;
        if v179:Dot(v177) >= 0 then
            return v179.Magnitude, 1;
        else
            return v177:Cross(v178).Magnitude / v178.Magnitude, v177.Unit:Dot(v178) / v177.Magnitude;
        end;
    end;
end;
local function v188(v181, v182)
    local v183 = 10;
    local v184 = 0;
    for v185 = 1, #v181 - 1 do
        local v186, v187 = v180(v181[v185], v181[v185 + 1], v182);
        if v186 < v183 then
            v183 = v186;
            v184 = ((v185 - 1) + v187) / (#v181 - 1);
        end;
    end;
    return v183, v184;
end;
v18.findRangeAndSliderValueForColor3 = function(v189, v190)
    local v191 = 10;
    local v192 = 0;
    local v193 = nil;
    for _, v195 in v190, nil, nil do
        local v196, v197 = v188(v195.range, v189);
        if v196 < v191 then
            v191 = v196;
            v192 = v197;
            v193 = v195.rangeId;
        end;
    end;
    return v193, v192;
end;
v18.getRangeStructForRangeId = l_memoize_0(function(v198, v199)
    for _, v201 in v199, nil, nil do
        if v201.rangeId == v198 then
            return v201;
        end;
    end;
    return nil;
end);
v18.getColor3AtValueForRangeId = l_memoize_0(function(v202, v203, v204)
    if not v22 then
        if not (v203 >= 0) or v203 > 1 then
            v5(string.format("getColor3AtValueForRangeId: value %s should be between 0 and 1 inclusive", (tostring(v203))));
            v203 = math.clamp(v203, 0, 1);
        end;
    else
        local v205, v206 = v10.clampBetween0And1(v203);
        if v206 then
            v5(string.format("getColor3AtValueInRange: value %s should be between 0 and 1 inclusive", (tostring(v203))));
        end;
        v203 = v205;
    end;
    local v207 = v18.getRangeStructForRangeId(v202, v204);
    if not v207 then
        return nil;
    else
        return v18.getColor3AtValueInRange(v207.range, v203);
    end;
end);
v18.getInfoForRangeIdAndBodyPartIndex = function(v208, v209, v210)
    v3.isNotNil(v208, "rangeId");
    v3.assert(v209 >= 1, "selectedBodyPartIndex too low");
    v3.assert(v209 <= #v7.BodyPartButtonData, "selectedBodyPartIndex too high");
    if not (v210 ~= nil) or v210[v208] == nil then
        return nil;
    else
        local v211 = v210[v208];
        local l_bodyPartForSkinColoringIds_0 = v7.BodyPartButtonData[v209].bodyPartForSkinColoringIds;
        local v213 = nil;
        for _, v215 in l_bodyPartForSkinColoringIds_0, nil, nil do
            if v211[v215] then
                if v213 == nil then
                    v213 = v211[v215];
                elseif v213.color3 ~= v211[v215].color3 then
                    return nil;
                end;
            end;
        end;
        return v213;
    end;
end;
v18.getColor3ForRangeIdAndBodyPartIndex = l_memoize_0(function(v216, v217, v218, v219)
    v3.isNotNil(v219, "defaultBodyColorRanges");
    local v220 = v18.getInfoForRangeIdAndBodyPartIndex(v216, v217, v218);
    if not v220 then
        return v18.getColor3AtValueForRangeId(v216, 0.5, v219);
    else
        return v220.color3;
    end;
end);
v18.getSliderValueForRangeIdAndBodyPartIndex = l_memoize_0(function(v221, v222, v223)
    local v224 = v18.getInfoForRangeIdAndBodyPartIndex(v221, v222, v223);
    if not v224 then
        return 0.5;
    else
        return v224.sliderValue;
    end;
end);
v18.getBodyColorsSliderFrameHeight = function(v225, v226, v227, v228)
    local v229 = v227 - math.max(v226, v228);
    if v225 < v229 then
        return v229;
    else
        return v225;
    end;
end;
v18.getSearchUuidAndAssetTypes = function(v230, v231)
    local _ = nil;
    local _ = nil;
    if not v230.SubButtons then
        return v230.SearchUuid, v230.AssetTypeIdStrings;
    else
        local v234 = v230.SubButtons[v231 or 1];
        return v234.SearchUuid, v234.AssetTypeIdStrings;
    end;
end;
v18.selectAssetTypeKey = function(v235)
    local l_category_0 = v235.AvatarExperience.AvatarEditor.Categories.category;
    local l_subcategory_0 = v235.AvatarExperience.AvatarEditor.Categories.subcategory;
    local l_subButton_0 = v235.AvatarExperience.AvatarEditor.Categories.subButton;
    local v239 = v9.getAvatarEditorCategoryInfo(l_category_0, l_subcategory_0);
    local v240, _ = v18.getSearchUuidAndAssetTypes(v239, l_subButton_0);
    return v240 or v239.Name;
end;
v18.getColor3SharedByBodyParts = l_memoize_0(function(v242, v243)
    local v244 = nil;
    for _, v246 in v242, nil, nil do
        local v247 = v243[v246];
        if v244 == nil then
            v244 = v247;
        elseif v247 and v244:ToHex() ~= v247:ToHex() then
            return nil;
        end;
    end;
    return v244;
end);
v18.getRangeIdSharedByBodyParts = l_memoize_0(function(v248, v249)
    local v250 = nil;
    for _, v252 in v248, nil, nil do
        local v253 = v249[v252];
        if v250 == nil then
            v250 = v253;
        elseif v250 ~= v253 then
            return nil;
        end;
    end;
    return v250;
end);
v18.ExponentialRepeat = function(v254, v255, v256)
    v256 = v256 or 6;
    local v257 = 1;
    while true do
        if not (v257 <= v256) or not v254() then
            return ;
        elseif not v255() then
            task.wait(v257 ^ 2);
            v257 = v257 + 1;
        else
            return ;
        end;
    end;
end;
return v18;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "assetId");
    v2.isType(v4, "string", "userAssetId");
    return {
        assetId = v3,
        userAssetId = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3)
    v1.isType(v2, "string", "Actions.AddAutocompleteSuggestion.prefix");
    v1.isType(v3, "table", "Actions.AddAutocompleteSuggestion.autocompleteSuggestions");
    return {
        prefix = v2,
        autocompleteSuggestions = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v2.makeActionCreator(script.Name, function(v4, v5)
    v3.isType(v4, "string", "assetId");
    v3.isType(v5, "table", "userAssetIds");
    return {
        assetId = v4,
        userAssetIds = v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "AppendCollectibleResellersInstances expects collectibleItemId");
    v2.isType(v4, "table", "AppendCollectibleResellersInstances expects collectibleItemInstances");
    return {
        collectibleItemId = v3,
        collectibleItemInstances = v4
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        searchUuid = v0,
        searchInCatalog = v1
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4)
    v1.isType(v2, "number", "CatalogAppendSortData expects categoryIndex");
    v1.isType(v3, "number", "CatalogAppendSortData expects subcategoryIndex");
    v1.isType(v4, "table", "CatalogAppendSortData expects sortResults");
    return {
        categoryIndex = v2,
        subcategoryIndex = v3,
        sortResults = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4)
    v1.isType(v2, "number", "CatalogDataReceived expects categoryIndex");
    v1.isType(v3, "number", "CatalogDataReceived expects subcategoryIndex");
    v1.isType(v4, "table", "CatalogDataReceived expects sortResults");
    return {
        categoryIndex = v2,
        subcategoryIndex = v3,
        sortResults = v4
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        searchUuid = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator("Catalog-" .. script.Name, function()
    return {};
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetsByContext);
return v2.makeActionCreator(script.Name, function(v4, v5)
    return {
        query = v4,
        context = if not v3() then nil else v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isType(v3, "string", "RemoveWidgetInfo expects widgetId");
    return {
        widgetId = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetAssetFavorite expects assetId");
    v2.isType(v4, "boolean", "SetAssetFavorite expects isFavorited");
    return {
        assetId = v3,
        isFavorited = v4
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        assets = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3)
    return {
        assetId = v2,
        assetData = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isType(v3, "table", "SetAssetInfoFromSortResults expects sortResults");
    return {
        sortResults = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v2.makeActionCreator(script.Name, function(v4, v5)
    v3.isType(v4, "string", "assetId");
    v3.isType(v5, "number", "priceInRobux");
    return {
        assetId = v4,
        priceInRobux = v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v2.makeActionCreator(script.Name, function(v4, v5)
    v3.isType(v4, "string", "assetId");
    v3.isType(v5, "table", "assetResaleData");
    return {
        assetId = v4,
        assetResaleData = v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v2.makeActionCreator(script.Name, function(v4, v5)
    v3.isType(v4, "string", "expect assetId to be a string");
    v3.isType(v5, "table", "expect assetVersionData to be a table");
    return {
        assetId = v4,
        assetVersionData = v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "assetId");
    v2.isType(v4, "table", "userAssetIdList");
    return {
        assetId = v3,
        userAssetIdList = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetBundleFavorite expects bundleId");
    v2.isType(v4, "boolean", "SetBundleFavorite expects isFavorited");
    return {
        bundleId = v3,
        isFavorited = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3)
    return {
        bundleId = v2,
        bundleData = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isType(v3, "table", "SetBundleInfoFromSortResults expects sortResults");
    return {
        sortResults = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isType(v3, "table", "SetCatalogMetadata expects 'metadata' to be a table.");
    return {
        metadata = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SortType);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SortAggregation);
return v2.makeActionCreator(script.Name, function(v6, v7)
    v3.isType(v6, "string", "sort");
    v3.isTypeOrNil(v7, "string", "sortAggregation");
    return {
        sort = v6,
        sortAggregation = v7
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4)
    v1.isType(v2, "number", "SetCatalogSortDataStatus expects categoryIndex");
    v1.isType(v3, "number", "SetCatalogSortDataStatus expects subcategoryIndex");
    v1.isType(v4, "string", "SetCatalogSortDataStatus expects status");
    return {
        categoryIndex = v2,
        subcategoryIndex = v3,
        status = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator("Catalog-" .. script.Name, function(v3, v4)
    v2.isTypeOrNil(v3, "number", "SetCategoryAndSubCategory expects category");
    v2.isTypeOrNil(v4, "number", "SetCategoryAndSubCategory expects subcategory");
    return {
        category = v3,
        subcategory = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetCollectibleItemInfo expects collectibleItemId");
    v2.isType(v4, "table", "SetCollectibleItemInfo expects collectibleItemData");
    return {
        collectibleItemId = v3,
        collectibleItemData = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_CorePackages_0.Rodux);
local v4 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXResalePriceFloor);
return v3.makeActionCreator(script.Name, function(v5, v6, v7)
    v2.isType(v5, "string", "SetCollectibleMarketplaceResaleParameters action expects collectibleItemId to be a string");
    v2.isType(v6, "table", "SetCollectibleMarketplaceResaleParameters action expects resaleParametersInfo to be a table");
    return {
        collectibleItemId = v5,
        resaleParametersInfo = v6,
        itemSubTypeNameString = if not v4() then nil else v7
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetCollectibleResaleData expects collectibleItemId");
    v2.isType(v4, "table", "SetCollectibleResaleData expects resaleData");
    return {
        collectibleItemId = v3,
        resaleData = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetCollectibleResellableInstances expects collectibleItemId");
    v2.isType(v4, "table", "SetCollectibleResellableInstances expects collectibleItemInstances");
    return {
        collectibleItemId = v3,
        collectibleItemInstances = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "SetCollectibleResellersInstances expects collectibleItemId");
    v2.isType(v4, "table", "SetCollectibleResellersInstances expects collectibleItemInstances");
    return {
        collectibleItemId = v3,
        collectibleItemInstances = v4
    };
end);


return (require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        creatorFilter = v0 or ""
    };
end));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local _ = require(l_CoreGui_0.RobloxGui.Modules.AvatarExperience.Common.Types);
return v2.makeActionCreator(script.Name, function(v5)
    v3.isType(v5, "table", "payload");
    return {
        payload = v5
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator("SetItemTryOnPeekViewState", function(v0)
    return {
        viewState = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2)
    v1.isType(v2, "table", "marketplaceFeeInfo");
    return {
        marketplaceFeeInfo = v2
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "number", "SetPriceRange expects minPrice");
    v2.isType(v4, "number", "SetPriceRange expects maxPrice");
    return {
        priceRange = {
            minPrice = v3,
            maxPrice = v4
        }
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4)
    return {
        assetId = v2,
        assetTypeId = v3,
        recommendedItems = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4)
    return {
        bundleId = v2,
        bundleTypeId = v3,
        recommendedItems = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isTypeOrNil(v3, "string", "cursor");
    return {
        cursor = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v2, v3, v4, v5)
    v1.isTypeOrNil(v3, "string", "focusedWidgetId expects widget.id");
    v1.isTypeOrNil(v4, "string", "focusedWidgetTitle expects widget.template.title");
    v1.isTypeOrNil(v5, "string", "focusedWidgetDescription expects widget.template.description");
    return {
        searchUuid = v2,
        id = v3,
        title = v4,
        description = v5
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SalesTypeFilter);
return (v2.makeActionCreator(script.Name, function(v4)
    return {
        salesType = v4
    };
end));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator("CatalogSearch-" .. script.Name, function(v3, v4)
    v2.isTypeOrNil(v3, "number", "SetSearchCategoryAndSubCategory expects category");
    v2.isTypeOrNil(v4, "number", "SetSearchCategoryAndSubCategory expects subcategory");
    return {
        category = v3,
        subcategory = v4
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator("Catalog-" .. script.Name, function(v0)
    return {
        selectedTopics = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SortType);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SortAggregation);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SalesTypeFilter);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.UnavailableItemFilter);
return v2.makeActionCreator(script.Name, function(v8)
    return v8 or {};
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_Modules_0.AvatarExperience.Catalog.Http.WebApi);
return v2.makeActionCreator(script.Name, function(v4, v5)
    return {
        category = v4,
        items = v5
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator("Catalog-" .. script.Name, function(v0, v1, v2, v3)
    return {
        selectedTopics = v0,
        initialItems = v1,
        searchKeyword = v2,
        newTopics = v3
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator("SetTryOnManagerPeekViewState", function(v0)
    return {
        viewState = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator("Catalog-" .. script.Name, function(v3)
    v2.isType(v3, "boolean", "isUIFullView");
    return {
        isUIFullView = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.UnavailableItemFilter);
return (v2.makeActionCreator(script.Name, function(v4)
    return {
        unavailableItemFilter = v4
    };
end));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3)
    v2.isType(v3, "table", "userAssets");
    return {
        userAssets = v3
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetsByContext);
return v2.makeActionCreator(script.Name, function(v6, v7, v8, v9)
    v3.isType(v6, "table", "SetWidgetInfo expects widgetInfo");
    return {
        widgetInfo = v6,
        requestId = v7,
        query = v8,
        context = if not v5() then nil else v9
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_CoreGui_0.RobloxGui.Modules.AvatarExperience.Common.Models.CollectibleInstance);
return v2.makeActionCreator(script.Name, function(v4, v5, v6)
    return {
        collectibleItemId = v4,
        collectibleInstanceId = v5,
        collectibleInstanceData = v6
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return v1.makeActionCreator(script.Name, function(v3, v4)
    v2.isType(v3, "string", "userAssetId");
    v2.isTypeOrNil(v4, "number", "priceInRobux");
    return {
        userAssetId = v3,
        priceInRobux = v4
    };
end);


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Constants);
return function(v1, v2)
    v1:setRBXEventStream(v2, "avatarToCatalogButton", {
        feature = v0.AnalyticsTag
    });
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Constants);
return function(v1, v2)
    v1:setRBXEventStream(v2, "catalogOpenedFromLandingPage", {
        feature = v0.AnalyticsTag
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpService_0 = game:GetService("HttpService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v5, v6, v7, v8, v9, v10, v11)
    v3.isType(v6, "string", "catalogSearch event expects eventContext");
    v3.isType(v7, "string", "catalogSearch event expects keyword");
    v3.isType(v8, "table", "catalogSearch event expects assetsReturned");
    v3.isType(v9, "number", "catalogSearch event expects pageNumber");
    v3.isTypeOrNil(v10, "string", "catalogSearch event expects sortType");
    v3.isTypeOrNil(v11, "table", "catalogSearch event expects filters");
    v5:setRBXEventStream(v6, "catalogSearch", {
        feature = v4.AnalyticsTag,
        keyword = v7,
        page = v9,
        sort = v10,
        filters = v11 and l_HttpService_0:JSONEncode(v11),
        assetsReturned = table.concat(v8, ",")
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpService_0 = game:GetService("HttpService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.Impressions.ImpressionsSchema);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.Impressions.ImpressionsEnums);
local v7 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableKeywordAnalyticsForSearch);
return function(v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
    v3.isType(v9, "string", "openItemDetailPage event expects eventContext");
    v3.isType(v10, "number", "openItemDetailPage event expects pageNumber");
    v3.isType(v11, "string", "openItemDetailPage event expects categoryName");
    v3.isType(v12, "string", "openItemDetailPage event expects subCategoryIndex");
    v3.isTypeOrNil(v13, "string", "openItemDetailPage event expects sortType");
    v3.isTypeOrNil(v14, "table", "openItemDetailPage event expects filters");
    v3.isType(v15, "number", "openItemDetailPage event expects rank");
    v3.isType(v16, "string", "openItemDetailPage event expects itemId");
    v3.isType(v17, "string", "openItemDetailPage event expects itemType");
    v3.isTypeOrNil(v18, "string", "openItemDetailPage event expects itemSubType");
    v3.isTypeOrNil(v19, "boolean", "openItemDetailPage event expects fromProfile");
    v3.isTypeOrNil(v20, "string", "openItemDetailPage event expects requestId");
    local v21 = v14 and l_HttpService_0:JSONEncode(v14);
    local l_enumMap_0 = v5.defaultItem.enumMap;
    v8:setRBXEventStream(v9, "marketplaceOrganicFELog", {
        feature = not not v19 and v4.ProfileAnalyticsTag or v4.AnalyticsTag,
        page = v10,
        actionType = v6.ActionType.ITEM_CLICK,
        requestId = v20,
        nav = v11,
        subNav = v12,
        sort = v13,
        filters = v21,
        absPositions = v15,
        itemId = v16,
        contentType = if not not l_enumMap_0 and l_enumMap_0.contentType then l_enumMap_0.contentType[v17] else nil,
        itemSubType = v18,
        keyword = if not v7() then nil else v14.keyword
    });
    v8:setRBXEventStream(v9, "itemDetailReferral", {
        feature = not not v19 and v4.ProfileAnalyticsTag or v4.AnalyticsTag,
        page = v10,
        nav = v11,
        subNav = v12,
        sort = v13,
        filters = v21,
        rank = v15,
        itemID = v16,
        itemType = v17,
        itemSubType = v18
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5)
    v2.isType(v5, "string", "clickNavigationTab event expects eventContext");
    v4:setRBXEventStream(v5, "catalogNavButtonClick", {
        feature = v3.AnalyticsTag
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5, v6, v7)
    v2.isType(v5, "string", "clickNavigationTab event expects eventContext");
    v2.isType(v6, "string", "clickNavigationTab event expects categoryName");
    v2.isType(v7, "string", "clickNavigationTab event expects subCategoryIndex");
    v4:setRBXEventStream(v5, "catalogNavButtonClick", {
        feature = v3.AnalyticsTag,
        nav = v6,
        subNav = v7
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5, v6, v7)
    v2.isType(v6, "string", "closeItemDetailPage event expects itemId");
    v2.isType(v7, "string", "closeItemDetailPage event expects itemType");
    v4:setRBXEventStream(v5, "swipeDownItemDetailPage", {
        feature = v3.AnalyticsTag,
        itemID = v6,
        itemType = v7
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5, v6, v7)
    v2.isType(v6, "string", "expandItemDetailPage event expects itemId");
    v2.isType(v7, "string", "expandItemDetailPage event expects itemType");
    v4:setRBXEventStream(v5, "swipeUpItemDetailPage", {
        feature = v3.AnalyticsTag,
        itemID = v6,
        itemType = v7
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5)
    v2.isType(v5, "string", "moreMenuToCatalogButton event expects eventContext");
    v4:setRBXEventStream(v5, "moreMenuToCatalogButton", {
        feature = v3.AnalyticsTag
    });
end;


local v0 = require(game:GetService("CorePackages").Workspace.Packages.ArgCheck);
return function(v1, v2, v3)
    v0.isType(v2, "string", "premiumUpsellCancelled event expects assetId");
    v0.isType(v3, "boolean", "premiumUpsellCancelled event expects isBundle");
    v1:setRBXEventStream("PremiumUpsell", not v3 and "AssetPremiumUpsellCanceled" or "BundlePremiumUpsellCanceled", {
        BundleID = v2,
        Location = "Catalog"
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5, v6, v7, v8, v9)
    v2.isType(v5, "string", "purchaseAsset event expects eventContext");
    v2.isType(v6, "string", "purchaseAsset event expects itemId");
    v2.isType(v7, "string", "purchaseAsset event expects itemSubType");
    v2.isTypeOrNil(v8, "number", "purchaseAsset event expects priceInRobux");
    v2.isTypeOrNil(v9, "boolean", "purchaseAsset event expects fromProfile");
    v4:setRBXEventStream(v5, "purchaseAsset", {
        feature = not not v9 and v3.ProfileAnalyticsTag or v3.AnalyticsTag,
        itemID = v6,
        itemSubType = v7,
        priceInRobux = v8
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v4, v5, v6, v7, v8, v9)
    v2.isType(v5, "string", "purchaseBundle event expects eventContext");
    v2.isType(v6, "string", "purchaseBundle event expects itemId");
    v2.isType(v7, "string", "purchaseBundle event expects itemSubType");
    v2.isTypeOrNil(v8, "number", "purchaseBundle event expects priceInRobux");
    v2.isTypeOrNil(v9, "boolean", "purchaseAsset event expects fromProfile");
    v4:setRBXEventStream(v5, "purchaseBundle", {
        feature = not not v9 and v3.ProfileAnalyticsTag or v3.AnalyticsTag,
        itemID = v6,
        itemSubType = v7,
        priceInRobux = v8
    });
end;


return {
    ShowPlayableAttributionMapper = {
        UnplayableOtherReason = true,
        Playable = true,
        GuestProhibited = true,
        GameUnapproved = false,
        IncorrectConfiguration = false,
        UniverseRootPlaceIsPrivate = false,
        InsufficientPermissionFriendsOnly = true,
        InsufficientPermissionGroupOnly = true,
        DeviceRestricted = true,
        UnderReview = true,
        PurchaseRequired = true,
        AccountRestricted = true,
        TemporarilyUnavailable = true,
        ComplianceBlocked = true,
        ContextualPlayabilityAgeRecommendationParentalControls = true,
        ContextualPlayabilityRegionalAvailability = true,
        ContextualPlayabilityRegionalCompliance = true,
        ContextualPlayabilityUnverifiedSeventeenPlusUser = true
    },
    ShowTraversalAlertMapper = {
        UnplayableOtherReason = false,
        Playable = true,
        GuestProhibited = false,
        GameUnapproved = false,
        IncorrectConfiguration = false,
        UniverseRootPlaceIsPrivate = false,
        InsufficientPermissionFriendsOnly = false,
        InsufficientPermissionGroupOnly = false,
        DeviceRestricted = false,
        UnderReview = false,
        PurchaseRequired = true,
        AccountRestricted = false,
        TemporarilyUnavailable = false,
        ComplianceBlocked = false,
        ContextualPlayabilityAgeRecommendationParentalControls = false,
        ContextualPlayabilityRegionalAvailability = false,
        ContextualPlayabilityRegionalCompliance = false,
        ContextualPlayabilityUnverifiedSeventeenPlusUser = true
    }
};