local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Util_0 = l_Parent_0.Core.Util;
local v2 = require(l_Util_0.Analytics.Analytics);
local v3 = require(l_Util_0.DebugFlags);
local v4 = require(l_Parent_0.Core.Actions.NetworkError);
local _ = require(l_Parent_0.Core.Types.AssetMediaTypes);
local l_Packages_0 = l_Parent_0.Packages;
local v7 = require(l_Packages_0.Framework);
local v8 = require(l_Packages_0.Dash);
local l_append_0 = v8.append;
local l_findIndex_0 = v8.findIndex;
local l_join_0 = v8.join;
local l_map_0 = v8.map;
local l_Promise_0 = v7.Util.Promise;
return function(v14, v15, v16, v17)
    return function(v18)
        local l_ThumbnailIdsToRemove_0 = v16.ThumbnailIdsToRemove;
        local l_ThumbnailFilesToAdd_0 = v16.ThumbnailFilesToAdd;
        local l_ThumbnailOrderToChange_0 = v16.ThumbnailOrderToChange;
        local v22 = {
            Delete = {},
            Upload = {},
            SetOrder = true,
            OverallSuccess = true
        };
        local v25 = l_map_0(l_ThumbnailIdsToRemove_0, function(v23)
            return v14:deleteAssetMedia(v15, v23):andThen(function()
                v22.Delete[v23] = true;
            end):catch(function(v24)
                if v3.shouldDebugWarnings() then
                    warn("Could not delete asset media id:", v23, "for asset id:", v15, "error:", v24);
                end;
                v22.Delete[v23] = false;
                v22.OverallSuccess = false;
                v18:dispatch(v4(v24));
            end);
        end);
        local v32 = l_map_0(l_ThumbnailFilesToAdd_0, function(v26)
            return v14:postUploadAssetMedia(v15, v26):andThen(function(v27)
                local l_v26_TemporaryId_0 = v26:GetTemporaryId();
                local l_targetId_0 = v27.targetId;
                l_ThumbnailOrderToChange_0 = l_join_0(l_ThumbnailOrderToChange_0, {
                    [l_findIndex_0(l_ThumbnailOrderToChange_0, function(v30)
                        return v30 == l_v26_TemporaryId_0;
                    end)] = l_targetId_0
                });
                v22.Upload[l_targetId_0] = true;
            end):catch(function(v31)
                if v3.shouldDebugWarnings() then
                    warn("Could not upload asset media:", v26, "for asset id:", v15, "error:", v31);
                end;
                v22.Upload[v26:GetTemporaryId()] = false;
                v22.OverallSuccess = false;
                v18:dispatch(v4(v31));
            end);
        end);
        local function v34()
            return v14:postSetAssetMediaOrder(v15, l_ThumbnailOrderToChange_0):andThen(function()
                v22.SetOrder = true;
                v2.AssetMediaItemsUpdated(v15, v17.Value, l_ThumbnailOrderToChange_0);
            end):catch(function(v33)
                if v3.shouldDebugWarnings() then
                    warn("Could not set order for asset media:", l_ThumbnailOrderToChange_0, "for asset id:", v15, "error:", v33);
                end;
                v22.SetOrder = false;
                v22.OverallSuccess = false;
                v18:dispatch(v4(v33));
            end);
        end;
        local v35 = l_append_0(v25, v32);
        local v36 = nil;
        if #v35 == 0 then
            v36 = if #l_ThumbnailOrderToChange_0 == 0 then l_Promise_0.resolve() else v34();
        else
            local v37 = l_Promise_0.all(v35);
            v36 = if #l_ThumbnailOrderToChange_0 == 0 then v37 else v37:andThen(function()
                if v22.OverallSuccess then
                    v34();
                end;
            end);
        end;
        return v36:andThen(function()
            return v22;
        end);
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Types.RequestReason);
local v2 = require(l_Parent_0.Core.Networking.Requests.GetAssetsRequest);
local v3 = require(l_Parent_0.Core.Networking.Requests.GetToolboxItems);
local v4 = require(l_Parent_0.Core.Types.Category);
local v5 = require(l_Parent_0.Core.Actions.ClearAssets);
local v6 = require(l_Parent_0.Core.Actions.UpdatePageInfo);
local v7 = require(l_Parent_0.Core.Util.Constants);
local l_showRobloxCreatedAssets_0 = require(l_Parent_0.Core.Util.ToolboxUtilities).showRobloxCreatedAssets;
return function(v9, v10, v11)
    return function(v12)
        if not v1.IsUpdate(v11.requestReason) then
            v12:dispatch(v5());
        end;
        v12:dispatch(v6(v11, v10));
        local l_pageInfo_0 = v12:getState().pageInfo;
        local l_audioSearchInfo_0 = l_pageInfo_0.audioSearchInfo;
        local l_categoryName_0 = l_pageInfo_0.categoryName;
        if l_showRobloxCreatedAssets_0() and l_audioSearchInfo_0 == nil then
            l_audioSearchInfo_0 = {
                minDuration = 0,
                maxDuration = v7.MAX_AUDIO_SEARCH_DURATION
            };
        end;
        if not v4.API_NAMES[l_categoryName_0] then
            v12:dispatch(v2(v9, l_pageInfo_0));
            return ;
        else
            v12:dispatch(v3(v9, l_categoryName_0, l_audioSearchInfo_0, l_pageInfo_0, v10));
            return ;
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Actions.NetworkError);
local v2 = require(l_Parent_0.Core.Actions.UploadResult);
local l_Util_0 = l_Parent_0.Core.Util;
local v4 = require(l_Util_0.DebugFlags);
local v5 = require(l_Util_0.AssetConfigConstants);
local v6 = require(l_Util_0.SerializeInstances);
local v7 = require(l_Util_0.convertSpecialMeshAccessory);
local v8 = require(l_Parent_0.Core.Networking.Requests.ConfigureItemTagsRequest);
return function(v9, v10, v11, v12, v13, v14, v15)
    return function(v16, v17)
        local function v19(_)
            v16:dispatch(v8(v9, v10, {}, v15));
        end;
        local function v21(v20)
            if v4.shouldDebugWarnings() then
                warn("Lua toolbox: SerializeInstances failed");
            end;
            v16:dispatch(v1((tostring(v20))));
            v16:dispatch(v2(false));
        end;
        local function v23(v22)
            v16:dispatch(v1(v22));
            v16:dispatch(v2(false));
        end;
        return v6({
            (v7(v14[1]))
        }, v17.StudioAssetService):andThen(function(v24)
            return v9:uploadCatalogItemFormat(v10, v11.Name, v12, v13, true, v5.AVATAR_MESHPART_ACCESSORY_FORMAT, v24):andThen(v19, v23);
        end, v21);
    end;
end;


local l_HttpService_0 = game:GetService("HttpService");
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_CMSUploadAccessoryMeshPartFormat2_0 = game:GetFastFlag("CMSUploadAccessoryMeshPartFormat2");
local v3 = require(l_Parent_0.Core.Actions.SetAssetId);
local v4 = require(l_Parent_0.Core.Actions.NetworkError);
local v5 = require(l_Parent_0.Core.Actions.SetCurrentScreen);
local v6 = require(l_Parent_0.Core.Actions.UploadResult);
local l_Util_0 = l_Parent_0.Core.Util;
local v8 = require(l_Util_0.DebugFlags);
local v9 = require(l_Util_0.AssetConfigConstants);
local v10 = require(l_Util_0.SerializeInstances);
local v11 = require(l_Util_0.Analytics.Analytics);
local v12 = require(l_Util_0.createMultipartFormDataBody);
local v13 = require(l_Parent_0.Core.Networking.Requests.ConfigureItemTagsRequest);
local v14 = require(l_Parent_0.Core.Networking.Requests.UploadCatalogItemMeshPartFormatRequest);
local function _(v15, v16, v17)
    return {
        [v15] = {
            type = v16.Name,
            name = v15,
            description = v17
        }
    };
end;
local function _(v19, v20, v21, v22, v23)
    return "--" .. v23 .. "\r\n" .. "Content-Type: application/json\r\n" .. "Content-Disposition: form-data; name=\"config\"; filename=\"config.json\"\r\n" .. "\r\n" .. v19 .. "\r\n" .. "--" .. v23 .. "\r\n" .. "Content-Disposition: form-data; name=\"" .. v20 .. "\"; filename=\"" .. v20 .. "." .. v21 .. "\"\r\n" .. "Content-Type: application/octet-stream\r\n" .. "\r\n" .. v22 .. "\r\n" .. "--" .. v23 .. "--\r\n";
end;
return function(v25, v26, v27, v28, v29, v30, v31)
    return function(v32, v33)
        v26 = string.sub(v26 or "", 1, v9.NAME_CHARACTER_LIMIT);
        v28 = string.sub(v28 or "", 1, v9.DESCRIPTION_CHARACTER_LIMIT);
        v32:dispatch(v5(v9.SCREENS.UPLOADING_ASSET));
        local function v38(v34)
            local l_status_0, l_result_0 = pcall(function()
                return l_HttpService_0:JSONDecode(v34);
            end);
            if not ((not l_status_0 or not l_result_0) or not l_result_0.AssetDetails) and #l_result_0.AssetDetails > 0 then
                local v37 = l_result_0.AssetDetails[1];
                if not v37.uploadAssetError then
                    if v37.assetId then
                        v32:dispatch(v3(v37.assetId));
                        if not l_CMSUploadAccessoryMeshPartFormat2_0 then
                            v32:dispatch(v13(v25, v37.assetId, {}, v31));
                        else
                            v32:dispatch(v14(v25, v37.assetId, v29, v26, v28, v30, v31));
                        end;
                        v11.incrementUploadAssetSuccess(v29);
                        return ;
                    end;
                else
                    v32:dispatch(v4(v37.uploadAssetError));
                    v32:dispatch(v6(false));
                    v11.incrementUploadAssetFailure(v29);
                    return ;
                end;
            end;
            v32:dispatch(v4("Unknown Error"));
            v32:dispatch(v6(false));
        end;
        local function v40(v39)
            if v8.shouldDebugWarnings() then
                warn("Lua toolbox: SerializeInstances failed");
            end;
            v32:dispatch(v4((tostring(v39))));
            v32:dispatch(v6(false));
            v11.incrementUploadAssetFailure(v29);
        end;
        local function v42(v41)
            if v8.shouldDebugWarnings() then
                warn("Lua toolbox: Could not upload catalog item");
            end;
            v32:dispatch(v4(v41));
            v32:dispatch(v6(false));
            v11.incrementUploadAssetFailure(v29);
        end;
        return v10(v30, v33.StudioAssetService):andThen(function(v43)
            local l_v25_0 = v25;
            local l_v26_0 = v26;
            return v25:uploadCatalogItem(v12({
                {
                    type = "application/json",
                    disposition = {
                        name = "config",
                        filename = "config.json"
                    },
                    value = l_v25_0:jsonEncode({
                        [l_v26_0] = {
                            type = v29.Name,
                            name = l_v26_0,
                            description = v28
                        }
                    })
                },
                {
                    type = "application/octet-stream",
                    disposition = {
                        name = v26,
                        filename = v26 .. "." .. v27
                    },
                    value = v43
                }
            }), v9.MULTIPART_FORM_BOUNDARY):andThen(v38, v42);
        end, v40);
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Packages.Roact);
local v1 = v0.PureComponent:extend("CameraProvider");
v1.render = function(v2)
    return v0.oneChild(v2.props[v0.Children]);
end;
return v1;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local l_Util_0 = l_Parent_0.Core.Util;
local v5 = require(l_Util_0.Constants);
local v6 = require(l_Util_0.DebugFlags);
local v7 = require(l_Util_0.PagedRequestCursor);
local l_Math_0 = require(l_Packages_0.Framework).Util.Math;
local l_Actions_0 = l_Parent_0.Core.Actions;
local v10 = require(l_Actions_0.ClearAssets);
local v11 = require(l_Parent_0.Core.Actions.SetAssetMediaIds);
local v12 = require(l_Actions_0.GetAssets);
local v13 = require(l_Actions_0.SetLoading);
local v14 = require(l_Actions_0.SetCachedCreatorInfo);
local v15 = require(l_Actions_0.SetAssetPreview);
local v16 = require(l_Actions_0.SetPreviewModel);
local v17 = require(l_Actions_0.ClearPreview);
local v18 = require(l_Actions_0.SetCanManageAsset);
local v19 = require(l_Actions_0.SetCodeSummaryForAsset);
local v20 = require(l_Actions_0.SetPluginData);
local v21 = require(l_Actions_0.SetMostRecentAssetInsertTime);
local v22 = require(l_Actions_0.GetAssetContentAttributionInfo);
local v23 = require(l_Parent_0.Core.Actions.UpdateAssetData);
local v24 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxCodeUnderstandingSummary);
local function v42(v25, v26, v27, v28)
    if v26 then
        local v29 = {};
        local v30 = {};
        local v31 = {
            Voting = v2.None
        };
        for _, v33 in ipairs(v26) do
            local l_Id_0 = v33.Asset.Id;
            local v35 = #v30 + 1;
            if v29[l_Id_0] == nil then
                local v36 = v25.assetsReceived or 0;
                v33.Context = v2.Dictionary.join(v33.Context or {}, {
                    page = l_Math_0.round(v36 / v5.TOOLBOX_ITEM_SEARCH_LIMIT, 0) + 1,
                    pagePosition = v35,
                    position = v36 + v35
                });
                v29[l_Id_0] = v2.Dictionary.join(v33, v31);
                v30[v35] = l_Id_0;
            end;
        end;
        local v37 = math.max(v25.totalAssets or 0, v27 or 0);
        local v38 = (v25.assetsReceived or 0) + #v30;
        local v39 = false;
        if not v28 then
            local v40 = false;
            if v37 <= v38 then
                v40 = #v26 == 0;
            end;
            local l_hasReachedBottom_0 = v25.hasReachedBottom;
            if not l_hasReachedBottom_0 then
                l_hasReachedBottom_0 = v40;
                if not l_hasReachedBottom_0 then
                    l_hasReachedBottom_0 = false;
                    if #v30 == 0 then
                        l_hasReachedBottom_0 = v37 > 0;
                    end;
                end;
            end;
            v39 = l_hasReachedBottom_0;
        else
            v39 = not v7.isNextPageAvailable(v28);
        end;
        return v2.Dictionary.join(v25, {
            idToAssetMap = v2.Dictionary.join(v25.idToAssetMap or {}, v29),
            idsToRender = v2.List.join(v25.idsToRender or {}, v30),
            totalAssets = v37,
            assetsReceived = v38,
            hasReachedBottom = v39,
            currentCursor = v28 or v7.createDefaultCursor()
        });
    else
        if v6.shouldDebugWarnings() then
            warn("Lua Toolbox: handleAssetsAddedToState() got assets = nil");
        end;
        return v25;
    end;
end;
return v3.createReducer({
    idToAssetMap = {},
    idsToRender = {},
    isLoading = true,
    totalAssets = 0,
    assetsReceived = 0,
    hasReachedBottom = false,
    currentCursor = v7.createDefaultCursor(),
    previewModel = nil,
    previewAssetId = nil,
    previewSwimlaneName = nil,
    isPreviewing = false,
    mostRecentAssetInsertTime = 0,
    manageableAssets = {},
    previewPluginData = nil,
    creatingUniverseName = nil,
    creatingUniverseRootPlaceId = nil,
    codeSummaryMap = if not v24() then nil else {}
}, {
    [v10.name] = function(v43, _)
        return v2.Dictionary.join(v43, {
            idsToRender = {},
            totalAssets = 0,
            assetsReceived = 0,
            hasReachedBottom = false,
            currentCursor = v7.createDefaultCursor(),
            manageableAssets = {}
        });
    end,
    [v13.name] = function(v45, v46)
        return v2.Dictionary.join(v45, {
            isLoading = v46.isLoading
        });
    end,
    [v14.name] = function(v47, v48)
        return v2.Dictionary.join(v47, {
            cachedCreatorInfo = v48.cachedCreatorInfo
        });
    end,
    [v11.name] = function(v49, v50)
        local v51 = if not not v49.idToAssetMap and v49.idToAssetMap[v50.assetId] then v49.idToAssetMap[v50.assetId].Asset else nil;
        if v51 == nil then
            return v49;
        else
            return v2.Dictionary.join(v49, {
                idToAssetMap = v2.Dictionary.join(v49.idToAssetMap, {
                    [v50.assetId] = v2.Dictionary.join(v49.idToAssetMap[v50.assetId], {
                        Asset = v2.Dictionary.join(v51, {
                            AssetMediaIds = v50.assetMediaIds
                        })
                    })
                })
            });
        end;
    end,
    [v12.name] = function(v52, v53)
        return v42(v52, v53.assets, v53.totalResults, v53.cursor);
    end,
    [v15.name] = function(v54, v55)
        return v2.Dictionary.join(v54, {
            isPreviewing = v55.isPreviewing,
            previewAssetId = v55.previewAssetId,
            previewSwimlaneName = if not v55.previewSwimlaneName then v2.None else v55.previewSwimlaneName
        });
    end,
    [v16.name] = function(v56, v57)
        return v2.Dictionary.join(v56, {
            previewModel = v57.previewModel
        });
    end,
    [v17.name] = function(v58, _)
        return v2.Dictionary.join(v58, {
            previewModel = v2.None,
            previewPluginData = v2.None
        });
    end,
    [v18.name] = function(v60, v61)
        return v2.Dictionary.join(v60, {
            manageableAssets = v2.Dictionary.join(v60.manageableAssets, {
                [tostring(v61.assetId)] = v61.canManage
            })
        });
    end,
    [v20.name] = function(v62, v63)
        return v2.Dictionary.join(v62, {
            previewPluginData = v63.pluginData
        });
    end,
    [v21.name] = function(v64, v65)
        return v2.Dictionary.join(v64, {
            mostRecentAssetInsertTime = v65.mostRecentAssetInsertTime
        });
    end,
    [v22.name] = function(v66, v67)
        return v2.Dictionary.join(v66, {
            creatingUniverseId = v67.creatingUniverseId,
            creatingUniverseName = v67.creatingUniverseName,
            creatingUniverseRootPlaceId = v67.creatingUniverseRootPlaceId
        });
    end,
    [v19.name] = if not v24() then nil else function(v68, v69)
        return v2.Dictionary.join(v68, {
            codeSummaryMap = v2.Dictionary.join(v68, {
                [tostring(v69.assetId)] = v69.codeSummary
            })
        });
    end,
    [v23.name] = function(v70, v71)
        if not if not not v70.idToAssetMap and v70.idToAssetMap[v71.assetId] then v70.idToAssetMap[v71.assetId] else nil then
            return ;
        else
            return v2.Dictionary.join(v70, {
                idToAssetMap = v2.Dictionary.join(v70.idToAssetMap, {
                    [v71.assetId] = v71.assetData
                })
            });
        end;
    end
});


local v0 = require(script.Parent.Parent.Parent.Core.Util.PagedRequestCursor);
return function(_, _)
    return {
        idToAssetMap = {},
        idsToRender = {},
        isLoading = true,
        currentCursor = v0.createDefaultCursor(),
        totalAssets = 0,
        assetsReceived = 0,
        hasReachedBottom = false,
        manageableAssets = {}
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
return require(l_Packages_0.Rodux).createReducer({
    autocompleteResults = {}
}, {
    [require(l_Parent_0.Core.Actions.SetAutocompleteResults).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            autocompleteResults = v4.autocompleteResults
        });
    end
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local l_Actions_0 = l_script_FirstAncestor_0.Core.Actions;
return v3.createReducer({
    subsequentDialogQueue = {}
}, {
    [require(l_Actions_0.EnqueueSubsequentDialog).name] = function(v5, v6)
        return v2.Dictionary.join(v5, {
            subsequentDialogQueue = v2.List.join(v5.subsequentDialogQueue, {
                {
                    assetData = v6.assetData,
                    status = v6.status
                }
            })
        });
    end,
    [require(l_Actions_0.DequeueSubsequentDialog).name] = function(v7, _)
        return v2.Dictionary.join(v7, {
            subsequentDialogQueue = v2.List.removeValue(v7.subsequentDialogQueue, v7.subsequentDialogQueue[1])
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Rodux);
local v3 = require(l_Packages_0.Cryo);
local l_Actions_0 = l_Parent_0.Core.Actions;
return (v2.createReducer({
    assetIdToCountsMap = {},
    assetIdToFavoritedMap = {}
}, {
    [require(l_Actions_0.GetFavoriteCounts).name] = function(v5, v6)
        return v3.Dictionary.join(v5, {
            assetIdToCountsMap = v3.Dictionary.join(v5.assetIdToCountsMap, {
                [v6.assetId] = v6.favoriteCounts
            })
        });
    end,
    [require(l_Actions_0.GetFavorited).name] = function(v7, v8)
        return v3.Dictionary.join(v7, {
            assetIdToFavoritedMap = v3.Dictionary.join(v7.assetIdToFavoritedMap, {
                [v8.assetId] = v8.favorited
            })
        });
    end,
    [require(l_Actions_0.CreateFavorite).name] = function(v9, v10)
        return v3.Dictionary.join(v9, {
            assetIdToCountsMap = v3.Dictionary.join(v9.assetIdToCountsMap, {
                [v10.assetId] = (v9.assetIdToCountsMap[v10.assetId] or 0) + 1
            }),
            assetIdToFavoritedMap = v3.Dictionary.join(v9.assetIdToFavoritedMap, {
                [v10.assetId] = true
            })
        });
    end,
    [require(l_Actions_0.DeleteFavorite).name] = function(v11, v12)
        return v3.Dictionary.join(v11, {
            assetIdToCountsMap = v3.Dictionary.join(v11.assetIdToCountsMap, {
                [v12.assetId] = (v11.assetIdToCountsMap[v12.assetId] or 0) - 1
            }),
            assetIdToFavoritedMap = v3.Dictionary.join(v11.assetIdToFavoritedMap, {
                [v12.assetId] = false
            })
        });
    end
}));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.Rodux);
local _ = require(l_Packages_0.Framework);
local v4 = require(l_Packages_0.Dash);
local _ = require(l_script_FirstAncestor_0.Core.Types.GroupTypes);
return v2.createReducer({
    manageableGroups = nil
}, {
    [require(l_script_FirstAncestor_0.Core.Actions.SetManageableGroups).name] = function(v6, v7)
        return v4.join(v6, {
            manageableGroups = v7.manageableGroups
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local v4 = require(l_Parent_0.Core.Actions.SetHomeConfiguration);
local _ = require(l_Parent_0.Core.Types.HomeTypes);
return v3.createReducer({}, {
    [v4.name] = function(v6, v7)
        return (v2.Dictionary.join(v6, {
            [v7.assetType.Name] = v7.configuration
        }));
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
return require(l_Packages_0.Rodux).createReducer({
    isItemTagsFeatureEnabled = false,
    enabledAssetTypesForItemTags = {},
    maximumItemTagsPerItem = 0
}, {
    [require(l_Parent_0.Core.Actions.SetTagsMetadata).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            isItemTagsFeatureEnabled = v4.isItemTagsFeatureEnabled,
            enabledAssetTypesForItemTags = v4.enabledAssetTypesForItemTags,
            maximumItemTagsPerItem = v4.maximumItemTagsPerItem
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Rodux);
local v3 = require(l_Packages_0.Cryo);
return (v2.createReducer({
    searchTerm = "",
    results = {}
}, {
    [require(l_Parent_0.Core.Actions.SetLiveSearch).name] = function(v4, v5)
        return v3.Dictionary.join(v4, {
            results = v5.results,
            searchTerm = v5.searchTerm
        });
    end
}));


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
return require(l_Packages_0.Rodux).createReducer({
    permissionsTable = {}
}, {
    [require(l_Parent_0.Core.Actions.SetPackagePermission).name] = function(v3, v4)
        if not v3.permissionsTable then
            v3.permissionsTable = {};
        end;
        v3.permissionsTable = v2.Dictionary.join(v3.permissionsTable, v4.packagePermissions);
        return v3;
    end
});


return function(_, _)
    return {
        permissionsTable = {}
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Types.Category);
local l_SORT_OPTIONS_0 = require(l_Parent_0.Core.Types.Sort).SORT_OPTIONS;
local l_MARKETPLACE_0 = v1.MARKETPLACE;
return function(_, _)
    return {
        categories = l_MARKETPLACE_0,
        category = l_MARKETPLACE_0[1].category,
        categoryName = l_MARKETPLACE_0[1].name,
        searchTerm = "",
        sorts = l_SORT_OPTIONS_0,
        sortIndex = 1,
        sortType = l_SORT_OPTIONS_0[1].sort,
        groups = {},
        groupIndex = 0,
        groupId = 0,
        targetPage = 1,
        curentPage = 0,
        selectedBackgroundIndex = 1,
        hoveredBackgroundIndex = 0
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxAddBuyerStatus);
local l_Packages_0 = l_Parent_0.Packages;
local v3 = require(l_Packages_0.Cryo);
local v4 = require(l_Packages_0.Rodux);
local l_Actions_0 = l_Parent_0.Core.Actions;
local _ = require(l_Actions_0.DequeueSubsequentDialog);
local _ = require(l_Actions_0.EnqueueSubsequentDialog);
local v8 = require(l_Parent_0.Core.Actions.SetPurchaseDialogVisibility);
local v9 = require(l_Actions_0.SetRobuxBalance);
local v10 = require(l_Actions_0.SetExcessiveTransactionUserId);
local v11 = require(l_Actions_0.SetOwnsAsset);
local v12 = require(l_Actions_0.SetPurchaseStatus);
local v13 = require(l_Actions_0.SetBuyerStatus);
local v14 = require(l_Actions_0.ClearPurchaseFlow);
local v15 = require(l_Parent_0.Core.Types.PurchaseStatus);
local _ = require(l_Parent_0.Core.Types.BuyerStatus);
return v4.createReducer({
    buyerStatus = nil,
    robuxBalance = 0,
    status = v15.None,
    cachedOwnedAssets = {},
    assetId = nil,
    excessiveTransactionUserIds = {},
    isPurchaseDialogVisible = false
}, {
    [v9.name] = function(v17, v18)
        return v3.Dictionary.join(v17, {
            robuxBalance = v18.robuxBalance
        });
    end,
    [v14.name] = function(v19, v20)
        return v3.Dictionary.join(v19, {
            assetId = v20.assetId,
            status = v15.None
        });
    end,
    [v11.name] = function(v21, v22)
        return v3.Dictionary.join(v21, {
            cachedOwnedAssets = v3.Dictionary.join(v21.cachedOwnedAssets, {
                [tostring(v22.assetId)] = v22.ownsAsset
            })
        });
    end,
    [v12.name] = function(v23, v24)
        return v3.Dictionary.join(v23, {
            status = v24.status
        });
    end,
    [v10.name] = function(v25, v26)
        return v3.Dictionary.join(v25, {
            excessiveTransactionUserIds = v3.Dictionary.join(v25.excessiveTransactionUserIds, {
                [v26.userId] = true
            })
        });
    end,
    [v8.name] = function(v27, v28)
        return v3.Dictionary.join(v27, {
            isPurchaseDialogVisible = v28.isVisible
        });
    end,
    [v13.name] = if not v1() then nil else function(v29, v30)
        return v3.Dictionary.join(v29, {
            buyerStatus = v30.status
        });
    end
});


return function(_, _)
    return {
        robuxBalance = 0,
        status = 0,
        assetId = nil,
        cachedOwnedAssets = {}
    };
end;


local _ = function(v0)
    if type(v0) ~= "table" then
        return 0;
    else
        local v1 = 0;
        for _ in pairs(v0) do
            v1 = v1 + 1;
        end;
        return v1;
    end;
end;
local v4 = {
    categories = true,
    sorts = true
};
local function v5(v6, v7, v8)
    v8 = v8 or 0;
    local v9 = ("\t"):rep(v8);
    local v10 = tostring(v6);
    local v11 = tostring(v7);
    if type(v6) ~= "string" then
        v10 = ("[%s]"):format(v10);
    end;
    if type(v7) == "string" then
        v11 = ("\"%s\""):format(v11);
    elseif type(v7) == "table" then
        local v12;
        if type(v7) ~= "table" then
            v12 = 0;
        else
            local v13 = 0;
            for _ in pairs(v7) do
                v13 = v13 + 1;
            end;
            v12 = v13;
        end;
        if v12 <= 15 and not v4[v6] then
            v11 = "{";
            for v15, v16 in pairs(v7) do
                v11 = v11 .. ("\n%s"):format(v5(v15, v16, v8 + 1));
            end;
            v11 = v11 .. (v12 > 0 and ("\n%s"):format(v9) or " ") .. "}";
        else
            v11 = ("%s (length = %d)"):format(v11, v12);
        end;
    end;
    return (("%s%s\t = %s"):format(v9, v10, v11));
end;
return function(v17, v18, v19)
    local v20 = not not v19.type and tostring(v19.type) or "(action.type == nil)";
    local v21 = ("-"):rep(40);
    print(v21);
    print(("Handling action %s"):format(v20));
    if v19.type == "@@INIT" then
        print((v5("State", v18, 1)));
    end;
    print((v5(("Action %s"):format(v20), v19, 1)));
    local v22 = v17(v18, v19);
    print((v5("New state", v22, 1)));
    print(v21);
    return v22;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local l_Actions_0 = l_Parent_0.Core.Actions;
return v3.createReducer({
    allowedAssetTypesForRelease = {},
    allowedAssetTypesForUpload = {},
    allowedAssetTypesForFree = {},
    allowedBundleTypeSettings = {}
}, {
    [require(l_Actions_0.SetAllowedAssetTypes).name] = function(v5, v6)
        return v2.Dictionary.join(v5, {
            allowedAssetTypesForRelease = v6.allowedAssetTypesForRelease,
            allowedAssetTypesForUpload = v6.allowedAssetTypesForUpload,
            allowedAssetTypesForFree = v6.allowedAssetTypesForFree
        });
    end,
    [require(l_Actions_0.SetAllowedBundleTypes).name] = function(v7, v8)
        return v2.Dictionary.join(v7, {
            allowedBundleTypeSettings = v8.allowedBundleTypeSettings
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local v4 = require(l_Parent_0.Core.Util.DebugFlags);
return v3.createReducer({
    currentSoundId = 0,
    elapsedTime = 0,
    isPlaying = false,
    isLoading = false,
    totalTime = 0
}, {
    [require(l_Parent_0.Core.Actions.PlayPreviewSound).name] = function(v5, v6)
        if not (not (v5.currentSoundId == v6.currentSoundId) or not v4.shouldDebugWarnings()) then
            warn("Trying to play the same sound instead of resuming it. Current SoundId : ", v6.currentSoundId);
        end;
        return v2.Dictionary.join(v5, {
            currentSoundId = v6.currentSoundId,
            isPlaying = true
        });
    end,
    [require(l_Parent_0.Core.Actions.PausePreviewSound).name] = function(v7, _)
        if not (v7.isPlaying or not v4.shouldDebugWarnings()) then
            warn(("Trying to pause a sound that is not playing %d"):format(v7.currentSoundId));
        end;
        return v2.Dictionary.join(v7, {
            isPlaying = false
        });
    end,
    [require(l_Parent_0.Core.Actions.StopPreviewSound).name] = function(v9, _)
        if not (v9.isPlaying or not v4.shouldDebugWarnings()) then
            warn(("Trying to stop a sound that is not playing %d"):format(v9.currentSoundId));
        end;
        return v2.Dictionary.join(v9, {
            currentSoundId = 0,
            elapsedTime = 0,
            isPlaying = false
        });
    end,
    [require(l_Parent_0.Core.Actions.ResumePreviewSound).name] = function(v11, _)
        if not (not v11.isPlaying or not v4.shouldDebugWarnings()) then
            warn(("Trying to resume a sound which is playing %d"):format(v11.currentSoundId));
        end;
        return v2.Dictionary.join(v11, {
            isPlaying = true
        });
    end,
    [require(l_Parent_0.Core.Actions.StopAllSounds).name] = function(v13, _)
        return v2.Dictionary.join(v13, {
            currentSoundId = 0,
            isPlaying = false
        });
    end,
    [require(l_Parent_0.Core.Actions.SetSoundLoading).name] = function(v15, v16)
        return v2.Dictionary.join(v15, {
            isLoading = v16.isLoading
        });
    end,
    [require(l_Parent_0.Core.Actions.SetSoundElapsedTime).name] = function(v17, v18)
        return v2.Dictionary.join(v17, {
            elapsedTime = v18.elapsedTime
        });
    end,
    [require(l_Parent_0.Core.Actions.SetSoundTotalTime).name] = function(v19, v20)
        return v2.Dictionary.join(v19, {
            elapsedTime = 0,
            totalTime = v20.totalTime
        });
    end
});


return function(v0, _)
    return v0 or {
        currentSoundId = 130761235,
        isPlaying = true
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxEnableSearchOptionsRefactor);
local v2 = require(l_Parent_0.Packages.Rodux);
local v3 = require(l_Parent_0.Core.Util.DebugFlags);
local l_Reducers_0 = l_Parent_0.Core.Reducers;
local v5 = require(l_Reducers_0.Assets);
local v6 = require(l_Reducers_0.Dialog);
local v7 = require(l_Reducers_0.Groups);
local v8 = require(l_Reducers_0.Autocomplete);
local v9 = require(l_Reducers_0.NetworkErrors);
local v10 = require(l_Reducers_0.PageInfo);
local v11 = require(l_Reducers_0.ReducerLogger);
local v12 = v2.combineReducers({
    assets = v5,
    autocompleteResults = v8,
    dialog = v6,
    groups = if not v1() then nil else v7,
    homeConfiguration = require(l_Reducers_0.HomeConfiguration),
    networkErrors = v9,
    pageInfo = v10,
    sound = require(l_Reducers_0.Sound),
    voting = require(l_Reducers_0.VotingReducer),
    liveSearch = require(l_Reducers_0.LiveSearch),
    favorite = require(l_Reducers_0.Favorite),
    roles = require(l_Reducers_0.RolesReducer),
    itemTags = require(l_Reducers_0.ItemTagsReducer),
    purchase = require(l_Reducers_0.Purchase),
    packages = require(l_Reducers_0.Packages),
    tryInStudio = require(l_Reducers_0.TryInStudio),
    tutorialLimits = require(l_Reducers_0.TutorialLimitsReducer)
});
return function(v13, v14)
    if not v3.shouldDebugState() then
        return v12(v13, v14);
    else
        return v11(v12, v13, v14);
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Reducers.AssetsMock);
local v2 = require(l_Parent_0.Core.Reducers.NetworkErrorsMock);
local v3 = require(l_Parent_0.Core.Reducers.PageInfoMock);
local v4 = require(l_Parent_0.Core.Reducers.VotingReducerMock);
local v5 = require(l_Parent_0.Core.Reducers.PurchaseMock);
local v6 = require(l_Parent_0.Core.Reducers.PackagesMock);
return function(v7, v8)
    return {
        assets = v1(v7 and v7.assets, v8),
        networkErrors = v2(v7 and v7.networkErrors, v8),
        pageInfo = v3(v7 and v7.pageInfo, v8),
        voting = v4(v7 and v7.voting, v8),
        purchase = v5(v7 and v7.purchase, v8),
        packages = v6(v7 and v7.packages, v8)
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
return require(l_Packages_0.Rodux).createReducer({
    triedInStudio = {}
}, {
    [require(l_Parent_0.Core.Actions.MarkTryInStudioDone).name] = function(v3, v4)
        return {
            triedInStudio = v2.Dictionary.join(v3.triedInStudio, {
                [v4.assetId] = true
            })
        };
    end
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local _ = require(l_Packages_0.Cryo);
return require(l_Packages_0.Rodux).createReducer({
    assetIds = nil,
    positionOverride = nil,
    scriptWarningOverride = false
}, {
    [require(l_script_FirstAncestor_0.Core.Actions.SetTutorialLimits).name] = function(_, v4)
        return {
            assetIds = v4.assetIds,
            positionOverride = v4.positionOverride,
            scriptWarningOverride = v4.scriptWarningOverride
        };
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Cryo);
local v3 = require(l_Packages_0.Rodux);
local v4 = require(l_Parent_0.Core.Actions.GetAssets);
local v5 = require(l_Parent_0.Core.Actions.GetVote);
local v6 = require(l_Parent_0.Core.Actions.GetAssetsVotingData);
local v7 = require(l_Parent_0.Core.Actions.PostInsertAsset);
local v8 = require(l_Parent_0.Core.Actions.PostUnvote);
local v9 = require(l_Parent_0.Core.Actions.PostVote);
local v10 = require(l_Parent_0.Core.Actions.SetVoteLoading);
local function v15(v11, v12, v13)
    local v14 = v13 ~= nil;
    return v2.Dictionary.join(v11, {
        [v12] = v2.Dictionary.join(v11[v12], {
            HasVoted = v14,
            UserVote = v13,
            showVoteButtons = v14
        })
    });
end;
local function v23(v16, v17, v18)
    local v19 = v16[v17];
    local l_UpVotes_0 = v19.UpVotes;
    local l_DownVotes_0 = v19.DownVotes;
    local l_VoteCount_0 = v19.VoteCount;
    if not v18 then
        if not (not v19.HasVoted or not v19.UserVote) then
            l_UpVotes_0 = v19.UpVotes - 1;
            l_VoteCount_0 = l_VoteCount_0 - 1;
        end;
        l_DownVotes_0 = v19.DownVotes + 1;
        l_VoteCount_0 = l_VoteCount_0 + 1;
    else
        if not (not v19.HasVoted or v19.UserVote) then
            l_DownVotes_0 = v19.DownVotes - 1;
            l_VoteCount_0 = l_VoteCount_0 - 1;
        end;
        l_UpVotes_0 = v19.UpVotes + 1;
        l_VoteCount_0 = l_VoteCount_0 + 1;
    end;
    return v2.Dictionary.join(v16, {
        [v17] = v2.Dictionary.join(v16[v17], {
            HasVoted = true,
            UserVote = v18,
            UpVotes = l_UpVotes_0,
            DownVotes = l_DownVotes_0,
            VoteCount = v19.VoteCount,
            showVoteButtons = true
        })
    });
end;
local function v30(v24, v25)
    local v26 = v24[v25];
    local l_UpVotes_1 = v26.UpVotes;
    local l_DownVotes_1 = v26.DownVotes;
    local l_VoteCount_1 = v26.VoteCount;
    if v26.HasVoted then
        if v26.UserVote == true then
            l_UpVotes_1 = l_UpVotes_1 - 1;
        else
            l_DownVotes_1 = l_DownVotes_1 - 1;
        end;
        l_VoteCount_1 = l_VoteCount_1 - 1;
    end;
    return v2.Dictionary.join(v24, {
        [v25] = v2.Dictionary.join(v24[v25], {
            HasVoted = false,
            UserVote = v2.None,
            UpVotes = l_UpVotes_1,
            DownVotes = l_DownVotes_1,
            VoteCount = v26.VoteCount
        })
    });
end;
local function v33(v31, v32)
    return v2.Dictionary.join(v31, {
        [v32] = v2.Dictionary.join(v31[v32] or {}, {
            showVoteButtons = true
        })
    });
end;
local function v38(v34, v35, v36, v37)
    return v2.Dictionary.join(v34, {
        [v35] = v2.Dictionary.join(v34[v35] or {}, {
            VoteLoading = v36,
            VoteFetchAttempted = v37
        })
    });
end;
local function v45(v39, v40)
    local v41 = {};
    for _, v43 in ipairs(v40.assets) do
        local _ = v39[v43.Asset.Id];
        v41[v43.Asset.Id] = v43.Voting;
    end;
    return v2.Dictionary.join(v39, v41);
end;
return v3.createReducer({}, {
    [v4.name] = function(v46, v47)
        return v45(v46, v47);
    end,
    [v6.name] = function(v48, v49)
        return v45(v48, v49);
    end,
    [v7.name] = function(v50, v51)
        return v33(v50, v51.assetId);
    end,
    [v5.name] = function(v52, v53)
        return v15(v52, v53.assetId, v53.userVote);
    end,
    [v9.name] = function(v54, v55)
        return v23(v54, v55.assetId, v55.userVote);
    end,
    [v8.name] = function(v56, v57)
        return v30(v56, v57.assetId);
    end,
    [v10.name] = function(v58, v59)
        return v38(v58, v59.AssetId, v59.VoteLoading, v59.VoteFetchAttempted);
    end
});


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.Core.Util.getUserId);
local _ = require(l_Parent_0.Core.Util.isUserIdInGradualRollout);
return {};


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local l_Style_0 = require(l_Packages_0.Framework).Style;
local l_StyleKey_0 = l_Style_0.StyleKey;
local l_ComponentSymbols_0 = l_Style_0.ComponentSymbols;
local l_getRawComponentStyle_0 = l_Style_0.getRawComponentStyle;
local l_StyleModifier_0 = require(l_Packages_0.Framework).Util.StyleModifier;
local l_Colors_0 = l_Style_0.Colors;
local v8 = require(l_Parent_0.Core.Util.Constants);
local v9 = require(l_Packages_0.Cryo);
return function()
    local v10 = l_getRawComponentStyle_0("RoundBox");
    local v11 = l_getRawComponentStyle_0("Button");
    local v12 = l_getRawComponentStyle_0("RadioButton");
    return {
        assetConfig = {
            backgroundColor = l_StyleKey_0.MainBackground,
            brightText = l_StyleKey_0.BrightText,
            errorColor = l_StyleKey_0.ErrorText,
            warningColor = l_StyleKey_0.WarningText,
            labelTextColor = l_StyleKey_0.DimmedText,
            textColor = l_StyleKey_0.MainText,
            inputBottomText = {
                textColor = l_StyleKey_0.DimmedText,
                textErrorColor = l_StyleKey_0.ErrorText,
                textSize = 18,
                bottomTextSpacing = 6
            },
            publishAsset = {
                warningIconColor = Color3.fromHex("#FFAA21")
            },
            packagePermissions = {
                backgroundColor = l_StyleKey_0.MainBackground,
                subTextColor = l_StyleKey_0.SubText,
                collaboratorItem = {
                    deleteButton = l_StyleKey_0.Toolbox_DeleteIconColor
                },
                searchBar = {
                    border = l_StyleKey_0.InputFieldBorder,
                    borderHover = l_Colors_0.Blue,
                    borderSelected = l_Colors_0.Blue,
                    placeholderText = l_StyleKey_0.DimmedText,
                    backgroundColor = l_StyleKey_0.InputFieldBackground,
                    searchIcon = l_StyleKey_0.SubText,
                    clearButton = {
                        image = l_StyleKey_0.SubText
                    },
                    dropDown = {
                        backgroundColor = l_StyleKey_0.InputFieldBackground,
                        itemText = l_StyleKey_0.MainText,
                        headerText = l_StyleKey_0.SubText,
                        hovered = {
                            backgroundColor = l_StyleKey_0.ItemHovered,
                            itemText = l_StyleKey_0.ButtonText
                        },
                        selected = {
                            backgroundColor = l_StyleKey_0.ButtonSelected
                        }
                    }
                },
                subjectThumbnail = {
                    backgroundColor = l_StyleKey_0.TableItem,
                    defaultImageColor = l_StyleKey_0.AssetConfig_SubjectThumbnailDefaultImageColor
                }
            }
        },
        detailedDropdown = {
            displayText = l_StyleKey_0.MainText,
            descriptionText = l_StyleKey_0.SubText,
            backgroundColor = l_StyleKey_0.MainBackground,
            borderColor = l_StyleKey_0.DialogButtonBorder,
            hovered = {
                displayText = l_StyleKey_0.MainTextHover
            }
        },
        configFooter = {
            backgroundColor = l_StyleKey_0.MainBackground,
            borderColor = l_StyleKey_0.Border
        },
        divider = {
            horizontalLineColor = l_StyleKey_0.Toolbox_HorizontalLineColor,
            verticalLineColor = l_StyleKey_0.AssetConfig_DividerHorizontalLineColor
        },
        inputFields = {
            backgroundColor = l_StyleKey_0.InputFieldBackground,
            toolTip = l_StyleKey_0.DimmedText,
            error = l_StyleKey_0.ErrorText
        },
        linkButton = {
            textColor = l_Colors_0.Blue
        },
        loading = {
            text = l_StyleKey_0.MainText
        },
        nav = {
            mainButton = {
                background = l_StyleKey_0.DialogMainButton,
                hoverBackground = l_StyleKey_0.DialogMainButtonHover,
                pressBackground = l_StyleKey_0.DialogMainButtonPressed,
                borderColor = l_StyleKey_0.Border,
                textColor = l_StyleKey_0.DialogMainButtonText
            },
            button = {
                background = l_StyleKey_0.DialogButton,
                hoverBackground = l_StyleKey_0.DialogButtonHover,
                pressBackground = l_StyleKey_0.DialogButtonPressed,
                borderColor = l_StyleKey_0.Border,
                textColor = l_StyleKey_0.DialogButtonText
            }
        },
        previewArea = {
            backgroundColor = l_StyleKey_0.MainBackground,
            textColor = l_StyleKey_0.MainText,
            selectedColor = l_StyleKey_0.AssetConfig_PreviewSelectedColor
        },
        sideTab = {
            contentColor = l_StyleKey_0.TitlebarText,
            backgroundColor = l_StyleKey_0.MainBackground,
            selecteBarColor = l_StyleKey_0.AssetConfig_SidetabSelectedBarColor,
            selecteBarTrans = l_StyleKey_0.AssetConfig_SidetabSelectedBarTransparency,
            selecteBarZindex = l_StyleKey_0.AssetConfig_SidetabSelectedBarZIndex,
            selecteIndicatorColor = l_Colors_0.BLUE_PRIMARY,
            selecteIndicatorTrans = l_StyleKey_0.AssetConfig_SidetabSelectedIndicatorZindex,
            textColor = l_StyleKey_0.MainText
        },
        tags = {
            textColor = l_StyleKey_0.MainText
        },
        thumbnailPreview = {
            background = l_StyleKey_0.Item,
            border = l_StyleKey_0.Border,
            text = l_StyleKey_0.MainText,
            warningIconSize = UDim2.fromOffset(64, 64)
        },
        typeSelection = {
            background = l_StyleKey_0.TableItem,
            selector = {
                title = l_StyleKey_0.MainText,
                description = l_StyleKey_0.MainTextDisabled
            },
            footer = {
                background = l_StyleKey_0.MainBackground,
                border = l_StyleKey_0.Border
            }
        },
        typeValidation = {
            background = l_StyleKey_0.TableItem,
            successResultColor = l_StyleKey_0.TextSuccess,
            failureResultColor = l_StyleKey_0.TextError
        },
        uploadResult = {
            greenText = Color3.fromRGB(2, 183, 87),
            redText = Color3.fromRGB(255, 68, 68),
            text = l_StyleKey_0.MainText,
            buttonColor = l_StyleKey_0.AssetConfig_UploadResultButtonColor,
            idText = l_StyleKey_0.DimmedText,
            background = l_StyleKey_0.TableItem,
            link = l_StyleKey_0.LinkText
        },
        versions = {
            thumbnailBorderColor = Color3.fromRGB(117, 117, 117),
            buttonSelectedColor = Color3.fromRGB(0, 162, 255),
            buttonDefaultColor = Color3.fromRGB(117, 117, 117),
            textColor = l_StyleKey_0.MainText,
            dimmedTextColor = l_StyleKey_0.DimmedText,
            errorColor = l_StyleKey_0.ErrorText
        },
        ugcBundleValidation = {
            nameMinWidth = 200,
            nameTextSize = 20,
            placeholderIconColor = l_StyleKey_0.DimmedText,
            previewBackgroundColor = l_StyleKey_0.SubBackground,
            previewSize = 60,
            warningColor = l_StyleKey_0.WarningText,
            validationIconSize = 14,
            validationStyles = {
                error = {
                    iconColor = l_StyleKey_0.TextError,
                    textColor = l_StyleKey_0.TextError
                },
                pending = {
                    iconColor = l_StyleKey_0.DimmedText,
                    textColor = l_StyleKey_0.DimmedText
                },
                success = {
                    iconColor = l_StyleKey_0.TextSuccess,
                    textColor = l_StyleKey_0.DimmedText
                }
            }
        },
        [l_ComponentSymbols_0.Button] = v9.Dictionary.join(v11, {
            ["&SelectedDetailedDropdownItem"] = {
                BackgroundStyle = v9.Dictionary.join(v10, {
                    Color = l_StyleKey_0.ItemSelected,
                    TextColor = l_StyleKey_0.MainTextSelected
                })
            }
        }),
        [l_ComponentSymbols_0.RoundBox] = v9.Dictionary.join(v10, {
            ["&CatalogTag"] = {
                Color = l_StyleKey_0.MainBackground,
                BorderColor = l_StyleKey_0.Border
            },
            ["&TagsComponent"] = {
                Color = l_StyleKey_0.InputFieldBackground,
                BorderColor = l_StyleKey_0.Border,
                [l_StyleModifier_0.Selected] = {
                    BorderColor = l_StyleKey_0.InputFieldBorderSelected
                },
                [l_StyleModifier_0.Disabled] = {
                    Color = l_StyleKey_0.InputFieldBackgroundDisabled
                }
            },
            ["&TagsComponentError"] = {
                BorderColor = l_StyleKey_0.ErrorText
            }
        }),
        [l_ComponentSymbols_0.StyledDialog] = v9.Dictionary.join(l_getRawComponentStyle_0("StyledDialog"), {
            ["&AssetConfigWarningDialog"] = {
                ButtonSpacing = 8
            }
        }),
        [l_ComponentSymbols_0.RadioButton] = v9.Dictionary.join(v12, {
            ["&AssetConfigRadioButton"] = {
                TextSize = v8.FONT_SIZE_ASSET_CONFIG_INPUT,
                BackgroundStyle = v9.Dictionary.join(v12.BackgroundStyle, {
                    BackgroundStyle = v9.Dictionary.join(v12.BackgroundStyle.BackgroundStyle, {
                        Color = l_StyleKey_0.InputFieldBackground
                    }),
                    [l_StyleModifier_0.Selected] = v9.Dictionary.join(v12.BackgroundStyle[l_StyleModifier_0.Selected], {
                        BackgroundStyle = v9.Dictionary.join(v12.BackgroundStyle[l_StyleModifier_0.Selected].BackgroundStyle, {
                            Color = l_StyleKey_0.InputFieldBackground
                        })
                    })
                })
            }
        }),
        [l_ComponentSymbols_0.RadioButtonList] = v9.Dictionary.join(l_getRawComponentStyle_0("RadioButtonList"), {
            ["&AssetConfigRadioButtonList"] = {
                Padding = 17,
                RadioButtonStyle = "AssetConfigRadioButton"
            }
        })
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Actions.SetCurrentScreen);
local v2 = require(l_Parent_0.Core.Util.AssetConfigConstants);
return function()
    return function(v3)
        if v3:getState().screenFlowType == v2.FLOW_TYPE.UPLOAD_FLOW then
            v3:dispatch(v1(v2.SCREENS.ASSET_VALIDATION));
            return ;
        else
            v3:dispatch(v1(v2.SCREENS.CONFIGURE_ASSET));
            return ;
        end;
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Core.Actions.SetGroupMetadata);
return function(v1)
    return function(v2)
        spawn(function()
            local l_GroupInfoAsync_0 = game:GetService("GroupService"):GetGroupInfoAsync(v1);
            if l_GroupInfoAsync_0 then
                v2:dispatch(v0(l_GroupInfoAsync_0));
            end;
        end);
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Util.PageInfoHelper);
local v2 = require(l_Parent_0.Core.Util.DebugFlags);
return function()
    return function(v3)
        local v4 = v3:getState().pageInfo or {};
        if not (not v2.shouldDebugWarnings() or v4.searchId) then
            warn("no searchId in pageInfo, analytics won't be tracked for asset");
        end;
        return {
            category = "Studio",
            currentCategory = v1.getCategoryForPageInfo(v4),
            page = v4.targetPage,
            sort = v1.getSortTypeForPageInfo(v4),
            searchId = v4.searchId,
            searchKeyword = v4.searchTerm,
            toolboxTab = v1.getCurrentTab(v4),
            isTopKeyword = v4.isTopKeyword
        };
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Actions.SetOwnerUsername);
local _ = require(l_Parent_0.Core.Util.getUserId);
return function(v3)
    return function(v4)
        spawn(function()
            local l_NameFromUserIdAsync_0 = game:GetService("Players"):GetNameFromUserIdAsync(v3);
            if l_NameFromUserIdAsync_0 then
                v4:dispatch(v1(l_NameFromUserIdAsync_0));
            end;
        end);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v2 = require(l_Util_0.Analytics.Analytics);
local _ = require(l_script_FirstAncestor_0.Core.Types.AnalyticsTypes);
local v4 = require(l_Util_0.PageInfoHelper);
return function(v5, v6, v7, v8, v9, v10, _)
    return function(v12)
        local l_pageInfo_0 = v12:getState().pageInfo;
        local v14 = v4.getCurrentTab(l_pageInfo_0);
        local v15 = v4.getSortTypeForPageInfo(l_pageInfo_0);
        local l_creator_0 = l_pageInfo_0.creator;
        v2.marketplaceAutocompleteSearch(v5, v7, v8, v9, v10, {
            assetType = v6,
            creatorID = not not l_creator_0 and l_creator_0.Id or nil,
            searchId = l_pageInfo_0.searchId or "",
            sort = v15,
            toolboxTab = v14
        });
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Util_0 = l_Parent_0.Core.Util;
local v2 = require(l_Util_0.Analytics.Analytics);
local _ = require(l_Parent_0.Core.Types.AnalyticsTypes);
local v4 = require(l_Util_0.DebugFlags);
local v5 = require(l_Util_0.PageInfoHelper);
local v6 = require(l_Util_0.AssetQualityUtil);
local v7 = require(l_Parent_0.Core.Actions.UpdateLastLoggedSearchId);
local v8 = require(l_Parent_0.Core.Types.AutocorrectTypes);
local v9 = require(l_Parent_0.Core.Types.Category);
local v10 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxAddAutocorrect);
local v11 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxAddCreationsFilterToListView);
local v12 = require(l_Parent_0.Core.Flags.getFFlagQualityFiltersInToolboxSearch);
local _ = function(v13)
    local v14 = {};
    for v15, _ in v13, nil, nil do
        table.insert(v14, v15);
    end;
    return table.concat(v14, ",");
end;
return function(v18, v19, v20, v21, v22)
    return function(v23)
        local l_pageInfo_0 = v23:getState().pageInfo;
        local v25 = v5.getCurrentTab(l_pageInfo_0);
        local v26 = v5.getSortTypeForPageInfo(l_pageInfo_0);
        local l_creator_0 = l_pageInfo_0.creator;
        local v28 = not not l_creator_0 and l_creator_0.Id or nil;
        local v29 = l_pageInfo_0.searchId or "";
        local l_categoryName_0 = l_pageInfo_0.categoryName;
        local l_includeUnverifiedCreators_0 = l_pageInfo_0.includeUnverifiedCreators;
        local v32 = v9.getEngineAssetType(v9.getCategoryByName(l_categoryName_0).assetType);
        if v32 == Enum.AssetType.Decal then
            v32 = Enum.AssetType.Image;
        end;
        local v33 = string.lower(v32.Name);
        local l_lastLoggedSearchId_0 = l_pageInfo_0.lastLoggedSearchId;
        if l_lastLoggedSearchId_0 == v29 then
            if v4.shouldDebugWarnings() then
                warn("SearchId was already logged for ", l_lastLoggedSearchId_0);
            end;
            return ;
        else
            local v35;
            if not v11() or not l_pageInfo_0.creatorTargetIds then
                v35 = nil;
            else
                local l_creatorTargetIds_0 = l_pageInfo_0.creatorTargetIds;
                local v37 = {};
                for v38, _ in l_creatorTargetIds_0, nil, nil do
                    table.insert(v37, v38);
                end;
                v35 = table.concat(v37, ",");
            end;
            local v40;
            if not v11() or not l_pageInfo_0.groupTargetIds then
                v40 = nil;
            else
                local l_groupTargetIds_0 = l_pageInfo_0.groupTargetIds;
                local v42 = {};
                for v43, _ in l_groupTargetIds_0, nil, nil do
                    table.insert(v42, v43);
                end;
                v40 = table.concat(v42, ",");
            end;
            local v45 = nil;
            if not (not v12() or not v9.categoryIsModel(l_categoryName_0)) then
                v45 = v6.convertQualityFilterDataToTagsCSV(l_pageInfo_0.qualityFilterData);
            end;
            v2.marketplaceSearch(v18, v19 or false, {
                assetType = v33,
                categoryName = l_categoryName_0,
                creatorID = if not v11() then v28 else nil,
                creatorIDs = if not v11() then nil else v35 or v28,
                excludeGroupCreations = if not v11() then nil else l_pageInfo_0.excludeGroupCreations,
                groupIDs = if not v11() then nil else v40,
                originalUserQuery = if not v10() then nil else v21 or "",
                originalCorrection = if not v10() then nil else v22 or "",
                previousSearchId = if not v10() then nil else l_lastLoggedSearchId_0,
                querySource = if not v10() then nil else v20 or v8.QuerySource.OriginalUserQuery,
                searchId = v29,
                sort = v26,
                toolboxTab = v25,
                includeOnlyVerifiedCreators = not l_includeUnverifiedCreators_0,
                qualityFilterTags = v45
            });
            v23:dispatch(v7(v29));
            return ;
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Util.getUserId);
local v2 = require(l_Parent_0.Core.Actions.CollaboratorSearchActions);
local l_Get_0 = require(l_Parent_0.Core.Networking.Requests.UserFriends).Get;
return function(v4, v5, _)
    return function(v7)
        local v8 = v7:getState();
        v7:dispatch(v2.SearchTextChanged(v5));
        if v5 == "" then
            return ;
        else
            if not v8.localUserFriends then
                v7:dispatch(v2.LoadingLocalUserFriends());
                spawn(function()
                    local v9, v10 = l_Get_0(v4, (tostring(v1()))):await();
                    v7:dispatch(v2.LoadedLocalUserFriends(v9, v10));
                end);
            end;
            return ;
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Util_0 = l_Parent_0.Core.Util;
local v2 = require(l_Util_0.ContextMenuHelper);
local v3 = require(l_Util_0.CreatorInfoHelper);
local v4 = require(l_Parent_0.Core.Components.AssetConfiguration.Permissions.PermissionsConstants);
local v5 = require(l_Parent_0.Core.Types.Category);
local v6 = require(l_Parent_0.Core.Util.PageInfoHelper);
local _ = function(v7, v8)
    for _, v10 in ipairs((v7:GetEnumItems())) do
        if v10.Value == v8 then
            return v10.Name;
        end;
    end;
end;
return function(v12, v13, v14, v15, v16)
    return function(v17)
        local l_Asset_0 = v12.Asset;
        local l_Id_0 = l_Asset_0.Id;
        local l_TypeId_0 = l_Asset_0.TypeId;
        local v21 = v17:getState();
        local v22 = v21.assets or {};
        local v23 = v21.pageInfo or {};
        local v24 = v22.manageableAssets[tostring(l_Id_0)];
        local v25 = v23.categoryName or v5.DEFAULT.name;
        local v26 = v21.packages.permissionsTable or {};
        local v27 = v5.categoryIsPackage(v25);
        if v27 then
            local v28 = true;
            if v26[l_Id_0] ~= v4.EditKey then
                v28 = v26[l_Id_0] == v4.OwnKey;
            end;
            v24 = v28;
        end;
        local l_v16_0 = v16;
        local l_position_0 = v12.Context.position;
        local v31 = nil;
        v31 = if l_v16_0.toolboxTab == v5.CREATIONS_KEY then v12.Creator.Type else v3.backendToClient(v12.Creator.Type);
        local v32 = {};
        local v33;
        for _, v35 in ipairs((Enum.AssetType:GetEnumItems())) do
            if v35.Value == l_TypeId_0 then
                v33 = v35.Name;
                goto label0 --[[  true, false  ]];
            end;
        end;
        v33 = nil;
        ::label0::;
        v32.Category = v33;
        v32.SortType = l_v16_0.sort;
        v32.CreatorId = v12.Creator.Id;
        local l_CreatorType_0 = Enum.CreatorType;
        local l_v31_0 = v31;
        for _, v39 in ipairs((l_CreatorType_0:GetEnumItems())) do
            if v39.Value == l_v31_0 then
                v33 = v39.Name;
                goto label1 --[[  true, false  ]];
            end;
        end;
        v33 = nil;
        ::label1::;
        v32.CreatorType = v33;
        v32.SearchKeyword = l_v16_0.searchKeyword;
        v32.Position = l_position_0;
        v32.SearchId = l_v16_0.searchId;
        v32.ViewInBrowser = true;
        v2.tryCreateContextMenu(v14, l_Id_0, l_TypeId_0, v24, v13, v15, v27, v6.getCategoryForPageInfo(v23), v32, not not v12.Creator and v12.Creator.Id or nil);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local _ = require(l_script_FirstAncestor_0.Core.Models.AssetInfo);
local _ = require(l_script_FirstAncestor_0.Core.Util.Analytics.AssetAnalytics);
return {};


local l_Packages_0 = script:FindFirstAncestor("Toolbox").Packages;
local _ = require(l_Packages_0.Framework);
local v2 = require(l_Packages_0.Dash);
return {
    Invalid = "Invalid",
    Ad = "Ad",
    MaterialPack = "MaterialPack",
    Package = "Package",
    contains = function(v3, v4)
        if v3 == nil then
            return false;
        else
            return v2.find(v3, function(v5)
                return v5 == v4;
            end) == v4;
        end;
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local _ = require(l_script_FirstAncestor_0.Core.Components.ResultsFetcher);
local _ = require(l_script_FirstAncestor_0.Core.Types.HomeTypes);
return nil;


local v0 = {
    Ascending = "Ascending",
    Descending = "Descending",
    None = "None"
};
v0.Default = v0.None;
local v1 = {
    AllTime = "AllTime",
    Creator = "Creator",
    DateCreated = "DateCreated",
    DateModified = "DateModified",
    Duration = "Duration",
    Favorites = "Favorites",
    MostTaken = "MostTaken",
    Name = "Name",
    Ratings = "Ratings",
    Relevance = "Relevance",
    Top = "Top",
    Trending = "Trending",
    Updated = "Updated"
};
v1.Default = v1.Relevance;
return {
    SortDirection = v0,
    UiSortIntent = v1
};


local v0 = require(script.Parent.Parent.Parent.Core.Util.isCli);
local v1 = {
    BACKGROUNDS = {
        {
            name = "White",
            color = "White"
        },
        {
            name = "Black",
            color = "Black"
        },
        {
            name = "None",
            color = "None"
        }
    },
    WHITE = 1,
    BLACK = 2,
    NONE = 3
};
v1.getBackgroundForStudioTheme = function()
    if not v0() then
        local l_Name_0 = settings().Studio.Theme.Name;
        if l_Name_0 == "Light" then
            return v1.WHITE;
        elseif l_Name_0 == "Dark" then
            return v1.NONE;
        else
            return v1.NONE;
        end;
    else
        return v1.NONE;
    end;
end;
return v1;


return {
    Allowed = "PURCHASER_STATUS_ALLOWED",
    CountryRestricted = "PURCHASER_STATUS_COUNTRY_RESTRICTED",
    Invalid = "PURCHASER_STATUS_INVALID"
};


local l_ToolboxSetMarketplaceModelsAsPackagesForAll_0 = game:GetFastFlag("ToolboxSetMarketplaceModelsAsPackagesForAll");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v2 = require(l_script_FirstAncestor_0.Core.Util.CreatorInfoHelper);
local v3 = require(l_script_FirstAncestor_0.Core.Util.FiatUtil);
local v4 = require(l_script_FirstAncestor_0.Core.Util.DebugFlags);
local v5 = require(l_script_FirstAncestor_0.Core.Util.getAllowedAssetTypeEnums);
local _ = l_script_FirstAncestor_0.Packages;
local l_showRobloxCreatedAssets_0 = require(l_script_FirstAncestor_0.Core.Util.ToolboxUtilities).showRobloxCreatedAssets;
local l_disableMarketplaceAndRecents_0 = require(l_script_FirstAncestor_0.Core.Util.ToolboxUtilities).disableMarketplaceAndRecents;
local l_getMarketplaceDisabledCategories_0 = require(l_script_FirstAncestor_0.Core.Util.ToolboxUtilities).getMarketplaceDisabledCategories;
local v10 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getIsIXPEnabledForListView);
local v11 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxContentManagementCombineTabs);
local v12 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxFixDefaultTabForCreations);
local v13 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxAssetConfigOnboardingLink);
local v14 = {
    OwnershipType = {
        FREE = 0,
        MY = 1,
        RECENT = 2,
        GROUP = 3
    },
    AssetType = {
        MODEL = 0,
        DECAL = 1,
        MESH = 2,
        MESHPART = 3,
        AUDIO = 4,
        PACKAGE = 5,
        PLUGIN = 6,
        HAT = 7,
        TEE_SHIRT = 8,
        SHIRT = 9,
        PANTS = 10,
        HAIR_ACCESSORY = 11,
        FACE_ACCESSORY = 12,
        NECK_ACCESSORY = 13,
        SHOULDER_ACCESSORY = 14,
        FRONT_ACCESSORY = 15,
        BACK_ACCESSORY = 16,
        WAIST_ACCESSORY = 17,
        VIDEO = 18,
        TSHIRT_ACCESSORY = 19,
        SHIRT_ACCESSORY = 20,
        PANTS_ACCESSORY = 21,
        JACKET_ACCESSORY = 22,
        SWEATER_ACCESSORY = 23,
        SHORTS_ACCESSORY = 24,
        LEFT_SHOE_ACCESSORY = 25,
        RIGHT_SHOE_ACCESSORY = 26,
        DRESS_SKIRT_ACCESSORY = 27,
        ANIMATION = 28,
        FONT_FAMILY = 73,
        MUSIC = 300,
        SOUND_EFFECT = 301,
        UNKNOWN_AUDIO = 302
    },
    AssetTypeInverted = {}
};
for v15, v16 in pairs(v14.AssetType) do
    v14.AssetTypeInverted[v16] = v15;
end;
v14.MUSIC = {
    name = "Music",
    category = "Music",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.MUSIC
};
v14.SOUND_EFFECTS = {
    name = "SoundEffect",
    category = "SoundEffect",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.SOUND_EFFECT
};
v14.UNKNOWN_AUDIO = {
    name = "UnknownAudio",
    category = "UnknownAudio",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.UNKNOWN_AUDIO
};
v14.ToolboxAssetTypeToEngine = {
    [v14.AssetType.MODEL] = Enum.AssetType.Model,
    [v14.AssetType.DECAL] = Enum.AssetType.Decal,
    [v14.AssetType.MESH] = Enum.AssetType.Mesh,
    [v14.AssetType.MESHPART] = Enum.AssetType.MeshPart,
    [v14.AssetType.AUDIO] = Enum.AssetType.Audio,
    [v14.AssetType.PACKAGE] = Enum.AssetType.Package,
    [v14.AssetType.PLUGIN] = Enum.AssetType.Plugin,
    [v14.AssetType.HAT] = Enum.AssetType.Hat,
    [v14.AssetType.TEE_SHIRT] = Enum.AssetType.TShirt,
    [v14.AssetType.SHIRT] = Enum.AssetType.Shirt,
    [v14.AssetType.PANTS] = Enum.AssetType.Pants,
    [v14.AssetType.HAIR_ACCESSORY] = Enum.AssetType.HairAccessory,
    [v14.AssetType.FACE_ACCESSORY] = Enum.AssetType.FaceAccessory,
    [v14.AssetType.NECK_ACCESSORY] = Enum.AssetType.NeckAccessory,
    [v14.AssetType.SHOULDER_ACCESSORY] = Enum.AssetType.ShoulderAccessory,
    [v14.AssetType.FRONT_ACCESSORY] = Enum.AssetType.FrontAccessory,
    [v14.AssetType.BACK_ACCESSORY] = Enum.AssetType.BackAccessory,
    [v14.AssetType.WAIST_ACCESSORY] = Enum.AssetType.WaistAccessory,
    [v14.AssetType.VIDEO] = Enum.AssetType.Video,
    [v14.AssetType.ANIMATION] = Enum.AssetType.Animation,
    [v14.AssetType.TSHIRT_ACCESSORY] = Enum.AssetType.TShirtAccessory,
    [v14.AssetType.SHIRT_ACCESSORY] = Enum.AssetType.ShirtAccessory,
    [v14.AssetType.PANTS_ACCESSORY] = Enum.AssetType.PantsAccessory,
    [v14.AssetType.JACKET_ACCESSORY] = Enum.AssetType.JacketAccessory,
    [v14.AssetType.SWEATER_ACCESSORY] = Enum.AssetType.SweaterAccessory,
    [v14.AssetType.SHORTS_ACCESSORY] = Enum.AssetType.ShortsAccessory,
    [v14.AssetType.LEFT_SHOE_ACCESSORY] = Enum.AssetType.LeftShoeAccessory,
    [v14.AssetType.RIGHT_SHOE_ACCESSORY] = Enum.AssetType.RightShoeAccessory,
    [v14.AssetType.DRESS_SKIRT_ACCESSORY] = Enum.AssetType.DressSkirtAccessory,
    [v14.AssetType.FONT_FAMILY] = Enum.AssetType.FontFamily
};
v14.EngineAssetTypeIdToToolboxAssetType = {};
for v17, v18 in pairs(v14.ToolboxAssetTypeToEngine) do
    v14.EngineAssetTypeIdToToolboxAssetType[v18.Value] = v17;
end;
v14.ToolboxMarketplaceAssetTypes = {
    [v14.AssetType.ANIMATION] = Enum.AssetType.Animation,
    [v14.AssetType.AUDIO] = Enum.AssetType.Audio,
    [v14.AssetType.DECAL] = Enum.AssetType.Decal,
    [v14.AssetType.FONT_FAMILY] = Enum.AssetType.FontFamily,
    [v14.AssetType.MESH] = Enum.AssetType.Mesh,
    [v14.AssetType.MESHPART] = Enum.AssetType.MeshPart,
    [v14.AssetType.MODEL] = Enum.AssetType.Model,
    [v14.AssetType.PACKAGE] = Enum.AssetType.Package,
    [v14.AssetType.PLUGIN] = Enum.AssetType.Plugin,
    [v14.AssetType.VIDEO] = Enum.AssetType.Video
};
v14.FREE_MODELS = {
    name = "FreeModels",
    category = "FreeModels",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.MODEL
};
v14.FREE_DECALS = {
    name = "FreeDecals",
    category = "FreeDecals",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.DECAL
};
v14.FREE_MESHES = {
    name = "FreeMeshes",
    category = "FreeMeshes",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.MESH
};
v14.FREE_AUDIO = {
    name = "FreeAudio",
    category = "FreeAudio",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.AUDIO
};
v14.WHITELISTED_PLUGINS = {
    name = "PaidPlugins",
    category = "WhitelistedPlugins",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.PLUGIN
};
v14.FREE_FONTS = {
    name = "FreeFonts",
    category = "FreeFonts",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.FONT_FAMILY
};
v14.MY_MODELS = {
    name = "MyModels",
    category = "MyModelsExceptPackage",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.MODEL
};
v14.MY_DECALS = {
    name = "MyDecals",
    category = "MyDecals",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.DECAL
};
v14.MY_MESHES = {
    name = "MyMeshes",
    category = "MyMeshes",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.MESH
};
v14.MY_AUDIO = {
    name = "MyAudio",
    category = "MyAudio",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.AUDIO
};
v14.MY_PLUGINS = {
    name = "MyPlugins",
    category = "MyPlugins",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.PLUGIN
};
v14.MY_ANIMATIONS = {
    name = "MyAnimations",
    category = "MyAnimations",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.ANIMATION
};
v14.MY_FONTS = {
    name = "MyFonts",
    category = "MyFonts",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.FONT_FAMILY
};
v14.MARKETPLACE_VIDEOS = {
    name = "FreeVideo",
    category = "FreeVideo",
    ownershipType = v14.OwnershipType.FREE,
    assetType = v14.AssetType.VIDEO
};
v14.MY_VIDEOS = {
    name = "MyVideo",
    category = "MyVideo",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.VIDEO
};
v14.RECENT_VIDEO = {
    name = "RecentVideo",
    category = "RecentVideo",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.VIDEO
};
v14.RECENT_MODELS = {
    name = "RecentModels",
    category = "RecentModels",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.MODEL
};
v14.RECENT_DECALS = {
    name = "RecentDecals",
    category = "RecentDecals",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.DECAL
};
v14.RECENT_MESHES = {
    name = "RecentMeshes",
    category = "RecentMeshes",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.MESH
};
v14.RECENT_AUDIO = {
    name = "RecentAudio",
    category = "RecentAudio",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.AUDIO
};
v14.RECENT_ANIMATIONS = {
    name = "RecentAnimations",
    category = "RecentAnimations",
    ownershipType = v14.OwnershipType.RECENT,
    assetType = v14.AssetType.ANIMATION
};
v14.GROUP_MODELS = {
    name = "GroupModels",
    category = "GroupModelsExceptPackage",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.MODEL
};
v14.GROUP_DECALS = {
    name = "GroupDecals",
    category = "GroupDecals",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.DECAL
};
v14.GROUP_MESHES = {
    name = "GroupMeshes",
    category = "GroupMeshes",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.MESH
};
v14.GROUP_AUDIO = {
    name = "GroupAudio",
    category = "GroupAudio",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.AUDIO
};
v14.GROUP_PLUGINS = {
    name = "GroupPlugins",
    category = "GroupPlugins",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.PLUGIN
};
v14.MY_PACKAGES = {
    name = "MyPackages",
    category = "MyPackages",
    ownershipType = v14.OwnershipType.MY,
    assetType = v14.AssetType.PACKAGE
};
v14.GROUP_PACKAGES = {
    name = "GroupPackages",
    category = "GroupPackages",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.PACKAGE
};
v14.CREATIONS_DEVELOPMENT_SECTION_DIVIDER = {
    name = "CreationsDevelopmentSectionDivider",
    selectable = false
};
v14.CREATIONS_GROUP_MODELS = {
    name = "CreationsGroupModels",
    category = "GroupModelsExceptPackage",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.MODEL
};
v14.CREATIONS_GROUP_PACKAGES = {
    name = "CreationsGroupPackages",
    category = "GroupPackages",
    ownershipType = v14.OwnershipType.GROUP,
    assetType = v14.AssetType.PACKAGE
};
v14.CREATIONS_MODELS = {
    name = "CreationsModels",
    category = "CreationsModels",
    assetType = v14.AssetType.MODEL,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_DECALS = {
    name = "CreationsDecals",
    category = "CreationsDecals",
    assetType = v14.AssetType.DECAL,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_AUDIO = {
    name = "CreationsAudio",
    category = "CreationsAudio",
    assetType = v14.AssetType.AUDIO,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_MESHES = {
    name = "CreationsMeshes",
    category = "CreationsMeshes",
    assetType = v14.AssetType.MESHPART,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_PLUGIN = {
    name = "CreationsPlugins",
    category = "CreationsPlugins",
    assetType = v14.AssetType.PLUGIN,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_ANIMATIONS = {
    name = "CreationsAnimations",
    category = "CreationsAnimations",
    assetType = v14.AssetType.ANIMATION,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_GROUP_DECALS = {
    name = "CreationsGroupDecals",
    category = "CreationsGroupDecals",
    assetType = v14.AssetType.DECAL,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_AUDIO = {
    name = "CreationsGroupAudio",
    category = "CreationsGroupAudio",
    assetType = v14.AssetType.AUDIO,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_MESHES = {
    name = "CreationsGroupMeshes",
    category = "CreationsGroupMeshes",
    assetType = v14.AssetType.MESHPART,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_PLUGIN = {
    name = "CreationsGroupPlugins",
    category = "CreationsGroupPlugins",
    assetType = v14.AssetType.PLUGIN,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_ANIMATIONS = {
    name = "CreationsGroupAnimations",
    category = "CreationsGroupAnimations",
    assetType = v14.AssetType.ANIMATION,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_CATALOG_SECTION_DIVIDER = {
    name = "CreationsCatalogSectionDivider",
    selectable = false
};
v14.CREATIONS_HATS = {
    name = "CreationsHats",
    category = "CreationsHats",
    assetType = v14.AssetType.HAT,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_TEE_SHIRT = {
    name = "CreationsTeeShirts",
    category = "CreationsTeeShirts",
    assetType = v14.AssetType.TEE_SHIRT,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_SHIRT = {
    name = "CreationsShirts",
    category = "CreationsShirts",
    assetType = v14.AssetType.SHIRT,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_PANTS = {
    name = "CreationsPants",
    category = "CreationsPants",
    assetType = v14.AssetType.PANTS,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_HAIR = {
    name = "CreationsHair",
    category = "CreationsHair",
    assetType = v14.AssetType.HAIR_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_FACE_ACCESSORIES = {
    name = "CreationsFaceAccessories",
    category = "CreationsFaceAccessories",
    assetType = v14.AssetType.FACE_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_NECK_ACCESSORIES = {
    name = "CreationsNeckAccessories",
    category = "CreationsNeckAccessories",
    assetType = v14.AssetType.NECK_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_SHOULDER_ACCESSORIES = {
    name = "CreationsShoulderAccessories",
    category = "CreationsShoulderAccessories",
    assetType = v14.AssetType.SHOULDER_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_FRONT_ACCESSORIES = {
    name = "CreationsFrontAccessories",
    category = "CreationsFrontAccessories",
    assetType = v14.AssetType.FRONT_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_BACK_ACCESSORIES = {
    name = "CreationsBackAccessories",
    category = "CreationsBackAccessories",
    assetType = v14.AssetType.BACK_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_WAIST_ACCESSORIES = {
    name = "CreationsWaistAccessories",
    category = "CreationsWaistAccessories",
    assetType = v14.AssetType.WAIST_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_TSHIRT_ACCESSORIES = {
    name = "CreationsTShirtAccessories",
    category = "CreationsTShirtAccessories",
    assetType = v14.AssetType.TSHIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_SHIRT_ACCESSORIES = {
    name = "CreationsShirtAccessories",
    category = "CreationsShirtAccessories",
    assetType = v14.AssetType.SHIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_PANTS_ACCESSORIES = {
    name = "CreationsPantsAccessories",
    category = "CreationsPantsAccessories",
    assetType = v14.AssetType.PANTS_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_JACKET_ACCESSORIES = {
    name = "CreationsJacketAccessories",
    category = "CreationsJacketAccessories",
    assetType = v14.AssetType.JACKET_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_SWEATER_ACCESSORIES = {
    name = "CreationsSweaterAccessories",
    category = "CreationsSweaterAccessories",
    assetType = v14.AssetType.SWEATER_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_SHORTS_ACCESSORIES = {
    name = "CreationsShortsAccessories",
    category = "CreationsShortsAccessories",
    assetType = v14.AssetType.SHORTS_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_LEFT_SHOE_ACCESSORIES = {
    name = "CreationsLeftShoeAccessories",
    category = "CreationsLeftShoeAccessories",
    assetType = v14.AssetType.LEFT_SHOE_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_RIGHT_SHOE_ACCESSORIES = {
    name = "CreationsRightShoeAccessories",
    category = "CreationsRightShoeAccessories",
    assetType = v14.AssetType.RIGHT_SHOE_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_DRESS_SKIRT_ACCESSORIES = {
    name = "CreationsDressSkirtAccessories",
    category = "CreationsDressSkirtAccessories",
    assetType = v14.AssetType.DRESS_SKIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.MY
};
v14.CREATIONS_GROUP_HATS = {
    name = "CreationsGroupHats",
    category = "CreationsGroupHats",
    assetType = v14.AssetType.HAT,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_HAIR = {
    name = "CreationsGroupHair",
    category = "CreationsGroupHair",
    assetType = v14.AssetType.HAIR_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_FACE_ACCESSORIES = {
    name = "CreationsGroupFaceAccessories",
    category = "CreationsGroupFaceAccessories",
    assetType = v14.AssetType.FACE_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_NECK_ACCESSORIES = {
    name = "CreationsGroupNeckAccessories",
    category = "CreationsGroupNeckAccessories",
    assetType = v14.AssetType.NECK_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_SHOULDER_ACCESSORIES = {
    name = "CreationsGroupShoulderAccessories",
    category = "CreationsGroupShoulderAccessories",
    assetType = v14.AssetType.SHOULDER_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_FRONT_ACCESSORIES = {
    name = "CreationsGroupFrontAccessories",
    category = "CreationsGroupFrontAccessories",
    assetType = v14.AssetType.FRONT_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_BACK_ACCESSORIES = {
    name = "CreationsGroupBackAccessories",
    category = "CreationsGroupBackAccessories",
    assetType = v14.AssetType.BACK_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_WAIST_ACCESSORIES = {
    name = "CreationsGroupWaistAccessories",
    category = "CreationsGroupWaistAccessories",
    assetType = v14.AssetType.WAIST_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_TSHIRT_ACCESSORIES = {
    name = "CreationsGroupTShirtAccessories",
    category = "CreationsGroupTShirtAccessories",
    assetType = v14.AssetType.TSHIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_SHIRT_ACCESSORIES = {
    name = "CreationsGroupShirtAccessories",
    category = "CreationsGroupShirtAccessories",
    assetType = v14.AssetType.SHIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_PANTS_ACCESSORIES = {
    name = "CreationsGroupPantsAccessories",
    category = "CreationsGroupPantsAccessories",
    assetType = v14.AssetType.PANTS_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_JACKET_ACCESSORIES = {
    name = "CreationsGroupJacketAccessories",
    category = "CreationsGroupJacketAccessories",
    assetType = v14.AssetType.JACKET_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_SWEATER_ACCESSORIES = {
    name = "CreationsGroupSweaterAccessories",
    category = "CreationsGroupSweaterAccessories",
    assetType = v14.AssetType.SWEATER_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_SHORTS_ACCESSORIES = {
    name = "CreationsGroupShortsAccessories",
    category = "CreationsGroupShortsAccessories",
    assetType = v14.AssetType.SHORTS_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_LEFT_SHOE_ACCESSORIES = {
    name = "CreationsGroupLeftShoeAccessories",
    category = "CreationsGroupLeftShoeAccessories",
    assetType = v14.AssetType.LEFT_SHOE_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_RIGHT_SHOE_ACCESSORIES = {
    name = "CreationsGroupRightShoeAccessories",
    category = "CreationsGroupRightShoeAccessories",
    assetType = v14.AssetType.RIGHT_SHOE_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.CREATIONS_GROUP_DRESS_SKIRT_ACCESSORIES = {
    name = "CreationsGroupDressSkirtAccessories",
    category = "CreationsGroupDressSkirtAccessories",
    assetType = v14.AssetType.DRESS_SKIRT_ACCESSORY,
    ownershipType = v14.OwnershipType.GROUP
};
v14.MARKETPLACE = {
    v14.FREE_MODELS,
    v14.WHITELISTED_PLUGINS,
    v14.FREE_AUDIO,
    v14.FREE_DECALS,
    v14.FREE_MESHES,
    v14.MARKETPLACE_VIDEOS,
    v14.FREE_FONTS
};
if not l_ToolboxSetMarketplaceModelsAsPackagesForAll_0 then
    v14.INVENTORY = {
        v14.MY_MODELS,
        v14.MY_PLUGINS,
        v14.MY_AUDIO,
        v14.MY_DECALS,
        v14.MY_MESHES,
        v14.MY_PACKAGES,
        v14.MY_ANIMATIONS,
        v14.MY_VIDEOS,
        v14.MY_FONTS
    };
else
    v14.INVENTORY = {
        v14.MY_MODELS,
        v14.MY_PLUGINS,
        v14.MY_AUDIO,
        v14.MY_DECALS,
        v14.MY_MESHES,
        v14.MY_ANIMATIONS,
        v14.MY_VIDEOS,
        v14.MY_FONTS
    };
end;
v14.RECENT = {
    v14.RECENT_MODELS,
    v14.RECENT_AUDIO,
    v14.RECENT_DECALS,
    v14.RECENT_MESHES,
    v14.RECENT_ANIMATIONS,
    v14.RECENT_VIDEO
};
v14.DEFAULT = nil;
if not l_disableMarketplaceAndRecents_0() then
    v14.DEFAULT = v14.FREE_MODELS;
else
    v14.DEFAULT = v14.MY_MODELS;
end;
if v12() then
    if not l_disableMarketplaceAndRecents_0() then
        v14.DEFAULT_TAB = v14.MARKETPLACE;
    else
        v14.DEFAULT_TAB = v14.INVENTORY;
    end;
end;
v14.CREATOR_ROBLOX = {
    Id = 1,
    Type = Enum.CreatorType.User.Value
};
v14.CREATOR_ROBLOX_DEVELOP_API = {
    Id = 1,
    Type = v2.clientToBackend(Enum.CreatorType.User.Value)
};
v14.API_NAMES = {
    [v14.FREE_AUDIO.name] = "Audio",
    [v14.WHITELISTED_PLUGINS.name] = "Plugins",
    [v14.FREE_MESHES.name] = "Meshes",
    [v14.FREE_DECALS.name] = "Decals",
    [v14.MARKETPLACE_VIDEOS.name] = "Videos",
    [v14.FREE_MODELS.name] = "Models",
    [v14.MY_AUDIO.name] = "audio",
    [v14.MY_PLUGINS.name] = "plugin",
    [v14.MY_MODELS.name] = "model",
    [v14.MY_MESHES.name] = "meshpart",
    [v14.MY_DECALS.name] = "decal",
    [v14.MY_VIDEOS.name] = "video",
    [v14.MY_PACKAGES.name] = "package",
    [v14.MY_ANIMATIONS.name] = "animation",
    [v14.RECENT_AUDIO.name] = "audio",
    [v14.RECENT_MODELS.name] = "model",
    [v14.RECENT_MESHES.name] = "meshpart",
    [v14.RECENT_DECALS.name] = "decal",
    [v14.RECENT_VIDEO.name] = "video",
    [v14.RECENT_ANIMATIONS.name] = "animation",
    [v14.CREATIONS_AUDIO.name] = "audio",
    [v14.FREE_FONTS.name] = "FontFamily",
    [v14.MY_FONTS.name] = "fontFamily"
};
v14.AUTOCOMPLETE_API_NAMES = {
    [v14.FREE_AUDIO.name] = "audio",
    [v14.WHITELISTED_PLUGINS.name] = "plugin",
    [v14.FREE_MESHES.name] = "mesh",
    [v14.FREE_DECALS.name] = "image",
    [v14.MARKETPLACE_VIDEOS.name] = "video",
    [v14.FREE_MODELS.name] = "model",
    [v14.MY_ANIMATIONS.name] = "animation",
    [v14.FREE_FONTS.name] = "fontFamily"
};
v14.ASSET_PREVIEW_SUGGESTIONS_ENABLED_FOR_ASSET_TYPE = {
    [v14.FREE_AUDIO.name] = true,
    [v14.FREE_DECALS.name] = true,
    [v14.FREE_MESHES.name] = true,
    [v14.FREE_MODELS.name] = true,
    [v14.MARKETPLACE_VIDEOS.name] = true,
    [v14.WHITELISTED_PLUGINS.name] = true
};
local function v19()
    if not l_ToolboxSetMarketplaceModelsAsPackagesForAll_0 then
        return {
            v14.CREATIONS_DEVELOPMENT_SECTION_DIVIDER,
            v14.CREATIONS_MODELS,
            v14.CREATIONS_PLUGIN,
            v14.CREATIONS_AUDIO,
            v14.CREATIONS_DECALS,
            v14.CREATIONS_MESHES,
            v14.CREATIONS_ANIMATIONS,
            v14.CREATIONS_GROUP_MODELS,
            v14.CREATIONS_GROUP_PLUGIN,
            v14.CREATIONS_GROUP_AUDIO,
            v14.CREATIONS_GROUP_DECALS,
            v14.CREATIONS_GROUP_MESHES,
            v14.CREATIONS_GROUP_PACKAGES,
            v14.CREATIONS_GROUP_ANIMATIONS
        };
    else
        return {
            v14.CREATIONS_DEVELOPMENT_SECTION_DIVIDER,
            v14.CREATIONS_MODELS,
            v14.CREATIONS_PLUGIN,
            v14.CREATIONS_AUDIO,
            v14.CREATIONS_DECALS,
            v14.CREATIONS_MESHES,
            v14.CREATIONS_ANIMATIONS,
            v14.CREATIONS_GROUP_MODELS,
            v14.CREATIONS_GROUP_PLUGIN,
            v14.CREATIONS_GROUP_AUDIO,
            v14.CREATIONS_GROUP_DECALS,
            v14.CREATIONS_GROUP_MESHES,
            v14.CREATIONS_GROUP_ANIMATIONS
        };
    end;
end;
v14.MARKETPLACE_KEY = "Marketplace";
v14.INVENTORY_KEY = "Inventory";
v14.RECENT_KEY = "Recent";
v14.CREATIONS_KEY = "Creations";
for _, v21 in pairs((string.split(l_getMarketplaceDisabledCategories_0(), ";"))) do
    local v22 = nil;
    for v23, v24 in pairs(v14.MARKETPLACE) do
        if v24.name == v21 then
            v22 = v23;
        end;
    end;
    if v22 then
        table.remove(v14.MARKETPLACE, v22);
    end;
end;
local v25 = {};
local v26 = {};
local v27 = {};
for _, v29 in pairs(v14) do
    if v29.name then
        v27[v29.name] = v29;
    end;
end;
v14.CREATIONS = v19();
local v30 = nil;
local v31 = nil;
if not l_disableMarketplaceAndRecents_0() then
    if not l_showRobloxCreatedAssets_0() then
        v30 = {
            v14.MARKETPLACE,
            v14.INVENTORY,
            v14.RECENT,
            v14.CREATIONS
        };
        v31 = {
            v14.MARKETPLACE_KEY,
            v14.INVENTORY_KEY,
            v14.RECENT_KEY,
            v14.CREATIONS_KEY
        };
    else
        v30 = {
            v14.MARKETPLACE,
            v14.INVENTORY,
            v14.CREATIONS
        };
        v31 = {
            v14.MARKETPLACE_KEY,
            v14.INVENTORY_KEY,
            v14.CREATIONS_KEY
        };
    end;
else
    v30 = {
        v14.INVENTORY,
        v14.CREATIONS
    };
    v31 = {
        v14.INVENTORY_KEY,
        v14.CREATIONS_KEY
    };
end;
for v32, v33 in ipairs(v30) do
    for _, v35 in ipairs(v33) do
        v25[v35.name] = v33;
        v26[v35.name] = v31[v32];
    end;
end;
v14.getTabForCategoryName = function(v36)
    return v25[v36] or v14.CREATIONS;
end;
v14.getTabKeyForCategoryName = function(v37)
    return v26[v37] or v14.CREATIONS_KEY;
end;
v14.getCategoryByName = function(v38)
    local v39 = v27[v38];
    if not (v39 or not v4.shouldDebugWarnings()) then
        warn(("Lua Toolbox: no category for name %s"):format((tostring(v38))));
    end;
    return v39;
end;
v14.getCategoryIndex = function(v40, v41, v42)
    if v40 == "" then
        return 1;
    else
        local v43 = v14.getTabKeyForCategoryName(v40);
        local l_getCategories_0 = v14.getCategories;
        local l_v43_0 = v43;
        local l_v41_0 = v41;
        local v47 = if not v11() then nil else v42;
        for v48, v49 in ipairs((l_getCategories_0(l_v43_0, l_v41_0, v47))) do
            if v49.name == v40 then
                return v48;
            end;
        end;
        if v4.shouldDebugWarnings() then
            warn(("Lua Toolbox: no category index for name %s"):format((tostring(v40))));
        end;
        return 1;
    end;
end;
v14.getAssetTypeByNumber = function(v50)
    return v14.AssetTypeInverted[v50];
end;
v14.categoryIsPackage = function(v51)
    local v52 = v14.getCategoryByName(v51);
    if not l_ToolboxSetMarketplaceModelsAsPackagesForAll_0 then
        return v52.assetType == v14.AssetType.PACKAGE;
    else
        local v53 = true;
        if v52.assetType ~= v14.AssetType.PACKAGE then
            v53 = v52 == v14.FREE_MODELS;
        end;
        return v53;
    end;
end;
v14.categoryIsFreeAsset = function(v54)
    return v14.getCategoryByName(v54).ownershipType == v14.OwnershipType.FREE;
end;
v14.categoryIsGroupAsset = function(v55)
    return v14.getCategoryByName(v55).ownershipType == v14.OwnershipType.GROUP;
end;
v14.categoryIsAudio = function(v56)
    return v14.getCategoryByName(v56).assetType == v14.AssetType.AUDIO;
end;
v14.categoryIsModel = function(v57)
    return v14.getCategoryByName(v57).assetType == v14.AssetType.MODEL;
end;
v14.categoryIsFont = function(v58)
    return v14.getCategoryByName(v58).assetType == v14.AssetType.FONT_FAMILY;
end;
v14.categoryIsVideo = function(v59)
    return v14.getCategoryByName(v59).assetType == v14.AssetType.VIDEO;
end;
v14.categoryIsGroupPackages = function(v60)
    return v14.getCategoryByName(v60).assetType == v14.AssetType.GROUP_PACKAGES;
end;
v14.categoryIsPlugin = function(v61)
    return v14.getCategoryByName(v61).assetType == v14.AssetType.PLUGIN;
end;
v14.shouldShowPrices = function(v62)
    local v63 = v14.getEngineAssetType(v14.getCategoryByName(v62).assetType);
    if not v13() then
        return v3.ENABLED_ASSET_TYPES[v63.Name];
    else
        return v3.MONETIZABLE_ASSET_TYPES[v63.Name];
    end;
end;
local v64 = {
    [Enum.AssetType.Hat] = v14.CREATIONS_HATS,
    [Enum.AssetType.HairAccessory] = v14.CREATIONS_HAIR,
    [Enum.AssetType.FaceAccessory] = v14.CREATIONS_FACE_ACCESSORIES,
    [Enum.AssetType.NeckAccessory] = v14.CREATIONS_NECK_ACCESSORIES,
    [Enum.AssetType.ShoulderAccessory] = v14.CREATIONS_SHOULDER_ACCESSORIES,
    [Enum.AssetType.FrontAccessory] = v14.CREATIONS_FRONT_ACCESSORIES,
    [Enum.AssetType.BackAccessory] = v14.CREATIONS_BACK_ACCESSORIES,
    [Enum.AssetType.WaistAccessory] = v14.CREATIONS_WAIST_ACCESSORIES,
    [Enum.AssetType.TShirtAccessory] = v14.CREATIONS_TSHIRT_ACCESSORIES,
    [Enum.AssetType.ShirtAccessory] = v14.CREATIONS_SHIRT_ACCESSORIES,
    [Enum.AssetType.PantsAccessory] = v14.CREATIONS_PANTS_ACCESSORIES,
    [Enum.AssetType.JacketAccessory] = v14.CREATIONS_JACKET_ACCESSORIES,
    [Enum.AssetType.SweaterAccessory] = v14.CREATIONS_SWEATER_ACCESSORIES,
    [Enum.AssetType.ShortsAccessory] = v14.CREATIONS_SHORTS_ACCESSORIES,
    [Enum.AssetType.LeftShoeAccessory] = v14.CREATIONS_LEFT_SHOE_ACCESSORIES,
    [Enum.AssetType.RightShoeAccessory] = v14.CREATIONS_RIGHT_SHOE_ACCESSORIES,
    [Enum.AssetType.DressSkirtAccessory] = v14.CREATIONS_DRESS_SKIRT_ACCESSORIES
};
local v65 = {
    [Enum.AssetType.Hat] = v14.CREATIONS_GROUP_HATS,
    [Enum.AssetType.HairAccessory] = v14.CREATIONS_GROUP_HAIR,
    [Enum.AssetType.FaceAccessory] = v14.CREATIONS_GROUP_FACE_ACCESSORIES,
    [Enum.AssetType.NeckAccessory] = v14.CREATIONS_GROUP_NECK_ACCESSORIES,
    [Enum.AssetType.ShoulderAccessory] = v14.CREATIONS_GROUP_SHOULDER_ACCESSORIES,
    [Enum.AssetType.FrontAccessory] = v14.CREATIONS_GROUP_FRONT_ACCESSORIES,
    [Enum.AssetType.BackAccessory] = v14.CREATIONS_GROUP_BACK_ACCESSORIES,
    [Enum.AssetType.WaistAccessory] = v14.CREATIONS_GROUP_WAIST_ACCESSORIES,
    [Enum.AssetType.TShirtAccessory] = v14.CREATIONS_GROUP_TSHIRT_ACCESSORIES,
    [Enum.AssetType.ShirtAccessory] = v14.CREATIONS_GROUP_SHIRT_ACCESSORIES,
    [Enum.AssetType.PantsAccessory] = v14.CREATIONS_GROUP_PANTS_ACCESSORIES,
    [Enum.AssetType.JacketAccessory] = v14.CREATIONS_GROUP_JACKET_ACCESSORIES,
    [Enum.AssetType.SweaterAccessory] = v14.CREATIONS_GROUP_SWEATER_ACCESSORIES,
    [Enum.AssetType.ShortsAccessory] = v14.CREATIONS_GROUP_SHORTS_ACCESSORIES,
    [Enum.AssetType.LeftShoeAccessory] = v14.CREATIONS_GROUP_LEFT_SHOE_ACCESSORIES,
    [Enum.AssetType.RightShoeAccessory] = v14.CREATIONS_GROUP_RIGHT_SHOE_ACCESSORIES,
    [Enum.AssetType.DressSkirtAccessory] = v14.CREATIONS_GROUP_DRESS_SKIRT_ACCESSORIES
};
v14.getCategories = function(v66, v67, v68)
    if v14.CREATIONS_KEY == v66 then
        if not (not v11() or not v4.shouldDebugWarnings()) and v68 == nil then
            warn("IXP variable was not found for getCategoryIndex");
        end;
        local v69 = if not not v11() and v10(v68) then {} else v19();
        if v67 then
            local v70 = v5(v67.allowedAssetTypesForRelease);
            if #v70 > 0 then
                table.insert(v69, v14.CREATIONS_CATALOG_SECTION_DIVIDER);
                for _, v72 in pairs(v70) do
                    table.insert(v69, v64[v72]);
                end;
                for _, v74 in pairs(v70) do
                    table.insert(v69, v65[v74]);
                end;
            end;
        end;
        return v69;
    elseif v14.MARKETPLACE_KEY == v66 then
        return v14.MARKETPLACE;
    elseif v14.INVENTORY_KEY == v66 then
        return v14.INVENTORY;
    elseif v14.RECENT_KEY == v66 then
        return v14.RECENT;
    else
        return ;
    end;
end;
v14.getEngineAssetType = function(v75)
    local v76 = v14.ToolboxAssetTypeToEngine[v75];
    if not (v76 or not v4.shouldDebugWarnings()) then
        warn(("Lua toolbox: No engine assetType for category asset type %s"):format((tostring(v75))));
    end;
    return v76;
end;
v14.categoryIsAvatarAssetByCategoryName = function(v77)
    return v65[v14.getEngineAssetType(v14.getCategoryByName(v77).assetType)] ~= nil;
end;
v14.getMarketplaceCategoryByAssetType = function(v78)
    for _, v80 in pairs(v14.MARKETPLACE) do
        if v80.assetType == v78.Value then
            return v80;
        end;
    end;
    if v4.shouldDebugWarnings() then
        warn(("No category found for assetType of %s"):format((tostring(v78))));
    end;
    return nil;
end;
return v14;