local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Rodux);
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetCollectibleMarketplaceResaleParameters);
local v6 = require(l_Modules_0.AvatarExperience.Common.Models.CollectibleMarketplaceResaleParametersInfo);
local v7 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXResalePriceFloor);
return v3.createReducer({}, {
    [v5.name] = function(v8, v9)
        v4.isType(v9.collectibleItemId, "string", "collectibleItemId must be a string.");
        v4.isType(v9.resaleParametersInfo, "table", "resaleParametersInfo must be a table.");
        local l_collectibleItemId_0 = v9.collectibleItemId;
        local v11 = v6.fromGetCollectibleMarketplaceResaleParameters(v9.resaleParametersInfo, if not v7() then nil else v9.itemSubTypeNameString);
        local v12 = v8[l_collectibleItemId_0];
        if not v12 then
            return (v2.Dictionary.join(v8, {
                [l_collectibleItemId_0] = v11
            }));
        else
            return (v2.Dictionary.join(v8, {
                [l_collectibleItemId_0] = v2.Dictionary.join(v12, v11)
            }));
        end;
    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.Cryo);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetCollectibleResellableInstances);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.UpdateCollectibleResellableInstance);
local v6 = require(l_Modules_0.AvatarExperience.Common.Models.CollectibleInstance);
return v2.createReducer({}, {
    [v4.name] = function(v7, v8)
        local l_collectibleItemId_0 = v8.collectibleItemId;
        local v10 = {};
        for _, v12 in v8.collectibleItemInstances, nil, nil do
            local v13 = v6.fromGetCollectibleItemInstances(v12);
            v10[v13.collectibleInstanceId] = v13;
        end;
        return v3.Dictionary.join(v7, {
            [l_collectibleItemId_0] = v10
        });
    end,
    [v5.name] = function(v14, v15)
        local l_collectibleItemId_1 = v15.collectibleItemId;
        local l_collectibleInstanceId_0 = v15.collectibleInstanceId;
        local l_collectibleInstanceData_0 = v15.collectibleInstanceData;
        local v19 = v14[l_collectibleItemId_1];
        if v19 then
            return v3.Dictionary.join(v14, {
                [l_collectibleItemId_1] = v3.Dictionary.join(v19, {
                    [l_collectibleInstanceId_0] = l_collectibleInstanceData_0
                })
            });
        else
            return v14;
        end;
    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.Cryo);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetCollectibleResellersInstances);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.AppendCollectibleResellersInstances);
local v6 = require(l_Modules_0.AvatarExperience.Common.Models.CollectibleInstance);
return v2.createReducer({}, {
    [v4.name] = function(v7, v8)
        local l_collectibleItemId_0 = v8.collectibleItemId;
        local v10 = {};
        local v11 = {};
        for _, v13 in v8.collectibleItemInstances, nil, nil do
            local v14 = v6.fromGetCollectibleResellers(v13, l_collectibleItemId_0);
            v10[v14.collectibleInstanceId] = v14;
            table.insert(v11, v14.collectibleInstanceId);
        end;
        return v3.Dictionary.join(v7, {
            [l_collectibleItemId_0] = {
                Instances = v10,
                InstanceIdsList = v11
            }
        });
    end,
    [v5.name] = function(v15, v16)
        local l_collectibleItemId_1 = v16.collectibleItemId;
        local l_collectibleItemInstances_0 = v16.collectibleItemInstances;
        local v19 = {};
        local v20 = {};
        for _, v22 in l_collectibleItemInstances_0, nil, nil do
            local v23 = v6.fromGetCollectibleResellers(v22, l_collectibleItemId_1);
            v19[v23.collectibleInstanceId] = v23;
            table.insert(v20, v23.collectibleInstanceId);
        end;
        local v24 = v15[l_collectibleItemId_1];
        if not v24 then
            return v3.Dictionary.join(v15, {
                [l_collectibleItemId_1] = {
                    Instances = v19,
                    InstanceIdsList = v20
                }
            });
        else
            return v3.Dictionary.join(v15, {
                [l_collectibleItemId_1] = {
                    Instances = v3.Dictionary.join(v24.Instances, v19),
                    InstanceIdsList = v3.List.join(v24.InstanceIdsList, v20)
                }
            });
        end;
    end
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").Rodux);
local v2 = require(l_Modules_0.AvatarExperience.Common.Reducers.AssetInfos);
local v3 = require(l_Modules_0.AvatarExperience.Common.Reducers.BundleInfos);
local v4 = require(l_Modules_0.AvatarExperience.Common.Reducers.Collectibles);
local v5 = require(l_Modules_0.AvatarExperience.Common.Reducers.ItemDetailsExpanded);
local v6 = require(l_Modules_0.AvatarExperience.Common.Reducers.ItemDetailsPeekView);
local v7 = require(l_Modules_0.AvatarExperience.Common.Reducers.AvatarExperienceLoaded);
local v8 = require(l_Modules_0.AvatarExperience.Common.Reducers.PlayEmoteInBackground);
local v9 = require(l_Modules_0.AvatarExperience.Common.Reducers.FullView);
local v10 = require(l_Modules_0.AvatarExperience.Common.Reducers.Widgets);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return v1.combineReducers({
    AssetInfos = v2,
    BundleInfos = v3,
    Collectibles = v4,
    ItemDetailsExpanded = v5,
    ItemDetailsPeekView = v6,
    AvatarExperienceLoaded = v7,
    PlayEmoteInBackground = v8,
    FullView = v9,
    Widgets = v10
});


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.Cryo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetWidgetInfo);
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Actions.ClearWidgetInfo);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Actions.RemoveWidgetInfo);
local v8 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRefreshWidgets);
local v9 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRemoveEmptyHydratedWidgets);
return (v2.createReducer({}, {
    [v5.name] = function(v10, v11)
        if v11.context then
            return v3.Dictionary.join(v10, {
                [v11.context] = {
                    Details = v11.widgetInfo,
                    RequestId = v11.requestId,
                    FetchTime = if not v8() then nil else tick()
                }
            });
        else
            return v10;
        end;
    end,
    [v6.name] = function(v12, v13)
        if v13.context then
            return v3.Dictionary.join(v12, {
                [v13.context] = v3.None
            });
        else
            return v12;
        end;
    end,
    [v7.name] = function(v14, v15)
        if v9() then
            local l_widgetId_0 = v15.widgetId;
            local v17 = {};
            for v18, v19 in v14, nil, nil do
                local v20 = {};
                for v21, v22 in v19.Details, nil, nil do
                    if v22.id == l_widgetId_0 then
                        v20[v21] = v3.None;
                    end;
                end;
                v17[v18] = v3.Dictionary.join(v19, {
                    Details = v3.Dictionary.join(v19.Details, v20)
                });
            end;
            return v17;
        else
            return v14;
        end;
    end
}));


return require(game:GetService("CorePackages").Rodux).createReducer(nil, {
    [require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Actions.SetCurrentCharacter).name] = function(_, v1)
        return v1.currentCharacter;
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
return require(l_CorePackages_0.Rodux).createReducer({
    screen = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen).None,
    params = nil,
    requestId = 0,
    completedRequestId = 0
}, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.ApplyNavigateIntoAvatarExperience).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            screen = v4.screen,
            params = v4.params,
            requestId = v3.requestId + 1
        });
    end,
    [require(l_Modules_0.AvatarExperience.Common.Actions.CompleteExternalNavigation).name] = function(v5, v6)
        return v2.Dictionary.join(v5, {
            completedRequestId = v6.requestId
        });
    end
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Rodux);
local v3 = require(l_CorePackages_0.Cryo);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_Modules_0.AvatarExperience.Common.Actions.SetFullView);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
return v2.createReducer(require(l_Modules_0.AvatarExperience.Common.Constants).FullViewPageDefaults, {
    [v5.name] = function(v7, v8)
        return v3.Dictionary.join(v7, {
            [v8.avatarScreen] = v8.fullViewStatus
        });
    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.Cryo);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetHydratedWidgetData);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return (v2.createReducer({}, {
    [v4.name] = function(v6, v7)
        local v8 = {};
        for v9, v10 in v7.payload, nil, nil do
            v8[v9] = v3.Dictionary.join(v6[v9] or {}, v10);
        end;
        return v3.Dictionary.join(v6, v8);
    end
}));


return require(game:GetService("CorePackages").Rodux).createReducer(false, {
    [require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Actions.SetItemDetailsExpanded).name] = function(_, v1)
        return v1.itemDetailsExpanded;
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local v4 = require(l_Modules_0.AvatarExperience.Common.Actions.SetItemDetailsPeekViewState);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetItemTryOnPeekViewState);
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetTryOnManagerPeekViewState);
return function(v7, v8)
    v7 = v7 or {
        viewState = l_PeekViewState_0.Closed,
        tryOnViewState = l_PeekViewState_0.Closed,
        tryOnManagerViewState = l_PeekViewState_0.Closed
    };
    if v8.type == v4.name then
        return (v2.Dictionary.join(v7, {
            viewState = v8.viewState
        }));
    elseif v8.type == v5.name then
        return (v2.Dictionary.join(v7, {
            tryOnViewState = v8.viewState
        }));
    else
        if v8.type == v6.name then
            v7 = v2.Dictionary.join(v7, {
                tryOnManagerViewState = v8.viewState
            });
        end;
        return v7;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Rodux);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local _ = require(script.Parent.OutfitTryOn);
return v1.createReducer({}, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.SetLastSavedTriedOnOutfit).name] = function(_, v5)
        return v5.savedOutfit;
    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.Rodux);
local v4 = require(l_Modules_0.AvatarExperience.Common.Actions.AddLookDetails);
local v5 = require(l_Modules_0.AvatarExperience.Common.Actions.UpdateLookDetailsAfterSuccessfulPurchase);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v7 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
local v8 = {};
local _ = function(v9)
    local v10 = {};
    if v9 then
        for _, v12 in v9, nil, nil do
            v10[tostring(v12.id)] = v12;
        end;
    end;
    return v10;
end;
return v3.createReducer(v8, {
    [v4.name] = function(v14, v15)
        local v16 = v14 or v8;
        local v17 = nil;
        if not v7() then
            v17 = {};
            for _, v19 in v15.lookAssetInfos, nil, nil do
                v17[tostring(v19.id)] = v19;
            end;
        end;
        local v20 = {};
        local l_lookId_0 = v15.lookId;
        local v22 = {
            lookType = if not v7() then nil else v15.lookType,
            totalValue = if not v7() then nil else v15.totalValue,
            totalPrice = v15.totalPrice,
            totalPremiumPrice = v15.totalPremiumPrice
        };
        local v23;
        if not v7() then
            v23 = v17;
        else
            local l_lookAssetInfos_0 = v15.lookAssetInfos;
            local v25 = {};
            if l_lookAssetInfos_0 then
                for _, v27 in l_lookAssetInfos_0, nil, nil do
                    v25[tostring(v27.id)] = v27;
                end;
            end;
            v23 = v25;
        end;
        v22.lookAssetInfos = v23;
        if not v7() then
            v23 = nil;
        else
            local l_lookBundleInfos_0 = v15.lookBundleInfos;
            local v29 = {};
            if l_lookBundleInfos_0 then
                for _, v31 in l_lookBundleInfos_0, nil, nil do
                    v29[tostring(v31.id)] = v31;
                end;
            end;
            v23 = v29;
        end;
        v22.lookBundleInfos = v23;
        v20[l_lookId_0] = v22;
        return v2.Dictionary.join(v16, v20);
    end,
    [v5.name] = function(v32, v33)
        local v34 = v32 or v8;
        local v35 = if not v32 then nil else v32[v33.lookId];
        if v35 == nil then
            return v34;
        else
            assert(v35, "");
            local v36 = v35.totalPrice or 0;
            local v37 = v35.totalPremiumPrice or 0;
            local l_lookAssetInfos_1 = v35.lookAssetInfos;
            if l_lookAssetInfos_1 == nil then
                warn("Looks asset info does not exist");
                return v34;
            else
                for _, v40 in v33.purchasedAssetIds, nil, nil do
                    local v41 = tostring(v40);
                    local v42 = l_lookAssetInfos_1[v41];
                    if v42 == nil then
                        warn("Looks reducer could not find asset with id", v41);
                    else
                        l_lookAssetInfos_1[v41].quantityOwned = v42.quantityOwned + 1;
                        v36 = v36 - (v42.priceInRobux or 0);
                        v37 = v37 - (v42.premiumPriceInRobux or 0);
                    end;
                end;
                if v36 < 0 then
                    warn("Looks total price is below 0 after manual calculation");
                    v36 = 0;
                end;
                if v37 < 0 then
                    warn("Looks total premium price is below 0 after manual calculation");
                    v37 = 0;
                end;
                return v2.Dictionary.join(v34, {
                    [v33.lookId] = {
                        totalPrice = v36,
                        totalPremiumPrice = v37,
                        lookAssetInfos = l_lookAssetInfos_1
                    }
                });
            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.Rodux);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_Modules_0.AvatarExperience.Common.Actions.TryOnLooksOutfit);
local v5 = require(l_Modules_0.AvatarExperience.Common.Actions.ToggleTryOn);
local v6 = require(l_Modules_0.AvatarExperience.Common.Actions.SetEquippedInTryOnManager);
local v7 = require(l_Modules_0.AvatarExperience.Common.Actions.RemoveUnselectedItemsFromTryOn);
local v8 = require(l_Modules_0.AvatarExperience.Common.Actions.RemoveFromTryOn);
local v9 = require(l_Modules_0.AvatarExperience.Common.Actions.RemoveLookItemsFromTryOn);
local v10 = require(l_Modules_0.AvatarExperience.Common.Actions.ReceivedBundleInfoForTryOn);
local v11 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearTryOns);
local v12 = require(l_Modules_0.AvatarExperience.Common.Actions.SetOrderForTryOns);
local v13 = require(l_Modules_0.AvatarExperience.Common.Actions.AddSelectedBundleInfo);
local v14 = require(l_Modules_0.AvatarExperience.Common.Actions.SetOutfitTryOns);
local v15 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v16 = require(l_Modules_0.AvatarExperience.Common.ReducerUtils);
local v17 = require(l_Modules_0.LuaApp.mutedError);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v19 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
local v20 = 0;
local function v24(v21, v22)
    local v23 = {
        version = "1",
        itemId = v21.itemId,
        itemType = v21.itemType,
        itemSubType = v21.itemSubType,
        selectedInTryOnManager = v21.selectedInTryOnManager,
        isUnequipped = v22,
        receivedBundleInfo = not not v21.receivedBundleInfo or false,
        bundleInfo = v21.bundleInfo,
        widgetInfo = v21.widgetInfo
    };
    if v15.AssetTypeIdToAccessoryTypeEnum[v21.itemSubType] then
        v23 = v3.Dictionary.join(v23, {
            order = v21.overrideOrder or v15.LayeredClothingOrder[v21.itemSubType],
            isLayered = v15.LayeredAssetTypes[v21.itemSubType] ~= nil
        });
    end;
    if not v22 then
        v23.itemRecency = v20;
        v20 = v20 + 1;
    end;
    return v23;
end;
local function v28(v25, v26)
    local v27 = {
        version = "1",
        itemId = v25.itemId,
        itemType = v25.itemType,
        itemSubType = v25.itemSubType,
        selectedInTryOnManager = true,
        isUnequipped = false,
        receivedBundleInfo = false
    };
    if v15.AssetTypeIdToAccessoryTypeEnum[v25.itemSubType] then
        v27 = v3.Dictionary.join(v27, {
            order = v15.LayeredClothingOrder[v25.itemSubType],
            isLayered = v15.LayeredAssetTypes[v25.itemSubType] ~= nil
        });
    end;
    v27.itemRecency = if not not v19() and v26 == v15.LookType.Avatar then v25.tryOnItemOrder else v20;
    v20 = v20 + 1;
    return v27;
end;
local function v34(v29)
    local v30 = {
        version = "1",
        selectedInTryOnManager = true,
        isUnequipped = false,
        receivedBundleInfo = false,
        itemType = v29.itemType,
        itemId = v29.itemId
    };
    local v31 = {};
    for _, v33 in v29.items, nil, nil do
        v31[v33.itemId] = {
            assetType = v33.itemSubType,
            order = v15.LayeredClothingOrder[v33.itemSubType]
        };
    end;
    v30.bundleInfo = v31;
    v30.itemRecency = v29.tryOnItemOrder or v20;
    v20 = v20 + 1;
    return v30;
end;
local function v39(v35, v36, v37)
    local v38 = v36[v37.itemId];
    v38.isUnequipped = true;
    return v3.Dictionary.join(v35, {
        TryOnItems = v3.Dictionary.join(v36, {
            [v37.itemId] = v3.None
        }),
        LastToggledItem = v38
    });
end;
local v40 = {
    TryOnItems = {},
    LookId = nil,
    LookType = nil
};
local function _(v41)
    if v41.itemType == v15.ItemType.Asset and v41.itemSubType == v15.AssetTypeIdStrings.EmoteAnimation then
        return true;
    elseif v41.itemType == v15.ItemType.Bundle and v41.itemSubType == tostring(v15.BundleTypeIdStrings.Animations) then
        return true;
    else
        return false;
    end;
end;
return v2.createReducer(v40, {
    [v5.name] = function(v43, v44)
        local v45 = v43 or v40;
        local v46 = v45.TryOnItems or {};
        local v47 = v45.LookId ~= nil;
        local v48 = false;
        if v46[v44.itemId] ~= nil then
            v48 = not v47;
        end;
        if not v48 then
            local v49 = v16.filterTryOns(v46, v44);
            local v50 = v24(v44, false);
            local v51 = nil;
            if v50.itemType == v15.ItemType.Asset and v50.itemSubType == v15.AssetTypeIdStrings.EmoteAnimation or v50.itemType == v15.ItemType.Bundle and v50.itemSubType == tostring(v15.BundleTypeIdStrings.Animations) then
                v51 = v50;
            end;
            if not v47 then
                return v3.Dictionary.join(v45, {
                    TryOnItems = v3.Dictionary.join(v49, {
                        [v44.itemId] = v50
                    }),
                    LastToggledItem = v50,
                    LastAnimOrEmoteToggledItem = v51
                });
            else
                return v3.Dictionary.join(v45, {
                    TryOnItems = {
                        [v44.itemId] = v50
                    },
                    LastToggledItem = v50,
                    LastAnimOrEmoteToggledItem = v51,
                    LookId = v3.None
                });
            end;
        else
            if v46[v44.itemId].itemType ~= v44.itemType then
                v17(string.format("itemId: %s collided in Outfit Try On Reducer as the user tried on a bundle and asset of the same itemId", (tostring(v44.itemId))));
            end;
            return v39(v45, v46, v44);
        end;
    end,
    [v4.name] = function(v52, v53)
        local v54 = v52 or v40;
        local v55 = {};
        for _, v57 in v53.assetItemIdTypeAndSubtype, nil, nil do
            v55[if not v19() then v57.itemId else v16.generateTryOnItemIdKey(v57.itemId, v57.itemType, v53.lookType)] = v28(v57, v53.lookType);
        end;
        if v19() and v53.bundleItemIdTypeAndSubtype ~= nil then
            for _, v59 in v53.bundleItemIdTypeAndSubtype, nil, nil do
                v55[v16.generateTryOnItemIdKey(v59.itemId, v59.itemType, v53.lookType)] = v34(v59);
            end;
        end;
        return v3.Dictionary.join(v54, {
            TryOnItems = v55,
            LookId = if not v53.lookId then v3.None else v53.lookId,
            LookAnalyticsInfo = if not v53.analyticsInfo then v3.None else v53.analyticsInfo,
            LookType = if not v19() then nil else v53.lookType
        });
    end,
    [v6.name] = function(v60, v61)
        local v62 = v60 or v40;
        local v63 = v62.TryOnItems or {};
        local v64 = if not v19() then v61.itemId else v16.generateTryOnItemIdKey(v61.itemId, v61.itemType, v62.LookType);
        if v63[v64] == nil then
            return v62;
        else
            return v3.Dictionary.join(v62, {
                TryOnItems = v3.Dictionary.join(v63, {
                    [v64] = v3.Dictionary.join(v63[v64], {
                        selectedInTryOnManager = v61.selectedInTryOnManager
                    })
                })
            });
        end;
    end,
    [v7.name] = function(v65, _)
        local v67 = v65 or v40;
        local v68 = v67.TryOnItems or {};
        local v69 = {};
        for v70, v71 in v68, nil, nil do
            if v71.selectedInTryOnManager then
                v69[v70] = v71;
            end;
        end;
        return v3.Dictionary.join(v67, {
            TryOnItems = v69
        });
    end,
    [v8.name] = function(v72, v73)
        local v74 = v72 or v40;
        local v75 = v74.TryOnItems or {};
        if v75[v73.itemId] ~= nil then
            return v39(v74, v75, v73);
        else
            return v74;
        end;
    end,
    [v9.name] = function(v76, v77)
        local v78 = v76 or v40;
        if v77.lookId == v78.LookId then
            local v79 = v78.TryOnItems or {};
            for _, v81 in v77.assetIds, nil, nil do
                local l_v81_0 = v81;
                if v19() then
                    l_v81_0 = v16.generateTryOnItemIdKey(v81, v15.ItemType.Asset, v78.LookType);
                end;
                if v79[l_v81_0] ~= nil then
                    v79 = v3.Dictionary.join(v79, {
                        [l_v81_0] = v3.None
                    });
                end;
            end;
            if v19() and v77.bundleIds ~= nil then
                for _, v84 in v77.bundleIds, nil, nil do
                    local v85 = v16.generateTryOnItemIdKey(v84, v15.ItemType.Bundle, v78.LookType);
                    if v79[v85] ~= nil then
                        v79 = v3.Dictionary.join(v79, {
                            [v85] = v3.None
                        });
                    end;
                end;
            end;
            v78 = v3.Dictionary.join(v78, {
                TryOnItems = v79,
                LookId = v3.None
            });
        end;
        return v78;
    end,
    [v10.name] = function(v86, v87)
        local v88 = v86 or v40;
        local v89 = v88.TryOnItems or {};
        if not v89[v87.itemId] then
            return v88;
        else
            return v3.Dictionary.join(v88, {
                TryOnItems = v3.Dictionary.join(v89, {
                    [v87.itemId] = v3.Dictionary.join(v89[v87.itemId], {
                        receivedBundleInfo = true
                    })
                })
            });
        end;
    end,
    [v11.name] = function(_, _)
        return v40;
    end,
    [v12.name] = function(v92, v93)
        local l_itemIdToOrderMap_0 = v93.itemIdToOrderMap;
        local v95 = v92 or v40;
        for v96, v97 in l_itemIdToOrderMap_0, nil, nil do
            local v98 = v95.TryOnItems or {};
            if v98[v96] and v98[v96].itemType ~= v15.ItemType.Bundle then
                v95 = v3.Dictionary.join(v95, {
                    TryOnItems = v3.Dictionary.join(v98, {
                        [v96] = v3.Dictionary.join(v98[v96], {
                            order = v97
                        })
                    })
                });
            elseif not v98[v96] then
                for v99, v100 in v98, nil, nil do
                    if not (not v100.bundleInfo or not v100.bundleInfo[v96]) then
                        local l_bundleInfo_0 = v100.bundleInfo;
                        v95 = v3.Dictionary.join(v92, {
                            TryOnItems = v3.Dictionary.join(v98, {
                                [v99] = v3.Dictionary.join(v98[v99], {
                                    bundleInfo = v3.Dictionary.join(l_bundleInfo_0, {
                                        [v96] = v3.Dictionary.join(l_bundleInfo_0[v96], {
                                            order = v97
                                        })
                                    })
                                })
                            })
                        });
                        break;
                    end;
                end;
            end;
        end;
        return v95;
    end,
    [v13.name] = function(v102, v103)
        local v104 = v102 or v40;
        local v105 = v104.TryOnItems or {};
        if not v105[v103.bundleId] then
            return v104;
        else
            return v3.Dictionary.join(v104, {
                TryOnItems = v3.Dictionary.join(v105, {
                    [v103.bundleId] = v3.Dictionary.join(v105[v103.bundleId], {
                        bundleInfo = v103.bundleInfo
                    })
                })
            });
        end;
    end,
    [v14.name] = function(_, v107)
        return v107.outfitTryOns;
    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.Cryo);
return (v2.createReducer({
    shouldPlayEmoteInBackground = false
}, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.SetPlayEmoteInBackground).name] = function(v4, v5)
        return v3.Dictionary.join(v4, {
            shouldPlayEmoteInBackground = v5.shouldPlayEmoteInBackground
        });
    end
}));


return require(game:GetService("CorePackages").Rodux).createReducer(false, {
    [require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Actions.PlayingSwimAnimation).name] = function(_, v1)
        return v1.playingSwimAnimation;
    end
});


return require(game:GetService("CorePackages").Rodux).createReducer(0, {
    [require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Actions.IncrementSavedCharacterModelVersion).name] = function(v0, _)
        return v0 + 1;
    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.Cryo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetWidgetInfo);
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Actions.ClearWidgetInfo);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Actions.RemoveWidgetInfo);
local v8 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRefreshWidgets);
local v9 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRemoveEmptyHydratedWidgets);
return (v2.createReducer({}, {
    [v5.name] = function(v10, v11)
        if v11.query then
            return v3.Dictionary.join(v10, {
                [v11.query] = {
                    Details = v11.widgetInfo,
                    RequestId = v11.requestId,
                    FetchTime = if not v8() then nil else tick()
                }
            });
        else
            return v10;
        end;
    end,
    [v6.name] = function(v12, v13)
        if v13.query then
            return v3.Dictionary.join(v12, {
                [v13.query] = v3.None
            });
        else
            return v12;
        end;
    end,
    [v7.name] = function(v14, v15)
        if v9() then
            local l_widgetId_0 = v15.widgetId;
            local v17 = {};
            for v18, v19 in v14, nil, nil do
                local v20 = {};
                for v21, v22 in v19.Details, nil, nil do
                    if v22.id == l_widgetId_0 then
                        v20[v21] = v3.None;
                    end;
                end;
                v17[v18] = v3.Dictionary.join(v19, {
                    Details = v3.Dictionary.join(v19.Details, v20)
                });
            end;
            return v17;
        else
            return v14;
        end;
    end
}));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
return require(game:GetService("CorePackages").Rodux).createReducer(false, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.AddSaveDelay).name] = function(_, _)
        return true;
    end,
    [require(l_Modules_0.AvatarExperience.Common.Actions.RemoveSaveDelay).name] = function(_, _)
        return false;
    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.Rodux);
local v4 = require(l_CorePackages_0.Cryo);
return v3.createReducer({
    AnimationPreview = nil,
    AnimationPreviewAssetTypeIdString = nil
}, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.ClearAnimationPreview).name] = function(v5, _)
        return v4.Dictionary.join(v5, {
            AnimationPreview = v4.None,
            AnimationPreviewAssetTypeIdString = v4.None
        });
    end,
    [require(l_Modules_0.AvatarExperience.Common.Actions.SetAnimationPreview).name] = function(v7, v8)
        return v4.Dictionary.join(v7, {
            AnimationPreview = v8.assetId,
            AnimationPreviewAssetTypeIdString = v8.assetTypeIdString
        });
    end
});


return require(game:GetService("CorePackages").Rodux).createReducer(0, {
    [require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Catalog.Actions.IncrementTryOnCharacterModelVersion).name] = function(v0, _)
        return v0 + 1;
    end
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
return require(game:GetService("CorePackages").Rodux).createReducer(false, {
    [require(l_Modules_0.AvatarExperience.Common.Actions.StartedWaitingOnLCUpdate).name] = function(_, _)
        return true;
    end,
    [require(l_Modules_0.AvatarExperience.Common.Actions.FinishedWaitingOnLCUpdate).name] = function(_, _)
        return false;
    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.Cryo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetWidgetInfo);
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Actions.ClearWidgetInfo);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Actions.RemoveWidgetInfo);
local v8 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRefreshWidgets);
local v9 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRemoveEmptyHydratedWidgets);
local v10 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetsByContext);
return (v2.createReducer({
    Details = {},
    RequestId = nil,
    FetchTime = nil
}, {
    [v5.name] = function(v11, v12)
        if not v12.query and (not v10() or not v12.context) then
            return {
                Details = v12.widgetInfo,
                RequestId = v12.requestId,
                FetchTime = if not v8() then nil else tick()
            };
        else
            return v11;
        end;
    end,
    [v6.name] = function(v13, v14)
        if not v14.query and (not v10() or not v14.context) then
            return {
                Details = {}
            };
        else
            return v13;
        end;
    end,
    [v7.name] = function(v15, v16)
        if v9() then
            local l_widgetId_0 = v16.widgetId;
            local v18 = {};
            for v19, v20 in v15.Details, nil, nil do
                if v20.id == l_widgetId_0 then
                    v18[v19] = v3.None;
                end;
            end;
            return v3.Dictionary.join(v15, {
                Details = v3.Dictionary.join(v15.Details, v18)
            });
        else
            return v15;
        end;
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
return require(l_CorePackages_0.Rodux).combineReducers({
    WidgetInfo = require(l_Modules_0.AvatarExperience.Common.Reducers.WidgetInfo),
    SearchPageWidgetInfo = require(l_Modules_0.AvatarExperience.Common.Reducers.SearchPageWidgetInfo),
    ContextWidgetInfo = if not require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetsByContext)() then nil else require(l_Modules_0.AvatarExperience.Common.Reducers.ContextWidgetInfo),
    HydratedWidgetData = require(l_Modules_0.AvatarExperience.Common.Reducers.HydratedWidgetData)
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local _ = require(l_CorePackages_0.Packages.LuauPolyfill);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.AvatarEditorServiceThunk);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.PaginatedFetchThunk);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v8 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXUseRoduxExtraArg);
local _ = require(l_Modules_0.LuaApp.Types.RoduxTypes);
local _ = require(l_Modules_0.AvatarExperience.Common.Managers.PageObjectManager);
return {
    convertPaginatedFetchThunk = function(v11, v12)
        if not v8 then
            return v6.new(v11, v12);
        else
            return function(v13, v14)
                return v12(v13, v14.pageObjectManager, v14.avatarEditorService);
            end;
        end;
    end,
    convertAvatarEditorServiceThunk = function(v15, v16)
        if not v8 then
            return v5.new(v15, v16);
        else
            return function(v17, v18)
                return v16(v17, v18.avatarEditorService);
            end;
        end;
    end
};


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Constants);
return function(v1, v2, v3)
    if v3 == v0.ItemType.Asset then
        return v1.AssetInfos[v2];
    elseif v3 == v0.ItemType.Bundle then
        return v1.BundleInfos[v2];
    else
        return nil;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Utils);
return function(v3)
    return v2.getEquippedToolId(v3) ~= nil;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Utils);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.OutfitTryOn);
local v14 = l_memoize_0(function(v6, v7, v8)
    local v9 = false;
    local v10 = false;
    for v11, v12 in v8, nil, nil do
        if v12.itemType == v2.ItemType.Asset and v12.itemSubType == v2.AssetTypeIdStrings.Head then
            v9 = true;
        elseif v12.itemType == v2.ItemType.Bundle then
            if v12.itemSubType == v2.BundleTypeIdStrings.DynamicHead then
                v10 = true;
            elseif v12.itemSubType == v2.BundleTypeIdStrings.BodyParts then
                local v13 = v3.getOutfitInfoFromBundleIdNoState(v3.getBundleInfo(v6, v11), v7);
                if v12.receivedBundleInfo and v13 ~= nil then
                    if not not v13 and v13.containsDynamicHead then
                        v10 = true;
                    else
                        v9 = true;
                    end;
                else
                    return v9, v10, false;
                end;
            end;
        end;
    end;
    return v9, v10, true;
end);
return function(v15)
    return v14(v15.AvatarExperience.Common.BundleInfos, v15.AvatarExperience.AvatarEditor.OutfitInfos, v15.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems);
end;


local l_GuiService_0 = game:GetService("GuiService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v5 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v6 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.CatalogUtils);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v10 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableCollectiblesSaleLocationCheck);
local v11 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXLimitedBundlesHandleNewData);
local v12 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXFixInExperienceOnlyUnlimitedCollectibles);
local v13 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v14 = l_GuiService_0:IsTenFootInterface();
local v42 = l_memoize_0(function(v15, v16, v17, v18, v19, v20, v21)
    local v22 = nil;
    local v23 = nil;
    local v24 = nil;
    local v25 = nil;
    local v26 = nil;
    local v27 = nil;
    local v28 = nil;
    if not v13 then
        assert(v15, "silence type checker");
        v22 = v15.isOwned;
        v23 = v15.isPurchasable;
        v24 = v7.DEPRECATED_IsResellable(v15);
        v25 = v15.isForRent;
        v26 = v15.collectibleItemId;
        v27 = if not v11() then v15.collectibleItemId ~= nil else v7.DEPRECATED_isLimitedCollectible(v15);
        v28 = v7.DEPRECATED_IsPremiumExclusive(v15);
    else
        assert(v16, "silence type checker");
        v22 = v16.isOwned;
        v23 = v16.isPurchasable;
        v24 = v16.isResellable;
        v25 = v16.isForRent;
        v26 = v16.collectibleItemId;
        v27 = v16.isLimitedCollectible;
        v28 = v16.isPremiumExclusive;
    end;
    local v29 = v24 and v17 == nil;
    local l_None_0 = v4.ResaleRestriction.None;
    local v31 = true;
    local v32 = true;
    local v33 = ((not v22 and not v23 or v29) or v25) or v18 == nil;
    if not v27 then
        if not (not v26 or not v12()) then
            local v34 = v20[v26];
            if v34 then
                v33 = not v7.isOriginalStockSellableInShop(v34);
            end;
        end;
    else
        local v35 = v20[v26];
        local v36 = v35 and v35.hasResellers;
        l_None_0 = if not v35 then v4.ResaleRestriction.None else v35.resaleRestriction;
        v32 = (v35 and v35.unitsAvailableForConsumption) and v35.unitsAvailableForConsumption > 0;
        v31 = if not v10() then v32 or v36 else v7.isCollectibleSellableInShop(v35);
        local v37 = not v36 and v7.reachQuantityLimit(v35, v21);
        local v38 = not v31;
        if not v38 then
            v38 = v25;
            if not v38 then
                v38 = true;
                if v18 ~= nil then
                    v38 = v37;
                end;
            end;
        end;
        v33 = v38;
    end;
    local v39 = v22 and not v24;
    local v40 = nil;
    if not v13 then
        v40 = v15.assetType;
    else
        assert(v16, "silence type checker");
        if v16.itemType == v3.ItemType.Asset then
            v40 = v16.itemSubType;
        end;
    end;
    if not ((not v40 or not (v3.AssetTypeIdStringToName[v40] == nil)) or not v39) then
        v33 = true;
    end;
    local v41 = v28 and not (v19 == Enum.MembershipType.Premium);
    if not (v26 and l_None_0 == v4.ResaleRestriction.Disabled) or v32 then
        if not v33 then
            if not v39 then
                if not v41 then
                    return v3.ItemPromptType.OpenPurchasePrompt;
                elseif not v14 then
                    return v3.ItemPromptType.OpenPremiumUpsellPrompt;
                else
                    return v3.ItemPromptType.Disabled;
                end;
            else
                return v3.ItemPromptType.OpenGoToAvatarEditorPrompt;
            end;
        else
            return v3.ItemPromptType.Disabled;
        end;
    else
        return v3.ItemPromptType.SoldOut;
    end;
end);
return function(v43, v44, v45)
    local v46 = nil;
    local v47 = nil;
    local v48 = nil;
    local v49 = nil;
    if not v13 then
        v47 = v5(v43.AvatarExperience.Common, v44, v45);
        if v47 then
            assert(v47, "silence type checker");
            v48 = v47.resellerUserAssetIds;
            v49 = v47.collectibleItemId;
        else
            return v3.ItemPromptType.Disabled;
        end;
    else
        v46 = v6(v43.AvatarExperience, v44, v45);
        if v46 then
            assert(v46, "silence type checker");
            v48 = v46.resellerUserAssetIds;
            v49 = v46.collectibleItemId;
        else
            return v3.ItemPromptType.Disabled;
        end;
    end;
    local v50 = v43.AvatarExperience.Catalog.UserAssets[v48 and v48[1]];
    local v51 = v43.UserRobux[v43.LocalUserId];
    local v52 = not not v43.Users[v43.LocalUserId] and v43.Users[v43.LocalUserId].membership or Enum.MembershipType.None;
    local l_CollectiblesItemInfo_0 = v43.AvatarExperience.Common.Collectibles.CollectiblesItemInfo;
    local v54 = nil;
    if v49 then
        v54 = v43.AvatarExperience.Common.Collectibles.CollectiblesResellableInstances[v49];
    end;
    return v42(v47, v46, v50, v51, v52, l_CollectiblesItemInfo_0, v54);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_memoize_0 = require(game:GetService("CorePackages").Workspace.Packages.AppCommonLib).memoize;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v25 = l_memoize_0(function(v6, v7)
    local v8 = {};
    local v9 = {};
    local v10 = {};
    local v11 = true;
    if v6 and v7 then
        for v12, v13 in v7, nil, nil do
            if v13.itemType == v3.ItemType.Asset then
                local l_itemSubType_0 = v13.itemSubType;
                if not (v3.LCIgnoredForSorting[l_itemSubType_0] or not v13.isLayered) then
                    v10[l_itemSubType_0] = true;
                    v9[v12] = v13.order or v3.LayeredClothingOrder[l_itemSubType_0];
                    if v13.order and v13.order ~= v3.LayeredClothingOrder[l_itemSubType_0] then
                        v11 = false;
                    end;
                    table.insert(v8, {
                        id = v12,
                        typeId = l_itemSubType_0
                    });
                end;
            elseif v13.bundleInfo then
                for v15, v16 in v13.bundleInfo, nil, nil do
                    local l_assetType_0 = v16.assetType;
                    local v18 = v3.LayeredAssetTypes[l_assetType_0] ~= nil;
                    if not (v3.LCIgnoredForSorting[l_assetType_0] or not v18) then
                        v10[l_assetType_0] = true;
                        v9[v15] = v16.order or v3.LayeredClothingOrder[l_assetType_0];
                        if v16.order and v16.order ~= v3.LayeredClothingOrder[l_assetType_0] then
                            v11 = false;
                        end;
                        table.insert(v8, {
                            id = v15,
                            typeId = l_assetType_0
                        });
                    end;
                end;
            end;
        end;
        for v19, v20 in v6, nil, nil do
            for v21, v22 in v20, nil, nil do
                if not ((v10[v19] or v3.LCIgnoredForSorting[v19]) or not v22.isLayered) then
                    v9[v21] = v22.order or v3.LayeredClothingOrder[v19];
                    if v22.order and v22.order ~= v3.LayeredClothingOrder[v19] then
                        v11 = false;
                    end;
                    table.insert(v8, {
                        id = v21,
                        typeId = v19
                    });
                end;
            end;
        end;
        if not v11 then
            table.sort(v8, function(v23, v24)
                return v9[v24.id] < v9[v23.id];
            end);
            return v8, v11;
        else
            return {}, v11;
        end;
    else
        return {}, v11;
    end;
end);
return function(v26)
    return v25(v26.AvatarExperience.AvatarEditor.Character.EquippedAssets, v26.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMostRecentAssetId);
return function(v4)
    return (v3(v4, v2.AssetTypeIdStrings.DynamicHead));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMostRecentAssetId);
return function(v4)
    return (v3(v4, v2.AssetTypeIdStrings.EmoteAnimation));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMostRecentAssetId);
return function(v4)
    return (v3(v4, v2.AssetTypeIdStrings.Head));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMostRecentAssetId);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
return function(v4)
    return v1(v4, v2.AssetTypeIdStrings.IdleAnimation);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMostRecentAssetId);
return function(v4)
    local _, v6, v7 = v3(v4, v2.AssetTypeIdStrings.DynamicHead);
    local _, _, v10 = v3(v4, v2.AssetTypeIdStrings.Head);
    if v10 and (not v7 or v7 < v10) then
        return nil;
    elseif v6 then
        assert(v6, "tryOnBundleInfo is non-nil. Silence type checker");
        for v11, v12 in v6, nil, nil do
            if v12.assetType == v2.AssetTypeIdStrings.MoodAnimation then
                return v11;
            end;
        end;
        return nil;
    else
        return nil;
    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_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.OutfitTryOn);
local v17 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize(function(v7, v8)
    local v9 = nil;
    local v10 = nil;
    local v11 = nil;
    for v12, v13 in v7, nil, nil do
        if v13.selectedInTryOnManager then
            local l_itemRecency_0 = v13.itemRecency;
            if v13.itemType == v3.ItemType.Asset then
                if v13.itemSubType == v8 and (not (v9 ~= nil) or v9 < l_itemRecency_0) then
                    v9 = l_itemRecency_0;
                    v10 = v12;
                    v11 = nil;
                end;
            elseif v13.bundleInfo then
                for v15, v16 in v13.bundleInfo, nil, nil do
                    if v16.assetType == v8 and (not (v9 ~= nil) or v9 < l_itemRecency_0) then
                        v9 = l_itemRecency_0;
                        v10 = v15;
                        v11 = v13.bundleInfo;
                    end;
                end;
            end;
        end;
    end;
    return v10, v11, v9;
end);
return function(v18, v19)
    return v17(v18.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems, v19);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v11 = l_memoize_0(function(v8)
    local v9 = v8 and v8[v4.AssetTypeIdStrings.DynamicHead];
    if v9 and not v2.isEmpty(v9) then
        local v10 = v8 and v8[v4.AssetTypeIdStrings.MoodAnimation];
        if not (v10 and next(v10)) then
            return false;
        else
            return true;
        end;
    else
        return false;
    end;
end);
return function(v12)
    return v11(v12.AvatarExperience.AvatarEditor.Character.EquippedAssets);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v2 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOutfitTryOnMoodAnimationAssetId);
local v3 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectShouldPlayMoodAnimationsEquipped);
return function(v4)
    if not v2(v4) then
        return v3(v4);
    else
        return true;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_memoize_0 = require(game:GetService("CorePackages").Workspace.Packages.AppCommonLib).memoize;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v5 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.LayeredClothingSortUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local _ = require(l_Modules_0.AvatarExperience.Common.Actions.SetOrderForTryOns);
local function v15(v9, v10, v11, v12, v13, v14)
    if not v9[v11.typeId] or not v9[v11.typeId][v11.id] then
        v13[v11.id] = #v10 - v14;
        return ;
    else
        v12[v11.id] = {
            assetTypeId = v11.typeId,
            order = #v10 - v14
        };
        return ;
    end;
end;
local v41 = l_memoize_0(function(v16, v17, v18, v19, v20, v21, v22, v23)
    local v24 = {};
    local v25 = nil;
    local v26 = {};
    local v27 = {};
    if v17 == v4.ItemType.Bundle then
        if not (not v21 or not v21.items) then
            assert(v21, "silence type checker");
            assert(v21.items, "silence type checker");
            for _, v29 in v21.items, nil, nil do
                local v30 = v23[v29.id] and v23[v29.id].assetType;
                if v30 then
                    local v31 = v4.LayeredAssetTypes[v30] ~= nil;
                    if not ((v20 or v4.LCIgnoredForSorting[v30]) or not v31) then
                        local v32, v33 = v5.getTableAndOrderAfterEquippingIntoSort(v19, {
                            id = v29.id,
                            typeId = v30
                        });
                        v25 = v33;
                        v19 = v32;
                    end;
                    v24[tostring(v29.id)] = {
                        assetType = v30,
                        order = v25 or v4.LayeredClothingOrder[v30]
                    };
                end;
            end;
            for v34, v35 in pairs(v19) do
                if v24[v35.id] == nil then
                    v15(v22, v19, v35, v26, v27, v34);
                end;
            end;
        end;
    else
        local v36 = v4.LayeredAssetTypes[v18] ~= nil;
        if not ((v20 or v4.LCIgnoredForSorting[v18]) or not v36) then
            local v37, v38 = v5.getTableAndOrderAfterEquippingIntoSort(v19, {
                id = v16,
                typeId = v18
            });
            v25 = v38;
            for v39, v40 in v37, nil, nil do
                if v40.id ~= v16 then
                    v15(v22, v37, v40, v26, v27, v39);
                end;
            end;
        end;
    end;
    return {
        overrideOrder = v25,
        bundleInfoMapping = v24,
        equippedAssetsToSetOrder = v26,
        itemIdToOrderMap = v27
    };
end);
return function(v42, v43, v44, v45, v46, v47)
    return v41(v43, v44, v45, v46, v47, v3.getBundleInfoFromState(v42, v43), v42.AvatarExperience.AvatarEditor.Character.EquippedAssets, v42.AvatarExperience.Common.AssetInfos);
end;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.AvatarExperienceState);
return function(v1)
    return v1.AvatarExperience.AvatarEditor.HasAvatarData;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v4 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
return function(v5, v6)
    if not l_IsVRAppBuild_0() then
        return v5.AvatarExperience.Common.FullView[v6];
    else
        return v4.None;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v4 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
return function(v5)
    if not l_IsVRAppBuild_0() then
        return v5.AvatarExperience.Common.FullView;
    else
        local v6 = {};
        setmetatable(v6, {
            __index = function()
                return v4.None;
            end
        });
        return v6;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
return function(v5)
    if not l_IsVRAppBuild_0() then
        return v5.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
    else
        return true;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.AvatarExperience);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v4 = require(l_Modules_0.AvatarExperience.Common.Models.ItemInfo);
return function(v5, v6, v7)
    local l_Common_0 = v5.Common;
    local l_AvatarEditor_0 = v5.AvatarEditor;
    if v7 == v1.ItemType.Asset then
        if l_Common_0 then
            local v10 = l_Common_0.AssetInfos[v6];
            if v10 then
                return v4.fromAssetInfo(v10);
            end;
        end;
    elseif v7 == v1.ItemType.Bundle then
        if l_Common_0 then
            local v11 = l_Common_0.BundleInfos[v6];
            if v11 then
                return v4.fromBundleInfo(v11);
            end;
        end;
    elseif not (not (v7 == v1.ItemType.Outfit) or not l_AvatarEditor_0) then
        local v12 = l_AvatarEditor_0.OutfitInfos[v6];
        if v12 then
            return v4.fromOutfitInfo(v12);
        end;
    end;
    return nil;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Analytics.open3DFullView);
local v2 = require(l_Modules_0.AvatarExperience.Common.Analytics.close3DFullView);
local v3 = require(l_Modules_0.AvatarExperience.Common.Analytics.openUIFullView);
local v4 = require(l_Modules_0.AvatarExperience.Common.Analytics.closeUIFullView);
local v5 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v6 = require(l_Modules_0.AvatarExperience.Common.Analytics.reportAvatarEventCounter);
local v7 = {};
local v8 = game:DefineFastFlag("EnableAXCameraCounter", false);
v7.get = function(v9)
    local v10 = v5.get(v9);
    return {
        open3DFullView = function(v11)
            v1(v10.EventStream, v11);
        end,
        close3DFullView = function(v12)
            v2(v10.EventStream, v12);
        end,
        openUIFullView = function(v13)
            v3(v10.EventStream, v13);
        end,
        closeUIFullView = function(v14)
            v4(v10.EventStream, v14);
        end,
        toggleCameraInEditorAndShop = function(v15, v16)
            v10.EventStream:sendEventDeferred("CameraInEditorAndCatalogButton", "CameraInEditorAndCatalogButton_Toggle", {
                actionName = not v15 and "Button Disabled" or "Button Enabled",
                pageName = v16
            });
            if v8 then
                v6(v10, not v15 and "AXCameraDisabled" or "AXCameraEnabled");
            end;
        end
    };
end;
return v7;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.AvatarEditor.Reducers.DefaultBodyColorRanges);
local v2 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.SetDefaultBodyColorRanges);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = {
    RawBodyColorRanges = {
        {
            Color3.fromRGB(255, 0, 0),
            Color3.fromRGB(255, 50, 50),
            Color3.fromRGB(255, 100, 100)
        },
        {
            Color3.fromRGB(0, 255, 0),
            Color3.fromRGB(50, 255, 50),
            Color3.fromRGB(100, 255, 100)
        },
        {
            Color3.fromRGB(0, 0, 255),
            Color3.fromRGB(50, 50, 255),
            Color3.fromRGB(100, 100, 255)
        },
        {
            Color3.fromHex("0f0f0f"),
            Color3.fromHex("888888"),
            Color3.fromHex("e0e0e0")
        }
    }
};
v5.DefaultBodyColorRanges = v1(nil, v2(v5.RawBodyColorRanges));
v5.ExpectedColorData = {
    range_red_100 = {
        color3 = Color3.fromRGB(255, 100, 100),
        sliderValue = 1,
        rangeId = "ff0000"
    },
    range_red_050 = {
        color3 = Color3.fromRGB(255, 50, 50),
        sliderValue = 0.5,
        rangeId = "ff0000"
    },
    range_red_025 = {
        color3 = Color3.fromRGB(255, 25, 25),
        sliderValue = 0.25,
        rangeId = "ff0000"
    },
    range_green_050 = {
        color3 = Color3.fromRGB(50, 255, 50),
        sliderValue = 0.5,
        rangeId = "00ff00"
    },
    range_green_075 = {
        color3 = Color3.fromRGB(75, 255, 75),
        sliderValue = 0.75,
        rangeId = "00ff00"
    },
    range_blue_000 = {
        color3 = Color3.fromRGB(0, 0, 255),
        sliderValue = 0,
        rangeId = "0000ff"
    },
    range_white = {
        color3 = Color3.fromRGB(255, 255, 255),
        rangeId = "0f0f0f",
        sliderValue = 1
    },
    range_black = {
        color3 = Color3.fromRGB(0, 0, 0),
        rangeId = "0f0f0f",
        sliderValue = 0
    }
};
v5.VariedBodyColorDatas = {
    headColor3 = v5.ExpectedColorData.range_red_100,
    torsoColor3 = v5.ExpectedColorData.range_green_075,
    rightLegColor3 = v5.ExpectedColorData.range_blue_000,
    leftLegColor3 = v5.ExpectedColorData.range_red_025,
    rightArmColor3 = v5.ExpectedColorData.range_white,
    leftArmColor3 = v5.ExpectedColorData.range_black
};
v5.VariedBodyColor3s = {};
for v6, v7 in v5.VariedBodyColorDatas, nil, nil do
    v5.VariedBodyColor3s[v6] = v7.color3;
end;
v5.makeBodyColor3s = function(v8)
    local v9 = {};
    for _, v11 in v3.allBodyPartForSkinColoringIds, nil, nil do
        v9[v11] = v8.color3;
    end;
    return v9;
end;
v5.makeBodyPartRangeIds = function(v12)
    local v13 = {};
    for _, v15 in v3.allBodyPartForSkinColoringIds, nil, nil do
        v13[v15] = v12.rangeId;
    end;
    return v13;
end;
v5.makeRangeIdToBodyPartsToSliderAndColor3Values = function(v16)
    local v17 = {};
    for _, v19 in v3.allBodyPartForSkinColoringIds, nil, nil do
        local l_color3_0 = v16.color3;
        local l_rangeId_0 = v16.rangeId;
        local l_sliderValue_0 = v16.sliderValue;
        local v23 = v17[l_rangeId_0] or {};
        v23[v19] = {
            sliderValue = l_sliderValue_0,
            color3 = l_color3_0
        };
        v17[l_rangeId_0] = v23;
    end;
    return v17;
end;
return v5;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local v5 = {
    makeMockRouteInfo = function(v1)
        return {
            name = v1,
            key = v1,
            params = {}
        };
    end,
    makeMockRoute = function(v2, v3, v4)
        return {
            current = v3,
            previousPages = v4,
            opaque = v2,
            isVisible = true,
            isOverlayVisible = false
        };
    end
};
v5.makeMockRouteSimplified = function(v6)
    local v7 = v5.makeMockRouteInfo(v6);
    return {
        current = v7,
        previousPages = {
            v7
        },
        opaque = v7,
        isVisible = true,
        isOverlayVisible = false
    };
end;
return v5;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Thunks.CloseMatchingScreens);
local v2 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
return function(v3)
    return v1(v3, {
        v2.ItemDetails
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Thunks.CloseMatchingScreens);
local v2 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v3 = require(l_Modules_0.LuaApp.AppPage);
return function(v4)
    return v1(v4, {
        v2.ItemDetails,
        v2.SortAndFilters,
        v3.ProfilePeekView,
        v3.GameDetail
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.RoactNavigation);
local v3 = require(l_Modules_0.LuaApp.Navigation.isRootRouteInRN);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateBack);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
return function(v6)
    return function(v7)
        if not v3(v5.getRootNavigation(v6).state) then
            v6.dispatch(v2.Actions.back(nil));
            return ;
        else
            v7:dispatch(v4(false));
            return ;
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Thunks.ResetNavigationHistory);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceActions);
local v6 = {
    [v3.ProfilePeekView] = true,
    [v3.AvatarExperienceWrapper] = true,
    [v3.AvatarExperienceWrapperTransparent] = true
};
local function v12(v7)
    local v8 = {};
    for v9 = 1, #v7 do
        local v10 = {};
        for v11 = 1, v9 do
            table.insert(v10, v7[v11]);
        end;
        table.insert(v8, v10);
    end;
    return v8;
end;
local function _(v13)
    local l_name_0 = v13.name;
    if not (l_name_0 ~= v3.AvatarExperienceWrapper) or l_name_0 == v3.AvatarExperienceWrapperTransparent then
        l_name_0 = not not v13.extraProps and v13.extraProps.routeName or nil;
    end;
    return l_name_0;
end;
local function v26(v16, v17)
    local v18 = v2.List.toSet(v17);
    local l_history_0 = v16:getState().Navigation.history;
    local v20 = l_history_0[#l_history_0];
    local v21 = {};
    local v22 = false;
    for v23 = 1, #v20 do
        local v24 = v20[v23];
        local l_name_1 = v24.name;
        if not (l_name_1 ~= v3.AvatarExperienceWrapper) or l_name_1 == v3.AvatarExperienceWrapperTransparent then
            l_name_1 = not not v24.extraProps and v24.extraProps.routeName or nil;
        end;
        if not v18[l_name_1] then
            table.insert(v21, v20[v23]);
        else
            v22 = true;
        end;
    end;
    if v22 then
        v16:dispatch(v4(nil, (v12(v21))));
        return ;
    else
        return ;
    end;
end;
local function _(v27)
    local l_history_1 = v27:getState().Navigation.history;
    local v29 = l_history_1[#l_history_1];
    return v29[#v29].name;
end;
return function(v31, v32)
    return function(v33)
        local l_history_2 = v33:getState().Navigation.history;
        local v35 = l_history_2[#l_history_2];
        if not v6[v35[#v35].name] then
            v31.dispatch(v5.clearScreens(v32));
            return ;
        else
            v26(v33, v32);
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v2 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
return function(v3, v4)
    return function(v5)
        if v5:getState().AvatarExperience.Common.FullView[v4] == v2.SceneFullView then
            v5:dispatch(v1(v3, v4, v2.None));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateToRoute);
local v3 = require(l_Modules_0.AvatarExperience.Common.Actions.ApplyNavigateIntoAvatarExperience);
local v4 = {
    {
        name = v1.AvatarExperienceRoot
    }
};
return function(v5, v6, v7)
    return function(v8)
        v8:dispatch(v3(v5, v6));
        v8:dispatch(v2(v4, v7));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateWithLock);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
return function(v4, v5)
    return function(v6)
        v6:dispatch(v2(function()
            v3.closeFiltersAndItemDetails(v4);
            v3.closeTryOnManager(v4);
            v4.navigate(v1.ItemDetails, v5);
        end));
    end;
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.LuaApp.Actions.ApplySetNavigationLocked);
return function(v4)
    v2.isType(v4, "function", "navigationCallback");
    return function(v5)
        if not v5:getState().Navigation.lockNavigationActions then
            v5:dispatch(v3(true));
            v4();
            return ;
        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.LuaApp.AppPage);
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v5 = require(l_Modules_0.LuaApp.Actions.Games.SetGameDetailsPeekViewState);
local v6 = require(l_Modules_0.LuaApp.Thunks.OpenGameDetails);
local v7 = require(l_Modules_0.LuaApp.Flags.UseGameDetailsPeekView);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v9 = require(l_Modules_0.AvatarExperience.Common.Actions.SetItemDetailsExpanded);
local v10 = require(l_Modules_0.AvatarExperience.Flags.GetAXFixGameDetailsViewTitle);
local function v14(v11, v12, v13)
    v11:dispatch(v5(l_PeekViewState_0.Closed));
    if v10() then
        v11:dispatch(v9(true));
    end;
    v8.closeFiltersAndItemDetails(v12);
    v8.closeAllDialogs(v12);
    v12.navigate(v13.name, v13);
end;
return function(v15, v16, v17)
    return function(v18)
        local v19 = {
            name = v2.GameDetail,
            detail = tostring(v15),
            extraProps = v17
        };
        local v20 = v18:getState();
        local l_FormFactor_1 = v20.FormFactor;
        local l_viewState_0 = v20.GameDetailsPeekView.viewState;
        if not (l_FormFactor_1 == l_FormFactor_0.COMPACT) or not v7() then
            v18:dispatch(v6(v15, v17));
            return ;
        elseif (l_viewState_0 ~= l_PeekViewState_0.Full and l_viewState_0 ~= l_PeekViewState_0.Extended) and (not v17 or not v17.mountAsFullView) then
            v14(v18, v16, v19);
            return ;
        else
            v18:dispatch(v6(v15, v17));
            return ;
        end;
    end;
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 _ = require(l_CorePackages_0.Packages.Dash);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v5 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v6 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateIntoItemDetailsPage);
local _ = require(l_Modules_0.AvatarExperience.Common.Context.WidgetInfoContext);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v9)
    v2.assert(not (v9.mountAsFullView and v9.showFullWithNoPeekView));
    return function(v10)
        if v9.closePreviousItemDetails then
            v4.closeFiltersAndItemDetails(v9.navigation);
        end;
        local v11 = {
            itemId = v9.itemId,
            itemType = v9.itemType,
            itemSubType = v9.itemSubType,
            itemDetailsPeekViewRefs = v9.itemDetailsPeekViewRefs,
            resultsListRef = v9.resultsListRef,
            isFirstItemDetails = true,
            mountAsFullView = v9.mountAsFullView,
            showFullWithNoPeekView = v9.showFullWithNoPeekView,
            widgetInfo = v9.widgetInfo,
            onItemDetailsClosed = v9.onItemDetailsClosed
        };
        if not (not v9.showFullWithNoPeekView and not v9.mountAsFullView) then
            v9.catalogAnalytics.openItemDetails(v9.itemId, v9.itemType, v9.priceInRobux, (v5.getCurrentScreenIgnoreItemDetails(v9.avatarRoute)));
        end;
        v10:dispatch(v6(v9.navigation, v11));
    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.Packages.tutils);
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v5 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v6 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local v7 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v8 = require(l_Modules_0.AvatarExperience.Catalog.CatalogUtils);
local v9 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v10 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectItemPromptType);
local v11 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.OpenPurchasePrompt);
local v12 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.OpenPremiumUpsellPrompt);
local v13 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.OpenGoToAvatarEditorPrompt);
local v14 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v15 = require(l_Modules_0.LuaApp.Thunks.ApiFetchEconomyCurrency);
local v16 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableCollectiblesSaleLocationCheck);
local v17 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagCollectiblesCatalogFollowUpForSaleLocation);
local v18 = {
    toastMessage = "Feature.Catalog.LabelNoResellers",
    toastSubMessage = "Feature.Catalog.Label.NoSellersWarning",
    isLocalized = false,
    toastType = v9.SuccessConfirmation
};
local v19 = {
    toastMessage = "Feature.Catalog.Heading.NotForSale",
    toastSubMessage = "Feature.Catalog.Label.NoLongerAvailable",
    isLocalized = false,
    toastType = v9.SuccessConfirmation
};
local v20 = {
    toastMessage = "Feature.Catalog.Heading.InExperienceOnly",
    toastSubMessage = "Feature.Catalog.Label.InExperienceOnly",
    isLocalized = false,
    toastType = v9.SuccessConfirmation
};
local v21 = {
    toastMessage = "Feature.Catalog.Heading.QuantityLimitReached",
    toastSubMessage = "Feature.Catalog.Label.QuantityLimitReached",
    isLocalized = false,
    toastType = v9.SuccessConfirmation
};
local function _(v22, v23, v24)
    local l_LocalUserId_0 = v23.LocalUserId;
    if typeof(l_LocalUserId_0) == "string" and l_LocalUserId_0 ~= "" then
        v22:dispatch(v15(v24, l_LocalUserId_0, false));
    end;
end;
local function v42(v27, v28, v29, v30, v31)
    local v32 = nil;
    local v33 = nil;
    local v34 = nil;
    if not v7 then
        v32 = v29 and v29.resellerUserAssetIds;
        v33 = v8.DEPRECATED_IsResellable(v29);
        v34 = v29 and v29.collectibleItemId;
    elseif v30 then
        v32 = v30.resellerUserAssetIds;
        v33 = v30.isResellable;
        v34 = v30.collectibleItemId;
    end;
    local v35 = v33 and v28.AvatarExperience.Catalog.UserAssets[v32 and v32[1]] == nil;
    if not (v28.UserRobux[v28.LocalUserId] == nil) then
        local v36 = false;
        if not (not v16() or not v34) then
            local v37 = v28.AvatarExperience.Common.Collectibles.CollectiblesItemInfo[v34];
            v36 = not v8.isCollectibleSellableInShop(v37);
            v35 = not v37 and true or not v37.hasResellers;
        end;
        local v38 = false;
        if v34 then
            local v39 = v28.AvatarExperience.Common.Collectibles.CollectiblesItemInfo[v34];
            local v40 = v28.AvatarExperience.Common.Collectibles.CollectiblesResellableInstances[v34];
            v35 = not v39 and true or not v39.hasResellers;
            v38 = v35 and v8.reachQuantityLimit(v39, v40);
        end;
        if not v36 then
            if not v38 then
                if not v35 then
                    return v27:dispatch(v14(v19));
                else
                    return v27:dispatch(v14(v18));
                end;
            else
                return v27:dispatch(v14(v21));
            end;
        elseif not v17() then
            return v27:dispatch(v14(v19));
        else
            return v27:dispatch(v14(v20));
        end;
    else
        local l_LocalUserId_1 = v28.LocalUserId;
        if typeof(l_LocalUserId_1) == "string" and l_LocalUserId_1 ~= "" then
            v27:dispatch(v15(v31, l_LocalUserId_1, false));
        end;
        return ;
    end;
end;
return function(v43, v44, v45, v46, v47, v48, v49, v50, v51)
    return function(v52)
        local v53 = v52:getState();
        local v54 = nil;
        local v55 = nil;
        if not v48 or not v49 then
            v54 = v47.current.params.itemId;
            v55 = v47.current.params.itemType;
        else
            v54 = v48;
            v55 = v49;
        end;
        local v56 = v10(v53, v54, v55);
        local l_fromProfile_0 = v47.current.params.fromProfile;
        local l_widgetInfo_0 = v47.current.params.widgetInfo;
        if not l_widgetInfo_0 then
            local l_TryOnItems_0 = v53.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems;
            if v3.fieldCount(l_TryOnItems_0) == 1 then
                local _, v61 = next(l_TryOnItems_0);
                l_widgetInfo_0 = v61.widgetInfo;
            end;
        end;
        if v56 == v4.ItemPromptType.OpenPurchasePrompt then
            v52:dispatch(v11(v43, v45, v46, v44, l_fromProfile_0, v47, v54, v55, v50, v51, l_widgetInfo_0));
            return ;
        elseif v56 == v4.ItemPromptType.OpenGoToAvatarEditorPrompt then
            v52:dispatch(v13(v45, v46, v47, v54, v55));
            return ;
        elseif v56 == v4.ItemPromptType.OpenPremiumUpsellPrompt then
            v52:dispatch(v12(v43, v44, v45, v46, nil, v54, v55));
            return ;
        else
            if v56 == v4.ItemPromptType.Disabled then
                local v62 = nil;
                local v63 = nil;
                if not v7 then
                    v62 = v5(v53.AvatarExperience.Common, v54, v55);
                else
                    v63 = v6(v53.AvatarExperience, v54, v55);
                end;
                v42(v52, v53, v62, v63, v43);
            end;
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
return function(v3, v4)
    return function(v5)
        for _, v7 in v5:getState().AvatarExperience.Common.FullView, nil, nil do
            if v7 == v2.SceneFullView then
                return ;
            end;
        end;
        v4.navigate(v1.AvatarExperienceQuickMenu, {
            onOverlayClosed = v3
        });
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v3 = require(l_Modules_0.AvatarExperience.Common.Actions.SetEquippedInTryOnManager);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v5 = require(l_CorePackages_0.tutils);
local v6 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v7 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v8 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local v9 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v10 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
return function(v11, v12, v13, v14)
    return function(v15)
        v15:dispatch(v3(v11, v12, if not v10() then nil else v14));
        local v16 = v15:getState();
        local l_Common_0 = v16.AvatarExperience.Common;
        local l_TryOnItems_0 = v16.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems;
        local v19 = v5.fieldCount(l_TryOnItems_0);
        local v20 = l_TryOnItems_0[v11];
        local v21 = if not v20 then v6.ItemType.Asset else v20.itemType;
        local v22 = nil;
        local v23 = nil;
        if not v9 then
            local v24 = v7(l_Common_0, v11, v21);
            if v24 then
                v22 = v24.priceInRobux;
                v23 = v24.isOwned;
            end;
        else
            local v25 = v8(v16.AvatarExperience, v11, v21);
            if v25 then
                v22 = v25.priceInRobux;
                v23 = v25.isOwned;
            end;
        end;
        local l_TryOnManager_0 = v4.TryOnManager;
        if not v12 then
            v13.avatarShopUnequip(v11, v21, v22, false, v23, l_TryOnManager_0, v19);
            return ;
        else
            v13.avatarShopEquip(v11, v21, v22, false, v23, l_TryOnManager_0, v19);
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.mutedError);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Actions.SetFullView);
local v4 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local function _(v5)
    local v6 = v2.AnalyticsContext[v5];
    if v6 == nil then
        if _G.__TESTEZ_RUNNING_TEST__ and v5 == "DummyRoute" then
            return "DummyRoute";
        else
            v1(string.format("opaquePage: %s missing an entry in AXConstants.AnalyticsContext", (tostring(v5))));
            v6 = "";
        end;
    end;
    return v6;
end;
local function _(v8, v9, v10)
    if v10 == v4.SceneFullView then
        return v8.open3DFullView;
    elseif v10 == v4.UIFullView then
        return v8.openUIFullView;
    elseif v9 == v4.SceneFullView then
        return v8.close3DFullView;
    elseif v9 == v4.UIFullView then
        return v8.closeUIFullView;
    else
        return ;
    end;
end;
return function(v12, v13, v14)
    return function(v15)
        local v16 = v15:getState().AvatarExperience.Common.FullView[v13];
        v15:dispatch(v3(v13, v14));
        local l_v13_0 = v13;
        local v18 = v2.AnalyticsContext[l_v13_0];
        local v19;
        if v18 == nil then
            if _G.__TESTEZ_RUNNING_TEST__ and l_v13_0 == "DummyRoute" then
                v19 = "DummyRoute";
                goto label0 --[[  true, true  ]];
            else
                v1(string.format("opaquePage: %s missing an entry in AXConstants.AnalyticsContext", (tostring(l_v13_0))));
                v18 = "";
            end;
        end;
        v19 = v18;
        ::label0::;
        v18 = v12;
        local l_v14_0 = v14;
        l_v13_0 = if l_v14_0 == v4.SceneFullView then v18.open3DFullView else if l_v14_0 == v4.UIFullView then v18.openUIFullView else if v16 == v4.SceneFullView then v18.close3DFullView else if v16 == v4.UIFullView then v18.closeUIFullView else nil;
        if l_v13_0 then
            l_v13_0(v19);
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearTryOns);
local v2 = require(l_Modules_0.AvatarExperience.Common.Actions.SetLastSavedTriedOnOutfit);
return function()
    return function(v3)
        v3:dispatch(v2(v3:getState().AvatarExperience.AvatarScene.OutfitTryOn));
        v3:dispatch(v1());
    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.Catalog.Thunks.FetchOutfitInfoFromBundle);
local v3 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v5 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v6 = require(l_Modules_0.AvatarExperience.Common.ReducerUtils);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v8 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v9 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local v10 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v11 = require(l_CorePackages_0.tutils);
local v12 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearTryOns);
local v13 = require(l_Modules_0.AvatarExperience.Common.Actions.StartedWaitingOnLCUpdate);
local v14 = require(l_Modules_0.AvatarExperience.Common.Actions.ToggleTryOn);
local v15 = require(l_Modules_0.AvatarExperience.Common.Actions.SetOrderForTryOns);
local v16 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetOrder);
local v17 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectOrderedToggledOnItemsList);
local v18 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectUpdatedSortOrderForToggledOnItems);
local _ = function(v19, v20)
    local _, v22 = v6.filterTryOns(v19, v20);
    return v22;
end;
return function(v24, v25, v26, v27, v28, v29, v30, v31, v32)
    return function(v33)
        local v34 = v33:getState();
        if not v34.AvatarExperience.LayeredClothingSort.CharacterUpdatesLocked then
            if v27 then
                local v35 = nil;
                if v26 == v3.ItemType.Bundle then
                    v35 = v5.getOutfitInfoFromBundleId(v34, v28);
                    if not v35 then
                        v33:dispatch(v2(v24, v28));
                    end;
                end;
                local l_TryOnItems_0 = v33:getState().AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems;
                local v37 = v11.fieldCount(l_TryOnItems_0);
                local v38 = l_TryOnItems_0[v28];
                if not (v30 and v4[v30.opaque.name].isMultiTryOn) then
                    if v38 then
                        if v31 then
                            v7.closeFiltersAndItemDetails(v31);
                        end;
                    else
                        v33:dispatch(v12());
                    end;
                else
                    local v39 = {
                        itemType = v26,
                        itemSubType = v27,
                        itemId = v28
                    };
                    local v40 = nil;
                    local v41 = nil;
                    if not v10 then
                        local v42 = v8(v33:getState().AvatarExperience.Common, v28, v26);
                        v40 = v42.priceInRobux;
                        v41 = v42.isOwned;
                    else
                        local v43 = v9(v33:getState().AvatarExperience, v28, v26);
                        if v43 then
                            v40 = v43.priceInRobux;
                            v41 = v43.isOwned;
                        end;
                    end;
                    local v44 = v5.getCurrentScreenIgnoreItemDetails(v30);
                    if not v38 then
                        local v45, v46 = v6.filterTryOns(l_TryOnItems_0, v39);
                        local l_v46_0 = v46;
                        v45 = l_v46_0 ~= nil;
                        if l_v46_0 then
                            v25.avatarShopUnequip(l_v46_0.itemId, l_v46_0.itemType, l_v46_0.priceInRobux, v45, v41, v44, v37);
                        end;
                        v25.avatarShopEquip(v28, v26, v40, v45, v41, v44, v37);
                    else
                        v25.avatarShopUnequip(v28, v26, v40, false, v41, v44, v37);
                    end;
                end;
                if v5.isBundleOrLCAsset(v26, v27) then
                    v33:dispatch(v13());
                end;
                local v48, v49 = v17(v34);
                local v50 = v18(v34, v28, v26, v27, v48, v49);
                if v50.equippedAssetsToSetOrder then
                    v33:dispatch(v16(v50.equippedAssetsToSetOrder));
                end;
                if v50.itemIdToOrderMap then
                    v33:dispatch(v15(v50.itemIdToOrderMap));
                end;
                v33:dispatch(v14(v26, v27, v28, v29, v50.overrideOrder, v50.bundleInfoMapping, v32, not not v35 or false));
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_CorePackages_0.Packages.Dash);
local _ = require(l_CorePackages_0.Packages.React);
return {};