local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v2.Style.Stylizer;
local l_TextLabel_0 = v2.UI.TextLabel;
local v8 = require(script.Parent.PropertyListView);
local v9 = v1.PureComponent:extend("ImportConfiguration");
local function v11(v10)
    return v1.createFragment({
        Image = v1.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            LayoutOrder = 1,
            Size = UDim2.fromOffset(32, 32)
        }),
        Label = v1.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = 2,
            Text = v10.Localization:getText("Plugin", "ImportConfiguration"),
            TextWrapped = true
        })
    });
end;
local function v13(v12)
    return v1.createFragment({
        PropertyList = v1.createElement(v8, {
            Instance = v12.ImportItem,
            AssetImportSession = v12.AssetImportSession,
            Localization = v12.Localization
        })
    });
end;
v9.render = function(v14)
    local l_props_0 = v14.props;
    local l_Localization_1 = l_props_0.Localization;
    if not l_props_0.ImportItem then
        return (v1.createElement(v11, {
            Localization = l_Localization_1
        }));
    else
        return (v1.createElement(v13, {
            ImportItem = l_props_0.ImportItem,
            AssetImportSession = l_props_0.AssetImportSession
        }));
    end;
end;
return (l_withContext_0({
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v9));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local l_TextService_0 = game:GetService("TextService");
local _ = require(l_script_FirstAncestor_0.Src.Types);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local v4 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v5 = require(l_script_FirstAncestor_0.Packages.Framework);
local v6 = require(l_script_FirstAncestor_0.Packages.Cryo);
local l_ContextServices_0 = v5.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = l_ContextServices_0.Stylizer;
local l_StyleModifier_0 = v5.Util.StyleModifier;
local l_UI_0 = v5.UI;
local l_ExpandablePane_0 = l_UI_0.ExpandablePane;
local l_Pane_0 = l_UI_0.Pane;
local l_ScrollingFrame_0 = l_UI_0.ScrollingFrame;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Image_0 = l_UI_0.Image;
local v18 = require(script.Parent.PropertyView);
local v19 = require(l_script_FirstAncestor_0.Src.Components.Properties.PropertyStatus);
local v20 = require(l_script_FirstAncestor_0.Src.Utility.createCalloutComponents);
local v21 = require(l_script_FirstAncestor_0.Src.Utility.Status.filterStatusesForProp);
local v22 = require(l_script_FirstAncestor_0.Src.Utility.Status.getHighestSeverityStatus);
local v23 = require(l_script_FirstAncestor_0.Src.Utility.Status.GetLocalizedStatusMessage);
local v24 = require(l_script_FirstAncestor_0.Src.Utility.getPropertiesForInstance);
local l_Dash_0 = v5.Dash;
local l_omit_0 = l_Dash_0.omit;
local l_join_0 = l_Dash_0.join;
local v28 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagImporterOpensAvatarPreviewerBetaCheck);
local v29 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v30 = v3.PureComponent:extend("PropertyListView");
v30.init = function(v31)
    v31:setState({
        expanded = {
            FileGeneral = true,
            ObjectGeneral = true
        },
        absoluteHorizontalSize = 0
    });
    v31.statuses = v31.props.Instance:GetStatuses();
    v31.onContentResize = function(v32)
        v31:setState({
            absoluteHorizontalSize = v32.x
        });
    end;
    v31.refreshForStatusCompatibility = function()
        v31:setState({});
    end;
end;
v30.willUpdate = function(v33, _, _)
    v33.statuses = v33.props.Instance:GetStatuses();
end;
local function v42(v36, v37, v38)
    local v39 = {};
    for _, v41 in v36, nil, nil do
        if not v38.Status or v38.Status.Level ~= "Error" then
            v38.Status = v41;
            v38.IsSectionStatus = true;
        end;
        table.insert(v39, v3.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = #v39,
            Size = UDim2.fromOffset(v37.absoluteXSize - v37.style.Sizes.StatusMessagePadding, 0),
            Style = if v41.Level == "Error" then v37.style.ErrorStatus else v37.style.WarningStatus,
            Text = v23(v37.localization, v41.Type, v41.Level, v41.Context),
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left
        }));
    end;
    return v39;
end;
local function v47(v43, v44, v45)
    local l_status_0 = v43.status;
    if l_status_0 and (not v44.Status or v44.Status.Level ~= "Error" and l_status_0.Level == "Error") then
        v44.Status = l_status_0;
        v44.IsSectionStatus = false;
    end;
    return v3.createElement(v18, {
        Instance = v43.importData,
        LayoutOrder = v43.layoutOrder,
        Localization = v43.localization,
        Status = l_status_0,
        PropertyMetadata = v43.propertyMetadata,
        OnInteract = v45
    });
end;
local function _(v48, v49)
    local l_Size_0 = v49.Arrow.Size;
    local l_Spacing_0 = v49.Spacing;
    local v52 = l_Size_0.X.Offset + l_Spacing_0;
    if v48 then
        local l_Text_0 = v49.Text;
        v52 = v52 + (l_TextService_0:GetTextSize(v48, l_Text_0.TextSize, l_Text_0.Font, Vector2.new()).X + l_Spacing_0);
    end;
    return v52;
end;
v30.createHeader = function(v55, v56, v57, v58, v59)
    local l_PropertySectionHeader_0 = v55.props.Stylizer.PropertySectionHeader;
    local v61 = l_omit_0(l_PropertySectionHeader_0, {
        "Arrow",
        "Text"
    });
    local v62 = v55.props.Localization:getText("Sections", v56.Section);
    local v63 = nil;
    if v58 then
        local l_Size_1 = l_PropertySectionHeader_0.Arrow.Size;
        local l_Spacing_1 = l_PropertySectionHeader_0.Spacing;
        local v66 = l_Size_1.X.Offset + l_Spacing_1;
        if v62 then
            local l_Text_1 = l_PropertySectionHeader_0.Text;
            v66 = v66 + (l_TextService_0:GetTextSize(v62, l_Text_1.TextSize, l_Text_1.Font, Vector2.new()).X + l_Spacing_1);
        end;
        v63 = v3.createElement(v58, (l_join_0(v59, {
            LayoutOrder = 3,
            Size = UDim2.new(1, -v66, 1, 0)
        })));
    end;
    local v68 = {};
    if not ((not v28() or not v56.Callouts) or v57) then
        v68 = v20(v56.Callouts, v56.Section, v55.props.AssetImportSession);
    end;
    return v3.createElement(l_Pane_0, {
        HorizontalAlignment = l_PropertySectionHeader_0.HorizontalAlignment,
        LayoutOrder = 1,
        Layout = Enum.FillDirection.Horizontal,
        OnClick = function()
            v55:setState({
                expanded = v6.Dictionary.join(v55.state.expanded, {
                    [v56.Section] = not v57
                })
            });
        end,
        Padding = l_PropertySectionHeader_0.Padding,
        Size = l_PropertySectionHeader_0.Size,
        Style = v61,
        Spacing = l_PropertySectionHeader_0.Spacing,
        VerticalAlignment = l_PropertySectionHeader_0.VerticalAlignment
    }, {
        Image = v3.createElement(l_Image_0, {
            LayoutOrder = 1,
            Style = l_PropertySectionHeader_0.Arrow,
            StyleModifier = not not v57 and l_StyleModifier_0.Selected or nil
        }),
        Title = v3.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = 2,
            Style = l_PropertySectionHeader_0.Text,
            Text = v62,
            TextWrapped = true
        }, v68),
        HeaderStatus = v63
    });
end;
v30.buildSection = function(v69, v70, v71)
    local l_props_0 = v69.props;
    local v73 = {
        Status = nil,
        IsSectionStatus = false
    };
    local v74 = v42(v21(v71.Section, v69.statuses), {
        absoluteXSize = v69.state.absoluteHorizontalSize,
        style = l_props_0.Stylizer,
        localization = l_props_0.Localization
    }, v73);
    local v75 = {};
    for v76, v77 in pairs(v71.Properties) do
        if not (v77.ShouldHide and v77.ShouldHide(l_props_0.Instance, l_props_0.AssetImportSession)) then
            table.insert(v75, v47({
                importData = l_props_0.Instance,
                layoutOrder = v76 + #v74,
                propertyMetadata = v77,
                localization = l_props_0.Localization,
                status = v22((v21(v77.Name, v69.statuses)))
            }, v73, v69.refreshForStatusCompatibility));
        end;
    end;
    if #v74 == 0 and #v75 == 0 then
        return nil;
    else
        local v78 = v69.state.expanded[v71.Section];
        local v79 = false;
        if v73.Status ~= nil then
            v79 = not v78 or v73.IsSectionStatus;
        end;
        local v80 = if not v79 then nil else v19;
        local v81 = if not v79 then nil else {
            StatusLevel = v73.Status.Level,
            StatusMessage = v73.Status.Type,
            StatusContext = v73.Status.Context,
            Position = UDim2.new(1, 0, 0, 0)
        };
        return v3.createElement(l_ExpandablePane_0, {
            Expanded = v78,
            OnExpandedChanged = function()
                v69:setState({
                    expanded = v6.Dictionary.join(v69.state.expanded, {
                        [v71.Section] = not v78
                    })
                });
            end,
            Layout = Enum.FillDirection.Vertical,
            LayoutOrder = v70,
            Style = "ImportTree",
            Text = l_props_0.Localization:getText("Sections", v71.Section),
            HeaderComponent = if v28() then nil else v80,
            HeaderComponentProps = if v28() then nil else v81,
            HeaderOverride = if not v28() then nil else v69:createHeader(v71, v78, v80, v81)
        }, v6.List.join(v75, v74));
    end;
end;
v30.render = function(v82)
    local l_props_1 = v82.props;
    if l_props_1.Instance then
        local v84 = {};
        for v85, v86 in pairs(v24(l_props_1.Instance)) do
            v84[v85] = v82:buildSection(v85, v86);
        end;
        return v3.createElement(l_ScrollingFrame_0, {
            AutomaticCanvasSize = Enum.AutomaticSize.Y,
            CanvasSize = UDim2.fromScale(1, 0),
            Layout = Enum.FillDirection.Vertical,
            OnCanvasResize = v82.onContentResize,
            Position = UDim2.fromScale(0, 0),
            ScrollingDirection = Enum.ScrollingDirection.Y,
            Size = UDim2.fromScale(1, 1)
        }, v84);
    else
        return nil;
    end;
end;
return v4.connect(function(v87)
    return {
        CurrentPreset = if v29() then nil else v87.Preview.currentPreset,
        SettingsChanged = v87.Preview.settingsChanged,
        AssetImportSession = v87.Preview.assetImportSession
    };
end)((l_withContext_0({
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v30)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = l_ContextServices_0.Stylizer;
local l_UI_0 = v2.UI;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_Image_0 = l_UI_0.Image;
local v10 = require(l_script_FirstAncestor_0.Src.Resources.StatusLevel);
local v11 = v1.PureComponent:extend("PropertyStatus");
v11.render = function(v12)
    local l_props_0 = v12.props;
    local l_Localization_1 = l_props_0.Localization;
    local l_Stylizer_1 = l_props_0.Stylizer;
    local l_StatusLevel_0 = l_props_0.StatusLevel;
    local l_StatusMessage_0 = l_props_0.StatusMessage;
    local l_StatusContext_0 = l_props_0.StatusContext;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_IconSize_0 = l_Stylizer_1.PropertyView.IconSize;
    local v21 = true;
    if l_StatusLevel_0 ~= "Error" then
        v21 = l_StatusLevel_0 == v10.Error;
    end;
    return v1.createElement(l_Image_0, {
        Size = UDim2.fromOffset(l_IconSize_0, l_IconSize_0),
        Style = not not v21 and l_Stylizer_1.ErrorIcon or l_Stylizer_1.WarningIcon,
        LayoutOrder = l_LayoutOrder_0
    }, {
        Tooltip = v1.createElement(l_Tooltip_0, {
            Text = l_Localization_1:getText("Statuses", l_StatusMessage_0, l_StatusContext_0)
        })
    });
end;
return (l_withContext_0({
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v11));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v3 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = l_ContextServices_0.Stylizer;
local l_UI_0 = v3.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Tooltip_0 = l_UI_0.Tooltip;
local v12 = require(l_script_FirstAncestor_0.Src.Components.Properties.PropertyStatus);
local v13 = require(l_script_FirstAncestor_0.Src.Thunks.UpdatePreviewInstance);
local l_shallowEqual_0 = v3.Dash.shallowEqual;
local v15 = require(l_script_FirstAncestor_0.Src.Utility.createCalloutComponents);
local v16 = require(l_script_FirstAncestor_0.Src.Utility.GetEditorFromType);
local v17 = require(l_script_FirstAncestor_0.Src.Utility.GetErrorChecked);
local v18 = require(l_script_FirstAncestor_0.Src.Actions.SetErrorNodeChecked);
local v19 = require(l_script_FirstAncestor_0.Src.Actions.SetSettingsChanged);
local v20 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagChooseAnimationForRestPose);
local v21 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagImporterOpensAvatarPreviewerBetaCheck);
local v22 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportTrackPropertyChange);
local v23 = v1.PureComponent:extend("PropertyView");
local function v29(v24, v25)
    if v25 == nil then
        return {};
    else
        local v26 = {};
        for _, v28 in ipairs(v25) do
            v26[v28] = v24[v28];
        end;
        return v26;
    end;
end;
local function _(v30, v31)
    for v32, v33 in v30, nil, nil do
        if v31[v32] ~= v33 then
            return true;
        end;
    end;
    return false;
end;
v23._connect = function(v35)
    local l_PropertyMetadata_0 = v35.props.PropertyMetadata;
    if v35.props.Instance then
        if not v22() then
            v35._changedConnection = v35.props.Instance:GetPropertyChangedSignal(l_PropertyMetadata_0.Name):Connect(function()
                v35:setState({});
            end);
        else
            local l_props_0 = v35.props;
            v35._changedConnection = l_props_0.Instance.Changed:Connect(function(v38)
                if not (v38 ~= l_props_0.PropertyMetadata.Name) or v35.state.dependencies and v35.state.dependencies[v38] ~= nil then
                    v35:setState({
                        value = l_props_0.Instance[l_props_0.PropertyMetadata.Name],
                        dependencies = v29(l_props_0.Instance, l_props_0.PropertyMetadata.Dependencies)
                    });
                end;
            end);
            return ;
        end;
    end;
end;
v23._disconnect = function(v39)
    if v39._changedConnection then
        v39._changedConnection:Disconnect();
        v39._changedConnection = nil;
    end;
end;
v23.init = function(v40)
    local function _()
        v40.props.UpdatePreviewInstance(v40.props.Instance:GetPreview());
    end;
    v40.onToggleItem = function()
        local l_PropertyMetadata_1 = v40.props.PropertyMetadata;
        v40.props.Instance[l_PropertyMetadata_1.Name] = not v40.props.Instance[l_PropertyMetadata_1.Name];
        v40.props.UpdatePreviewInstance(v40.props.Instance:GetPreview());
        v40.props.SetErrorNodeChecked(v17(v40.props.ImportTree));
        v40.props.SetSettingsChanged(true);
        v40.props.OnInteract();
        v40:setState({});
    end;
    v40.onSetItem = function(v43)
        local l_PropertyMetadata_2 = v40.props.PropertyMetadata;
        if l_PropertyMetadata_2.Name == "ImportName" and v40.props.Instance.ImportName ~= v43 then
            v40.props.SetSettingsChanged(true);
        end;
        v40.props.Instance[l_PropertyMetadata_2.Name] = v43;
        if v20() then
            v40.props.UpdatePreviewInstance(v40.props.Instance:GetPreview());
        end;
        v40.props.SetErrorNodeChecked(v17(v40.props.ImportTree));
        v40.props.OnInteract();
    end;
    v40.onSelectItem = function(v45)
        local l_PropertyMetadata_3 = v40.props.PropertyMetadata;
        local v47 = v40.props.Instance[l_PropertyMetadata_3.Name].EnumType[v45];
        if v47 == v40.props.Instance[l_PropertyMetadata_3.Name] then
            return ;
        else
            v40.props.Instance[l_PropertyMetadata_3.Name] = v47;
            v40.props.UpdatePreviewInstance(v40.props.Instance:GetPreview());
            v40.props.SetErrorNodeChecked(v17(v40.props.ImportTree));
            v40.props.SetSettingsChanged(true);
            v40.props.OnInteract();
            return ;
        end;
    end;
    if v22() then
        v40:setState({
            value = v40.props.Instance[v40.props.PropertyMetadata.Name],
            dependencies = v29(v40.props.Instance, v40.props.PropertyMetadata.Dependencies)
        });
    end;
end;
v23.didMount = function(v48)
    v48:_connect();
end;
v23.willUnmount = function(v49)
    v49.state.connections = nil;
    v49:_disconnect();
end;
v23.didUpdate = function(v50, v51, _)
    if v51.Instance ~= v50.props.Instance then
        v50:_disconnect();
        v50:_connect();
    end;
end;
if v22() then
    v23.getDerivedStateFromProps = function(v53, _)
        return {
            value = v53.Instance[v53.PropertyMetadata.Name],
            dependencies = v29(v53.Instance, v53.PropertyMetadata.Dependencies)
        };
    end;
end;
v23.render = function(v55)
    local l_props_1 = v55.props;
    local l_Localization_1 = l_props_1.Localization;
    local l_Stylizer_1 = l_props_1.Stylizer;
    local l_PropertyMetadata_4 = l_props_1.PropertyMetadata;
    local l_Instance_0 = l_props_1.Instance;
    local v61 = nil;
    local v62 = nil;
    local v63 = nil;
    if l_props_1.Status then
        v61 = l_props_1.Status.Level;
        v62 = l_props_1.Status.Type;
        v63 = l_props_1.Status.Context;
    end;
    local l_Editable_0 = l_PropertyMetadata_4.Editable;
    local l_Name_0 = l_PropertyMetadata_4.Name;
    local l_AllowPickFile_0 = l_PropertyMetadata_4.AllowPickFile;
    local v67 = l_Instance_0[l_Name_0];
    local v68 = nil;
    if l_PropertyMetadata_4.Dependencies then
        v68 = v29(l_Instance_0, l_PropertyMetadata_4.Dependencies);
    end;
    local v69 = nil;
    v69 = if not l_PropertyMetadata_4.ComponentFactory then v16(v67) else l_PropertyMetadata_4.ComponentFactory;
    local l_IconSize_0 = l_Stylizer_1.PropertyView.IconSize;
    local l_Spacing_0 = l_Stylizer_1.PropertyView.Spacing;
    local v72 = l_IconSize_0 + l_Spacing_0;
    local v73 = {};
    if not (not v21() or not l_PropertyMetadata_4.Callouts) then
        v73 = v15(l_PropertyMetadata_4.Callouts, l_Name_0, v55.props.AssetImportSession);
    end;
    v73.Tooltip = v1.createElement(l_Tooltip_0, {
        Text = l_Localization_1:getText("PropertiesTooltip", l_Name_0)
    });
    return v1.createElement(l_Pane_0, {
        LayoutOrder = l_props_1.LayoutOrder,
        Size = UDim2.new(1, -l_Stylizer_1.PropertyView.ScrollBarOffset, 0, l_Stylizer_1.PropertyView.Height),
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Spacing = l_Spacing_0
    }, {
        StatusArea = v1.createElement(l_Pane_0, {
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Layout = Enum.FillDirection.Horizontal,
            LayoutOrder = 3,
            Size = UDim2.new(0, v72, 1, 0),
            Padding = {
                Left = l_Spacing_0
            }
        }, {
            Icon = if not v61 then nil else v1.createElement(v12, {
                StatusLevel = v61,
                StatusMessage = v62,
                StatusContext = v63
            })
        }),
        Label = v1.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.Y,
            Text = l_Localization_1:getText("Properties", l_Name_0),
            TextWrapped = false,
            TextXAlignment = Enum.TextXAlignment.Left,
            LayoutOrder = 1,
            Size = UDim2.new(0.5, -v72, 0, 0)
        }, v73),
        Editor = v1.createElement(v69, {
            DependentValues = v68,
            Editable = l_Editable_0,
            LayoutOrder = 2,
            Name = l_Name_0,
            OnSelectItem = v55.onSelectItem,
            OnSetItem = v55.onSetItem,
            OnToggleItem = v55.onToggleItem,
            Size = UDim2.new(0.5, -l_Stylizer_1.PropertyView.ScrollBarOffset, 0, l_Stylizer_1.PropertyView.EditorHeight),
            Value = v67,
            Localization = l_Localization_1,
            PropertyMetadata = l_PropertyMetadata_4,
            AllowPickFile = l_AllowPickFile_0,
            Instance = l_Instance_0,
            AssetImportSession = v55.props.AssetImportSession
        })
    });
end;
if v22() then
    v23.shouldUpdate = function(v74, v75, v76)
        local l_state_0 = v74.state;
        if l_state_0.value ~= v76.value then
            return true;
        else
            local l_dependencies_0 = l_state_0.dependencies;
            local l_dependencies_1 = v76.dependencies;
            local v80;
            for v81, v82 in l_dependencies_0, nil, nil do
                if l_dependencies_1[v81] ~= v82 then
                    v80 = true;
                    goto label0 --[[  true, false  ]];
                end;
            end;
            v80 = false;
            ::label0::;
            if not v80 then
                return not l_shallowEqual_0(v74.props, v75);
            else
                return true;
            end;
        end;
    end;
end;
return v2.connect(function(v83)
    return {
        AssetImportSession = v83.Preview.assetImportSession,
        ImportTree = v83.Preview.importTree
    };
end, function(v84)
    return {
        SetSettingsChanged = function(v85)
            v84(v19(v85));
        end,
        UpdatePreviewInstance = function(v86)
            v84(v13(v86));
        end,
        SetErrorNodeChecked = function(v87)
            v84(v18(v87));
        end
    };
end)((l_withContext_0({
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v23)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local v6 = require(l_script_FirstAncestor_0.Src.Utility.getAnimations);
local v7 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagTextWrapAnimationSettings);
local function v13(v8, v9, v10)
    for v11, v12 in v10, nil, nil do
        if tostring(v8) == v12 then
            return table.find(v9, v11);
        end;
    end;
    return 1;
end;
return function(v14)
    local v15 = v6(v14.Instance);
    local v16 = {};
    local v17 = {};
    for _, v19 in pairs(v15) do
        v16[v19.ImportName] = v19.Id;
        table.insert(v17, v19.ImportName);
    end;
    return v2.createElement(l_Pane_0, {
        LayoutOrder = v14.LayoutOrder,
        Size = v14.Size
    }, {
        WrapperContents = v2.createElement(l_SelectInput_0, {
            OnItemActivated = function(_, v21)
                v14.OnSetItem(v16[v17[v21]]);
            end,
            Items = v17,
            SelectedIndex = v13(v14.Value, v17, v16),
            Focus = v14.Value,
            TextWrapped = not not v7() or nil,
            Size = UDim2.fromScale(1, 1)
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Stylizer_0 = l_ContextServices_0.Stylizer;
local l_StyleModifier_0 = v1.Util.StyleModifier;
local l_UI_0 = v1.UI;
local l_TextInput_0 = l_UI_0.TextInput;
local l_TruncatedTextLabel_0 = l_UI_0.TruncatedTextLabel;
local l_DropdownMenu_0 = l_UI_0.DropdownMenu;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local v15 = require(l_script_FirstAncestor_0.Src.Utility.getPackagesInPlace);
local v16 = require(l_script_FirstAncestor_0.Src.Utility.isAssetIdFormatValid);
local v17 = require(l_script_FirstAncestor_0.Src.Actions.SetHasInvalidPackageId);
local v18 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagDevFrameworkDropdownMenuHeight);
local v19 = v2.PureComponent:extend("AssetIdProperty");
v19.init = function(v20)
    v20.state = {
        isFocused = false,
        isOnDropdown = false,
        suggestionList = v15(),
        selectedId = "",
        dropdownHoveredIndex = 0
    };
    v20.ref = v2.createRef();
    v20.focused = function()
        v20:setState({
            isFocused = true
        });
    end;
    v20.unfocused = function()
        v20:setState({
            isFocused = false
        });
    end;
    v20.onItemActivated = function(v21, _)
        if v20.state.selectedId == v21.AssetId then
            v20:setState({
                selectedId = ""
            });
        end;
        v20:setState({
            selectedId = v21.AssetId
        });
    end;
    v20.onHoveredItemChanged = function(v23)
        v20:setState({
            isOnDropdown = true,
            dropdownHoveredIndex = v23
        });
    end;
    v20.onMouseLeave = function()
        v20:setState({
            isOnDropdown = false,
            dropdownHoveredIndex = 0
        });
    end;
    v20.onValidateText = function(v24)
        local v25 = v16(v24);
        v20.props.dispatchSetHasInvalidPackageId(not v25);
        return v25;
    end;
    v20.onRenderItem = function(v26, v27, v28, v29)
        local l_SuggestionDropdown_0 = v20.props.Stylizer.SuggestionDropdown;
        local l_DropdownHeight_0 = l_SuggestionDropdown_0.DropdownHeight;
        local v32 = not v20.ref:getValue() and 200 or v20.ref:getValue().AbsoluteSize.X;
        if not v18() then
            v29 = v27 == v20.state.dropdownHoveredIndex;
        end;
        return v2.createElement(l_Button_0, {
            LayoutOrder = v27,
            OnClick = v28,
            OnMouseEnter = function()
                v20.onHoveredItemChanged(v27);
            end,
            Size = UDim2.new(0, v32 - l_SuggestionDropdown_0.DropdownScrollbarSize, 0, l_DropdownHeight_0),
            StyleModifier = if not v29 then nil else l_StyleModifier_0.Hover
        }, {
            ButtonComponents = v2.createElement(l_Pane_0, {
                Layout = Enum.FillDirection.Horizontal,
                Size = UDim2.fromScale(1, 1)
            }, {
                ImageContainer = v2.createElement(l_Pane_0, {
                    LayoutOrder = 1,
                    Size = UDim2.fromOffset(l_DropdownHeight_0, l_DropdownHeight_0)
                }, {
                    Image = v2.createElement(l_Image_0, {
                        Style = {
                            Image = v26.Image
                        }
                    })
                }),
                NameText = v2.createElement(l_TruncatedTextLabel_0, {
                    LayoutOrder = 2,
                    Size = UDim2.new(1, -l_DropdownHeight_0, 1, 0),
                    Text = v26.Name,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    SuffixLength = 6
                }, {
                    AssetIdText = v2.createElement(l_TruncatedTextLabel_0, {
                        Size = UDim2.new(1, 0, 1, -l_SuggestionDropdown_0.SubtextOffset),
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Bottom,
                        Text = v26.AssetId,
                        TextColor = if v29 then nil else l_SuggestionDropdown_0.SubtextColor,
                        TextSize = l_SuggestionDropdown_0.SubtextSize
                    })
                })
            })
        });
    end;
end;
v19.render = function(v33)
    local l_props_0 = v33.props;
    local l_state_0 = v33.state;
    return v2.createElement(l_Pane_0, {
        Size = l_props_0.Size,
        LayoutOrder = l_props_0.LayoutOrder,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left
    }, {
        AssetIdField = v2.createElement(l_Pane_0, {
            Size = UDim2.fromScale(1, 1),
            LayoutOrder = l_props_0.LayoutOrder + 1,
            [v2.Ref] = v33.ref
        }, {
            TextInput = v2.createElement(l_TextInput_0, {
                OnTextChanged = l_props_0.OnSetItem,
                OnValidateText = v33.onValidateText,
                Text = if l_state_0.selectedId ~= "" then l_state_0.selectedId else l_props_0.Value,
                OnFocused = v33.focused,
                OnFocusLost = v33.unfocused
            }),
            AutocompleteDropdown = v2.createElement(l_DropdownMenu_0, {
                Hide = not l_state_0.isFocused and not l_state_0.isOnDropdown or not (#l_state_0.suggestionList ~= 0),
                Items = l_state_0.suggestionList,
                OnItemActivated = v33.onItemActivated,
                OnMouseLeave = v33.onMouseLeave,
                OnRenderItem = v33.onRenderItem,
                OnFocusLost = v33.unfocused,
                HoveredItemIndex = l_state_0.dropdownHoveredIndex,
                Width = not v33.ref:getValue() and 200 or v33.ref:getValue().AbsoluteSize.X
            })
        })
    });
end;
return v3.connect(nil, function(v36)
    return {
        dispatchSetHasInvalidPackageId = function(v37)
            v36(v17(v37));
        end
    };
end)((l_withContext_0({
    Stylizer = l_Stylizer_0
})(v19)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_Checkbox_0 = v1.UI.Checkbox;
return function(v4)
    return v2.createElement(l_Checkbox_0, {
        OnClick = v4.OnToggleItem,
        LayoutOrder = v4.LayoutOrder,
        Checked = v4.Value
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_filter_0 = v1.Dash.filter;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local v7 = require(l_script_FirstAncestor_0.Src.Utility.DependencyHandler);
local v8 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagTextWrapAnimationSettings);
local function _(v9)
    local l_EnumItems_0 = v9.EnumType:GetEnumItems();
    for v11, v12 in ipairs(l_EnumItems_0) do
        l_EnumItems_0[v11] = v12.Name;
    end;
    return l_EnumItems_0;
end;
local function _(v14, v15)
    for v16, v17 in ipairs(v15) do
        if v17 == v14.Name then
            return v16;
        end;
    end;
    return nil;
end;
return function(v19)
    local l_EnumItems_1 = v19.Value.EnumType:GetEnumItems();
    for v21, v22 in ipairs(l_EnumItems_1) do
        l_EnumItems_1[v21] = v22.Name;
    end;
    local l_l_EnumItems_1_0 = l_EnumItems_1;
    local v24 = v7(v19.Name, v19.DependentValues, v19.AssetImportSession);
    l_l_EnumItems_1_0 = l_filter_0(l_l_EnumItems_1_0, function(v25)
        if not v24 or not v24[v25] then
            return true;
        else
            return false;
        end;
    end);
    l_EnumItems_1 = {};
    for v26, v27 in ipairs(l_l_EnumItems_1_0) do
        l_EnumItems_1[v26] = v19.Localization:getText("EnumItem", v27);
    end;
    local l_createElement_0 = v2.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v30 = {
        LayoutOrder = v19.LayoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = v19.Size
    };
    local v31 = {};
    local l_createElement_1 = v2.createElement;
    local l_l_SelectInput_0_0 = l_SelectInput_0;
    local v36 = {
        OnItemActivated = function(_, v35)
            v19.OnSelectItem(l_l_EnumItems_1_0[v35]);
        end,
        Items = l_EnumItems_1
    };
    local l_Value_0 = v19.Value;
    local v38;
    for v39, v40 in ipairs(l_l_EnumItems_1_0) do
        if v40 == l_Value_0.Name then
            v38 = v39;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v38 = nil;
    ::label0::;
    v36.SelectedIndex = v38;
    v36.Focus = v19.Value.Name;
    v36.Size = UDim2.fromScale(1, 1);
    v36.TextWrapped = not not v8() or nil;
    v31.WrapperContents = l_createElement_1(l_l_SelectInput_0_0, v36);
    return l_createElement_0(l_l_Pane_0_0, v30, v31);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_UI_0 = v1.UI;
local l_TextInput_0 = l_UI_0.TextInput;
local l_TextLabel_0 = l_UI_0.TextLabel;
return function(v6)
    local v7 = tostring(v6.Value);
    if not (v6.Editable ~= nil) or v6.Editable then
        return v2.createElement(l_TextInput_0, {
            Disabled = true,
            LayoutOrder = v6.LayoutOrder,
            Size = v6.Size,
            Text = v7
        });
    else
        return v2.createElement(l_TextLabel_0, {
            LayoutOrder = v6.LayoutOrder,
            Size = UDim2.new(0, 0, v6.Size.Y.Scale, v6.Size.Y.Offset),
            AutomaticSize = Enum.AutomaticSize.X,
            Text = v7,
            TextXAlignment = Enum.TextXAlignment.Left
        });
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v4 = require(l_script_FirstAncestor_0.Src.Resources.Images);
local l_ContextServices_0 = v1.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Stylizer_0 = l_ContextServices_0.Stylizer;
local l_UI_0 = v1.UI;
local l_ThemeSwitcher_0 = v1.Style.ThemeSwitcher;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local v13 = require(l_script_FirstAncestor_0.Src.Components.Properties.Types.StringProperty);
local v14 = require(l_script_FirstAncestor_0.Src.Thunks.PickTextureFileWithPrompt);
local v15 = v2.PureComponent:extend("PathProperty");
local function _()
    local v16 = l_ThemeSwitcher_0.getThemeName();
    if not (v16 ~= "Dark") or v16 == "Default" then
        return v4.FILE_PICKER_DARK;
    else
        return v4.FILE_PICKER_LIGHT;
    end;
end;
v15.init = function(v18)
    v18.onTextureFilePickerButtonClicked = function()
        v18.props.pickTextureFileWithPrompt(v18.props.Instance, v18.props.Name);
    end;
end;
v15.render = function(v19)
    local l_props_0 = v19.props;
    local l_Value_0 = l_props_0.Value;
    local l_Stylizer_1 = l_props_0.Stylizer;
    local l_FilePickerSize_0 = l_Stylizer_1.PropertyView.FilePickerSize;
    local l_IconSpacing_0 = l_Stylizer_1.PropertyView.IconSpacing;
    local v25 = l_FilePickerSize_0 + l_IconSpacing_0;
    local l_createElement_0 = v2.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v28 = {
        Size = l_props_0.Size,
        LayoutOrder = l_props_0.LayoutOrder,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Spacing = l_IconSpacing_0
    };
    local v29 = {
        PathField = v2.createElement(v13, {
            Editable = l_props_0.Editable,
            Size = UDim2.new(1, -v25, 1, 0),
            Value = if l_Value_0 ~= "" then l_Value_0 else l_props_0.Localization:getText("Properties", "NoFilePath"),
            LayoutOrder = 1,
            OnSetItem = l_props_0.OnSetItem
        })
    };
    local v30;
    if l_props_0.AllowPickFile and l_Value_0 ~= "" then
        v30 = v2.createElement;
        local l_l_Button_0_0 = l_Button_0;
        local v32 = {
            OnClick = v19.onTextureFilePickerButtonClicked,
            LayoutOrder = 2,
            Size = UDim2.fromOffset(l_FilePickerSize_0, l_FilePickerSize_0)
        };
        local v33 = {};
        local l_createElement_1 = v2.createElement;
        local l_l_Image_0_0 = l_Image_0;
        local v36 = {
            Size = UDim2.fromOffset(l_FilePickerSize_0, l_FilePickerSize_0)
        };
        local v37 = l_ThemeSwitcher_0.getThemeName();
        v36.Image = if not (v37 ~= "Dark") or v37 == "Default" then v4.FILE_PICKER_DARK else v4.FILE_PICKER_LIGHT;
        v33.Icon = l_createElement_1(l_l_Image_0_0, v36);
        v30 = v30(l_l_Button_0_0, v32, v33);
    else
        v30 = nil;
    end;
    v29.TextureFilePickerButton = v30;
    return l_createElement_0(l_l_Pane_0_0, v28, v29);
end;
return v3.connect(nil, function(v38)
    return {
        pickTextureFileWithPrompt = function(v39, v40)
            v38(v14(v39, v40));
        end
    };
end)((l_withContext_0({
    Stylizer = l_Stylizer_0
})(v15)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_TextInput_0 = l_UI_0.TextInput;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_TruncatedTextLabel_0 = l_UI_0.TruncatedTextLabel;
local v8 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportFixPropertyLength);
return function(v9)
    if not (v9.Editable ~= nil) or v9.Editable then
        if not v8() then
            return v2.createElement(l_TextInput_0, {
                LayoutOrder = v9.LayoutOrder,
                OnTextChanged = v9.OnSetItem,
                Size = v9.Size,
                Text = v9.Value
            });
        else
            return v2.createElement(l_Pane_0, {
                Size = v9.Size,
                LayoutOrder = v9.LayoutOrder
            }, {
                v2.createElement(l_TextInput_0, {
                    AutomaticSize = Enum.AutomaticSize.None,
                    OnTextChanged = v9.OnSetItem,
                    Text = v9.Value
                })
            });
        end;
    else
        return v2.createElement(l_TruncatedTextLabel_0, {
            LayoutOrder = v9.LayoutOrder,
            Size = v9.Size,
            SuffixLength = 20,
            Text = v9.Value,
            TextXAlignment = Enum.TextXAlignment.Left
        }, {
            Tooltip = v2.createElement(l_Tooltip_0, {
                Text = v9.Value
            })
        });
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local v7 = v2.PureComponent:extend("UploadDestinationProperty");
local function _(v8, v9)
    for v10, v11 in v9, nil, nil do
        if v11 == v8 then
            return v10;
        end;
    end;
end;
v7.render = function(v13)
    local l_props_0 = v13.props;
    local v15 = {
        l_props_0.Localization:getText("UploadDestination", "Me")
    };
    local v16 = {
        -1
    };
    for _, v18 in l_props_0.ManagedGroups, nil, nil do
        table.insert(v15, v18.name);
        table.insert(v16, v18.groupId);
    end;
    local l_Value_0 = l_props_0.Value;
    local v20;
    for v21, v22 in v16, nil, nil do
        if v22 == l_Value_0 then
            v20 = v21;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v20 = nil;
    ::label0::;
    if v20 == nil then
        v20 = 1;
    end;
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_props_0.LayoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = l_props_0.Size
    }, {
        WrapperContents = v2.createElement(l_SelectInput_0, {
            OnItemActivated = function(_, v24)
                l_props_0.OnSetItem(v16[v24]);
            end,
            Items = v15,
            SelectedIndex = v20,
            Focus = v15[v20],
            Size = UDim2.fromScale(1, 1)
        })
    });
end;
return v3.connect(function(v25)
    return {
        ManagedGroups = v25.Preview.managedGroups
    };
end)(v7);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_UI_0 = v1.UI;
local l_TextInput_0 = l_UI_0.TextInput;
local l_TextLabel_0 = l_UI_0.TextLabel;
return function(v6)
    local l_Value_0 = v6.Value;
    local v8 = ("%.2f, %.2f, %.2f"):format(l_Value_0.X, l_Value_0.Y, l_Value_0.Z);
    if not (v6.Editable ~= nil) or v6.Editable then
        return v2.createElement(l_TextInput_0, {
            Disabled = true,
            LayoutOrder = v6.LayoutOrder,
            Size = v6.Size,
            Text = v8
        });
    else
        return v2.createElement(l_TextLabel_0, {
            LayoutOrder = v6.LayoutOrder,
            Size = UDim2.new(0, 0, v6.Size.Y.Scale, v6.Size.Y.Offset),
            AutomaticSize = Enum.AutomaticSize.X,
            Text = v8,
            TextXAlignment = Enum.TextXAlignment.Left
        });
    end;
end;


local l_DevFrameworkToggleAllowEyeIcon_0 = game:GetFastFlag("DevFrameworkToggleAllowEyeIcon");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_Stylizer_0 = v2.Style.Stylizer;
local l_ToggleButton_0 = v2.UI.ToggleButton;
return function(v6)
    if not l_DevFrameworkToggleAllowEyeIcon_0 then
        return v3.createElement(l_ToggleButton_0, {
            OnClick = v6.OnToggleItem,
            Size = v6.Size,
            LayoutOrder = v6.LayoutOrder,
            Selected = v6.Value,
            Stylizer = l_Stylizer_0
        });
    else
        return v3.createElement(l_ToggleButton_0, {
            OnClick = v6.OnToggleItem,
            Size = v6.Size,
            LayoutOrder = v6.LayoutOrder,
            Selected = v6.Value,
            Stylizer = l_Stylizer_0,
            Style = "EyeIcon"
        });
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v3 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v3.Style.Stylizer;
local l_UI_0 = v3.UI;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_TextInput_0 = l_UI_0.TextInput;
local v12 = require(l_script_FirstAncestor_0.Src.Components.Presets.PresetMenu);
local v13 = require(l_script_FirstAncestor_0.Src.Components.Presets.PresetSelector);
local v14 = require(l_script_FirstAncestor_0.Src.Controllers.PresetController);
local v15 = require(l_script_FirstAncestor_0.Src.Controllers.FileController);
local v16 = require(l_script_FirstAncestor_0.Src.Actions.SetCurrentPreset);
local v17 = require(l_script_FirstAncestor_0.Src.Actions.SetSettingsChanged);
local v18 = require(l_script_FirstAncestor_0.Src.Thunks.UpdateChecked);
local v19 = require(l_script_FirstAncestor_0.Src.Thunks.UpdatePreviewInstance);
local v20 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v21 = v1.PureComponent:extend("TopBar");
v21.init = function(v22)
    v22.onBrowse = function()
        v22.props.FileController:requestFilePicker();
    end;
end;
v21.render = function(v23)
    local l_props_0 = v23.props;
    local l_Localization_1 = l_props_0.Localization;
    local l_TopBar_0 = l_props_0.Stylizer.TopBar;
    return v1.createElement(l_Pane_0, {
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Layout = Enum.FillDirection.Horizontal,
        Padding = l_TopBar_0.Padding,
        Size = l_props_0.Size,
        Spacing = l_TopBar_0.Spacing
    }, {
        BrowseButton = v1.createElement(l_Button_0, {
            LayoutOrder = 1,
            Size = l_TopBar_0.ButtonSize,
            Style = "Round",
            Text = l_Localization_1:getText("Plugin", "Browse"),
            OnClick = v23.onBrowse
        }),
        TextInput = v1.createElement(l_Pane_0, {
            Size = UDim2.new(1, -(((l_TopBar_0.ButtonSize.X.Offset + l_TopBar_0.MenuButtonSize.X.Offset) + l_TopBar_0.TemplateDropDown.X.Offset) + l_TopBar_0.Spacing * 3), 1, 0),
            LayoutOrder = 2
        }, {
            FilePath = v1.createElement(l_TextInput_0, {
                AutomaticSize = Enum.AutomaticSize.None,
                Disabled = true,
                Size = UDim2.new(1, 0, 1, 0),
                Text = l_props_0.FileName
            })
        }),
        PresetDropdown = v1.createElement(v13, {
            LayoutOrder = 3,
            ActiveQueueItem = if not v20() then nil else l_props_0.ActiveQueueItem,
            Size = if not v20() then nil else l_TopBar_0.TemplateDropDown
        }),
        PresetMenu = v1.createElement(v12, {
            LayoutOrder = 4
        })
    });
end;
return v2.connect(function(v27)
    return {
        ActiveQueueItem = if not v20() then nil else v27.Preview.activeQueueItem,
        AssetImportSession = v27.Preview.assetImportSession,
        CurrentPreset = if v20() then nil else v27.Preview.currentPreset,
        SettingsChanged = v27.Preview.settingsChanged,
        SelectedImportItem = v27.Preview.selectedImportItem,
        Checked = v27.Preview.importDataChecked or {}
    };
end, function(v28)
    return {
        SetCurrentPreset = if v20() then nil else function(v29)
            v28(v16(v29));
        end,
        SetSettingsChanged = function(v30)
            v28(v17(v30));
        end,
        UpdateChecked = function(v31)
            v28(v18(v31));
        end,
        UpdatePreviewInstance = function(v32)
            v28(v19(v32));
        end
    };
end)((l_withContext_0({
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0,
    PresetController = v14,
    FileController = v15
})(v21)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v1.UI;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_Dash_0 = v1.Dash;
local l_map_0 = l_Dash_0.map;
local l_some_0 = l_Dash_0.some;
local v11 = v2.PureComponent:extend("TreeViewToolbar");
v11.render = function(v12)
    local l_props_0 = v12.props;
    local l_TreeViewToolbar_0 = l_props_0.Stylizer.TreeViewToolbar;
    local l_Localization_0 = l_props_0.Localization;
    local v17 = l_some_0(l_props_0.Expansion, function(v16)
        return v16 == true;
    end);
    return v2.createElement(l_Pane_0, {
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        Layout = Enum.FillDirection.Horizontal,
        LayoutOrder = l_props_0.LayoutOrder,
        Padding = l_TreeViewToolbar_0.Padding,
        Size = l_props_0.Size,
        Spacing = l_TreeViewToolbar_0.Spacing
    }, {
        ExpandCollapseAll = v2.createElement(l_Button_0, {
            LayoutOrder = 1,
            OnClick = function()
                if l_props_0.OnExpansionChange then
                    l_props_0.OnExpansionChange(l_map_0(l_props_0.Expansion, function()
                        return not v17;
                    end));
                end;
            end,
            Size = UDim2.new(0, 70, 1, 0),
            Style = "Round",
            Text = l_Localization_0:getText("TreeViewToolbar", not v17 and "Expand" or "Collapse")
        })
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v11));


local v0 = require(script:FindFirstAncestor("AssetImporter").Packages.Framework).ContextServices.ContextItem:extend("CalloutController");
v0.new = function(v1)
    local v2 = {
        _calloutService = v1 or game:GetService("CalloutService")
    };
    assert(v2._calloutService, "CalloutController requires a CalloutService");
    return (setmetatable(v2, v0));
end;
v0.destroy = function(v3)
    v3._calloutService = nil;
end;
v0.defineCallout = function(v4, v5, v6, v7, v8)
    v4._calloutService:DefineCallout(v5, v6, v7, v8);
end;
v0.attachCallout = function(v9, v10, v11, v12)
    v9._calloutService:AttachCallout(v10, v11, v12);
end;
v0.detachCalloutsByDefinitionId = function(v13, v14)
    v13._calloutService:DetachCalloutsByDefinitionId(v14);
end;
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local l_ContextItem_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices.ContextItem;
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
local v3 = require(l_Actions_0.ResetState);
local v4 = require(l_Actions_0.SetShowError);
local v5 = require(l_Actions_0.SetShowPreview);
local v6 = require(l_Actions_0.SetShowProgress);
local v7 = require(l_Actions_0.SetShowQueue);
local v8 = require(l_Actions_0.SetUploading);
local _ = require(l_script_FirstAncestor_0.Src.DataTypes.QueuedSession);
local l_Thunks_0 = l_script_FirstAncestor_0.Src.Thunks;
local v11 = require(l_Thunks_0.ShowImportPreview);
local v12 = require(l_Thunks_0.LoadManagedGroups);
local v13 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v14 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportUseUploadId);
local v15 = l_ContextItem_0:extend("FileController");
v15.new = function(v16, v17, v18)
    local v19 = {
        _store = v16,
        _presetController = v17,
        _mock = v18,
        promptRequested = false
    };
    if not v18 then
        v19.showImportPrompt = function(v20)
            v19._store:dispatch(require(l_Thunks_0.ShowImportPrompt)(v20));
        end;
        v19.showReplaceImportPrompt = function(v21, v22)
            v19._store:dispatch(require(l_Thunks_0.ShowReplaceImportPrompt)(v21, v22));
        end;
    else
        v19.showImportPrompt = function()
            error("Please call FileController.overrideShowImportPrompt to provide testing function");
        end;
        v19.showReplaceImportPrompt = function()
            error("TODO: Implement FileController.showReplaceImportPrompt for mock");
        end;
        v19.overrideShowImportPrompt = function(v23)
            v19.showImportPrompt = v23;
        end;
        v19.setPromptRequested = function(v24)
            v19.promptRequested = v24;
        end;
    end;
    return (setmetatable(v19, v15));
end;
v15.mock = function(v25, v26)
    return v15.new(v25, v26, true);
end;
v15.DEPRECATED_cleanupPreview = function(v27)
    local l_assetImportSession_0 = v27._store:getState().Preview.assetImportSession;
    if l_assetImportSession_0 then
        v27:DEPRECATED_onSessionCanceled(l_assetImportSession_0);
    end;
    v27._store:dispatch(v3());
end;
v15.DEPRECATED_onSessionCanceled = function(v29, v30)
    if v30 then
        v30:Cancel();
    end;
    v29._store:dispatch(v5(false));
    v29._store:dispatch(v8(false));
end;
v15.destroy = function(v31)
    v31:DEPRECATED_cleanupPreview();
end;
v15.onPluginButtonClicked = function(v32)
    local v33 = v32._store:getState();
    local l_uploading_0 = v33.Dialogs.uploading;
    if not v13() or not l_uploading_0 then
        local v35 = ((v33.Dialogs.showPreview or v33.Dialogs.showError) or v33.Dialogs.showProgress) or v32.promptRequested;
        if v13() then
            v35 = v35 or v33.Dialogs.showQueue;
        end;
        if v35 then
            if not v32.promptRequested then
                v32._store:dispatch(v5(false));
                v32._store:dispatch(v4(false));
                if v13() then
                    v32._store:dispatch(v7(false));
                end;
                return ;
            else
                return ;
            end;
        else
            if not (not v14() or not v13()) then
                v32._store:dispatch(v12());
            end;
            v32:requestFilePicker();
            return ;
        end;
    else
        return ;
    end;
end;
v15.requestFilePicker = function(v36)
    v36.promptRequested = true;
    if not v13() then
        v36.showImportPrompt(function(v37, v38)
            assert(v36.promptRequested);
            v36.promptRequested = false;
            if not v38 then
                if not v37 then
                    v36._store:dispatch(v4(true));
                else
                    v36._presetController:initializePresets();
                    v36._store:dispatch(v5(true));
                    return ;
                end;
            end;
        end);
        return ;
    else
        v36._store:dispatch(v7(true));
        v36.showImportPrompt(function(v39)
            v36:_onFilePicked(v39);
            v36.promptRequested = false;
        end);
        return ;
    end;
end;
v15._onFilePicked = function(v40, v41)
    if #v41 == 0 then
        return ;
    else
        v40._presetController:initializePresets(v41);
        local l_sessionQueue_0 = v40._store:getState().Sessions.sessionQueue;
        local v43, v44 = next(l_sessionQueue_0);
        local v45 = false;
        if v44 ~= nil then
            v45 = next(l_sessionQueue_0, v43) == nil;
        end;
        local v46 = false;
        if v44 ~= nil then
            v46 = v44.validSession;
        end;
        if not (not v45 or not v46) then
            v40:requestPreview(v44);
        end;
        return ;
    end;
end;
v15.requestFileSwap = function(v47, v48)
    v47.promptRequested = true;
    v47.showReplaceImportPrompt(v48, function(v49, v50)
        v47:_onFileSwapped(v49, v50);
        v47.promptRequested = false;
    end);
end;
v15._onFileSwapped = function(v51, v52, v53)
    if v52 then
        local v54 = v51._store:getState().Sessions.sessionQueue[v52];
        local v55 = if v53.currentPreset ~= "" then v53.currentPreset else v51._presetController.defaultName;
        if v55 ~= v54.currentPreset then
            v51._presetController:resolvePreset(v55, v54);
        end;
        return ;
    else
        return ;
    end;
end;
v15.requestPreview = function(v56, v57)
    v56._store:dispatch(v11(v57, function(_, _)
    end));
end;
v15.DEPRECATED_onImport = function(v60, v61)
    if v61 then
        if not v60._store:getState().Dialogs.uploading then
            v60._presetController:createPresetFromLastImport(v61:GetImportTree());
            v61:Upload();
            v60._store:dispatch(v5(false));
            v60._store:dispatch(v8(true));
            v60._store:dispatch(v6(true));
            return ;
        else
            return ;
        end;
    else
        v60._store:dispatch(v5(false));
        v60._store:dispatch(v4(true));
        return ;
    end;
end;
v15.DEPRECATED_onImportCompleted = function(v62)
    v62._store:dispatch(v8(false));
    v62:DEPRECATED_cleanupPreview();
end;
return v15;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local _ = require(l_script_FirstAncestor_0.Src.Types);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextItem_0 = v2.ContextServices.ContextItem;
local l_join_0 = v2.Dash.join;
local l_keys_0 = v2.Dash.keys;
local l_findIndex_0 = v2.Dash.findIndex;
local v7 = require(l_script_FirstAncestor_0.Src.Actions.SetActiveQueueItem);
local v8 = require(l_script_FirstAncestor_0.Src.Actions.SetCurrentPreset);
local v9 = require(l_script_FirstAncestor_0.Src.Actions.SetSettingsChanged);
local v10 = require(l_script_FirstAncestor_0.Src.Actions.SetSessionQueue);
local v11 = require(l_script_FirstAncestor_0.Src.Thunks.UpdateSessionInfo);
local v12 = require(l_script_FirstAncestor_0.Src.Thunks.UpdateChecked);
local v13 = require(l_script_FirstAncestor_0.Src.Thunks.UpdatePreviewInstance);
local v14 = require(l_script_FirstAncestor_0.Src.DataTypes.QueuedSession);
local v15 = require(l_script_FirstAncestor_0.Src.Flags.getFIntAssetImportMaxPresetCount);
local v16 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v17 = l_ContextItem_0:extend("PresetController");
v17.new = function(v18, v19, v20, v21)
    local v22 = setmetatable({
        lastImportName = v20:getText("Templates", "LastImported"),
        studioDefaultName = v20:getText("Templates", "StudioDefault"),
        defaultName = "",
        _assetImportServiceWrapper = wrapAssetImportService(v21),
        _plugin = v18,
        _store = v19,
        _localization = v20,
        _mock = v21
    }, v17);
    v22.defaultName = if not v21 and v22._plugin:GetSetting("AssetImporter_DefaultPreset") then v22._plugin:GetSetting("AssetImporter_DefaultPreset") else v22.studioDefaultName;
    return v22;
end;
wrapAssetImportService = function(v23)
    if not v23 then
        return game:GetService("AssetImportService");
    else
        local v24 = {};
        return {
            GetPreset = function(_, v26)
                return v24[v26] or {};
            end,
            GetAllPresets = function(_)
                return v24;
            end,
            SavePreset = function(_, v29)
                v24[v29] = {};
                return true;
            end,
            RemovePreset = function(_, v31)
                v24[v31] = nil;
            end,
            _clearPresets = function()
                v24 = {};
            end
        };
    end;
end;
v17.mock = function(v32)
    return v17.new({
        SetSetting = function(_, _)
        end
    }, v32, {
        getText = function(_, _, v37, _)
            return v37;
        end
    }, true);
end;
v17.destroy = function(v39)
    if v39.mock then
        v39._assetImportServiceWrapper:_clearPresets();
    end;
    v39.defaultName = "";
end;
v17._filter = function(_, v41)
    v41.Material = nil;
    for _, v43 in v41, nil, nil do
        v43.ImportName = nil;
        v43.ShouldImport = nil;
    end;
end;
v17.save = function(v44, v45)
    if not v44:isStudioDefault(v45) and not v44:isLastImport(v45) then
        local l_PresetFromData_0 = v44._store:getState().Preview.assetImportSession:CreatePresetFromData(v44._store:getState().Preview.selectedImportItem);
        v44:_filter(l_PresetFromData_0);
        local v47 = l_join_0(v44._assetImportServiceWrapper:GetPreset(v45), l_PresetFromData_0);
        v44._store:dispatch(v9(false));
        if not v16() then
            v44._store:dispatch(v8(v45));
        else
            local v48 = v14.update(v44._store:getState().Preview.activeQueueItem, {
                currentPreset = v45
            });
            v44._store:dispatch(v11(v48));
            v44._store:dispatch(v7(v48));
        end;
        return v44._assetImportServiceWrapper:SavePreset(v45, v47);
    else
        return false;
    end;
end;
v17.createPresetFromLastImport = function(v49, v50)
    local l_PresetFromData_1 = v49._store:getState().Preview.assetImportSession:CreatePresetFromData(v50);
    v49:_filter(l_PresetFromData_1);
    v49._assetImportServiceWrapper:SavePreset("Last Imported", l_PresetFromData_1);
end;
v17._updateQueueItems = function(v52, v53, v54)
    local v55 = v52._store:getState();
    local l_sessionQueue_0 = v55.Sessions.sessionQueue;
    local v57 = {};
    for v58, v59 in l_sessionQueue_0, nil, nil do
        if v59.currentPreset == v54 then
            v57[v58] = v14.update(v59, {
                currentPreset = v53
            });
        else
            v57[v58] = v59;
        end;
    end;
    v52._store:dispatch(v10(v57));
    if v55.Dialogs.showPreview then
        v52._store:dispatch(v7(v57[v55.Preview.activeQueueItem.filepath]));
    end;
end;
v17.rename = function(v60, v61, v62)
    local l__assetImportServiceWrapper_0 = v60._assetImportServiceWrapper;
    local l_l__assetImportServiceWrapper_0_Preset_0 = l__assetImportServiceWrapper_0:GetPreset(v62);
    l__assetImportServiceWrapper_0:RemovePreset(v62);
    l__assetImportServiceWrapper_0:SavePreset(v61, l_l__assetImportServiceWrapper_0_Preset_0);
    if v60.defaultName == v62 then
        v60._plugin:SetSetting("AssetImporter_DefaultPreset", v61);
        v60.defaultName = v61;
    end;
    v60:_updateQueueItems(v61, v62);
end;
v17.DEPRECATED_rename = function(v65, v66)
    local l_currentPreset_0 = v65._store:getState().Preview.currentPreset;
    local l__assetImportServiceWrapper_1 = v65._assetImportServiceWrapper;
    local l_l__assetImportServiceWrapper_1_Preset_0 = l__assetImportServiceWrapper_1:GetPreset(l_currentPreset_0);
    l__assetImportServiceWrapper_1:RemovePreset(l_currentPreset_0);
    l__assetImportServiceWrapper_1:SavePreset(v66, l_l__assetImportServiceWrapper_1_Preset_0);
    if v65.defaultName == l_currentPreset_0 then
        v65._plugin:SetSetting("AssetImporter_DefaultPreset", v66);
        v65.defaultName = v66;
    end;
    v65._store:dispatch(v8(v66));
end;
v17.delete = function(v70, v71)
    v70._assetImportServiceWrapper:RemovePreset(v71);
    if not v16() then
        v70._store:dispatch(v8(v70.studioDefaultName));
    else
        if v71 == v70.defaultName then
            v70.defaultName = v70.studioDefaultName;
        end;
        v70:_updateQueueItems(v70.defaultName, v71);
    end;
    v70._store:dispatch(v9(true));
end;
v17.setDefault = function(v72, v73)
    v72._plugin:SetSetting("AssetImporter_DefaultPreset", v73);
    v72.defaultName = v73;
end;
v17.hasCustomDefault = function(v74)
    local v75 = false;
    if v74.defaultName ~= "" then
        v75 = v74.defaultName ~= v74.studioDefaultName;
    end;
    return v75;
end;
v17.applyImportDataToSession = function(v76, v77)
    if not v16() or v76._store:getState().Dialogs.showPreview then
        local l_v77_PresetFromData_0 = v77:CreatePresetFromData();
        for _, v80 in l_v77_PresetFromData_0, nil, nil do
            v80.ImportName = nil;
        end;
        if not v16() then
            v76._store:getState().Preview.assetImportSession:ApplyPreset(l_v77_PresetFromData_0);
            return ;
        else
            local l_activeQueueItem_0 = v76._store:getState().Preview.activeQueueItem;
            l_activeQueueItem_0.session:ApplyPreset(l_v77_PresetFromData_0);
            v76._store:dispatch(v11(l_activeQueueItem_0));
            return ;
        end;
    else
        return ;
    end;
end;
v17.isDefault = function(v82, v83)
    return v82.defaultName == v83;
end;
v17.isLastImport = function(v84, v85)
    local v86 = true;
    if v84.lastImportName ~= v85 then
        v86 = v85 == "Last Imported";
    end;
    return v86;
end;
v17.isStudioDefault = function(v87, v88)
    local v89 = true;
    if v87.studioDefaultName ~= v88 then
        v89 = v88 == "Studio Default";
    end;
    return v89;
end;
v17.resolvePreset = function(v90, v91, v92)
    local l_session_0 = v92.session;
    if l_session_0 and l_session_0:GetImportTree() then
        l_session_0:Reset();
        l_session_0:ApplyPreset(if not v90:isLastImport(v91) then v90._assetImportServiceWrapper:GetPreset(v91) else v90._assetImportServiceWrapper:GetPreset(v90.lastImportName));
        local v94 = v14.update(v92, {
            currentPreset = v91
        });
        if v90._store:getState().Dialogs.showPreview then
            local v95 = {};
            for v96, _ in v90._store:getState().Preview.importDataChecked, nil, nil do
                v95[v96] = v96.ShouldImport;
            end;
            v90._store:dispatch(v12(v95));
            local l_selectedImportItem_0 = v90._store:getState().Preview.selectedImportItem;
            if l_selectedImportItem_0 then
                v90._store:dispatch(v13((l_selectedImportItem_0:GetPreview())));
            end;
            v90._store:dispatch(v9(false));
            v90._store:dispatch(v7(v94));
        end;
        v90._store:dispatch(v11(v94));
        return ;
    else
        return ;
    end;
end;
v17.DEPRECATED_resolvePreset = function(v99, v100)
    assert(not v16());
    local l_assetImportSession_0 = v99._store:getState().Preview.assetImportSession;
    if l_assetImportSession_0 and (not v16() or l_assetImportSession_0:GetImportTree()) then
        assert(l_assetImportSession_0, "Session does not exist");
        l_assetImportSession_0:Reset();
        v99._store:dispatch(v8(v100));
        local _ = nil;
        l_assetImportSession_0:ApplyPreset(if not v99:isLastImport(v100) then v99._assetImportServiceWrapper:GetPreset(v100) else v99._assetImportServiceWrapper:GetPreset(v99.lastImportName));
        local v103 = {};
        for v104, _ in v99._store:getState().Preview.importDataChecked, nil, nil do
            v103[v104] = v104.ShouldImport;
        end;
        v99._store:dispatch(v12(v103));
        local l_selectedImportItem_1 = v99._store:getState().Preview.selectedImportItem;
        if l_selectedImportItem_1 then
            v99._store:dispatch(v13((l_selectedImportItem_1:GetPreview())));
        end;
        v99._store:dispatch(v9(false));
        return ;
    else
        return ;
    end;
end;
v17.getNameList = function(v107, v108)
    local v109 = l_keys_0(v107:getAllPresets());
    local l_settingsChanged_0 = v107._store:getState().Preview.settingsChanged;
    local v112 = l_findIndex_0(v109, function(v111)
        return v111 == v108;
    end);
    if not (not v112 or not l_settingsChanged_0) then
        v109[v112] = v108 .. "*";
    end;
    return v109;
end;
v17.getAllPresets = function(v113)
    local l_AllPresets_0 = v113._assetImportServiceWrapper:GetAllPresets();
    if l_AllPresets_0["Last Imported"] then
        local v115 = l_AllPresets_0["Last Imported"];
        l_AllPresets_0["Last Imported"] = nil;
        l_AllPresets_0[v113.lastImportName] = v115;
    end;
    l_AllPresets_0[v113.studioDefaultName] = {};
    return l_AllPresets_0;
end;
v17.initializePresets = function(v116, v117)
    if not v16() then
        local v118 = v116:getNameList();
        local v119 = nil;
        for v120, v121 in v118, nil, nil do
            if v121 == v116.defaultName then
                v119 = v120;
                break;
            end;
        end;
        if not v119 then
            v116._store:dispatch(v8(v116.studioDefaultName));
            return ;
        else
            v116._store:dispatch(v8(v116.defaultName));
            v116:DEPRECATED_resolvePreset(v116.defaultName);
            return ;
        end;
    else
        local l_sessionQueue_1 = v116._store:getState().Sessions.sessionQueue;
        local v123 = table.clone(l_sessionQueue_1);
        for _, v125 in v117, nil, nil do
            local v126 = v14.update(l_sessionQueue_1[v125], {
                currentPreset = v116.defaultName
            });
            if not (not v116:hasCustomDefault() or not v126.validSession) then
                v116:resolvePreset(v116.defaultName, v126);
            end;
            v123[v125] = v126;
        end;
        v116._store:dispatch(v10(v123));
        return ;
    end;
end;
v17.getNumPresetsRemaining = function(v127)
    local v128 = v127:getAllPresets();
    return (v15() - #l_keys_0(v128)) + (not v128[v127.lastImportName] and 0 or 1);
end;
return v17;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextItem_0 = v1.ContextServices.ContextItem;
local l_Promise_0 = v1.Util.Promise;
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
local v5 = require(l_Actions_0.SetShowPreview);
local v6 = require(l_Actions_0.SetUploading);
local v7 = require(l_Actions_0.SetSessionQueue);
local v8 = require(l_Actions_0.UpdateQueueItem);
local v9 = require(l_script_FirstAncestor_0.Src.DataTypes.QueuedSession);
local l_Thunks_0 = l_script_FirstAncestor_0.Src.Thunks;
local v11 = require(l_Thunks_0.InsertModelInWorkspace);
local v12 = require(l_Thunks_0.ClosePreview);
local v13 = require(l_script_FirstAncestor_0.Src.Utility.openInAvatarPreviewer);
local v14 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagImporterOpensAvatarPreviewerBetaCheck);
local v15 = l_ContextItem_0:extend("QueueController");
v15.new = function(v16, v17)
    local v18 = {
        _store = v16,
        _mock = v17
    };
    v18.resolveUploadPromise = function(v19, v20)
        local l_session_0 = v20.session;
        local l_l_session_0_ImportTree_0 = l_session_0:GetImportTree();
        v18._store:dispatch(v8(v9.update(v20, {
            uploaded = true
        })));
        v18._store:dispatch(v11(v19, l_l_session_0_ImportTree_0));
        if v14() then
            v13(v19, l_l_session_0_ImportTree_0, l_session_0);
        end;
    end;
    v18.rejectUploadPromise = function(_)
    end;
    return (setmetatable(v18, v15));
end;
v15.mock = function(v24)
    return v15.new(v24, true);
end;
v15.destroy = function(v25)
    if not v25._store:getState().Dialogs.uploading then
        v25:removeAllQueuedFiles();
        return ;
    else
        return ;
    end;
end;
v15._getSessionQueue = function(v26)
    return v26._store:getState().Sessions.sessionQueue;
end;
v15.destroyItem = function(_, v28)
    if not (not v28 or not v28.session) then
        v28.session:Cancel();
    end;
end;
v15.removeAllQueuedFiles = function(v29)
    if not v29._store:getState().Dialogs.uploading then
        v29._store:dispatch(v12());
        for _, v31 in v29:_getSessionQueue() do
            v29:destroyItem(v31);
        end;
        v29._store:dispatch(v7({}));
        return ;
    else
        return ;
    end;
end;
v15.removeErroredQueuedFiles = function(v32)
    v32._store:dispatch(v12());
end;
v15.removeUploadedQueuedFiles = function(v33)
    v33._store:dispatch(v12());
end;
v15.isImportEnabled = function(_, v35)
    return v35.validSession;
end;
v15.beginImportQueue = function(v36)
    if not v36._store:getState().Dialogs.uploading then
        v36._store:dispatch(v5(false));
        v36._store:dispatch(v6(true));
        for _, v38 in (v36:_getSessionQueue()), nil, nil do
            v36:uploadItem(v38);
        end;
        v36._store:dispatch(v6(false));
        return ;
    else
        return ;
    end;
end;
v15.uploadItem = function(v39, v40)
    if not (not v40.enabled or not v39:isImportEnabled(v40)) then
        v39:_createUploadPromise(v40):andThen(v39.resolveUploadPromise, v39.rejectUploadPromise):await();
    end;
end;
v15._createUploadPromise = function(_, v42)
    return l_Promise_0.new(function(v43, v44)
        local v45 = nil;
        local v46 = nil;
        if v42.session and v42.session:GetImportTree() then
            local function v48(v47)
                if v45 then
                    v45:Disconnect();
                end;
                if v46 then
                    v46:Disconnect();
                end;
                if not v47.Succeeded then
                    v44();
                    return ;
                else
                    v43(v47, v42);
                    return ;
                end;
            end;
            local function v50(_)
            end;
            local l_session_1 = v42.session;
            v45 = l_session_1.UploadComplete:Connect(v48);
            v46 = l_session_1.UploadProgress:Connect(v50);
            l_session_1:Upload();
            return ;
        else
            v44();
            return ;
        end;
    end);
end;
return v15;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local _ = require(l_script_FirstAncestor_0.Src.Types);
local l_joinDeep_0 = require(l_script_FirstAncestor_0.Packages.Framework).Dash.joinDeep;
local v3 = table.freeze({
    assetName = "",
    currentPreset = "",
    enabled = false,
    errors = 0,
    filepath = "",
    progressValue = 0,
    session = nil,
    uploaded = false,
    timestamp = 0,
    validSession = false,
    warnings = 0
});
return {
    new = function(v4)
        return table.freeze(l_joinDeep_0(table.clone(v3), v4 or {}));
    end,
    update = function(v5, v6)
        return table.freeze(l_joinDeep_0(v5, v6));
    end,
    compare = function(v7, v8)
        return v7.timestamp < v8.timestamp;
    end
};


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


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


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


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


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


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


local v0 = require(script.Parent.Parent.Parent.Src.Testing.isFTF);
return function()
    if not v0() then
        return game:GetFastFlag("AssetImportUseUploadId");
    else
        return true;
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Src.Testing.isFTF);
return function()
    if not v0() then
        return game:GetFastFlag("ChooseAnimationForRestPose");
    else
        return true;
    end;
end;


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


return function()
    return game:GetFastFlag("DevFrameworkDropdownMenuHeight");
end;


return function()
    return game:GetFastFlag("DevFrameworkRenderModelLoadedSignal");
end;


local v0 = require(script.Parent.Parent.Parent.Src.Testing.isFTF);
return function()
    if not v0() then
        return game:GetFastFlag("HideAnimationSettingForGltf");
    else
        return true;
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Src.Testing.isFTF);
return function()
    if not v0() then
        return game:GetFastFlag("ImporterOpensAvatarPreviewerBetaCheck");
    else
        return true;
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Src.Testing.isFTF);
return function()
    if not v0() then
        return game:GetFastFlag("KeepZeroInfluenceBones");
    else
        return true;
    end;
end;


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


return function()
    return game:GetFastFlag("ShowOffCenterOriginImporter");
end;


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


game:DefineFastInt("AssetImportMaxPresetCount", 11);
return function()
    return game:GetFastInt("AssetImportMaxPresetCount");
end;


game:DefineFastInt("AssetImportMaxPresetNameLength", 20);
return function()
    return game:GetFastInt("AssetImportMaxPresetNameLength");
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_Components_0 = l_Parent_0.Src.Components;
local v4 = require(l_Components_0.Dialogs.MeshImportDialog);
local v5 = require(l_Components_0.Dialogs.ProgressWidget);
local v6 = require(l_Components_0.Dialogs.ErrorWidget);
local v7 = require(l_Components_0.Dialogs.ImportQueue);
local v8 = require(l_Parent_0.Src.Resources.CalloutList);
local v9 = require(l_Parent_0.Src.Utility.GetLocalizedString);
local v10 = require(l_Parent_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v11 = v1.PureComponent:extend("MainPlugin");
local function v18(v12, v13)
    for v14, v15 in v8, nil, nil do
        local v16 = v9(v13, "Callouts", v15.Title);
        local v17 = v9(v13, "Callouts", v15.Description);
        if not (not v16 or not v17) then
            v12:defineCallout(v14, v16, v17, v15.Link);
        end;
    end;
end;
v11.init = function(v19, v20)
    v20.PluginLoaderContextItem.mainButtonClickedSignal:Connect(function()
        v19.props.FileController:onPluginButtonClicked();
    end);
end;
v11.didUpdate = function(v21)
    local l_props_0 = v21.props;
    l_props_0.PluginLoaderContextItem.mainButton:SetActive(l_props_0.Store:getState().showPreview);
end;
v11.render = function(v23)
    local l_props_1 = v23.props;
    local l_Localization_0 = l_props_1.Localization;
    local v26 = {
        l_props_1.Plugin,
        l_props_1.Mouse,
        l_props_1.Store,
        l_props_1.Theme,
        l_Localization_0,
        l_props_1.Analytics,
        l_props_1.CalloutController,
        l_props_1.PresetController,
        l_props_1.FileController,
        l_props_1.QueueController
    };
    v18(l_props_1.CalloutController, l_Localization_0);
    return l_ContextServices_0.provide(v26, {
        ImportQueue = if not v10() then nil else v1.createElement(v7, {
            Title = l_Localization_0:getText("ImportQueue", "WindowTitle")
        }),
        Preview = v1.createElement(v4, {
            Title = l_Localization_0:getText("Plugin", "WindowTitle")
        }),
        ProgressWidget = v1.createElement(v5, {
            Title = l_Localization_0:getText("Upload", "WindowTitle")
        }),
        ErrorWidget = v1.createElement(v6, {
            Title = l_Localization_0:getText("Error", "WindowTitle")
        })
    });
end;
return v11;


local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_HttpService_0 = game:GetService("HttpService");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_Promise_0 = require(script:FindFirstAncestor("AssetImporter").Packages.Framework).Util.Promise;
local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
if l_BaseUrl_0:find("https://www.") == 1 then
    l_BaseUrl_0 = l_BaseUrl_0:sub(13);
elseif l_BaseUrl_0:find("http://www.") == 1 then
    l_BaseUrl_0 = l_BaseUrl_0:sub(12);
end;
local function v10(v5)
    local l_Params_0 = v5.Params;
    v5.Params = nil;
    if l_Params_0 then
        local v7 = {};
        for v8, v9 in l_Params_0, nil, nil do
            table.insert(v7, l_HttpService_0:UrlEncode(v8) .. "=" .. l_HttpService_0:UrlEncode(v9));
        end;
        v5.Url = v5.Url .. "?" .. table.concat(v7, "&");
    end;
end;
return {
    BuildRobloxUrl = function(v11, v12, ...)
        return "https://" .. v11 .. "." .. l_BaseUrl_0 .. (string.format(v12, ...) or "");
    end,
    Request = function(v13)
        v10(v13);
        return l_Promise_0.new(function(v14, v15)
            spawn(function()
                local l_status_0, l_result_0 = pcall(l_HttpRbxApiService_0.RequestAsync, l_HttpRbxApiService_0, v13);
                if not l_status_0 then
                    v15(l_result_0);
                    return ;
                else
                    v14(l_result_0);
                    return ;
                end;
            end);
        end);
    end,
    RequestInternal = function(v18)
        v10(v18);
        return l_Promise_0.new(function(v19, v20)
            spawn(function()
                l_HttpService_0:RequestInternal(v18):Start(function(v21, v22)
                    if not v21 then
                        v20("HTTP error: " .. tostring(v22.HttpError));
                        return ;
                    elseif v22.StatusCode >= 400 then
                        v20("HTTP error: " .. tostring(v22.StatusCode));
                        return ;
                    else
                        v19(v22.Body);
                        return ;
                    end;
                end);
            end);
        end);
    end
};


local _ = require(script:FindFirstAncestor("AssetImporter").Src.Types);
return {
    mock = function()
        return {
            groupId = 13370420,
            name = "RobloxLovers"
        };
    end,
    fromJsonData = function(v1)
        if type(v1.id) ~= "number" then
            return false, "Group.fromJsonData expects id to be a number";
        elseif type(v1.name) ~= "string" then
            return false, "Group.fromJsonData expects name to be a string";
        else
            return true, {
                name = v1.name,
                groupId = v1.id
            };
        end;
    end
};


local l_HttpService_0 = game:GetService("HttpService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v2 = require(l_script_FirstAncestor_0.Src.Networking.Http);
local v3 = require(l_script_FirstAncestor_0.Src.Networking.Models.Group);
return function()
    return v2.Request({
        Url = v2.BuildRobloxUrl("develop", "v1/user/groups/canmanage"),
        Method = "GET"
    }):andThen(function(v4)
        local v5 = l_HttpService_0:JSONDecode(v4);
        local v6 = {
            groups = {}
        };
        for _, v8 in v5.data, nil, nil do
            local v9, v10 = v3.fromJsonData(v8);
            if not v9 then
                error((("Parsing error for ApiFetchGroupsCanManage: %*"):format(v10)));
            else
                table.insert(v6.groups, v10);
            end;
        end;
        return v6;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Rodux);
local v2 = require(l_script_FirstAncestor_0.Packages.Cryo);
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
return v1.createReducer({
    showError = false,
    showPreview = false,
    showProgress = false,
    uploading = false
}, {
    [require(l_Actions_0.SetShowError).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            showError = v5.showError
        });
    end,
    [require(l_Actions_0.SetShowPreview).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            showPreview = v7.showPreview
        });
    end,
    [require(l_Actions_0.SetShowProgress).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            showProgress = v9.showProgress
        });
    end,
    [require(l_Actions_0.SetShowQueue).name] = function(v10, v11)
        return v2.Dictionary.join(v10, {
            showQueue = v11.showQueue
        });
    end,
    [require(l_Actions_0.SetShowWarning).name] = function(v12, v13)
        return v2.Dictionary.join(v12, {
            showWarning = v13.showWarning
        });
    end,
    [require(l_Actions_0.SetUploading).name] = function(v14, v15)
        return v2.Dictionary.join(v14, {
            uploading = v15.uploading
        });
    end
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Rodux);
local l_Reducers_0 = l_script_FirstAncestor_0.Src.Reducers;
return (v1.combineReducers({
    Preview = require(l_Reducers_0.Preview),
    Dialogs = require(l_Reducers_0.Dialogs),
    Sessions = if not require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles)() then nil else require(l_Reducers_0.Sessions)
}));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Rodux);
local v2 = require(l_script_FirstAncestor_0.Packages.Cryo);
local _ = require(l_script_FirstAncestor_0.Src.Types);
local v4 = require(l_script_FirstAncestor_0.Src.DataTypes.QueuedSession);
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
local v6 = require(l_Actions_0.ResetState);
local v7 = require(l_Actions_0.SetActiveQueueItem);
local v8 = require(l_Actions_0.SetAssetImportSession);
local v9 = require(l_Actions_0.SetCheckedCount);
local v10 = require(l_Actions_0.SetCurrentPreset);
local v11 = require(l_Actions_0.SetErrorNodeChecked);
local v12 = require(l_Actions_0.SetFilename);
local v13 = require(l_Actions_0.SetHasInvalidPackageId);
local v14 = require(l_Actions_0.SetImportTree);
local v15 = require(l_Actions_0.SetManagedGroups);
local v16 = require(l_Actions_0.SetPreviewInstance);
local v17 = require(l_Actions_0.SetSelectedImportItem);
local v18 = require(l_Actions_0.SetSettingsChanged);
local v19 = require(l_Actions_0.SetTreeChecked);
local v20 = require(l_Actions_0.SetTreeExpansion);
local v21 = require(l_script_FirstAncestor_0.Src.Flags.getFFlagAssetImportEnableMultipleFiles);
local v22 = {
    activeQueueItem = if not v21() then nil else v4.new(),
    assetImportSession = nil,
    currentPreset = not v21() and "" or nil,
    errorNodeChecked = false,
    filename = "",
    hasInvalidPackageId = false,
    importDataChecked = {},
    importDataCheckedCount = -1,
    importDataExpansion = {},
    importTree = nil,
    managedGroups = {},
    previewInstance = nil,
    selectedImportItem = nil,
    settingsChanged = false
};
return v1.createReducer(v22, {
    [v7.name] = function(v23, v24)
        return v2.Dictionary.join(v23, {
            activeQueueItem = v24.activeQueueItem
        });
    end,
    [v8.name] = function(v25, v26)
        return v2.Dictionary.join(v25, {
            assetImportSession = v26.assetImportSession
        });
    end,
    [v14.name] = function(v27, v28)
        return v2.Dictionary.join(v27, {
            importTree = v28.importTree,
            importDataExpansion = v2.Dictionary.join(v27.importDataExpansion, {
                [v28.importTree] = true
            })
        });
    end,
    [v12.name] = function(v29, v30)
        return v2.Dictionary.join(v29, {
            filename = v30.filename
        });
    end,
    [v13.name] = function(v31, v32)
        return v2.Dictionary.join(v31, {
            hasInvalidPackageId = v32.hasInvalidPackageId
        });
    end,
    [v16.name] = function(v33, v34)
        return v2.Dictionary.join(v33, {
            previewInstance = v34.previewInstance
        });
    end,
    [v15.name] = function(v35, v36)
        return v2.Dictionary.join(v35, {
            managedGroups = v36.managedGroups
        });
    end,
    [v17.name] = function(v37, v38)
        return v2.Dictionary.join(v37, {
            selectedImportItem = v38.selectedImportItem
        });
    end,
    [v19.name] = function(v39, v40)
        for v41, v42 in pairs(v40.checked) do
            v41.ShouldImport = v42 ~= false;
        end;
        return v2.Dictionary.join(v39, {
            importDataChecked = v2.Dictionary.join(v39.importDataChecked, v40.checked)
        });
    end,
    [v9.name] = function(v43, v44)
        return v2.Dictionary.join(v43, {
            importDataCheckedCount = v44.count
        });
    end,
    [v20.name] = function(v45, v46)
        return v2.Dictionary.join(v45, {
            importDataExpansion = v2.Dictionary.join(v45.importDataExpansion, v46.expansion)
        });
    end,
    [v11.name] = function(v47, v48)
        return v2.Dictionary.join(v47, {
            errorNodeChecked = v48.isErrorChecked
        });
    end,
    [v18.name] = function(v49, v50)
        return v2.Dictionary.join(v49, {
            settingsChanged = v50.settingsChanged
        });
    end,
    [v10.name] = if not v21() then function(v51, v52)
        return v2.Dictionary.join(v51, {
            currentPreset = v52.currentPreset
        });
    end else nil,
    [v6.name] = function(_)
        if not v21() then
            return (v2.Dictionary.join({}, v22));
        else
            return (table.clone(v22));
        end;
    end
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AssetImporter");
local v1 = require(l_script_FirstAncestor_0.Packages.Rodux);
local l_join_0 = require(l_script_FirstAncestor_0.Packages.Cryo).Dictionary.join;
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
local v4 = require(l_Actions_0.SetSessionQueue);
local v5 = require(l_Actions_0.UpdateQueueItem);
local v6 = require(l_Actions_0.RemoveQueueItem);
local _ = require(l_script_FirstAncestor_0.Src.DataTypes.QueuedSession);
return v1.createReducer({
    sessionQueue = {}
}, {
    [v4.name] = function(v8, v9)
        return l_join_0(v8, {
            sessionQueue = v9.sessionQueue
        });
    end,
    [v5.name] = function(v10, v11)
        return l_join_0(v10.sessionQueue, {
            sessionQueue = l_join_0(v10.sessionQueue, {
                [v11.queueItem.filepath] = v11.queueItem
            })
        });
    end,
    [v6.name] = function(v12, v13)
        local v14 = table.clone(v12.sessionQueue);
        v14[v13.filepath] = nil;
        return l_join_0(v12, {
            sessionQueue = v14
        });
    end
});


return {
    OpenAvatarPreviewCallout = {
        Title = "UgcValidationTitle",
        Description = "UgcValidationDesc",
        Link = "https://create.roblox.com/docs/art/marketplace/marketplace-policy#avatar-body-guidelines"
    },
    ApplyToAllCallout = {
        Title = "ApplyToAllTitle",
        Description = "ApplyToAllDesc",
        Link = ""
    }
};


return {
    FILE_PICKER_LIGHT = "rbxasset://textures/AssetImport/btn_light_filepicker_28x28.png",
    FILE_PICKER_DARK = "rbxasset://textures/AssetImport/btn_dark_filepicker_28x28.png"
};


local v0 = require(script:FindFirstAncestor("AssetImporter").Packages.Framework);
local l_Style_0 = v0.Style;
local l_StyleKey_0 = l_Style_0.StyleKey;
local l_StyleModifier_0 = v0.Util.StyleModifier;
local l_BaseTheme_0 = l_Style_0.Themes.BaseTheme;
local l_StudioTheme_0 = l_Style_0.Themes.StudioTheme;
local l_ComponentSymbols_0 = l_Style_0.ComponentSymbols;
local v7 = require(v0.UIData.ExpandablePane.style);
local v8 = v7["&Section"];
local l_Content_0 = v7.Content;
local l_join_0 = v0.Dash.join;
local v11 = {
    Icons = {
        SmallLength = 16,
        LargeLength = 32
    },
    ImportQueue = {
        CleanupImage = l_StyleKey_0.CleanupImage,
        ControlsHeight = 40,
        DisabledTransparancy = 0.5,
        ImportButtonWidth = 120,
        LoadingBarWidth = 8,
        OpenImage = l_StyleKey_0.OpenImage,
        Padding = 8,
        ProgressBarHeight = 75,
        WindowSize = Vector2.new(395, 320),
        IconPadding = 2,
        IconButtonSize = 24
    },
    AssetList = {
        Padding = 4,
        RowHeight = 28
    },
    AssetListCell = {
        Padding = {
            PaddingTop = UDim.new(0, 2),
            PaddingRight = UDim.new(0, 4),
            PaddingBottom = UDim.new(0, 2),
            PaddingLeft = UDim.new(0, 4)
        }
    },
    PropertySectionHeader = {
        Arrow = {
            Color = l_StyleKey_0.MainText,
            Image = "rbxasset://textures/StudioSharedUI/arrowSpritesheet.png",
            ImageRectOffset = Vector2.new(12, 0),
            ImageRectSize = Vector2.new(12, 12),
            Size = UDim2.fromOffset(12, 12),
            [l_StyleModifier_0.Selected] = {
                ImageRectOffset = Vector2.new(24, 0)
            }
        },
        Background = l_StyleKey_0.Titlebar,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Padding = {
            Left = 10,
            Right = 10
        },
        Size = UDim2.new(1, 0, 0, 32),
        Spacing = 6,
        Text = {
            Font = Enum.Font.SourceSansBold,
            TextColor = l_StyleKey_0.TitlebarText,
            TextSize = 18
        },
        VerticalAlignment = Enum.VerticalAlignment.Center
    },
    PropertyView = {
        IconSize = 20,
        Spacing = 4,
        ScrollBarOffset = 10,
        Height = 28,
        EditorHeight = 24,
        IconSpacing = 10,
        FilePickerSize = 28
    },
    SuggestionDropdown = {
        DropdownHeight = 50,
        SubtextSize = 14,
        SubtextColor = l_StyleKey_0.DimmedText,
        SubtextOffset = 3,
        DropdownScrollbarSize = 8
    },
    TopBar = {
        ButtonSize = UDim2.new(0, 80, 1, 0),
        Padding = {
            Left = 10,
            Top = 6,
            Right = 10,
            Bottom = 5
        },
        Spacing = 6,
        TemplateDropDown = UDim2.fromOffset(175, 32),
        MenuImage = l_StyleKey_0.MenuImage,
        MenuButtonSize = UDim2.fromOffset(16, 16),
        MenuItemSize = UDim2.new(1, 0, 0, 40)
    },
    PresetNamePrompt = {
        CreateMinContentSize = Vector2.new(300, 125),
        RenameMinContentSize = Vector2.new(300, 100),
        LabelSize = UDim2.new(0, 75, 0, 32),
        Padding = 10,
        TextboxSize = UDim2.fromOffset(200, 32)
    },
    PreviewWindow = {
        ResetCameraImage = l_StyleKey_0.ResetCameraImage,
        ShowWorkspaceImage = l_StyleKey_0.ShowWorkspaceImage,
        ShowRigVisualizationImage = l_StyleKey_0.ShowRigVisualizationImage,
        OptionIconSize = UDim2.new(0, 28, 0, 28),
        PreviewButtonBar = {
            Size = UDim2.new(0, 28, 1, 0),
            Position = UDim2.new(1, -38, 0, 10),
            Spacing = 2
        },
        Lighting = {
            Ambient = Color3.fromRGB(170, 185, 200),
            Color = Color3.fromRGB(242, 236, 227),
            Direction = Vector3.new(0.5, -1, 0.1)
        }
    },
    TreeViewToolbar = {
        Padding = {
            Left = 6,
            Top = 4,
            Right = 6,
            Bottom = 3
        },
        Spacing = 6
    },
    Sizes = {
        IndicatorOffset = 20,
        IndicatorSize = 100,
        PreviewRatio = 0.5,
        StatusMessagePadding = 24,
        ToolbarHeight = 30,
        TopBarHeight = 40
    },
    UploadWidget = {
        Width = 500,
        Height = 100,
        TextLabelSize = UDim2.new(1, -10, 0, 22),
        TextSize = 24,
        SubtextSize = 16,
        TextAlignment = Enum.TextXAlignment.Center,
        LoadingBarHeight = 12,
        LoadingBarContainerSize = UDim2.new(0.8, 0, 0, 10),
        SuccessColor = Color3.fromRGB(2, 183, 87),
        FailureColor = Color3.fromRGB(255, 85, 85),
        TopPadding = {
            Left = 10,
            Top = 20,
            Right = 10,
            Bottom = 10
        }
    },
    ErrorWidget = {
        Height = 100,
        IconSize = 48,
        IconSpacing = 16,
        SubtextSize = 18,
        TextSize = 24,
        Width = 500
    },
    ErrorIcon = {
        Image = "rbxasset://textures/StudioSharedUI/alert_error@2x.png",
        Size = UDim2.fromOffset(20, 20)
    },
    WarningIcon = {
        Image = "rbxasset://textures/StudioSharedUI/alert_warning@2x.png",
        Size = UDim2.fromOffset(20, 20)
    },
    ErrorStatus = {
        TextColor = Color3.fromRGB(255, 85, 85),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextSize = 10
    },
    WarningStatus = {
        TextColor = Color3.fromRGB(255, 170, 33),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextSize = 10
    },
    [l_ComponentSymbols_0.ExpandablePane] = l_join_0(l_BaseTheme_0[l_ComponentSymbols_0.ExpandablePane], {
        ["&ImportTree"] = l_join_0(v8, {
            Content = l_join_0(l_Content_0, {
                Padding = {
                    Left = 4,
                    Top = 10,
                    Right = 4,
                    Bottom = 10
                }
            })
        })
    }),
    [l_ComponentSymbols_0.LinkText] = l_join_0(l_BaseTheme_0[l_ComponentSymbols_0.LinkText], {
        ["&Disabled"] = {
            TextColor = l_StyleKey_0.TextDisabled
        }
    })
};
local v12 = {
    [l_StyleKey_0.RefreshImage] = "rbxasset://textures/GameSettings/refresh_dark_theme.png",
    [l_StyleKey_0.ResetCameraImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Dark/Large/CameraReset.png",
    [l_StyleKey_0.ShowRigVisualizationImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Dark/Large/RigVisualization.png",
    [l_StyleKey_0.ShowWorkspaceImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Dark/Large/WorkspacePreview.png",
    [l_StyleKey_0.MenuImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Dark/Large/OptionsDots.png",
    [l_StyleKey_0.OpenImage] = "rbxasset://studio_svg_textures/Lua/FileSync/Dark/Standard/Open.png",
    [l_StyleKey_0.CleanupImage] = "rbxasset://studio_svg_textures/Shared/InsertableObjects/Dark/Standard/Cleanup.png"
};
local v13 = {
    [l_StyleKey_0.RefreshImage] = "rbxasset://textures/GameSettings/refresh_light_theme.png",
    [l_StyleKey_0.ResetCameraImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Light/Large/CameraReset.png",
    [l_StyleKey_0.ShowRigVisualizationImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Light/Large/RigVisualization.png",
    [l_StyleKey_0.ShowWorkspaceImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Light/Large/WorkspacePreview.png",
    [l_StyleKey_0.MenuImage] = "rbxasset://studio_svg_textures/Lua/ImportPreview/Light/Large/OptionsDots.png",
    [l_StyleKey_0.OpenImage] = "rbxasset://studio_svg_textures/Lua/FileSync/Light/Standard/Open.png",
    [l_StyleKey_0.CleanupImage] = "rbxasset://studio_svg_textures/Qt/Emulation/Light/Standard/Cleanup.png"
};
return function(v14)
    local _ = nil;
    return (if not v14 then l_StudioTheme_0.new(v12, v13) else l_StudioTheme_0.mock(v12, v13)):extend(v11);
end;


return require(script:FindFirstAncestor("AssetImporter").Packages.Framework).Util.enumerate("StatusLevel", {
    Error = "Error",
    Warning = "Warning"
});