return function(v0)
    if v0 then
        require(script.Parent.defineLuaFlags);
        local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
        local l_Parent_0 = script.Parent.Parent;
        local l_FVariable_0 = settings():GetFVariable("StudioForceLocale");
        local v4 = require(l_Parent_0.Src.TestHelpers.MockDraftsService);
        local l_DraftsService_0 = game:GetService("DraftsService");
        local l_RunService_0 = game:GetService("RunService");
        local l_StudioService_0 = game:GetService("StudioService");
        local v8 = require(l_Parent_0.Packages.Roact);
        local v9 = require(l_Parent_0.Packages.Rodux);
        local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
        local v11 = require(l_Parent_0.Src.Components.ServiceWrapper);
        local v12 = require(l_Parent_0.Src.Components.MainView);
        local v13 = require(l_Parent_0.Src.Reducers.MainReducer);
        local v14 = require(l_Parent_0.Src.Actions.DraftsServiceLoaded);
        local v15 = require(l_Parent_0.Src.Actions.DraftsLoadedAction);
        local v16 = require(l_Parent_0.Src.Actions.DraftAddedAction);
        local v17 = require(l_Parent_0.Src.Actions.DraftRemovedAction);
        local v18 = require(l_Parent_0.Src.Actions.DraftStateChangedAction);
        local v19 = require(l_Parent_0.Src.Symbols.CommitState);
        local v20 = require(l_Parent_0.Src.Symbols.DraftState);
        local v21 = require(l_Parent_0.Src.Resources.MakeTheme);
        local l_SourceStrings_0 = l_Parent_0.Src.Resources.SourceStrings;
        local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.LocalizedStrings;
        local function v24()
            if #l_FVariable_0 > 0 then
                return l_FVariable_0;
            else
                return l_StudioService_0.StudioLocaleId;
            end;
        end;
        local v25 = v9.Store.new(v13);
        local v26 = v21();
        local v27 = l_ContextServices_0.Localization.new({
            stringResourceTable = l_SourceStrings_0,
            translationResourceTable = l_LocalizedStrings_0,
            overrideLocaleChangedSignal = l_StudioService_0:GetPropertyChangedSignal("StudioLocaleId"),
            overrideGetLocale = v24,
            pluginName = "Drafts"
        });
        local l_game_FastInt_0 = game:GetFastInt("DebugStudioDraftsWidgetTestCase");
        local v29 = l_game_FastInt_0 == 0 and l_DraftsService_0 or v4.new(l_game_FastInt_0);
        local v30 = nil;
        local v31 = nil;
        local function v32()
            if not v30 then
                v30 = v8.mount(v8.createElement(v11, {
                    draftsService = v29,
                    focusGui = v31,
                    localization = v27,
                    plugin = v0,
                    store = v25,
                    theme = v26
                }, {
                    mainView = v8.createElement(v12, {})
                }), v31);
                return ;
            else
                warn("Plugin handle already exists");
                return ;
            end;
        end;
        local function _()
            if v30 then
                v8.unmount(v30);
                v30 = nil;
            end;
        end;
        v0.Unloading:Connect(function()
            if v30 then
                v8.unmount(v30);
                v30 = nil;
            end;
        end);
        local function v34()
            v31.Enabled = not v31.Enabled;
        end;
        local function _(v35)
            local l_Button_0 = v0:CreateToolbar("draftsToolbar"):CreateButton("draftsButton", v27:getText("Meta", "PluginButtonTooltip"), "");
            if v35 then
                l_Button_0.ClickableWhenViewportHidden = true;
                l_Button_0.Click:connect(v34);
            end;
            l_Button_0.Enabled = v35;
            return l_Button_0;
        end;
        if game:GetService("RunService"):IsEdit() then
            local function _(v38)
                if l_RunService_0:IsEdit() then
                    if not (#v38 > 0) then
                        local v39 = nil;
                        v39 = v29.DraftAdded:connect(function()
                            v39:disconnect();
                            v31.Enabled = true;
                        end);
                        return ;
                    else
                        v31.Enabled = true;
                        return ;
                    end;
                else
                    return ;
                end;
            end;
            local function v64()
                local v41 = {};
                local function v45(v42, v43)
                    if v43 == Enum.DraftStatusCode.DraftOutdated then
                        v25:dispatch(v18(v42, v20.Outdated, true));
                        return ;
                    elseif v43 == Enum.DraftStatusCode.OK then
                        v25:dispatch(v18(v42, v20.Outdated, false));
                        return ;
                    elseif v43 == Enum.DraftStatusCode.DraftCommitted then
                        local v44 = v25:getState();
                        assert(v44.Drafts[v42][v20.Outdated] == false, "Draft '" .. v42:GetFullName() .. "' was committed with dirty Outdated state");
                        assert(v44.Drafts[v42][v20.Deleted] == false, "Draft '" .. v42:GetFullName() .. "' was committed with dirty Deleted state");
                        return ;
                    else
                        if v43 == Enum.DraftStatusCode.ScriptRemoved then
                        end;
                        return ;
                    end;
                end;
                local function v49(v46)
                    assert(v41[v46] == nil);
                    v45(v46, (v29:GetDraftStatus(v46)));
                    v41[v46] = v46.AncestryChanged:Connect(function(_, v48)
                        v25:dispatch(v18(v46, v20.Deleted, v48 == nil));
                    end);
                end;
                local function _(v50)
                    assert(v41[v50] ~= nil);
                    v41[v50]:Disconnect();
                    v41[v50] = nil;
                end;
                spawn(function()
                    local l_status_0, l_result_0 = pcall(function()
                        return v29:GetDrafts();
                    end);
                    v25:dispatch(v14(l_status_0, l_result_0));
                    if l_status_0 then
                        v25:dispatch(v15(l_result_0));
                        for _, v55 in pairs(l_result_0) do
                            v49(v55);
                        end;
                        v29.DraftAdded:connect(function(v56)
                            v25:dispatch(v16(v56));
                            v49(v56);
                        end);
                        v29.DraftRemoved:connect(function(v57)
                            v25:dispatch(v17(v57));
                            assert(v41[v57] ~= nil);
                            v41[v57]:Disconnect();
                            v41[v57] = nil;
                        end);
                        v29.DraftStatusChanged:connect(function(v58)
                            v45(v58, (v29:GetDraftStatus(v58)));
                        end);
                        v29.UpdateStatusChanged:connect(function(v59, v60)
                            v45(v59, v60);
                        end);
                        v29.CommitStatusChanged:connect(function(v61, v62)
                            v25:dispatch(v18(v61, v20.Committed, v62 == Enum.DraftStatusCode.DraftCommitted and v19.Committed or v19.Uncommitted));
                            v45(v61, v62);
                        end);
                        if l_RunService_0:IsEdit() then
                            if not (#l_result_0 > 0) then
                                local v63 = nil;
                                v63 = v29.DraftAdded:connect(function()
                                    v63:disconnect();
                                    v31.Enabled = true;
                                end);
                                return ;
                            else
                                v31.Enabled = true;
                                return ;
                            end;
                        else
                            return ;
                        end;
                    else
                        return ;
                    end;
                end);
            end;
            (function()
                local v65 = v27:getText("Meta", "PluginName");
                v0.Name = v65;
                local l_Button_1 = v0:CreateToolbar("draftsToolbar"):CreateButton("draftsButton", v27:getText("Meta", "PluginButtonTooltip"), "");
                l_Button_1.ClickableWhenViewportHidden = true;
                l_Button_1.Click:connect(v34);
                l_Button_1.Enabled = true;
                local l_l_Button_1_0 = l_Button_1;
                local function v68()
                    if not v31.Enabled then
                        if v30 then
                            v8.unmount(v30);
                            v30 = nil;
                        end;
                    else
                        v32();
                    end;
                    l_l_Button_1_0:SetActive(v31.Enabled);
                end;
                v31 = v0:CreateDockWidgetPluginGui(if not l_StudioFixPluginWidgetLocalizedIds_0 then v65 else "Drafts", (DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Right, false, true, 300, 600, 150, 150)));
                v31.Name = v65;
                v31.Title = v65;
                v31.ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
                v31:GetPropertyChangedSignal("Enabled"):connect(v68);
                if not v31.Enabled then
                    if v30 then
                        v8.unmount(v30);
                        v30 = nil;
                    end;
                else
                    v32();
                end;
                l_l_Button_1_0:SetActive(v31.Enabled);
                v64();
            end)();
            return ;
        else
            v0:CreateToolbar("draftsToolbar"):CreateButton("draftsButton", v27:getText("Meta", "PluginButtonTooltip"), "").Enabled = false;
            return ;
        end;
    else
        return ;
    end;
end;


if game:GetService("StudioService"):HasInternalPermission() then
    if plugin then
        require(script.Parent.defineLuaFlags);
        require(script.Parent.commonInit)();
        local l_Parent_0 = script.Parent.Parent;
        local v1 = require(l_Parent_0.Packages.TestLoader);
        v1.launch("DynamicHeadExportTool", l_Parent_0.Src);
        if not v1.isCli() then
            if game:GetFastFlag("DebugDynamicHeadExportTool") then
                local v2 = require(l_Parent_0.Packages.React);
                local v3 = require(l_Parent_0.Packages.ReactRoblox);
                local v4 = require(l_Parent_0.Packages.Framework);
                local v5 = require(l_Parent_0.Src.PluginWrapper);
                local v6 = nil;
                local v7 = nil;
                if v1.hasInternalPermission() then
                    v7 = v4.DeveloperTools.forPlugin(l_Parent_0.Name, plugin);
                end;
                local function v9()
                    plugin.Name = l_Parent_0.Name;
                    local v8 = v2.createElement(v5, {
                        Plugin = plugin
                    });
                    v6 = v3.createRoot(Instance.new("Frame"));
                    v6:render(v8);
                    if v7 then
                        v7:addRoactTree("Roact tree", v6);
                    end;
                end;
                plugin.Unloading:Connect(function()
                    if v7 then
                        v7:destroy();
                    end;
                    if v6 then
                        v6:render(nil);
                    end;
                end);
                v9();
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
else
    return ;
end;


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        accessoryType = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        animationId = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        enabled = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        errorText = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        mode = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        ownershipTransferText = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        rig = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        screen = v0
    };
end);


return require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Util.Action(script.Name, function(v0, v1, v2, v3)
    return {
        colorMap = v0,
        metalnessMap = v1,
        normalMap = v2,
        roughnessMap = v3
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_Button_0 = v2.UI.Button;
local l_Form_0 = v2.UI.Form;
local l_StyleKey_0 = v2.Style.StyleKey;
local v7 = require(l_script_FirstAncestor_0.Src.Constants);
local v8 = v1.PureComponent:extend("FormScreen");
v8.render = function(v9)
    local l_props_0 = v9.props;
    return v1.createElement("Frame", {
        BackgroundColor3 = l_props_0.Stylizer[l_StyleKey_0.MainBackground],
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        UIPadding = v1.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v7.Padding),
            PaddingLeft = UDim.new(0, v7.Padding),
            PaddingRight = UDim.new(0, v7.Padding),
            PaddingTop = UDim.new(0, v7.Padding)
        }),
        Form = v1.createElement(l_Form_0, {
            Expansion = l_props_0.Expansion,
            ExpandByDefault = true,
            Items = l_props_0.Items,
            LabelWidth = UDim.new(0, 150),
            LabelHeight = 32,
            OnExpansionChange = l_props_0.onExpansionChange,
            OnChange = l_props_0.onChange,
            Size = UDim2.new(1, 0, 1, -(30 + v7.Padding))
        }),
        Button = v1.createElement(l_Button_0, {
            Text = l_props_0.Localization:getText("Plugin", "NextButton"),
            Style = "RoundPrimary",
            TextSize = 24,
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 1, -30),
            OnClick = l_props_0.onSubmit
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
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_UI_0 = v3.UI;
local l_Button_0 = l_UI_0.Button;
local l_MultiLineTextInput_0 = l_UI_0.MultiLineTextInput;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_StyleKey_0 = v3.Style.StyleKey;
local v10 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v11 = require(l_script_FirstAncestor_0.Src.Constants);
local v12 = v1.PureComponent:extend("ErrorScreen");
v12.render = function(v13)
    local l_props_0 = v13.props;
    local l_Localization_0 = l_props_0.Localization;
    return v1.createElement("Frame", {
        BackgroundColor3 = l_props_0.Stylizer[l_StyleKey_0.MainBackground],
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        UIPadding = v1.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v11.Padding),
            PaddingLeft = UDim.new(0, v11.Padding),
            PaddingRight = UDim.new(0, v11.Padding),
            PaddingTop = UDim.new(0, v11.Padding)
        }),
        Content = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, -(30 + v11.Padding))
        }, {
            UIListLayout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                Padding = UDim.new(0, v11.Padding)
            }),
            TextLabel = v1.createElement(l_TextLabel_0, {
                LayoutOrder = 1,
                Text = l_Localization_0:getText("Plugin", "ErrorTitle"),
                Style = "Title",
                Size = UDim2.new(1, 0, 0, 20),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Center
            }),
            MultiLineTextInput = v1.createElement(l_MultiLineTextInput_0, {
                LayoutOrder = 2,
                TextInputProps = {
                    Text = v13.props.errorText,
                    Enabled = false
                },
                Style = "FilledRoundedRedBorder",
                Size = UDim2.new(1, 0, 1, -(20 + v11.Padding)),
                Position = UDim2.new(0, 0, 0, 0)
            })
        }),
        Button = v1.createElement(l_Button_0, {
            Text = l_Localization_0:getText("Plugin", "CloseButton"),
            Style = "Round",
            TextSize = 24,
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 1, -30),
            OnClick = function()
                l_props_0.close();
            end
        })
    });
end;
return v2.connect(function(v16, _)
    return {
        errorText = v16.PluginReducer.errorText
    };
end, function(v18)
    return {
        close = function()
            v18(v10(false));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v12)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices;
local v4 = require(l_script_FirstAncestor_0.Src.Components.FormScreen);
local v5 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v6 = require(l_script_FirstAncestor_0.Src.Actions.SetAccessoryType);
local v7 = require(l_script_FirstAncestor_0.Src.Thunks.ProcessAccessory);
local v8 = v1.PureComponent:extend("InputAccessoryTypeScreen");
local function v12()
    local v9 = {};
    for _, v11 in Enum.AccessoryType:GetEnumItems() do
        table.insert(v9, {
            Id = v11.Name,
            Label = v11.Name
        });
    end;
    return v9;
end;
v8.init = function(v13)
    v13.onExpansionChange = function(v14)
        v13:setState({
            Expansion = v14
        });
    end;
    v13.onChange = function(v15)
        v13:setState({
            Items = v15
        });
    end;
    v13.state = {
        Expansion = {},
        Items = {}
    };
end;
v8.didMount = function(v16)
    local l_Localization_0 = v16.props.Localization;
    v16:setState({
        Items = {
            {
                Id = "AccessoryType",
                Label = l_Localization_0:getText("Plugin", "InputAccesoryType"),
                Children = {
                    {
                        Id = "AccessoryType",
                        Label = l_Localization_0:getText("Plugin", "AccesoryType"),
                        Schema = {
                            Type = "Select",
                            Items = v12()
                        },
                        Value = v16:inferAccessoryType().Name
                    }
                }
            }
        }
    });
end;
local function v21(v18)
    for _, v20 in v18:GetChildren() do
        if not (not v20:IsA("MeshPart") or not v20:FindFirstChildOfClass("WrapLayer")) then
            return v20;
        end;
    end;
    return nil;
end;
v8.inferAccessoryType = function(v22)
    local l_rig_0 = v22.props.rig;
    if l_rig_0 then
        local v24 = v21(l_rig_0);
        if v24 then
            if not string.find(string.lower(v24.Name), "eyebrow") then
                if string.find(string.lower(v24.Name), "eyelash") then
                    return Enum.AccessoryType.Eyelash;
                end;
            else
                return Enum.AccessoryType.Eyebrow;
            end;
        end;
    end;
    return Enum.AccessoryType.Unknown;
end;
v8.render = function(v25)
    return v1.createElement(v4, {
        Expansion = v25.state.Expansion,
        Items = v25.state.Items,
        onExpansionChange = v25.onExpansionChange,
        onChange = v25.onChange,
        onSubmit = function()
            local v26 = {};
            for _, v28 in v25.state.Items[1].Children, nil, nil do
                v26[v28.Id] = v28.Value;
            end;
            v25.props.setAccessoryType(Enum.AccessoryType[v26.AccessoryType]);
            v25.props.close();
            v25.props.processAccessory();
        end
    });
end;
return v2.connect(function(v29, _)
    return {
        rig = v29.PluginReducer.rig
    };
end, function(v31)
    return {
        close = function()
            v31(v5(false));
        end,
        setAccessoryType = function(v32)
            v31(v6(v32));
        end,
        processAccessory = function()
            v31(v7());
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v8)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices;
local v4 = require(l_script_FirstAncestor_0.Src.Components.FormScreen);
local v5 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v6 = require(l_script_FirstAncestor_0.Src.Actions.SetAnimationId);
local v7 = require(l_script_FirstAncestor_0.Src.Thunks.ProcessMood);
local v8 = v1.PureComponent:extend("InputAnimationIdScreen");
v8.init = function(v9)
    v9.onExpansionChange = function(v10)
        v9:setState({
            Expansion = v10
        });
    end;
    v9.onChange = function(v11)
        v9:setState({
            Items = v11
        });
    end;
    v9.state = {
        Expansion = {},
        Items = {}
    };
end;
v8.didMount = function(v12)
    local l_Localization_0 = v12.props.Localization;
    v12:setState({
        Items = {
            {
                Id = "AnimationId",
                Label = l_Localization_0:getText("Plugin", "AnimationAssetId"),
                Children = {
                    {
                        Id = "Animation",
                        Label = l_Localization_0:getText("Plugin", "Animation"),
                        Schema = {
                            Type = "Text"
                        },
                        Value = ""
                    }
                }
            }
        }
    });
end;
v8.render = function(v14)
    return v1.createElement(v4, {
        Expansion = v14.state.Expansion,
        Items = v14.state.Items,
        onExpansionChange = v14.onExpansionChange,
        onChange = v14.onChange,
        onSubmit = function()
            v14.props.close();
            local v15 = {};
            for _, v17 in v14.state.Items[1].Children, nil, nil do
                v15[v17.Id] = v17.Value;
            end;
            v14.props.setAnimationId(v15.Animation);
            v14.props.processMood();
        end
    });
end;
return v2.connect(function(v18, _)
    return {
        mode = v18.PluginReducer.mode
    };
end, function(v20)
    return {
        close = function()
            v20(v5(false));
        end,
        setAnimationId = function(v21)
            v20(v6(v21));
        end,
        processMood = function()
            v20(v7());
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v8)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices;
local v4 = require(l_script_FirstAncestor_0.Src.Constants);
local v5 = require(l_script_FirstAncestor_0.Src.Components.FormScreen);
local v6 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v7 = require(l_script_FirstAncestor_0.Src.Actions.SetSurfaceAppearanceIds);
local v8 = require(l_script_FirstAncestor_0.Src.Actions.SetScreen);
local v9 = require(l_script_FirstAncestor_0.Src.Thunks.ProcessHead);
local v10 = v1.PureComponent:extend("InputSurfaceAppearanceIdsScreen");
v10.init = function(v11)
    v11.onExpansionChange = function(v12)
        v11:setState({
            Expansion = v12
        });
    end;
    v11.onChange = function(v13)
        v11:setState({
            Items = v13
        });
    end;
    v11.state = {
        Expansion = {},
        Items = {}
    };
end;
v10.didMount = function(v14)
    local l_Localization_0 = v14.props.Localization;
    v14:setState({
        Items = {
            {
                Id = "SurfaceAppearanceIds",
                Label = l_Localization_0:getText("Plugin", "SurfaceAppearanceAssetIds"),
                Children = {
                    {
                        Id = "ColorMap",
                        Label = l_Localization_0:getText("Plugin", "ColorMap"),
                        Schema = {
                            Type = "Text"
                        },
                        Value = ""
                    },
                    {
                        Id = "MetalnessMap",
                        Label = l_Localization_0:getText("Plugin", "MetalnessMap"),
                        Schema = {
                            Type = "Text"
                        },
                        Value = ""
                    },
                    {
                        Id = "NormalMap",
                        Label = l_Localization_0:getText("Plugin", "NormalMap"),
                        Schema = {
                            Type = "Text"
                        },
                        Value = ""
                    },
                    {
                        Id = "RoughnessMap",
                        Label = l_Localization_0:getText("Plugin", "RoughnessMap"),
                        Schema = {
                            Type = "Text"
                        },
                        Value = ""
                    }
                }
            }
        }
    });
end;
v10.render = function(v16)
    return v1.createElement(v5, {
        Expansion = v16.state.Expansion,
        Items = v16.state.Items,
        onExpansionChange = v16.onExpansionChange,
        onChange = v16.onChange,
        onSubmit = function()
            local v17 = {};
            for _, v19 in v16.state.Items[1].Children, nil, nil do
                v17[v19.Id] = v19.Value;
            end;
            v16.props.setSurfaceAppearanceIds(v17.ColorMap, v17.MetalnessMap, v17.NormalMap, v17.RoughnessMap);
            if v16.props.mode == v4.Modes.Head then
                v16.props.close();
                v16.props.processHead();
                return ;
            elseif v16.props.mode == v4.Modes.Accessory then
                v16.props.setScreen(v4.Screens.InputAccessoryType);
                return ;
            else
                assert(false);
                return ;
            end;
        end
    });
end;
return v2.connect(function(v20, _)
    return {
        mode = v20.PluginReducer.mode
    };
end, function(v22)
    return {
        close = function()
            v22(v6(false));
        end,
        setSurfaceAppearanceIds = function(v23, v24, v25, v26)
            v22(v7(v23, v24, v25, v26));
        end,
        processHead = function()
            v22(v9());
        end,
        setScreen = function(v27)
            v22(v8(v27));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v10)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
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_UI_0 = v3.UI;
local l_Button_0 = l_UI_0.Button;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_MultiLineTextInput_0 = v3.UI.MultiLineTextInput;
local l_StyleKey_0 = v3.Style.StyleKey;
local v10 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v11 = require(l_script_FirstAncestor_0.Src.Constants);
local v12 = v1.PureComponent:extend("OwnershipTransferScreen");
v12.render = function(v13)
    local l_props_0 = v13.props;
    local l_Localization_0 = l_props_0.Localization;
    return v1.createElement("Frame", {
        BackgroundColor3 = l_props_0.Stylizer[l_StyleKey_0.MainBackground],
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        UIPadding = v1.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v11.Padding),
            PaddingLeft = UDim.new(0, v11.Padding),
            PaddingRight = UDim.new(0, v11.Padding),
            PaddingTop = UDim.new(0, v11.Padding)
        }),
        Content = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, -(30 + v11.Padding))
        }, {
            UIListLayout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                Padding = UDim.new(0, v11.Padding)
            }),
            TextLabel = v1.createElement(l_TextLabel_0, {
                LayoutOrder = 1,
                Text = l_Localization_0:getText("Plugin", "OwnershipTransferAssetIds"),
                Style = "Title",
                Size = UDim2.new(1, 0, 0, 20),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Center
            }),
            MultiLineTextInput = v1.createElement(l_MultiLineTextInput_0, {
                LayoutOrder = 2,
                TextInputProps = {
                    Text = v13.props.ownershipTransferText,
                    Enabled = false
                },
                Style = "FilledRoundedBorder",
                Size = UDim2.new(1, 0, 1, -(20 + v11.Padding)),
                Position = UDim2.new(0, 0, 0, 0)
            })
        }),
        Button = v1.createElement(l_Button_0, {
            Text = l_Localization_0:getText("Plugin", "CloseButton"),
            Style = "Round",
            TextSize = 24,
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 1, -30),
            OnClick = function()
                l_props_0.close();
            end
        })
    });
end;
return v2.connect(function(v16, _)
    return {
        ownershipTransferText = v16.PluginReducer.ownershipTransferText
    };
end, function(v18)
    return {
        close = function()
            v18(v10(false));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v12)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local l_Selection_0 = game:GetService("Selection");
local v3 = require(l_script_FirstAncestor_0.Packages.React);
local v4 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v5 = require(l_script_FirstAncestor_0.Packages.Cryo);
local v6 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v6.ContextServices;
local l_UI_0 = v6.UI;
local l_Button_0 = v6.UI.Button;
local l_InstanceTreeView_0 = v6.UI.InstanceTreeView;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_StyleKey_0 = v6.Style.StyleKey;
local v13 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v14 = require(l_script_FirstAncestor_0.Src.Actions.SetRig);
local v15 = require(l_script_FirstAncestor_0.Src.Actions.SetScreen);
local v16 = require(l_script_FirstAncestor_0.Src.Util.getImportedRig);
local v17 = require(l_script_FirstAncestor_0.Src.Constants);
local v18 = v3.PureComponent:extend("SelectRigScreen");
v18.init = function(v19)
    v19.state = {
        Expansion = {
            [l_Workspace_0] = true
        },
        Selection = {},
        Instances = {
            l_Workspace_0
        }
    };
end;
v18.didMount = function(v20)
    local v21 = {};
    for _, v23 in l_Selection_0:Get() do
        if v23:IsDescendantOf(l_Workspace_0) then
            v21[v23] = true;
        end;
    end;
    if next(v21) == nil then
        local v24 = v16();
        if v24 then
            v21[v24] = true;
        end;
    end;
    if next(v21) ~= nil then
        v20:setState({
            Selection = v21
        });
    end;
end;
v18.render = function(v25)
    local l_props_0 = v25.props;
    local l_state_0 = v25.state;
    local l_Localization_0 = l_props_0.Localization;
    local v29 = {};
    for v30 in l_state_0.Selection, nil, nil do
        if typeof(v30) == "Instance" then
            table.insert(v29, v30);
        end;
    end;
    local v31 = (#v29 == 1 and v29[1].ClassName == "Model") and v29[1] or nil;
    return v3.createElement("Frame", {
        BackgroundColor3 = l_props_0.Stylizer[l_StyleKey_0.MainBackground],
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        UIPadding = v3.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v17.Padding),
            PaddingLeft = UDim.new(0, v17.Padding),
            PaddingRight = UDim.new(0, v17.Padding),
            PaddingTop = UDim.new(0, v17.Padding)
        }),
        Content = v3.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, -(30 + v17.Padding))
        }, {
            UIListLayout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                Padding = UDim.new(0, v17.Padding)
            }),
            TextLabel = v3.createElement(l_TextLabel_0, {
                LayoutOrder = 1,
                Text = l_Localization_0:getText("Plugin", "SelectImportedRig"),
                Style = "Title",
                Size = UDim2.new(1, 0, 0, 20),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Center
            }),
            MeshPartSelector = v3.createElement(l_InstanceTreeView_0, {
                LayoutOrder = 2,
                Size = UDim2.new(1, -100, 0, 200),
                Expansion = l_state_0.Expansion,
                Selection = l_state_0.Selection,
                Instances = l_state_0.Instances,
                OnSelectionChange = function(v32)
                    v25:setState({
                        Selection = v32
                    });
                end,
                OnExpansionChange = function(v33)
                    v25:setState({
                        Expansion = v5.Dictionary.join(v25.state.Expansion, v33)
                    });
                end
            })
        }),
        Button = v3.createElement(l_Button_0, {
            Text = l_Localization_0:getText("Plugin", "NextButton"),
            Style = not v31 and "Round" or "RoundPrimary",
            TextSize = 24,
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 1, -30),
            OnClick = function()
                if v31 then
                    l_props_0.setRig(v31);
                    l_props_0.setScreen(v17.Screens.InputSurfaceAppearanceIds);
                end;
            end
        })
    });
end;
return v4.connect(nil, function(v34)
    return {
        close = function()
            v34(v13(false));
        end,
        setRig = function(v35)
            v34(v14(v35));
        end,
        setScreen = function(v36)
            v34(v15(v36));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v18)));


return {
    Modes = {
        Head = "Head",
        Accessory = "Accessory",
        Mood = "Mood",
        Export = "Export"
    },
    Screens = {
        SelectRig = "SelectRig",
        InputSurfaceAppearanceIds = "InputSurfaceAppearanceIds",
        InputAccessoryType = "InputAccessoryType",
        InputAnimationId = "InputAnimationId",
        Error = "Error",
        OwnershipTransfer = "OwnershipTransfer"
    },
    AvatarImporterRigNames = {
        ImportedRthroRig = true,
        ImportedRthroSlenderRig = true,
        ImportedR15Rig = true,
        FBXImportGeneric = true
    },
    WindowSize = Vector2.new(640, 480),
    Padding = 15,
    Tag = "DynamicHeadExportTool"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
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_Plugin_0 = l_ContextServices_0.Plugin;
local l_UI_0 = v3.UI;
local l_Dialog_0 = l_UI_0.Dialog;
local l_PluginButton_0 = l_UI_0.PluginButton;
local l_PluginToolbar_0 = l_UI_0.PluginToolbar;
local v12 = require(l_script_FirstAncestor_0.Src.Constants);
local v13 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v14 = require(l_script_FirstAncestor_0.Src.Actions.SetMode);
local v15 = require(l_script_FirstAncestor_0.Src.Actions.SetScreen);
local v16 = require(l_script_FirstAncestor_0.Src.Actions.SetOwnershipTransferText);
local v17 = require(l_script_FirstAncestor_0.Src.Thunks.Export);
local v18 = require(l_script_FirstAncestor_0.Src.Components.Screens.SelectRigScreen);
local v19 = require(l_script_FirstAncestor_0.Src.Components.Screens.InputSurfaceAppearanceIdsScreen);
local v20 = require(l_script_FirstAncestor_0.Src.Components.Screens.InputAccessoryTypeScreen);
local v21 = require(l_script_FirstAncestor_0.Src.Components.Screens.InputAnimationIdScreen);
local v22 = require(l_script_FirstAncestor_0.Src.Components.Screens.ErrorScreen);
local v23 = require(l_script_FirstAncestor_0.Src.Components.Screens.OwnershipTransferScreen);
local v24 = require(l_script_FirstAncestor_0.Src.Util.getOwnershipTransferAssetIds);
local v25 = v1.PureComponent:extend("MainPlugin");
v25.init = function(v26)
    v26.onClose = function()
        v26.props.setEnabled(false);
    end;
end;
v25.renderButtons = function(v27, v28)
    local l_Localization_1 = v27.props.Localization;
    return {
        v1.createElement(l_PluginButton_0, {
            Toolbar = v28,
            Active = false,
            Id = "head_button",
            Title = l_Localization_1:getText("Plugin", "HeadButton"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            ClickableWhenViewportHidden = true,
            OnClick = function()
                v27.props.setEnabled(true);
                v27.props.setMode(v12.Modes.Head);
                v27.props.setScreen(v12.Screens.SelectRig);
            end
        }),
        v1.createElement(l_PluginButton_0, {
            Toolbar = v28,
            Active = false,
            Id = "accessory_button",
            Title = l_Localization_1:getText("Plugin", "AccessoryButton"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            ClickableWhenViewportHidden = true,
            OnClick = function()
                v27.props.setEnabled(true);
                v27.props.setMode(v12.Modes.Accessory);
                v27.props.setScreen(v12.Screens.SelectRig);
            end
        }),
        v1.createElement(l_PluginButton_0, {
            Toolbar = v28,
            Active = false,
            Id = "mood_button",
            Title = l_Localization_1:getText("Plugin", "MoodButton"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            ClickableWhenViewportHidden = true,
            OnClick = function()
                v27.props.setEnabled(true);
                v27.props.setMode(v12.Modes.Mood);
                v27.props.setScreen(v12.Screens.InputAnimationId);
            end
        }),
        v1.createElement(l_PluginButton_0, {
            Toolbar = v28,
            Active = false,
            Id = "export_button",
            Title = l_Localization_1:getText("Plugin", "ExportButton"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            ClickableWhenViewportHidden = true,
            OnClick = function()
                v27.props.export(v27.props.Plugin:get());
            end
        }),
        v1.createElement(l_PluginButton_0, {
            Toolbar = v28,
            Active = false,
            Id = "ownership_button",
            Title = l_Localization_1:getText("Plugin", "OwnershipButton"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            ClickableWhenViewportHidden = true,
            OnClick = function()
                v27.props.setEnabled(true);
                v27.props.setOwnershipTransferText(table.concat(v24(), "\n"));
                v27.props.setScreen(v12.Screens.OwnershipTransfer);
            end
        })
    };
end;
v25.render = function(v30)
    local l_props_0 = v30.props;
    local l_Localization_2 = l_props_0.Localization;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        Toolbar = v1.createElement(l_PluginToolbar_0, {
            Title = l_Localization_2:getText("Plugin", "Toolbar"),
            RenderButtons = function(v33)
                return v30:renderButtons(v33);
            end
        }),
        MainWidget = not not l_props_0.enabled and v1.createElement(l_Dialog_0, {
            Enabled = l_props_0.enabled,
            Modal = true,
            Title = l_Localization_2:getText("Plugin", "Name"),
            Resizable = false,
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            Size = v12.WindowSize,
            OnClose = v30.onClose,
            [v1.Change.Enabled] = v30.onClose
        }, {
            SelectRigScreen = if l_props_0.screen == v12.Screens.SelectRig then v1.createElement(v18) else nil,
            InputSurfaceAppearanceIdsScreen = if l_props_0.screen == v12.Screens.InputSurfaceAppearanceIds then v1.createElement(v19) else nil,
            InputAccessoryTypeScreen = if l_props_0.screen == v12.Screens.InputAccessoryType then v1.createElement(v20) else nil,
            InputAnimationIdScreen = if l_props_0.screen == v12.Screens.InputAnimationId then v1.createElement(v21) else nil,
            ErrorScreen = if l_props_0.screen == v12.Screens.Error then v1.createElement(v22) else nil,
            OwnershipTransferScreen = if l_props_0.screen == v12.Screens.OwnershipTransfer then v1.createElement(v23) else nil
        }) or nil
    });
end;
return v2.connect(function(v34, _)
    return {
        enabled = v34.PluginReducer.enabled,
        screen = v34.PluginReducer.screen
    };
end, function(v36)
    return {
        setEnabled = function(v37)
            v36(v13(v37));
        end,
        setMode = function(v38)
            v36(v14(v38));
        end,
        setOwnershipTransferText = function(v39)
            v36(v16(v39));
        end,
        setScreen = function(v40)
            v36(v15(v40));
        end,
        export = function(v41)
            v36(v17(v41));
        end
    };
end)((l_withContext_0({
    Localization = l_Localization_0,
    Plugin = l_Plugin_0
})(v25)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Rodux);
local l_ContextServices_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_Store_0 = l_ContextServices_0.Store;
local v7 = require(l_script_FirstAncestor_0.Src.Reducers.MainReducer);
local v8 = require(l_script_FirstAncestor_0.Src.Resources.MakeTheme);
local l_SourceStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings;
local v11 = require(l_script_FirstAncestor_0.Src.MainPlugin);
local v12 = v1.PureComponent:extend("PluginWrapper");
v12.init = function(v13, _)
    v13.store = v2.Store.new(v7, nil, {
        v2.thunkMiddleware
    }, nil);
    v13.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "DynamicHeadExportTool"
    });
    v13.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
end;
v12.render = function(v15)
    local l_Plugin_1 = v15.props.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Store_0.new(v15.store),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v8(),
        v15.localization,
        v15.analytics
    }, {
        MainPlugin = v1.createElement(v11)
    });
end;
return v12;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
return require(l_script_FirstAncestor_0.Packages.Rodux).combineReducers({
    PluginReducer = require(l_script_FirstAncestor_0.Src.Reducers.PluginReducer)
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
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({
    enabled = false,
    mode = nil,
    screen = nil,
    rig = nil,
    errorText = nil,
    accessoryType = Enum.AccessoryType.Unknown,
    animationId = nil,
    colorMap = nil,
    metalnessMap = nil,
    normalMap = nil,
    roughnessMap = nil,
    ownershipTransferText = ""
}, {
    [require(l_Actions_0.SetEnabled).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            enabled = v5.enabled
        });
    end,
    [require(l_Actions_0.SetErrorText).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            errorText = v7.errorText
        });
    end,
    [require(l_Actions_0.SetMode).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            mode = v9.mode
        });
    end,
    [require(l_Actions_0.SetScreen).name] = function(v10, v11)
        return v2.Dictionary.join(v10, {
            screen = v11.screen
        });
    end,
    [require(l_Actions_0.SetRig).name] = function(v12, v13)
        return v2.Dictionary.join(v12, {
            rig = v13.rig
        });
    end,
    [require(l_Actions_0.SetSurfaceAppearanceIds).name] = function(v14, v15)
        return v2.Dictionary.join(v14, {
            colorMap = v15.colorMap,
            metalnessMap = v15.metalnessMap,
            normalMap = v15.normalMap,
            roughnessMap = v15.roughnessMap
        });
    end,
    [require(l_Actions_0.SetAccessoryType).name] = function(v16, v17)
        return v2.Dictionary.join(v16, {
            accessoryType = v17.accessoryType
        });
    end,
    [require(l_Actions_0.SetAnimationId).name] = function(v18, v19)
        return v2.Dictionary.join(v18, {
            animationId = v19.animationId
        });
    end,
    [require(l_Actions_0.SetOwnershipTransferText).name] = function(v20, v21)
        return v2.Dictionary.join(v20, {
            ownershipTransferText = v21.ownershipTransferText
        });
    end
}));


local l_StudioTheme_0 = require(script:FindFirstAncestor("DynamicHeadExportTool").Packages.Framework).Style.Themes.StudioTheme;
local v1 = {};
return function(v2)
    local _ = nil;
    return (if not v2 then l_StudioTheme_0.new() else l_StudioTheme_0.mock()):extend(v1);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local l_CollectionService_0 = game:GetService("CollectionService");
local l_PublishService_0 = game:GetService("PublishService");
local l_Selection_0 = game:GetService("Selection");
local v5 = require(l_script_FirstAncestor_0.Src.Constants);
local v6 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v7 = require(l_script_FirstAncestor_0.Src.Actions.SetScreen);
local v8 = require(l_script_FirstAncestor_0.Src.Actions.SetOwnershipTransferText);
local v9 = require(l_script_FirstAncestor_0.Src.Util.getOwnershipTransferAssetIds);
return function(v10)
    return function(v11)
        local v12 = l_Selection_0:Get();
        l_PublishService_0:PublishDescendantAssets(l_Workspace_0);
        local v13 = v9();
        for _, v15 in l_CollectionService_0:GetTagged(v5.Tag) do
            l_Selection_0:Set(v15:GetChildren());
            v10:PromptSaveSelection(v15.Name);
        end;
        l_Selection_0:Set(v12);
        v11:dispatch(v6(true));
        v11:dispatch(v8(table.concat(v13, "\n")));
        v11:dispatch(v7(v5.Screens.OwnershipTransfer));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local l_CollectionService_0 = game:GetService("CollectionService");
local v3 = require(l_script_FirstAncestor_0.Src.Constants);
local v4 = require(l_script_FirstAncestor_0.Src.Util.fail);
local v5 = require(l_script_FirstAncestor_0.Src.Util.createSurfaceAppearance);
local function _(v6, v7)
    local v8 = true;
    if v7 ~= "" then
        v8 = string.sub(v6, -#v7) == v7;
    end;
    return v8;
end;
local v10 = {
    [Enum.AccessoryType.Hat] = Enum.AssetType.Hat,
    [Enum.AccessoryType.Hair] = Enum.AssetType.HairAccessory,
    [Enum.AccessoryType.Face] = Enum.AssetType.FaceAccessory,
    [Enum.AccessoryType.Neck] = Enum.AssetType.NeckAccessory,
    [Enum.AccessoryType.Shoulder] = Enum.AssetType.ShoulderAccessory,
    [Enum.AccessoryType.Front] = Enum.AssetType.FrontAccessory,
    [Enum.AccessoryType.Back] = Enum.AssetType.BackAccessory,
    [Enum.AccessoryType.Waist] = Enum.AssetType.WaistAccessory,
    [Enum.AccessoryType.TShirt] = Enum.AssetType.TShirtAccessory,
    [Enum.AccessoryType.Shirt] = Enum.AssetType.ShirtAccessory,
    [Enum.AccessoryType.Pants] = Enum.AssetType.PantsAccessory,
    [Enum.AccessoryType.Jacket] = Enum.AssetType.JacketAccessory,
    [Enum.AccessoryType.Sweater] = Enum.AssetType.SweaterAccessory,
    [Enum.AccessoryType.Shorts] = Enum.AssetType.ShortsAccessory,
    [Enum.AccessoryType.LeftShoe] = Enum.AssetType.LeftShoeAccessory,
    [Enum.AccessoryType.RightShoe] = Enum.AssetType.RightShoeAccessory,
    [Enum.AccessoryType.DressSkirt] = Enum.AssetType.DressSkirtAccessory,
    [Enum.AccessoryType.Eyebrow] = Enum.AssetType.EyebrowAccessory,
    [Enum.AccessoryType.Eyelash] = Enum.AssetType.EyelashAccessory
};
return function()
    return function(v11)
        local l_PluginReducer_0 = v11:getState().PluginReducer;
        local l_rig_0 = l_PluginReducer_0.rig;
        local l_accessoryType_0 = l_PluginReducer_0.accessoryType;
        local v15 = {};
        for _, v17 in l_rig_0:GetDescendants() do
            if v17:IsA("WrapLayer") then
                table.insert(v15, v17);
            end;
        end;
        if #v15 == 0 then
            return v4(v11, "Layered Clothing items not found");
        else
            local l_RootPart_0 = l_rig_0:FindFirstChild("RootPart");
            if l_RootPart_0 then
                local l_FaceFront_0 = l_RootPart_0:FindFirstChild("FaceFront");
                if l_FaceFront_0 and l_FaceFront_0:IsA("Attachment") then
                    for _, v21 in v15, nil, nil do
                        local l_Parent_0 = v21.Parent;
                        if l_Parent_0 and l_Parent_0:IsA("MeshPart") then
                            local l_Folder_0 = Instance.new("Folder");
                            l_Folder_0.Name = v10[l_accessoryType_0].Name;
                            l_CollectionService_0:AddTag(l_Folder_0, v3.Tag);
                            local l_Accessory_0 = Instance.new("Accessory");
                            local v25 = l_Parent_0:Clone();
                            local v26 = 0;
                            for _, v28 in v25:GetDescendants() do
                                if not v28:IsA("Attachment") then
                                    if not ((v28:IsA("WrapLayer") or v28:IsA("SurfaceAppearance")) or v28:IsA("Attachment")) then
                                        v28:Destroy();
                                    end;
                                else
                                    v26 = v26 + 1;
                                    if not (string.sub(v28.Name, -10) == "Attachment") then
                                        v28.Name = v28.Name .. "Attachment";
                                    end;
                                end;
                            end;
                            local l_WrapLayer_0 = v25:FindFirstChildOfClass("WrapLayer");
                            assert(l_WrapLayer_0);
                            l_WrapLayer_0.Name = "WrapLayer";
                            local v30 = v5(v11);
                            if v30 then
                                v25.TextureID = "";
                                v30.Parent = v25;
                            end;
                            if l_Parent_0.TextureID == "" and (not (v30 ~= nil) or v30.ColorMap == "") then
                                v25.BrickColor = BrickColor.new("Really black");
                            end;
                            l_FaceFront_0:Clone().Parent = v25;
                            v25.Name = "Handle";
                            v25.Parent = l_Accessory_0;
                            l_Accessory_0.Parent = l_Folder_0;
                            l_Folder_0.Parent = l_Workspace_0;
                        else
                            warn("Ignoring '" .. v21:GetFullName() .. "'");
                        end;
                    end;
                    return nil;
                else
                    return v4(v11, "Unable to find Attachment named \"FaceFront\" in RootPart");
                end;
            else
                return v4(v11, "Unable to find Part named \"RootPart\"");
            end;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local l_CollectionService_0 = game:GetService("CollectionService");
local v3 = require(l_script_FirstAncestor_0.Src.Constants);
local v4 = require(l_script_FirstAncestor_0.Src.Util.createSurfaceAppearance);
local v5 = require(l_script_FirstAncestor_0.Src.Util.fail);
local function v20(v6, v7, v8)
    local l_Head_0 = v7:FindFirstChild("Head");
    if l_Head_0 and l_Head_0:IsA("MeshPart") then
        local l_Folder_0 = Instance.new("Folder");
        l_Folder_0.Name = "Head";
        l_CollectionService_0:AddTag(l_Folder_0, v3.Tag);
        local v11 = l_Head_0:Clone();
        v11.Parent = l_Folder_0;
        if v8 then
            v8.Parent = v11;
            v11.TextureID = "";
        end;
        local l_AvatarPartScaleType_0 = v11:FindFirstChild("AvatarPartScaleType");
        if l_AvatarPartScaleType_0 and l_AvatarPartScaleType_0:IsA("StringValue") then
            local l_FaceCenterAttachment_0 = v11:FindFirstChild("FaceCenterAttachment");
            if l_FaceCenterAttachment_0 and l_FaceCenterAttachment_0:IsA("Attachment") then
                local l_FaceFrontAttachment_0 = v11:FindFirstChild("FaceFrontAttachment");
                if l_FaceFrontAttachment_0 and l_FaceFrontAttachment_0:IsA("Attachment") then
                    local l_HairAttachment_0 = v11:FindFirstChild("HairAttachment");
                    if l_HairAttachment_0 and l_HairAttachment_0:IsA("Attachment") then
                        local l_HatAttachment_0 = v11:FindFirstChild("HatAttachment");
                        if l_HatAttachment_0 and l_HatAttachment_0:IsA("Attachment") then
                            local l_NeckRigAttachment_0 = v11:FindFirstChild("NeckRigAttachment");
                            if l_NeckRigAttachment_0 and l_NeckRigAttachment_0:IsA("Attachment") then
                                if v11:FindFirstChildOfClass("WrapTarget") then
                                    if v11:FindFirstChildOfClass("FaceControls") then
                                        for _, v19 in v11:GetDescendants() do
                                            if not v19:IsA("Motor6D") then
                                                if v19:IsA("Vector3Value") and v19.Name == "OriginalSize" then
                                                    v19:Destroy();
                                                elseif v19:IsA("Vector3Value") and v19.Name == "OriginalPosition" then
                                                    v19:Destroy();
                                                end;
                                            else
                                                v19:Destroy();
                                            end;
                                        end;
                                        l_Folder_0.Parent = l_Workspace_0;
                                        return true;
                                    else
                                        return v5(v6, "Unable to find FaceControls");
                                    end;
                                else
                                    return v5(v6, "Unable to find WrapTarget");
                                end;
                            else
                                return v5(v6, "Unable to find NeckRigAttachment");
                            end;
                        else
                            return v5(v6, "Unable to find HatAttachment");
                        end;
                    else
                        return v5(v6, "Unable to find HairAttachment");
                    end;
                else
                    return v5(v6, "Unable to find FaceFrontAttachment");
                end;
            else
                return v5(v6, "Unable to find FaceCenterAttachment");
            end;
        else
            return v5(v6, "Unable to find AvatarPartScaleType");
        end;
    else
        return v5(v6, "Unable to find MeshPart named \"Head\"");
    end;
end;
local function v31(v21, v22, v23)
    local l_Head_1 = v22:FindFirstChild("Head");
    if l_Head_1 and l_Head_1:IsA("MeshPart") then
        local l_Folder_1 = Instance.new("Folder");
        l_Folder_1.Name = "Head_Special";
        l_CollectionService_0:AddTag(l_Folder_1, v3.Tag);
        local l_SpecialMesh_0 = Instance.new("SpecialMesh");
        l_SpecialMesh_0.Parent = l_Folder_1;
        l_SpecialMesh_0.MeshId = l_Head_1.MeshId;
        if not v23 then
            l_SpecialMesh_0.TextureId = l_Head_1.TextureID;
        else
            l_SpecialMesh_0.TextureId = v23.ColorMap;
        end;
        if not (l_Head_1:FindFirstChild("face") or l_Head_1:FindFirstChild("Face")) then
            l_CollectionService_0:AddTag(l_SpecialMesh_0, "NoFace");
        end;
        for _, v28 in l_Head_1:GetChildren() do
            if v28.ClassName == "Attachment" then
                local l_Vector3Value_0 = Instance.new("Vector3Value");
                l_Vector3Value_0.Name = v28.Name;
                l_Vector3Value_0.Value = v28.Position;
                l_Vector3Value_0.Parent = l_SpecialMesh_0;
            end;
        end;
        local l_AvatarPartScaleType_1 = l_Head_1:FindFirstChild("AvatarPartScaleType");
        if l_AvatarPartScaleType_1 then
            l_AvatarPartScaleType_1:Clone().Parent = l_SpecialMesh_0;
        end;
        l_Folder_1.Parent = l_Workspace_0;
        return true;
    else
        return v5(v21, "Unable to find MeshPart named \"Head\"");
    end;
end;
return function()
    return function(v32)
        local l_rig_0 = v32:getState().PluginReducer.rig;
        local v34 = v4(v32);
        if v20(v32, l_rig_0, v34) then
            if v31(v32, l_rig_0, v34) then
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local l_CollectionService_0 = game:GetService("CollectionService");
local v3 = require(l_script_FirstAncestor_0.Src.Constants);
return function()
    return function(v4)
        local l_animationId_0 = v4:getState().PluginReducer.animationId;
        local l_Folder_0 = Instance.new("Folder");
        l_Folder_0.Name = "MoodAnimation";
        l_CollectionService_0:AddTag(l_Folder_0, v3.Tag);
        local l_Folder_1 = Instance.new("Folder");
        l_Folder_1.Name = "R15Anim";
        l_Folder_1.Parent = l_Folder_0;
        local l_StringValue_0 = Instance.new("StringValue");
        l_StringValue_0.Name = "mood";
        l_StringValue_0.Parent = l_Folder_1;
        local l_Animation_0 = Instance.new("Animation");
        l_Animation_0.Name = "Animation1";
        l_Animation_0.AnimationId = string.format("rbxassetid://%s", l_animationId_0);
        l_Animation_0.Parent = l_StringValue_0;
        l_Folder_0.Parent = l_Workspace_0;
    end;
end;


local function _(v0)
    if not string.match(v0, "^%d+$") then
        return v0;
    else
        return string.format("rbxassetid://%s", v0);
    end;
end;
return function(v2)
    local l_PluginReducer_0 = v2:getState().PluginReducer;
    local l_colorMap_0 = l_PluginReducer_0.colorMap;
    local l_metalnessMap_0 = l_PluginReducer_0.metalnessMap;
    local l_normalMap_0 = l_PluginReducer_0.normalMap;
    local l_roughnessMap_0 = l_PluginReducer_0.roughnessMap;
    if ((l_colorMap_0 == "" and l_metalnessMap_0 == "") and l_normalMap_0 == "") and l_roughnessMap_0 == "" then
        return nil;
    else
        local l_SurfaceAppearance_0 = Instance.new("SurfaceAppearance");
        l_SurfaceAppearance_0.ColorMap = if not string.match(l_colorMap_0, "^%d+$") then l_colorMap_0 else string.format("rbxassetid://%s", l_colorMap_0);
        l_SurfaceAppearance_0.MetalnessMap = if not string.match(l_metalnessMap_0, "^%d+$") then l_metalnessMap_0 else string.format("rbxassetid://%s", l_metalnessMap_0);
        l_SurfaceAppearance_0.NormalMap = if not string.match(l_normalMap_0, "^%d+$") then l_normalMap_0 else string.format("rbxassetid://%s", l_normalMap_0);
        l_SurfaceAppearance_0.RoughnessMap = if not string.match(l_roughnessMap_0, "^%d+$") then l_roughnessMap_0 else string.format("rbxassetid://%s", l_roughnessMap_0);
        return l_SurfaceAppearance_0;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Src.Constants);
local v2 = require(l_script_FirstAncestor_0.Src.Actions.SetEnabled);
local v3 = require(l_script_FirstAncestor_0.Src.Actions.SetErrorText);
local v4 = require(l_script_FirstAncestor_0.Src.Actions.SetScreen);
return function(v5, v6)
    v5:dispatch(v2(true));
    v5:dispatch(v3(v6));
    v5:dispatch(v4(v1.Screens.Error));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_Workspace_0 = game:GetService("Workspace");
local v2 = require(l_script_FirstAncestor_0.Src.Constants);
return function()
    for _, v4 in l_Workspace_0:GetChildren() do
        if v4:IsA("Model") and v4.Name == "ImportedFbx" then
            local l_R15ArtistIntent_0 = v4:FindFirstChild("R15ArtistIntent");
            if l_R15ArtistIntent_0 then
                return l_R15ArtistIntent_0;
            end;
        elseif not (not v4:IsA("Model") or not v2.AvatarImporterRigNames[v4.Name]) then
            return v4;
        end;
    end;
    return nil;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local l_CollectionService_0 = game:GetService("CollectionService");
local v2 = require(l_script_FirstAncestor_0.Src.Constants);
local function _(v3, v4)
    if type(v4) == "string" then
        local v5 = string.match(v4, "(%d+)$");
        if v5 ~= nil then
            v3[v5] = true;
            return ;
        end;
    elseif type(v4) == "number" then
        v3[v4] = true;
        return ;
    else
        assert(false, "Unexpected asset ID value type '" .. type(v4) .. "'");
    end;
end;
local function v22(v7, v8)
    if not v8:IsA("MeshPart") then
        if not v8:IsA("SpecialMesh") then
            if not v8:IsA("Animation") then
                if v8:IsA("SurfaceAppearance") then
                    local l_ColorMap_0 = v8.ColorMap;
                    if type(l_ColorMap_0) == "string" then
                        local v10 = string.match(l_ColorMap_0, "(%d+)$");
                        if v10 ~= nil then
                            v7[v10] = true;
                        end;
                    elseif type(l_ColorMap_0) == "number" then
                        v7[l_ColorMap_0] = true;
                    else
                        assert(false, "Unexpected asset ID value type '" .. type(l_ColorMap_0) .. "'");
                    end;
                    l_ColorMap_0 = v8.MetalnessMap;
                    if type(l_ColorMap_0) == "string" then
                        local v11 = string.match(l_ColorMap_0, "(%d+)$");
                        if v11 ~= nil then
                            v7[v11] = true;
                        end;
                    elseif type(l_ColorMap_0) == "number" then
                        v7[l_ColorMap_0] = true;
                    else
                        assert(false, "Unexpected asset ID value type '" .. type(l_ColorMap_0) .. "'");
                    end;
                    l_ColorMap_0 = v8.NormalMap;
                    if type(l_ColorMap_0) == "string" then
                        local v12 = string.match(l_ColorMap_0, "(%d+)$");
                        if v12 ~= nil then
                            v7[v12] = true;
                        end;
                    elseif type(l_ColorMap_0) == "number" then
                        v7[l_ColorMap_0] = true;
                    else
                        assert(false, "Unexpected asset ID value type '" .. type(l_ColorMap_0) .. "'");
                    end;
                    l_ColorMap_0 = v8.RoughnessMap;
                    if type(l_ColorMap_0) == "string" then
                        local v13 = string.match(l_ColorMap_0, "(%d+)$");
                        if v13 ~= nil then
                            v7[v13] = true;
                            return ;
                        end;
                    elseif type(l_ColorMap_0) == "number" then
                        v7[l_ColorMap_0] = true;
                        return ;
                    else
                        assert(false, "Unexpected asset ID value type '" .. type(l_ColorMap_0) .. "'");
                    end;
                end;
            else
                local l_AnimationId_0 = v8.AnimationId;
                if type(l_AnimationId_0) == "string" then
                    local v15 = string.match(l_AnimationId_0, "(%d+)$");
                    if v15 ~= nil then
                        v7[v15] = true;
                        return ;
                    end;
                elseif type(l_AnimationId_0) == "number" then
                    v7[l_AnimationId_0] = true;
                    return ;
                else
                    assert(false, "Unexpected asset ID value type '" .. type(l_AnimationId_0) .. "'");
                    return ;
                end;
            end;
        else
            local l_MeshId_0 = v8.MeshId;
            if type(l_MeshId_0) == "string" then
                local v17 = string.match(l_MeshId_0, "(%d+)$");
                if v17 ~= nil then
                    v7[v17] = true;
                end;
            elseif type(l_MeshId_0) == "number" then
                v7[l_MeshId_0] = true;
            else
                assert(false, "Unexpected asset ID value type '" .. type(l_MeshId_0) .. "'");
            end;
            l_MeshId_0 = v8.TextureId;
            if type(l_MeshId_0) == "string" then
                local v18 = string.match(l_MeshId_0, "(%d+)$");
                if v18 ~= nil then
                    v7[v18] = true;
                    return ;
                end;
            elseif type(l_MeshId_0) == "number" then
                v7[l_MeshId_0] = true;
                return ;
            else
                assert(false, "Unexpected asset ID value type '" .. type(l_MeshId_0) .. "'");
                return ;
            end;
        end;
    else
        local l_MeshId_1 = v8.MeshId;
        if type(l_MeshId_1) == "string" then
            local v20 = string.match(l_MeshId_1, "(%d+)$");
            if v20 ~= nil then
                v7[v20] = true;
            end;
        elseif type(l_MeshId_1) == "number" then
            v7[l_MeshId_1] = true;
        else
            assert(false, "Unexpected asset ID value type '" .. type(l_MeshId_1) .. "'");
        end;
        l_MeshId_1 = v8.TextureID;
        if type(l_MeshId_1) == "string" then
            local v21 = string.match(l_MeshId_1, "(%d+)$");
            if v21 ~= nil then
                v7[v21] = true;
                return ;
            end;
        elseif type(l_MeshId_1) == "number" then
            v7[l_MeshId_1] = true;
            return ;
        else
            assert(false, "Unexpected asset ID value type '" .. type(l_MeshId_1) .. "'");
            return ;
        end;
    end;
end;
local _ = function(v23, v24)
    v22(v23, v24);
    for _, v26 in v24:GetDescendants() do
        v22(v23, v26);
    end;
end;
return function()
    local v28 = {};
    for _, v30 in l_CollectionService_0:GetTagged(v2.Tag) do
        v22(v28, v30);
        for _, v32 in v30:GetDescendants() do
            v22(v28, v32);
        end;
    end;
    local v33 = {};
    for v34 in v28, nil, nil do
        table.insert(v33, v34);
    end;
    return v33;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("DynamicHeadExportTool");
local v1 = require(l_script_FirstAncestor_0.Packages.Rodux);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_TestHelpers_0 = v2.TestHelpers;
local l_ContextServices_0 = v2.ContextServices;
local v5 = {
    l_ContextServices_0.Analytics.mock(),
    l_ContextServices_0.Localization.mock(),
    l_ContextServices_0.Store.new(v1.Store.new(require(l_script_FirstAncestor_0.Src.Reducers.MainReducer), nil, nil, nil)),
    require(l_script_FirstAncestor_0.Src.Resources.MakeTheme)(true)
};
return function(v6)
    assert(type(v6) == "table", "Expected story to be a table");
    return l_TestHelpers_0.provideMockContext(v5, v6);
end;


require(script.Parent.defineLuaFlags);
local l_DebugErrorReporterTestInStudio_0 = game:GetFastFlag("DebugErrorReporterTestInStudio");
local l_Parent_0 = script.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.TestLoader);
v3.launch(l_Parent_0.Name, l_Parent_0.ErrorReporter);
if not v3.isCli() then
    local v4 = require(l_Parent_0.ErrorReporter.StudioPluginErrorReporter);
    local l_ExpectedPrefix_0 = script.Parent:FindFirstChild("ExpectedPrefix");
    assert(l_ExpectedPrefix_0 ~= nil);
    local v6 = v4.new({
        expectedSecurityLevel = 6,
        expectedPrefix = l_ExpectedPrefix_0.Value,
        networking = if not l_DebugErrorReporterTestInStudio_0 then nil else v2.Http.Networking.new({
            isInternal = true,
            loggingLevel = 7,
            allowYielding = false,
            httpImpl = {
                ClassName = "ErrorReporter Plugin's HttpImpl",
                RequestInternal = function()
                    return {
                        Start = function()
                        end
                    };
                end
            }
        }),
        services = if not l_DebugErrorReporterTestInStudio_0 then nil else {
            RunService = {
                GetRobloxVersion = function()
                    return "0.0.0.2";
                end
            }
        }
    });
    plugin.Unloading:Connect(function()
        v6:stop();
    end);
    if l_DebugErrorReporterTestInStudio_0 then
        error("ErrorReporter test error");
    end;
    return ;
else
    return ;
end;


local l_t_0 = require(script.Parent.Parent.Parent.Packages.Framework).Util.Typecheck.t;
local v1 = l_t_0.strictInterface({
    guessed_frame = l_t_0.optional(l_t_0.boolean),
    funcName = l_t_0.optional(l_t_0.string),
    address = l_t_0.optional(l_t_0.string),
    line = l_t_0.optional(l_t_0.string),
    column = l_t_0.optional(l_t_0.string),
    sourceCode = l_t_0.optional(l_t_0.string),
    library = l_t_0.optional(l_t_0.string),
    debug_identifier = l_t_0.optional(l_t_0.string),
    faulted = l_t_0.optional(l_t_0.boolean),
    registers = l_t_0.optional(l_t_0.map(l_t_0.string, l_t_0.some(l_t_0.string, l_t_0.number)))
});
local v2 = l_t_0.strictInterface({
    name = l_t_0.optional(l_t_0.string),
    fault = l_t_0.optional(l_t_0.boolean),
    stack = l_t_0.optional(l_t_0.array(v1))
});
local v3 = l_t_0.strictInterface({
    name = l_t_0.string,
    registers = l_t_0.map(l_t_0.string, l_t_0.string)
});
local v4 = l_t_0.strictInterface({
    text = l_t_0.optional(l_t_0.string),
    startLine = l_t_0.optional(l_t_0.number),
    startColumn = l_t_0.optional(l_t_0.number),
    startPos = l_t_0.optional(l_t_0.number),
    path = l_t_0.optional(l_t_0.string),
    tabWidth = l_t_0.optional(l_t_0.number)
});
local v5 = l_t_0.strictInterface({
    read = l_t_0.boolean,
    write = l_t_0.boolean,
    exec = l_t_0.boolean
});
local v6 = l_t_0.strictInterface({
    start = l_t_0.string,
    size = l_t_0.optional(l_t_0.number),
    data = l_t_0.optional(l_t_0.string),
    perms = l_t_0.optional(v5)
});
local v7 = l_t_0.strictInterface({
    start = l_t_0.string,
    size = l_t_0.number,
    code_file = l_t_0.optional(l_t_0.string),
    version = l_t_0.optional(l_t_0.string),
    debug_file = l_t_0.optional(l_t_0.string),
    debug_identifier = l_t_0.optional(l_t_0.string),
    debug_file_exists = l_t_0.optional(l_t_0.boolean)
});
local v8 = l_t_0.optional(l_t_0.map(l_t_0.string, l_t_0.some(l_t_0.string, l_t_0.number, l_t_0.boolean)));
local function v16(v9)
    local function v10(v11)
        if type(v11) == "table" then
            for v12, v13 in pairs(v11) do
                local v14, v15 = v10(v13);
                if not v14 then
                    return false, string.format("error when checking key: %s - %s", v12, v15);
                end;
            end;
            return true;
        else
            return l_t_0.some(l_t_0.string, l_t_0.number, l_t_0.boolean)(v11);
        end;
    end;
    return v10(v9);
end;
local v17 = l_t_0.optional(l_t_0.map(l_t_0.string, v16));
return {
    IBacktraceStack = v1,
    IBacktraceThread = v2,
    IArch = v3,
    ISourceCode = v4,
    IPerm = v5,
    IMemory = v6,
    IModule = v7,
    IAttributes = v8,
    IAnnotation = v16,
    IAnnotations = v17,
    IBacktraceReport = l_t_0.intersection(l_t_0.strictInterface({
        uuid = l_t_0.string,
        timestamp = l_t_0.number,
        lang = l_t_0.string,
        langVersion = l_t_0.string,
        agent = l_t_0.string,
        agentVersion = l_t_0.string,
        threads = l_t_0.map(l_t_0.string, v2),
        mainThread = l_t_0.string,
        attributes = v8,
        annotations = v17,
        symbolication = l_t_0.optional(l_t_0.literal("minidump")),
        entryThread = l_t_0.optional(l_t_0.string),
        arch = l_t_0.optional(v3),
        fingerprint = l_t_0.optional(l_t_0.string),
        classifiers = l_t_0.optional(l_t_0.array(l_t_0.string)),
        sourceCode = l_t_0.optional(l_t_0.map(l_t_0.string, v4)),
        memory = l_t_0.optional(l_t_0.array(v6)),
        modules = l_t_0.optional(l_t_0.array(v7))
    }), function(v18)
        local v19 = false;
        for _, v21 in pairs(v18.threads) do
            local l_stack_0 = v21.stack;
            if l_stack_0 ~= nil then
                for _, v24 in ipairs(l_stack_0) do
                    if v24.registers ~= nil then
                        v19 = true;
                        break;
                    end;
                end;
            end;
            if v19 then
                break;
            end;
        end;
        if v19 and v18.arch == nil then
            return false, "arch must exist if you want to have registers in the stack";
        else
            return true;
        end;
    end),
    IBacktraceReporter = l_t_0.strictInterface({
        networking = l_t_0.interface({
            request = l_t_0.callback,
            post = l_t_0.callback
        }),
        accessToken = l_t_0.string,
        processErrorReportMethod = l_t_0.optional(l_t_0.callback),
        queueOptions = l_t_0.optional(l_t_0.strictInterface({
            queueTimeLimit = l_t_0.optional(l_t_0.numberPositive),
            queueErrorLimit = l_t_0.optional(l_t_0.numberPositive),
            queueKeyLimit = l_t_0.optional(l_t_0.numberPositive)
        })),
        generateLogMethod = l_t_0.optional(l_t_0.callback),
        logIntervalInSeconds = l_t_0.optional(l_t_0.numberPositive)
    })
};


local l_HttpService_0 = game:GetService("HttpService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_t_0 = v2.Util.Typecheck.t;
local v5 = require(script.Parent.BacktraceInterfaces);
local v6 = require(script.Parent.processErrorStack);
local v7 = {
    IAttributes = v5.IAttributes,
    IAnnotations = v5.IAnnotations
};
v7.__index = v7;
local l_status_0, _ = pcall(function()
    return game:GetService("ProcessService");
end);
v7.new = function()
    local v10 = {
        uuid = l_HttpService_0:GenerateGUID(false):lower(),
        timestamp = os.time((os.date("*t"))),
        lang = "lua",
        langVersion = "Roblox" .. _VERSION,
        agent = "backtrace-Lua",
        agentVersion = "0.1.0",
        threads = {},
        mainThread = "default"
    };
    setmetatable(v10, v7);
    return v10;
end;
v7.fromMessageAndStack = function(v11, v12)
    assert(l_t_0.string(v11), "Expected errorMessage to be a string");
    assert(l_t_0.string(v12), "Expected errorStack to be a string");
    local v13 = v7.new();
    v13:addAttributes({
        ["error.message"] = v11,
        PlayerId = not l_status_0 and game:GetService("StudioService"):GetUserId() or nil
    });
    local v14, v15 = v6(v12);
    v13:addStackToMainThread(v14);
    v13.sourceCode = v15;
    return v13;
end;
v7.validate = function(v16)
    return v5.IBacktraceReport(v16);
end;
v7.addAttributes = function(v17, v18)
    assert(v17.IAttributes(v18), "Expected newAttributes to be a table");
    v17.attributes = v3.Dictionary.join(v17.attributes or {}, v18);
end;
v7.addAnnotations = function(v19, v20)
    assert(v19.IAnnotations(v20), "Expected newAnnotations to be a table");
    v19.annotations = v3.Dictionary.join(v19.annotations or {}, v20);
end;
v7.addStackToThread = function(v21, v22, v23)
    assert(l_t_0.table(v22), "Expected stack to be an array of tables");
    assert(l_t_0.string(v23), "Expected threadName to be a string");
    v21.threads = v3.Dictionary.join(v21.threads, {
        [v23] = {
            name = v23,
            stack = v22
        }
    });
end;
v7.addStackToMainThread = function(v24, v25)
    assert(l_t_0.table(v25), "Expected stack to be an array of tables");
    v24:addStackToThread(v25, v24.mainThread);
end;
return v7;


return function(v0)
    assert(type(v0) == "string", "pathStr must be a string");
    return string.match(v0, "([^.]*)$");
end;


local v0 = require(script.Parent.splitStringWithMarks);
local v1 = require(script.Parent.findFileNameFromPath);
return function(v2)
    local v3 = {};
    local v4 = {};
    local v5 = 0;
    if type(v2) ~= "string" then
        return v3, v4;
    else
        for v6 in v2:gmatch("[^\r\n]+") do
            local _ = nil;
            local v8 = nil;
            local v9 = nil;
            local v10 = nil;
            local v11, v12 = v0(v6, {
                ", line ",
                ", Line ",
                ":"
            });
            v8 = v11;
            v11, v12 = v0(v12, {
                " - "
            });
            v10 = v11;
            v9 = v12;
            if v10 ~= "" and v8 ~= "" then
                local v13;
                v11, v12, v13 = string.find(v8, "Script '(.*)'");
                if v13 ~= nil then
                    v8 = v13;
                end;
                local v14 = v4[v8];
                if v14 == nil then
                    v5 = v5 + 1;
                    v14 = v5;
                    v4[v8] = v14;
                end;
                if v9 == "" then
                    v9 = v1(v8);
                end;
                table.insert(v3, {
                    line = v10,
                    funcName = v9,
                    sourceCode = tostring(v14)
                });
            end;
        end;
        local v15 = {};
        for v16, v17 in pairs(v4) do
            v15[tostring(v17)] = {
                path = v16
            };
        end;
        return v3, v15;
    end;
end;


return function(v0, v1)
    assert(type(v0) == "string", "Expected the string to split to be a string");
    local v2 = false;
    if type(v1) == "table" then
        v2 = #v1 > 0;
    end;
    assert(v2, "Expected matches to be an array");
    for _, v4 in ipairs(v1) do
        local v5, v6 = string.find(v0, v4, nil, true);
        if v5 ~= nil then
            return string.sub(v0, 1, v5 - 1), (string.sub(v0, v6 + 1));
        end;
    end;
    return v0, "";
end;


local l_RunService_0 = game:GetService("RunService");
local l_t_0 = require(script.Parent.Parent.Packages.Framework).Util.Typecheck.t;
local v2 = l_t_0.tuple(l_t_0.callback, l_t_0.optional(l_t_0.strictInterface({
    queueTimeLimit = l_t_0.optional(l_t_0.numberPositive),
    queueErrorLimit = l_t_0.optional(l_t_0.numberPositive),
    queueKeyLimit = l_t_0.optional(l_t_0.numberPositive)
})));
local v3 = {};
v3.__index = v3;
v3.new = function(v4, v5)
    assert(v2(v4, v5));
    v5 = v5 or {};
    local v6 = {
        _reportMethod = v4,
        _queueTimeLimit = v5.queueTimeLimit or 30,
        _queueErrorLimit = v5.queueErrorLimit or 30,
        _queueKeyLimit = v5.queueKeyLimit or 10,
        _errors = {},
        _totalErrorCount = 0,
        _totalKeyCount = 0,
        _runningTime = 0,
        _renderSteppedConnection = nil
    };
    setmetatable(v6, v3);
    return v6;
end;
v3.hasError = function(v7, v8)
    if not l_t_0.string(v8) or v8 == "" then
        return false;
    else
        return v7._errors[v8] ~= nil;
    end;
end;
v3.addError = function(v9, v10, v11)
    assert(l_t_0.string(v10), "Expected errorKey to be a string");
    assert(l_t_0.any(v11), "Expected errorData to not be nil");
    if v9._errors[v10] then
        v9._errors[v10].count = v9._errors[v10].count + 1;
    else
        v9._errors[v10] = {
            data = v11,
            count = 1
        };
        v9._totalKeyCount = v9._totalKeyCount + 1;
    end;
    v9._totalErrorCount = v9._totalErrorCount + 1;
    if v9:isReadyToReport() then
        v9:reportAllErrors();
    end;
end;
v3.isReadyToReport = function(v12)
    return (v12._queueKeyLimit <= v12._totalKeyCount or v12._queueErrorLimit <= v12._totalErrorCount) or v12._totalErrorCount > 0 and v12._queueTimeLimit <= v12._runningTime;
end;
v3.reportAllErrors = function(v13)
    local v14 = v13._errors or {};
    v13._errors = {};
    v13._totalErrorCount = 0;
    v13._totalKeyCount = 0;
    v13._runningTime = 0;
    for v15, v16 in pairs(v14) do
        v13._reportMethod(v15, v16.data, v16.count);
    end;
end;
v3._onQueueTimerTick = function(v17, v18)
    v17._runningTime = v17._runningTime + v18;
    if v17:isReadyToReport() then
        v17:reportAllErrors();
    end;
end;
v3.startTimer = function(v19)
    if v19._renderSteppedConnection == nil then
        v19._runningTime = 0;
        v19._renderSteppedConnection = l_RunService_0.RenderStepped:Connect(function(v20)
            v19:_onQueueTimerTick(v20);
        end);
    end;
end;
v3.stopTimer = function(v21)
    if v21._renderSteppedConnection ~= nil then
        v21._renderSteppedConnection:Disconnect();
        v21._runningTime = 0;
        v21._renderSteppedConnection = nil;
    end;
    v21:reportAllErrors();
end;
return v3;


local l_StudioErrorReporterFilterJunkCallstacks_0 = game:GetFastFlag("StudioErrorReporterFilterJunkCallstacks");
local l_ReportOTAPluginVersionToBacktrace2_0 = game:GetFastFlag("ReportOTAPluginVersionToBacktrace2");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_HttpService_0 = game:GetService("HttpService");
local l_RunService_0 = game:GetService("RunService");
local l_ScriptContext_0 = game:GetService("ScriptContext");
local l_PluginManagementService_0 = game:GetService("PluginManagementService");
local l_Parent_0 = script.Parent.Parent;
local v9 = require(l_Parent_0.Packages.Framework);
local v10 = require(l_Parent_0.Packages.React);
local l_Networking_0 = v9.Http.Networking;
local l_t_0 = v9.Util.Typecheck.t;
local v13 = require(script.Parent.Backtrace.BacktraceReporter);
local l_FVariable_0 = settings():GetFVariable("StudioPluginsBacktraceToken");
local v15 = l_t_0.strictInterface({
    expectedSecurityLevel = l_t_0.integer,
    expectedPrefix = l_t_0.string,
    networking = l_t_0.optional(l_t_0.interface({
        request = l_t_0.callback
    })),
    errorSignal = l_t_0.optional(l_t_0.interface({
        Connect = l_t_0.callback
    })),
    services = l_t_0.optional(l_t_0.interface({
        HttpService = l_t_0.optional(l_t_0.interface({
            GetUserAgent = l_t_0.callback
        })),
        RunService = l_t_0.optional(l_t_0.interface({
            GetRobloxVersion = l_t_0.callback
        })),
        ContentProvider = l_t_0.optional(l_t_0.interface({
            BaseUrl = l_t_0.string
        }))
    }))
});
local function _(v16, v17)
    return string.format("%s.%s", v16, v17);
end;
local v19 = {};
v19.__index = v19;
v19.new = function(v20)
    assert(v15(v20), "Expected the correct args");
    local l_expectedSecurityLevel_0 = v20.expectedSecurityLevel;
    local l_expectedPrefix_0 = v20.expectedPrefix;
    assert(l_expectedPrefix_0 ~= "", "expectedPrefix must not be an empty string");
    local v23 = v20.networking or l_Networking_0.new({
        isInternal = true
    });
    local v24 = v20.errorSignal or l_ScriptContext_0.ErrorDetailed;
    local v25 = v20.services or {};
    local v26 = v25.AnalyticsService or l_RbxAnalyticsService_0;
    local v27 = v25.RunService or l_RunService_0;
    local v28 = v25.HttpService or l_HttpService_0;
    local v29 = v25.ContentProvider or l_ContentProvider_0;
    local l_v27_RobloxVersion_0 = v27:GetRobloxVersion();
    local l_v28_UserAgent_0 = v28:GetUserAgent();
    local l_BaseUrl_0 = v29.BaseUrl;
    local v33 = setmetatable({
        _hasReported = {}
    }, v19);
    v33.errorSignal = v24;
    v33.analyticsService = v26;
    v33.staticAttributes = {
        StudioVersion = l_v27_RobloxVersion_0,
        UserAgent = l_v28_UserAgent_0,
        BaseUrl = l_BaseUrl_0
    };
    v33.reporter = v13.new({
        networking = v23,
        accessToken = l_FVariable_0,
        processErrorReportMethod = function(v34)
            v34:addAttributes(v33.staticAttributes);
            return v34;
        end
    });
    v33.getOTAPluginVersion = not not l_ReportOTAPluginVersionToBacktrace2_0 and function(v35)
        local v36 = string.sub(v35, #l_expectedPrefix_0 + 2, #v35 - 5);
        local l_l_PluginManagementService_0_OTAPluginVersion_0 = l_PluginManagementService_0:GetOTAPluginVersion(v36);
        game:GetService("RbxAnalyticsService"):reportInfluxSeries("PluginOTAErrorAnalytics", {
            eventName = "ErrorReporter",
            longPluginName = v35,
            pluginName = v36,
            otaVersion = l_l_PluginManagementService_0_OTAPluginVersion_0
        }, game:GetFastInt("PluginOTAErrorAnalyticsHundredthsPercentage"));
        return l_l_PluginManagementService_0_OTAPluginVersion_0;
    end or nil;
    if l_v27_RobloxVersion_0 ~= "0.0.0.1" then
        v33.errorToken = v33.errorSignal:Connect(function(v38, v39, _, v41, v42)
            if v42 ~= l_expectedSecurityLevel_0 then
                return ;
            elseif string.find(v39, l_expectedPrefix_0) ~= 1 then
                return ;
            elseif not l_StudioErrorReporterFilterJunkCallstacks_0 or not string.match(v38, "Requested module experienced an error while loading") then
                local v43 = string.match(v39, (string.format("^(%s_%%a+%%.rbxm)", l_expectedPrefix_0)));
                if v43 == nil then
                    return ;
                else
                    local v44, v45 = v10.unstable_parseReactError(v38);
                    v38 = v44.message;
                    if v44.stack then
                        v39 = v44.stack;
                    end;
                    v33:_reportError(v43, v38, v39, v41 or v45);
                    return ;
                end;
            else
                return ;
            end;
        end);
    end;
    return v33;
end;
v19._reportError = function(v46, v47, v48, v49, v50)
    local v51 = not v46._hasReported[v47];
    v46.reporter:updateSharedAttributes({
        PluginName = v47,
        FirstErrorInSession = not v51 and "false" or "true",
        OTAPluginVersion = not not l_ReportOTAPluginVersionToBacktrace2_0 and v46.getOTAPluginVersion(v47) or nil
    });
    v46.reporter:reportErrorDeferred(v48, v49, v50, v51);
    v46.analyticsService:ReportCounter(string.format("%s.%s", "StudioPluginErrors", v47), 1);
    if not v46._hasReported[v47] then
        v46._hasReported[v47] = true;
        v46.analyticsService:ReportCounter(string.format("%s.%s", "StudioPluginErrorsBySession", v47), 1);
    end;
end;
v19.report = function(v52, v53, v54)
    assert(type(v53) == "string", "Expected pluginName to be a string");
    assert(type(v54) == "string", "Expected errorMessage to be a string");
    v52:_reportError(v53, v54, debug.traceback(), nil);
end;
v19.stop = function(v55)
    v55.reporter:stop();
    if v55.errorToken ~= nil then
        v55.errorToken:Disconnect();
        v55.errorToken = nil;
    end;
end;
return v19;


return function(v0, v1)
    local l_Parent_0 = script.Parent.Parent;
    local v3 = require(l_Parent_0.Packages.Roact);
    local v4 = require(l_Parent_0.Src.MainPlugin);
    local v5 = nil;
    local function _()
        v0.Name = l_Parent_0.Name;
        v5 = v3.mount((v3.createElement(v4, {
            Plugin = v0,
            ClickableWhenViewportHidden = true,
            pluginLoaderContext = v1
        })));
    end;
    v0.Unloading:Connect(function()
        if v5 then
            v3.unmount(v5);
            v5 = nil;
        end;
    end);
    v0.Name = l_Parent_0.Name;
    v5 = v3.mount((v3.createElement(v4, {
        Plugin = v0,
        ClickableWhenViewportHidden = true,
        pluginLoaderContext = v1
    })));
end;


local l_cryo_0 = script.Parent._Index.roblox_cryo.cryo;
if l_cryo_0.ClassName == "ModuleScript" then
    return require(l_cryo_0);
else
    return l_cryo_0;
end;


local l_testez_0 = script.Parent.Parent._Index.roblox_testez.testez;
if l_testez_0.ClassName == "ModuleScript" then
    return require(l_testez_0);
else
    return l_testez_0;
end;


local l_DeveloperFramework_0 = script.Parent._Index.DeveloperFramework.DeveloperFramework;
if l_DeveloperFramework_0.ClassName == "ModuleScript" then
    return require(l_DeveloperFramework_0);
else
    return l_DeveloperFramework_0;
end;


local l_roact_0 = script.Parent._Index.roblox_roact.roact;
if l_roact_0.ClassName == "ModuleScript" then
    return require(l_roact_0);
else
    return l_roact_0;
end;


local v0 = script.Parent._Index["roblox_roact-rodux"]["roact-rodux"];
if v0.ClassName == "ModuleScript" then
    return require(v0);
else
    return v0;
end;


local l_rodux_0 = script.Parent._Index.roblox_rodux.rodux;
if l_rodux_0.ClassName == "ModuleScript" then
    return require(l_rodux_0);
else
    return l_rodux_0;
end;


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1, v2)
    assert(type(v0) == "string", ("Expected view to be a string, received %s"):format((type(v0))));
    assert(type(v1) == "string", ("Expected name to be a string, received %s"):format((type(v1))));
    return {
        item = {
            Name = v1,
            View = v0,
            Data = v2
        }
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    assert(type(v0) == "string", ("Expected item to be a string, received %s"):format((type(v0))));
    return {
        name = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function()
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    assert(type(v0) == "string", ("Expected item to be a string, received %s"):format((type(v0))));
    return {
        historyItem = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    assert(type(v0) == "table", ("Expected pair to be a table, received %s"):format((type(v0))));
    return {
        pair = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    assert(type(v0) == "table", ("Expected parameters to be a table, received %s"):format((type(v0))));
    return {
        parameters = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    assert(type(v0) == "string", ("Expected themeName to be a string, received %s"):format((type(v0))));
    return {
        themeName = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        view = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v5 = require(l_Parent_0.Src.Util.Constants);
local l_INPUT_PANE_LAYOUT_0 = v5.INPUT_PANE_LAYOUT;
local l_UNIMPLEMENTED_WARNING_0 = v5.UNIMPLEMENTED_WARNING;
local l_Button_0 = v2.UI.Button;
local v9 = v1.PureComponent:extend("ButtonArray");
local function v10()
    warn(l_UNIMPLEMENTED_WARNING_0);
end;
v9.render = function(v11)
    local l_props_0 = v11.props;
    local v13 = l_props_0.OnClearClicked or v10;
    local v14 = l_props_0.OnSaveClicked or v10;
    local v15 = l_props_0.OnSendClicked or v10;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Horizontal_0 = l_Stylizer_0.Layout.Horizontal;
    local l_Sizes_0 = l_Stylizer_0.Sizes;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_Sizes_0.ShortHeight),
        BackgroundTransparency = 1,
        LayoutOrder = l_INPUT_PANE_LAYOUT_0.ConfirmationButtons
    }, {
        Layout = v1.createElement("UIListLayout", l_Horizontal_0),
        Clear = v1.createElement(l_Button_0, {
            Size = UDim2.new(0, l_Sizes_0.ConfirmationButtonWidth, 1, 0),
            Text = "Clear",
            LayoutOrder = 1,
            OnClick = v13
        }),
        Save = v1.createElement(l_Button_0, {
            Size = UDim2.new(0, l_Sizes_0.ConfirmationButtonWidth, 1, 0),
            Text = "Save",
            LayoutOrder = 2,
            OnClick = v14
        }),
        Send = v1.createElement(l_Button_0, {
            Size = UDim2.new(0, l_Sizes_0.ConfirmationButtonWidth, 1, 0),
            Text = "Send",
            LayoutOrder = 3,
            OnClick = function()
                v15();
            end
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v9));