local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Actions.SetGroupInfo);
local v2 = require(l_Parent_0.Src.Network.Requests.ApiFetchGroupsHavePermission);
local v3 = require(l_Parent_0.Src.Network.Requests.ApiFetchOwnedGroups);
local v4 = require(l_Parent_0.Src.Flags.getFFlagCAP1107);
return function()
    return function(v5)
        v5:dispatch(v1({
            groups = {}
        }));
        local v6 = v2();
        if not v4() then
            v6:andThen(function(v7)
                v5:dispatch(v1(v7));
            end, function(_)
                error("Failed to fetch groups with edit permission");
            end);
            return ;
        else
            v6:andThen(function(v9)
                local v10 = {};
                for _, v12 in pairs(v9.groups) do
                    table.insert(v10, v12.id);
                end;
                v5:dispatch(v1({
                    groups = v9.groups
                }));
                return v3(v10);
            end):andThen(function(v13)
                v5:dispatch(v1({
                    ownedGroups = v13
                }));
            end):catch(function(_)
                error("Failed to fetch groups with edit permission");
            end);
            return ;
        end;
    end;
end;


return {
    LOADING = 1,
    INELIGIBLE = 2,
    OPT_OUT = 3,
    OPT_IN = 4
};


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_StudioService_0 = game:GetService("StudioService");
local v2 = require(script.Parent.Parent.Parent.Packages.Cryo);
return {
    reportSaveCancel = function(v3)
        local v4 = not v3 and "FileSavePlaceAsCancel" or "FilePublishPlaceAsCancel";
        local v5 = {
            userId = l_StudioService_0:GetUserId(),
            studioSid = l_RbxAnalyticsService_0:GetSessionId()
        };
        if l_StudioService_0:GetPlaceIsPersistedToCloud() then
            v5 = v2.Dictionary.join(v5, {
                placeId = game.PlaceId
            });
        end;
        l_RbxAnalyticsService_0:SendEventDeferred("studio", "TeamCreate", v4, v5);
    end
};


return {
    assertType = function(v0, v1, v2)
        assert(type(v0) == v1, v2 .. " must be " .. v1 .. ", received (" .. type(v0) .. ")");
    end,
    assertNullableType = function(v3, v4, v5)
        local v6 = true;
        if type(v3) ~= v4 then
            v6 = type(v3) == "nil";
        end;
        assert(v6, v5 .. " must be " .. v4 .. " or nil, received (" .. type(v3) .. ")");
    end
};


return {
    getOptInLocationsKeyName = function()
        return "OptInLocations";
    end,
    getChinaKeyName = function()
        return "China";
    end,
    getStatusKeyName = function()
        return "status";
    end,
    getRegionKeyName = function()
        return "region";
    end,
    getPublishPlaceAsKeyName = function()
        return "PublishPlaceAs";
    end,
    getPluginKeyName = function()
        return "plugin";
    end,
    getContextKeyName = function()
        return "context";
    end,
    getLuobuStudioDevPublishKeyName = function()
        return "LuobuStudioDevPublish";
    end,
    getTermsOfUseDialogKeyName = function()
        return "TermsOfUseDialog";
    end,
    getSelectedKeyName = function()
        return "selected";
    end,
    getCheckboxToggleKeyName = function()
        return "CheckboxToggle";
    end,
    getButtonClickedKeyName = function()
        return "buttonClicked";
    end,
    getCreateNewGameKeyName = function()
        return "CreateNewGame";
    end
};


local l_game_FastString_0 = game:GetFastString("DevPublishChinaRequirementsLink");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v2 = game:GetService("PluginPolicyService"):getPluginPolicy("PublishPlaceAs");
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.Packages.Cryo);
local v5 = require(l_Parent_0.Src.Util.KeyProvider);
local v6 = v5.getContextKeyName();
local v7 = v5.getPluginKeyName();
local v8 = v5.getPublishPlaceAsKeyName();
local v9 = v5.getRegionKeyName();
local v10 = v5.getStatusKeyName();
local v18 = {
    shouldShowDevPublishLocations = function()
        return v2.ShowOptInLocations;
    end,
    getIsOptInChina = function(v11)
        if v11 == nil then
            return false;
        else
            for _, v13 in pairs(v11) do
                local v14 = v13[v9];
                local v15 = v13[v10];
                if v14 == "China" and v15 == "Approved" then
                    return true;
                end;
            end;
            return false;
        end;
    end,
    getOptInLocationsRequirementsLink = function(_)
        return l_game_FastString_0;
    end,
    getPlayerAppDownloadLink = function(v17)
        return v2.PlayerAppDownloadLink[v17];
    end
};
local function _(v19, v20)
    return {
        [v7] = v19,
        [v6] = v20
    };
end;
v18.sendAnalyticsToKibana = function(v22, v23, v24, v25)
    l_RbxAnalyticsService_0:reportInfluxSeries(v22, v4.Dictionary.join({
        [v7] = v8,
        [v6] = v24
    }, v25), v23);
end;
v18.calculateTextSize = function(v26, v27, v28)
    return game:GetService("TextService"):GetTextSize(v26, v27, v28, (Vector2.new(5000, 5000)));
end;
return v18;


local l_StudioPublishService_0 = game:GetService("StudioPublishService");
local l_DebugBuiltInPluginModalsNotBlocking_0 = game:GetFastFlag("DebugBuiltInPluginModalsNotBlocking");
return function(v2, v3)
    if v2 then
        local l_Parent_0 = script.Parent.Parent;
        local v5 = require(l_Parent_0.Packages.Roact);
        local v6 = require(l_Parent_0.Packages.Rodux);
        local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
        local v8 = require(l_Parent_0.Src.Components.ServiceWrapper);
        local v9 = require(l_Parent_0.Src.Components.ScreenSelect);
        local v10 = require(l_Parent_0.Src.Reducers.MainReducer);
        local v11 = require(l_Parent_0.Src.Middleware.MainMiddleware);
        local v12 = require(l_Parent_0.Src.Actions.ResetInfo);
        local v13 = 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 v16 = v6.Store.new(v10, {}, v11);
        local v17 = l_ContextServices_0.Localization.new({
            pluginName = l_Parent_0.Name,
            stringResourceTable = l_SourceStrings_0,
            translationResourceTable = l_LocalizedStrings_0
        });
        local v18 = nil;
        local v19 = nil;
        local v20 = require(l_Parent_0.Src.Actions.SetIsPublishing);
        local function v21()
            if v18 then
                v5.unmount(v18);
            end;
            v19.Enabled = false;
        end;
        local function v22()
            v19 = v2:CreateQWidgetPluginGui(l_Parent_0.Name, {
                Size = Vector2.new(960, 720),
                MinSize = Vector2.new(890, 550),
                MaxSize = Vector2.new(960, 750),
                Resizable = true,
                Modal = not l_DebugBuiltInPluginModalsNotBlocking_0,
                InitialEnabled = false
            });
            v19.Name = l_Parent_0.Name;
            v19.Title = v17:getText("General", "PublishPlace");
            v19.ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
            v19:BindToClose(function()
                if v18 then
                    v5.unmount(v18);
                end;
                v19.Enabled = false;
            end);
        end;
        local v23 = require(l_Parent_0.Src.Util.CalloutController).new();
        v23:defineCallout("PublishPlaceAsTeamCreateToggleCallout", v17:getText("TcToggleCallout", "Title"), v17:getText("TcToggleCallout", "Description"), (game:GetFastString("TeamCreateLink")));
        local function v28(v24, v25, v26)
            local v27 = v5.createElement(v8, {
                focusGui = v19,
                localization = v17,
                mouse = v2:getMouse(),
                plugin = v2,
                store = v16,
                theme = v13(),
                calloutController = v23
            }, {
                v5.createElement(v9, {
                    OnClose = v21,
                    IsPublish = v25,
                    CloseMode = v26,
                    IsSaveOrPublishAs = v24
                })
            });
            v16:dispatch(v12(v17:getText("General", "UntitledGame"), v24));
            v18 = v5.mount(v27, v19);
            v19.Enabled = true;
        end;
        (function()
            v2.Name = l_Parent_0.Name;
            v22();
            v3.signals["StudioPublishService.OnSaveOrPublishPlaceToRoblox"]:Connect(function(v29, v30, v31)
                if not v30 then
                    v19.Title = v17:getText("General", "SaveGame");
                else
                    v19.Title = v17:getText("General", "PublishGame");
                end;
                v28(v29, v30, v31);
            end);
            v3.signals["StudioPublishService.GamePublishFinished"]:Connect(function(_)
                v16:dispatch(v20(false));
            end);
            v3.signals["StudioPublishService.GamePublishCancelled"]:Connect(function()
                l_StudioPublishService_0:clearUploadNames();
                if v18 then
                    v5.unmount(v18);
                end;
                v19.Enabled = false;
            end);
        end)();
        return ;
    else
        return ;
    end;
end;


local v0 = false;
return function()
    if not v0 then
        v0 = true;
        local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
        if require(l_script_FirstAncestor_0.Src.Util.DebugFlags).EnableRoactConfigs() then
            require(l_script_FirstAncestor_0.Packages.Roact).setGlobalConfig({
                elementTracing = true,
                propValidation = true,
                typeChecks = true
            });
        end;
        return ;
    else
        return ;
    end;
end;


game:DefineFastFlag("R15MigScriptsPane", false);
game:DefineFastFlag("R15MigDocumentChanges", false);
game:DefineFastFlag("R15MigShowLinkedText", false);
return nil;


return function(v0, v1)
    if v0 then
        require(script.Parent.defineLuaFlags);
        require(script.Parent.commonInit)();
        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 = require(l_Parent_0.Src.Util.hasInternalPermission)();
        local v6 = nil;
        local v7 = nil;
        if v5 then
            v7 = require(l_Parent_0.Packages.Dev.DeveloperTools).forPlugin(l_Parent_0.Name, v0);
        end;
        local function v8()
            v0.Name = l_Parent_0.Name;
            v6 = v3.mount((v3.createElement(v4, {
                Plugin = v0,
                PluginLoaderContext = v1
            })));
            if v7 then
                v7:addRoactTree("R15 Migrator", v6);
            end;
        end;
        v0.Unloading:Connect(function()
            if v7 then
                v7:destroy();
            end;
            if v6 then
                v3.unmount(v6);
                v6 = nil;
            end;
        end);
        v8();
        return ;
    else
        return ;
    end;
end;


local l_StudioService_0 = game:GetService("StudioService");
local l_StudioPublishService_0 = game:GetService("StudioPublishService");
local l_PublishTags_0 = require(script:FindFirstAncestor("R15Migrator").Src.Resources.Constants).PublishTags;
local l_DebugBuiltInPluginModalsNotBlocking_0 = game:GetFastFlag("DebugBuiltInPluginModalsNotBlocking");
return function(v4, v5)
    if v4 then
        require(script.Parent.defineLuaFlags);
        local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
        local v7 = require(l_script_FirstAncestor_0.Packages.Roact);
        local v8 = require(l_script_FirstAncestor_0.Packages.Framework);
        local l_CrossPluginCommunication_0 = v8.Util.CrossPluginCommunication;
        local v10 = require(l_script_FirstAncestor_0.Src.Resources.Constants);
        local v11 = require(l_script_FirstAncestor_0.Src.PublishBlockedPlugin);
        local v12 = require(l_script_FirstAncestor_0.Src.PublishWarningPlugin);
        local v13 = require(l_script_FirstAncestor_0.Src.Util.PublishTagging);
        local v14 = require(l_script_FirstAncestor_0.Src.Util.prepareToPublish);
        local v15 = require(l_script_FirstAncestor_0.Src.Contexts.NetworkInterface).new();
        local v16 = require(l_script_FirstAncestor_0.Src.Resources.createAnalyticsHandlers);
        local v17 = nil;
        local v18 = nil;
        local v19 = false;
        local function v20()
            if v17 then
                v7.unmount(v17);
            end;
            v18.Enabled = false;
        end;
        local function v21()
            if v17 then
                v7.unmount(v17);
            end;
            v18.Enabled = false;
            v14();
            if not v19 then
                l_StudioService_0:ShowPublishToRoblox();
            else
                l_StudioPublishService_0:ShowSaveOrPublishPlaceToRoblox(false, true, Enum.StudioCloseMode.None);
            end;
            l_CrossPluginCommunication_0.new(v10.CrossPluginCommunicationName):Fire(v10.CrossPluginCommunicationInstructions.Published);
        end;
        local l_ContextServices_0 = v8.ContextServices;
        local v23 = l_ContextServices_0.Localization.new({
            pluginName = l_script_FirstAncestor_0.Name,
            stringResourceTable = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings,
            translationResourceTable = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings
        });
        local v24 = l_ContextServices_0.Analytics.new(v16);
        local function v25()
            v18 = v4:CreateQWidgetPluginGui("PublishBlocked", {
                Size = Vector2.new(400, 160),
                Resizable = false,
                Modal = not l_DebugBuiltInPluginModalsNotBlocking_0,
                InitialEnabled = false
            });
            v18.Name = l_script_FirstAncestor_0.Name;
            v18.Title = v23:getText("PublishingBlocked", "Title");
            v18.ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
            v18:BindToClose(function()
                if v17 then
                    v7.unmount(v17);
                end;
                v18.Enabled = false;
            end);
        end;
        local function v28(v26)
            local _ = nil;
            v17 = v7.mount(if not v26 then v7.createElement(v12, {
                OnCancel = v20,
                OnContinue = v21,
                PluginLoaderContext = v5,
                Localization = v23
            }) else v7.createElement(v11, {
                OnClose = v20,
                PluginLoaderContext = v5,
                Localization = v23
            }), v18);
            v18.Enabled = true;
        end;
        local function _()
            v4.Name = l_script_FirstAncestor_0.Name;
            v25();
            v5.signals["StudioPublishService.OnPublishAttempt"]:Connect(function(v29)
                local v30 = v13:publishingIsBlocked();
                if v30 ~= nil then
                    local v31 = false;
                    local v32 = {};
                    local v33 = false;
                    for v34, v35 in l_PublishTags_0, nil, nil do
                        table.insert(v32, {
                            name = v35.Name,
                            blocking = v13[v34]:isBlocking()
                        });
                    end;
                    v31 = v31 or v30 ~= 0;
                    v33 = v15:getAvatarType(game) == Enum.GameAvatarType.R6;
                    table.insert(v32, {
                        name = "AvatarTypeIsR6",
                        blocking = v33
                    });
                    v31 = v31 or v33;
                    v24:getHandler("onPublish")(v32);
                    v19 = v29;
                    v28(v31);
                end;
            end);
        end;
        v4.Name = l_script_FirstAncestor_0.Name;
        v25();
        v5.signals["StudioPublishService.OnPublishAttempt"]:Connect(function(v37)
            local v38 = v13:publishingIsBlocked();
            if v38 ~= nil then
                local v39 = false;
                local v40 = {};
                local v41 = false;
                for v42, v43 in l_PublishTags_0, nil, nil do
                    table.insert(v40, {
                        name = v43.Name,
                        blocking = v13[v42]:isBlocking()
                    });
                end;
                v39 = v39 or v38 ~= 0;
                v41 = v15:getAvatarType(game) == Enum.GameAvatarType.R6;
                table.insert(v40, {
                    name = "AvatarTypeIsR6",
                    blocking = v41
                });
                v39 = v39 or v41;
                v24:getHandler("onPublish")(v40);
                v19 = v37;
                v28(v39);
            end;
        end);
        return ;
    else
        return ;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
require(script.Parent.commonInit)();
local v1 = require(l_script_FirstAncestor_0.Src.Util.DebugFlags);
local v2 = nil;
if not (not v1.RunningUnderCLI() and not v1.RunTests()) then
    v2 = require(l_script_FirstAncestor_0.Packages.Framework);
    local v3 = require(l_script_FirstAncestor_0.Packages.Dev.TestEZ);
    local l_TestBootstrap_0 = v3.TestBootstrap;
    local v5 = not not _G.TEAMCITY and v3.Reporters.TeamCityReporter or v3.Reporters.TextReporter;
    local l_Src_0 = l_script_FirstAncestor_0.Src;
    local v7 = {
        showTimingInfo = false,
        testNamePattern = nil,
        extraEnvironment = {}
    };
    print("----- All " .. l_script_FirstAncestor_0.Name .. " Tests ------");
    require(script.Parent.defineLuaFlags);
    l_TestBootstrap_0:run({
        l_Src_0
    }, v5, v7);
    print("----------------------------------");
    if v1.RunDeveloperFrameworkTests() then
        print("");
        print("----- All DeveloperFramework Tests ------");
        v2.TestHelpers.runFrameworkTests(v3, v5);
        print("----------------------------------");
    end;
end;
if v1.RunningUnderCLI() then
    pcall(function()
        game:GetService("ProcessService"):ExitAsync(0);
    end);
end;


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


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


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


return require(script:FindFirstAncestor("R15Migrator").Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        id = v0,
        animation = v1
    };
end);


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


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


return require(script:FindFirstAncestor("R15Migrator").Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        characterInfo = v0,
        isConverted = v1
    };
end);


return require(script:FindFirstAncestor("R15Migrator").Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        characters = v0,
        convertedCharacters = v1
    };
end);


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


return require(script:FindFirstAncestor("R15Migrator").Packages.Framework).Util.Action(script.Name, function(v0, v1, v2, v3, v4)
    return {
        newWorldModelEntries = {
            [v0] = {
                previewModel = v1,
                convertedModel = v2,
                resetPreviewModel = v3,
                resetConvertedModel = v4
            }
        }
    };
end);


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v4 = require(l_script_FirstAncestor_0.Packages.Dash);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_ExpandablePane_0 = l_UI_0.ExpandablePane;
local l_Image_0 = l_UI_0.Image;
local l_Util_0 = v1.Util;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_StyleModifier_0 = l_Util_0.StyleModifier;
local l_ContextServices_0 = v1.ContextServices;
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v15 = require(l_Components_0.AnimationList);
local v16 = require(l_Components_0.AnimationPreviewComponent);
local v17 = require(l_Components_0.AnimationConversionPaneFooter);
local l_AssetType_0 = require(l_script_FirstAncestor_0.Src.Util.AnimationConversion.constants).AssetType;
local v19 = require(l_script_FirstAncestor_0.Src.Util.AssetIdUtil);
local v20 = v2.PureComponent:extend("AnimationConversionPane");
v20.init = function(v21)
    v21.state = {
        expanded = {
            Preview = true,
            List = true
        },
        paneSize = Vector2.new()
    };
    v21.onExpandedChanged = function(v22)
        return function()
            v21:setState(function(v23)
                local v24 = v4.copy(v23.expanded);
                v24[v22] = not v24[v22];
                return {
                    expanded = v24
                };
            end);
        end;
    end;
    v21.ref = v2.createRef();
end;
v20.initRef = function(v25)
    local v26 = v25.ref:getValue();
    if v26 then
        v25:setState({
            paneSize = v26.AbsoluteSize
        });
        v25.onPaneSizeChanged = v26:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
            v25:setState({
                paneSize = v26.AbsoluteSize
            });
        end);
        return ;
    else
        return ;
    end;
end;
v20.didMount = function(v27)
    v27:initRef();
end;
v20.willUnmount = function(v28)
    if v28.onPaneSizeChanged then
        v28.onPaneSizeChanged:Disconnect();
    end;
end;
v20.didUpdate = function(v29)
    if not (not v29.ref.current or v29.onPaneSizeChanged) then
        v29:initRef();
    end;
end;
v20.buildTags = function(v30)
    local l_animations_0 = v30.props.animations;
    local v32 = {};
    for v33, v34 in l_animations_0, nil, nil do
        local l_animationAssetInfo_0 = v34.animationAssetInfo;
        local v36 = {
            id = ""
        };
        if v34.converted then
            local v37 = tonumber(v34.converted);
            v36.converted = not v19.isValidAssetId(v37) and "" or string.format(" (%d)", v37);
        end;
        if l_animationAssetInfo_0:IsA(l_AssetType_0.RobloxAsset) then
            v36.id = string.format(" (%d)", l_animationAssetInfo_0.id);
        end;
        v32[v33] = v36;
    end;
    return v32;
end;
v20.renderHeader = function(v38, v39, v40)
    local l_Header_0 = v38.props.Stylizer.Header;
    local v42 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, v4.join(l_Header_0.Container, {
        OnClick = v38.onExpandedChanged(v40)
    }), {
        Arrow = v2.createElement(l_Image_0, {
            Style = l_Header_0.Arrow,
            StyleModifier = if not v38.state.expanded[v40] then nil else l_StyleModifier_0.Selected,
            LayoutOrder = v42:getNextOrder()
        }),
        Text = v2.createElement(l_TextLabel_0, {
            Text = v39,
            LayoutOrder = v42:getNextOrder(),
            AutomaticSize = Enum.AutomaticSize.XY,
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.new(0, 24, 0.5, 0),
            Style = l_Header_0.Text
        })
    });
end;
v20.renderAnimationList = function(v43)
    local l_props_0 = v43.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local l_animations_1 = l_props_0.animations;
    local v48 = v43:buildTags();
    local l_state_0 = v43.state;
    local l_Preview_0 = l_state_0.expanded.Preview;
    local v51 = if not l_Preview_0 then l_Stylizer_0.CollapsedOffset else l_Stylizer_0.ExpandedOffset;
    local v52 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top
    }, {
        Content = v2.createElement(l_Pane_0, {
            LayoutOrder = v52:getNextOrder(),
            Size = UDim2.new(1, 0, 1, -l_Stylizer_0.FooterHeight),
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            [v2.Ref] = v43.ref
        }, {
            PreviewContainer = v2.createElement(l_ExpandablePane_0, {
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = v52:getNextOrder(),
                Expanded = l_Preview_0,
                HeaderOverride = v43:renderHeader(l_Localization_0:getText("AnimationConversion", "Preview"), "Preview"),
                OnExpandedChanged = function()
                end
            }, {
                Preview = v2.createElement(v16)
            }),
            ListContainer = v2.createElement(l_ExpandablePane_0, {
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = v52:getNextOrder(),
                Expanded = l_state_0.expanded.List,
                ContentPadding = 0,
                HeaderOverride = v43:renderHeader(l_Localization_0:getText("AnimationConversion", "Animations"), "List"),
                OnExpandedChanged = function()
                end
            }, {
                List = v2.createElement(v15, {
                    Size = UDim2.new(1, 0, 0, (l_state_0.paneSize.Y - l_Stylizer_0.HeaderHeight) - v51),
                    Items = l_animations_1,
                    Tags = v48,
                    LayoutOrder = v52:getNextOrder(),
                    OnResetPlugin = l_props_0.OnResetPlugin
                })
            })
        }),
        Footer = v2.createElement(v17, {
            LayoutOrder = v52:getNextOrder(),
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.FooterHeight)
        })
    });
end;
v20.renderNoAnimationsScreen = function(v53)
    return v2.createElement(l_Pane_0, {}, {
        Label = v2.createElement(l_TextLabel_0, {
            Text = v53.props.Localization:getText("AnimationConversion", "NoAnimations")
        })
    });
end;
v20.hasAnimations = function(v54)
    return next(v54.props.animations) ~= nil;
end;
v20.render = function(v55)
    if not v55:hasAnimations() then
        return v55:renderNoAnimationsScreen();
    else
        return v55:renderAnimationList();
    end;
end;
return v3.connect(function(v56, _)
    return {
        diagnostics = v56.ScriptConversion.diagnostics,
        animations = v56.AnimationConversion.animations
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v20)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_Pane_0 = v1.UI.Pane;
local l_ContextServices_0 = v1.ContextServices;
local v5 = require(l_script_FirstAncestor_0.Src.Components.ReplaceRevertButtons);
local v6 = v2.PureComponent:extend("AnimationConversionPaneFooter");
v6.render = function(v7)
    local l_props_0 = v7.props;
    local l_Size_0 = l_props_0.Size;
    local l_Stylizer_0 = l_props_0.Stylizer;
    return v2.createElement(l_Pane_0, {
        Size = l_Size_0,
        LayoutOrder = l_props_0.LayoutOrder,
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Bottom,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Buttons = v2.createElement(v5)
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v6));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_List_0 = l_UI_0.List;
local l_Pane_0 = l_UI_0.Pane;
local l_KeyboardListener_0 = l_UI_0.KeyboardListener;
local l_deepCopy_0 = v1.Util.deepCopy;
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v11 = require(l_Components_0.AnimationListRow);
local v12 = require(l_Components_0.SelectAllRow);
local v13 = require(l_script_FirstAncestor_0.Src.Actions.SetSelection);
local v14 = require(l_script_FirstAncestor_0.Src.Actions.SetPreviewSelection);
local v15 = require(l_script_FirstAncestor_0.Src.Util.Input);
local v16 = v2.PureComponent:extend("AnimationList");
v16.init = function(v17)
    v17.areAllSelected = function()
        local l_props_0 = v17.props;
        local l_Items_0 = l_props_0.Items;
        local l_selection_0 = l_props_0.selection;
        for v21 in l_Items_0, nil, nil do
            if not l_selection_0[v21] then
                return false;
            end;
        end;
        return true;
    end;
    v17.onAllSelectedChecked = function()
        if not v17:areAllSelected() then
            v17:selectAll();
            return ;
        else
            v17:resetSelected();
            return ;
        end;
    end;
    v17.getRowProps = function(v22, v23, v24, v25)
        return {
            Key = v23,
            Position = v24,
            Row = v22,
            Size = v25
        };
    end;
    v17._selection = {};
    v17._ctrlDown = false;
    v17._shiftDown = false;
    v17._anchor = nil;
    v17._focus = nil;
    v17.onKeyPressed = function(v26)
        if not v15:isShift(v26.KeyCode) then
            if v15:isControl(v26.KeyCode) then
                v17._ctrlDown = true;
            end;
        else
            v17._shiftDown = true;
        end;
        if not ((not v17._ctrlDown or not v17._shiftDown) or not v15:isLetterA(v26.KeyCode)) then
            v17:selectAll();
        end;
    end;
    v17.onKeyReleased = function(v27)
        if not v15:isShift(v27.KeyCode) then
            if v15:isControl(v27.KeyCode) then
                v17._ctrlDown = false;
            end;
            return ;
        else
            v17._shiftDown = false;
            return ;
        end;
    end;
end;
v16.selectAll = function(v28)
    local l_props_1 = v28.props;
    local l_Items_1 = l_props_1.Items;
    local v31 = l_deepCopy_0(l_props_1.selection);
    for v32, _ in l_Items_1, nil, nil do
        v31[v32] = true;
    end;
    l_props_1.setSelection(v31);
    v28._focus = nil;
    v28._anchor = nil;
end;
v16.resetSelected = function(v34)
    v34.props.setSelection({});
    v34._anchor = nil;
    v34._focus = nil;
end;
v16.shiftClick = function(v35, _, v37, v38, _, v40, v41)
    local l_props_2 = v35.props;
    local v43 = l_deepCopy_0(l_props_2.selection);
    if v35._anchor then
        if v35._focus then
            local v44 = v35._anchor < v35._focus and 1 or -1;
            for v45 = v35._anchor, v35._focus, v44 do
                v43[v41[v40[v45]]] = nil;
            end;
        end;
        local v46 = v35._anchor < v38 and 1 or -1;
        for v47 = v35._anchor, v38, v46 do
            v43[v41[v40[v47]]] = true;
        end;
        v35._focus = v38;
        l_props_2.setSelection(v43);
        return ;
    else
        v35._anchor = v38;
        l_props_2.setSelection({
            [v37] = true
        });
        return ;
    end;
end;
v16.click = function(v48, _, v50, v51)
    local l_props_3 = v48.props;
    local l_selection_1 = l_props_3.selection;
    local v54 = l_deepCopy_0(l_selection_1);
    if not l_selection_1[v50] then
        v54[v50] = true;
    else
        v54[v50] = nil;
    end;
    l_props_3.setSelection(v54);
    v48._anchor = v51;
    v48._focus = nil;
end;
v16.rowClick = function(v55, v56)
    v55.props.setPreviewSelection(v56);
end;
v16.render = function(v57)
    local l_props_4 = v57.props;
    local l_Items_2 = l_props_4.Items;
    local l_Tags_0 = l_props_4.Tags;
    local l_Size_0 = l_props_4.Size;
    local l_selection_2 = l_props_4.selection;
    local l_previewSelection_0 = l_props_4.previewSelection;
    local l_Stylizer_0 = l_props_4.Stylizer;
    local l_SelectAllRow_0 = l_Stylizer_0.SelectAllRow;
    local l_LayoutOrder_0 = l_props_4.LayoutOrder;
    local v67 = {};
    local v68 = {};
    for _, v70 in l_Items_2, nil, nil do
        table.insert(v68, v70.index);
    end;
    table.sort(v68);
    local v71 = {};
    for v72, v73 in l_Items_2, nil, nil do
        v71[v73.index] = v72;
    end;
    for v74, v75 in ipairs(v68) do
        local v76 = v71[v75];
        local v77 = l_Items_2[v76];
        table.insert(v67, {
            name = v77.name,
            tag = l_Tags_0[v76],
            selected = l_selection_2[v76] ~= nil,
            previewSelected = v76 == l_previewSelection_0,
            OnCheckboxClick = function()
                if not v57._shiftDown then
                    v57:click(v77, v76, v74);
                    return ;
                else
                    v57:shiftClick(v77, v76, v74, l_Items_2, v68, v71);
                    return ;
                end;
            end,
            OnRowClick = function()
                v57:rowClick(if v76 == l_previewSelection_0 then nil else v76);
            end,
            index = v77.index,
            status = v77.status,
            errCode = v77.errCode
        });
    end;
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_LayoutOrder_0,
        Layout = Enum.FillDirection.Vertical,
        Size = l_Size_0
    }, {
        SelectAllRow = v2.createElement(v12, {
            IsChecked = v57:areAllSelected(),
            OnCheckboxClick = v57.onAllSelectedChecked,
            RowHeight = l_SelectAllRow_0.RowHeight,
            Padding = l_SelectAllRow_0.Padding,
            OnResetPlugin = l_props_4.OnResetPlugin
        }),
        ListContianer = v2.createElement(l_Pane_0, {
            Size = UDim2.new(1, 0, 1, -l_SelectAllRow_0.RowHeight),
            Padding = l_Stylizer_0.Padding
        }, {
            List = v2.createElement(l_List_0, {
                Rows = v67,
                GetRowProps = v57.getRowProps,
                RowComponent = v11
            })
        }),
        KeyboardListener = v2.createElement(l_KeyboardListener_0, {
            OnKeyPressed = v57.onKeyPressed,
            OnKeyReleased = v57.onKeyReleased
        })
    });
end;
return v3.connect(function(v78)
    return {
        selection = v78.AnimationConversion.selection,
        previewSelection = v78.AnimationConversion.previewSelection
    };
end, function(v79)
    return {
        setSelection = function(v80)
            v79(v13(v80));
        end,
        setPreviewSelection = function(v81)
            v79(v14(v81));
        end
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v16)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Image_0 = l_UI_0.Image;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_Checkbox_0 = l_UI_0.Checkbox;
local l_StyleModifier_0 = v1.Util.StyleModifier;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local l_AnimationStatus_0 = require(l_script_FirstAncestor_0.Src.Util.AnimationConversion.constants).AnimationStatus;
local v14 = require(l_script_FirstAncestor_0.Src.Util.sanitizeString);
local v15 = v2.PureComponent:extend("AnimationListRow");
v15.init = function(v16)
    v16.state = {
        hovered = false
    };
    v16.hover = function(v17)
        v16:setState({
            hovered = v17
        });
    end;
end;
local function v22(v18, v19, v20, v21)
    if v18 then
        if v18 == l_AnimationStatus_0.Uploading then
            return v19.LoadingIcon, nil;
        elseif v18 == l_AnimationStatus_0.FailedSerialization then
            return v19.FailedIcon, v20:getText("AnimationStatus", v18);
        elseif v18 == l_AnimationStatus_0.FailedWithError then
            return v19.FailedIcon, string.format(v20:getText("AnimationStatus", v18, {
                error = v21
            }));
        elseif v18 == l_AnimationStatus_0.FailedToGetProductInfo then
            return v19.FailedIcon, v20:getText("AnimationStatus", v18);
        elseif v18 == l_AnimationStatus_0.Done then
            return v19.DoneIcon, v20:getText("AnimationStatus", v18);
        else
            return nil, nil;
        end;
    else
        return nil, nil;
    end;
end;
v15.render = function(v23)
    local l_props_0 = v23.props;
    local l_Row_0 = l_props_0.Row;
    local l_selected_0 = l_Row_0.selected;
    local l_previewSelected_0 = l_Row_0.previewSelected;
    local v28 = v14(l_Row_0.name);
    local l_status_0 = l_Row_0.status;
    local l_OnCheckboxClick_0 = l_Row_0.OnCheckboxClick;
    local l_OnRowClick_0 = l_Row_0.OnRowClick;
    local l_tag_0 = l_Row_0.tag;
    local l_errCode_0 = l_Row_0.errCode;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local l_hovered_0 = v23.state.hovered;
    local v37, v38 = v22(l_status_0, l_Stylizer_0, l_Localization_0, l_errCode_0);
    local v39 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Style = "Box",
        Position = l_props_0.Position,
        Size = l_props_0.Size + l_Stylizer_0.Offset,
        Padding = l_Stylizer_0.Padding,
        OnClick = l_OnRowClick_0,
        StyleModifier = if not l_previewSelected_0 then if l_hovered_0 then l_StyleModifier_0.Hover else nil else l_StyleModifier_0.Selected,
        BackgroundTransparency = (l_previewSelected_0 or l_hovered_0) and 0 or 1,
        [v2.Event.MouseEnter] = function()
            v23.hover(true);
        end,
        [v2.Event.MouseLeave] = function()
            v23.hover(false);
        end
    }, {
        Checkbox = v2.createElement(l_Checkbox_0, {
            LayoutOrder = v39:getNextOrder(),
            Checked = l_selected_0,
            OnClick = l_OnCheckboxClick_0
        }),
        Content = v2.createElement(l_Pane_0, {
            LayoutOrder = v39:getNextOrder(),
            Size = UDim2.fromScale(1, 1),
            Spacing = l_Stylizer_0.Spacing,
            Padding = l_Stylizer_0.ContentPadding
        }, {
            Label1 = v2.createElement(l_TextLabel_0, {
                Text = v28 .. l_tag_0.id,
                TextXAlignment = Enum.TextXAlignment.Left,
                AnchorPoint = l_Stylizer_0.Anchor,
                Position = l_Stylizer_0.Label1Position,
                Size = l_Stylizer_0.LabelSize,
                TextSize = l_Stylizer_0.TextSize
            }),
            Arrow = v2.createElement(l_TextLabel_0, {
                Text = not l_tag_0.converted and "" or l_Stylizer_0.Arrow,
                TextXAlignment = Enum.TextXAlignment.Center,
                AnchorPoint = l_Stylizer_0.Anchor,
                Position = l_Stylizer_0.ArrowPosition,
                Size = l_Stylizer_0.IconSize,
                TextSize = l_Stylizer_0.TextSize
            }),
            Label2 = v2.createElement(l_TextLabel_0, {
                Text = not l_tag_0.converted and "" or v28 .. " R15" .. l_tag_0.converted,
                TextXAlignment = Enum.TextXAlignment.Left,
                AnchorPoint = l_Stylizer_0.Anchor,
                Position = l_Stylizer_0.Label2Position,
                Size = l_Stylizer_0.LabelSize,
                TextSize = l_Stylizer_0.TextSize
            }),
            Icon = v2.createElement(l_Image_0, {
                Size = l_Stylizer_0.IconSize,
                AnchorPoint = l_Stylizer_0.Anchor,
                Position = l_Stylizer_0.IconPosition,
                Image = v37
            }, {
                Tooltip = if not v38 then nil else v2.createElement(l_Tooltip_0, {
                    Text = v38
                })
            })
        }),
        HoverArea = v2.createElement(l_HoverArea_0, {
            Cursor = "PointingHand"
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v15));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local v5 = require(l_script_FirstAncestor_0.Packages.Cryo);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local l_Signal_0 = v1.Util.Signal;
local v12 = require(l_script_FirstAncestor_0.Src.Modules.NpcManager);
local v13 = require(l_script_FirstAncestor_0.Src.Modules.NpcIdManager);
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v15 = require(l_Components_0.DisplayAvatarsComponent);
local v16 = require(l_Components_0.MediaPlayerControls);
local v17 = require(l_script_FirstAncestor_0.Src.Actions.SetPreviewSpeed);
local v18 = require(l_script_FirstAncestor_0.Src.Thunks.CreateWorldModels);
local l_AnimationConversion_0 = l_script_FirstAncestor_0.Src.Util.AnimationConversion;
local v20 = require(l_AnimationConversion_0.resetCharacter);
local v21 = require(l_AnimationConversion_0.AnimationConversionManager);
local v22 = require(l_script_FirstAncestor_0.Src.Util.sanitizeString);
local l_PreviewSpeeds_0 = require(l_script_FirstAncestor_0.Src.Resources.Constants).PreviewSpeeds;
local v24 = v2.PureComponent:extend("AnimationPreviewComponent");
local function v31(v25)
    local v26 = v5.Dictionary.values(v25.props.characters);
    local v27 = v5.Dictionary.values(v25.props.convertedCharacters);
    v25.selectionModels = v5.List.join(v25.defaultSelections, v26, v27);
    local v28 = #v25.defaultSelections + #v26;
    for v29, v30 in v27, nil, nil do
        if v12.IsR15Complete((v13.GetNpcFromId(v30.key))) then
            coroutine.wrap(function()
                v25.props.CreateWorldModels(v30.key, v30.model);
                v25:setState({
                    currentIndex = v28 + v29
                });
            end)();
            return ;
        end;
    end;
    v25:setState({
        currentIndex = 1
    });
end;
local function v33()
    local l_HumanoidDescription_0 = Instance.new("HumanoidDescription");
    l_HumanoidDescription_0.HeadColor = BrickColor.new("Bright yellow").Color;
    l_HumanoidDescription_0.TorsoColor = BrickColor.new("Bright blue").Color;
    l_HumanoidDescription_0.LeftArmColor = BrickColor.new("Bright yellow").Color;
    l_HumanoidDescription_0.LeftLegColor = BrickColor.new("Bright yellow").Color;
    l_HumanoidDescription_0.RightLegColor = BrickColor.new("Bright yellow").Color;
    l_HumanoidDescription_0.RightArmColor = BrickColor.new("Bright yellow").Color;
    return l_HumanoidDescription_0;
end;
v24.init = function(v34)
    v34.state = {
        currentIndex = 0,
        isPlaying = false,
        isLoaded = false,
        currentTime = 0,
        length = 1
    };
    v34.selectionModels = {};
    v34.selectSpeed = function(v35)
        v34.props.SetPreviewSpeed(v35.Id);
    end;
    v34.selectItem = function(_, v37)
        if v34.state.currentIndex == v37 then
            return ;
        else
            coroutine.wrap(function()
                if v34.selectionModels[v37].key then
                    local v38 = v34.selectionModels[v37];
                    v34.props.CreateWorldModels(v38.key, v38.model);
                end;
                v34:setState({
                    currentIndex = v37
                });
            end)();
            return ;
        end;
    end;
    v34.loaded = l_Signal_0.new();
    v34.tracks = {};
    v34.animators = {};
    v34.loaded:Connect(function(v39, v40, v41)
        if not v34.isUnmounting then
            if not v39 then
                if not (v34.tracks[1] ~= v40) or v34.tracks[2] == v40 then
                    v34:unload();
                end;
            else
                table.insert(v34.tracks, v40);
                table.insert(v34.animators, v41);
                if #v34.tracks > 1 then
                    for _, v43 in v34.tracks, nil, nil do
                        v43:Play();
                    end;
                    v34:load();
                    return ;
                end;
            end;
            return ;
        else
            return ;
        end;
    end);
    task.spawn(function()
        local v44 = {
            0,
            320912307
        };
        v34.defaultSelections = {};
        for _, v46 in v44, nil, nil do
            local l_status_0, l_result_0 = pcall(function()
                if v46 == 0 then
                    return (v33());
                else
                    return game.Players:GetHumanoidDescriptionFromOutfitId(v46);
                end;
            end);
            if not l_status_0 then
                l_result_0 = v33();
            end;
            local l_HumanoidModelFromDescription_0 = game:GetService("Players"):CreateHumanoidModelFromDescription(l_result_0, Enum.HumanoidRigType.R6);
            local l_HumanoidModelFromDescription_1 = game:GetService("Players"):CreateHumanoidModelFromDescription(l_result_0, Enum.HumanoidRigType.R15);
            v20(l_HumanoidModelFromDescription_0);
            v20(l_HumanoidModelFromDescription_1);
            local l_WorldModel_0 = Instance.new("WorldModel");
            local l_WorldModel_1 = Instance.new("WorldModel");
            l_HumanoidModelFromDescription_0.Parent = l_WorldModel_0;
            l_HumanoidModelFromDescription_1.Parent = l_WorldModel_1;
            table.insert(v34.defaultSelections, {
                resetPreviewModel = l_WorldModel_0,
                resetConvertedModel = l_WorldModel_1
            });
        end;
        if not v34.isUnmounting then
            v31(v34);
            return ;
        else
            return ;
        end;
    end);
end;
v24.start = function(v53)
    if not v53.runningConnection then
        v53.runningConnection = game:GetService("RunService").Heartbeat:Connect(function(v54)
            local v55 = v54 * v53.props.previewSpeed;
            for _, v57 in v53.animators, nil, nil do
                v57:StepAnimations(v55);
            end;
            v53:setState({
                currentTime = (v53.state.currentTime + v55) % v53.state.length
            });
        end);
        return ;
    else
        return ;
    end;
end;
v24.stop = function(v58)
    if v58.runningConnection then
        v58.runningConnection:Disconnect();
    end;
    v58.runningConnection = nil;
end;
v24.load = function(v59)
    v59:start();
    v59:setState({
        currentTime = 0,
        isPlaying = true,
        isLoaded = true,
        length = v59.tracks[1].Length < 1.0E-5 and 1 or v59.tracks[1].Length
    });
end;
v24.play = function(v60)
    v60:start();
    v60:setState({
        isPlaying = true
    });
end;
v24.pause = function(v61)
    v61:stop();
    v61:setState({
        isPlaying = false
    });
end;
v24.unload = function(v62)
    v62.tracks = {};
    v62.animators = {};
    v62:stop();
    v62:setState({
        currentTime = 0,
        length = 1,
        isPlaying = false,
        isLoaded = false
    });
end;
v24.scrub = function(v63, v64)
    if v63.state.isPlaying then
        v63:pause();
    end;
    local v65 = nil;
    v65 = if v63.state.currentTime <= v64 then v64 - v63.state.currentTime else (v63.state.length - v63.state.currentTime) + v64;
    for _, v67 in v63.animators, nil, nil do
        v67:StepAnimations(v65);
    end;
    v63:setState({
        currentTime = v64
    });
end;
v24.willUnmount = function(v68)
    v68.isUnmounting = true;
    v68:stop();
end;
v24.buildItems = function(v69)
    local l_Localization_0 = v69.props.Localization;
    local v71 = {};
    for v72, v73 in v69.selectionModels, nil, nil do
        if not v73.key then
            v71[v72] = l_Localization_0:getText("AvatarSelection", "DefaultAvatar") .. " " .. v72;
        else
            v71[v72] = string.sub(v73.fullName, (string.find(v73.fullName, ".[^.]*$") or 0) + 1, -1);
            v71[v72] = v22(v71[v72]);
        end;
    end;
    return v71;
end;
v24.buildSpeedItems = function(_)
    local v75 = {};
    for v76, v77 in l_PreviewSpeeds_0, nil, nil do
        v75[v76] = {
            Id = v77,
            Label = string.format("%.2f", v77)
        };
    end;
    return v75;
end;
v24.getModels = function(v78, v79)
    local l_worldModels_0 = v78.props.worldModels;
    if v79 == 0 then
        return nil, nil;
    else
        local v81 = v78.selectionModels[v79];
        if not v81.key then
            return v81.resetPreviewModel, v81.resetConvertedModel;
        else
            local v82 = l_worldModels_0[v81.key];
            if v82 then
                return v82.resetPreviewModel, v82.resetConvertedModel;
            else
                return nil, nil;
            end;
        end;
    end;
end;
v24.didUpdate = function(v83, v84)
    if v84.characterMetadataLoadedVersion ~= v83.props.characterMetadataLoadedVersion then
        v31(v83);
    end;
end;
v24.render = function(v85)
    local l_props_0 = v85.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_previewSelection_0 = l_props_0.previewSelection;
    local l_previewSpeed_0 = l_props_0.previewSpeed;
    local l_Localization_1 = l_props_0.Localization;
    local v91 = if not l_previewSelection_0 then nil else v21.getAnimationAssetInfo(l_previewSelection_0);
    local v92 = if not v91 then nil else v91.url;
    local l_url_0 = v21.getConvertedAnimationAssetInfo(v91).url;
    local l_currentIndex_0 = v85.state.currentIndex;
    local v95, v96 = v85:getModels(l_currentIndex_0);
    local l_state_0 = v85.state;
    local l_isPlaying_0 = l_state_0.isPlaying;
    local l_isLoaded_0 = l_state_0.isLoaded;
    local l_currentTime_0 = l_state_0.currentTime;
    local l_length_0 = l_state_0.length;
    local v102 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        AutomaticSize = Enum.AutomaticSize.Y,
        Spacing = l_Stylizer_0.Spacing
    }, {
        PreviewContainer = v2.createElement(l_Pane_0, {
            LayoutOrder = v102:getNextOrder(),
            Size = l_Stylizer_0.PreviewContainerSize
        }, {
            Avatars = v2.createElement(v15, {
                Animation1 = v92,
                Animation2 = l_url_0,
                Model1 = v95,
                Model2 = v96,
                Loaded = v85.loaded
            })
        }),
        Controls = v2.createElement(v16, {
            LayoutOrder = v102:getNextOrder(),
            Size = UDim2.new(1, 0, 0, 32),
            CurrentTime = l_currentTime_0,
            TimeLength = l_length_0,
            IsPlaying = l_isPlaying_0,
            IsLoaded = l_isLoaded_0,
            OnPlay = function()
                v85:play();
            end,
            OnPause = function()
                v85:pause();
            end,
            OnScrub = function(v103)
                v85:scrub(v103);
            end
        }),
        SelectContainer = v2.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            AutomaticSize = Enum.AutomaticSize.Y,
            LayoutOrder = v102:getNextOrder()
        }, {
            Title = if not not v91 and v85.props.animations[v91.id] then v2.createElement(l_TextLabel_0, {
                Text = v85.props.animations[v91.id].name,
                LayoutOrder = v102:getNextOrder(),
                AutomaticSize = Enum.AutomaticSize.Y,
                TextXAlignment = Enum.TextXAlignment.Left,
                Size = UDim2.fromScale(0.5, 0)
            }) else nil,
            SelectContainer = v2.createElement(l_Pane_0, {
                Layout = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.fromScale(0.5, 0),
                Spacing = l_Stylizer_0.Spacing,
                LayoutOrder = v102:getNextOrder()
            }, {
                SpeedLabel = v2.createElement(l_TextLabel_0, {
                    Text = l_Localization_1:getText("AnimationPreview", "PreviewSpeed"),
                    LayoutOrder = v102:getNextOrder(),
                    AutomaticSize = Enum.AutomaticSize.XY
                }),
                SpeedInput = v2.createElement(l_SelectInput_0, {
                    SelectedId = l_previewSpeed_0,
                    Items = v85:buildSpeedItems(),
                    OnItemActivated = v85.selectSpeed,
                    LayoutOrder = v102:getNextOrder(),
                    Width = 75
                }),
                SelectLabel = v2.createElement(l_TextLabel_0, {
                    Text = l_Localization_1:getText("AvatarSelection", "Character"),
                    LayoutOrder = v102:getNextOrder(),
                    AutomaticSize = Enum.AutomaticSize.XY
                }),
                SelectInput = v2.createElement(l_SelectInput_0, {
                    PlaceholderText = l_Localization_1:getText("AvatarSelection", "ChooseAvatarPlaceholder"),
                    SelectedIndex = l_currentIndex_0,
                    Items = v85:buildItems(),
                    OnItemActivated = v85.selectItem,
                    LayoutOrder = v102:getNextOrder(),
                    Width = 150
                })
            })
        })
    });
end;
return v3.connect(function(v104, _)
    return {
        animations = v104.AnimationConversion.animations,
        previewSelection = v104.AnimationConversion.previewSelection,
        previewSpeed = v104.AnimationConversion.previewSpeed,
        characters = v104.CharacterConversion.characters,
        convertedCharacters = v104.CharacterConversion.convertedCharacters,
        characterMetadataLoadedVersion = v104.CharacterConversion.characterMetadataLoadedVersion,
        worldModels = v104.CharacterConversion.worldModels
    };
end, function(v106)
    return {
        CreateWorldModels = function(v107, v108)
            v106(v18(v107, v108));
        end,
        SetPreviewSpeed = function(v109)
            v106(v17(v109));
        end
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v24)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Cryo);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local v4 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v5 = require(l_script_FirstAncestor_0.Src.Util.ItemState);
local v6 = require(l_script_FirstAncestor_0.Src.Util.Input);
local v7 = require(l_script_FirstAncestor_0.Src.Modules.NpcManager);
local v8 = require(l_script_FirstAncestor_0.Src.Actions.SetCharacterSelection);
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v10 = require(l_Components_0.SelectAllRow);
local v11 = require(l_Components_0.CharacterConversion.SplitView);
local v12 = require(l_Components_0.CharacterConversion.ExpandableCharacterListItem);
local v13 = require(l_script_FirstAncestor_0.Src.Thunks.CreateWorldModels);
local l_ContextServices_0 = v2.ContextServices;
local l_UI_0 = v2.UI;
local l_ExpandablePane_0 = l_UI_0.ExpandablePane;
local l_ScrollingFrame_0 = l_UI_0.ScrollingFrame;
local l_KeyboardListener_0 = l_UI_0.KeyboardListener;
local l_deepCopy_0 = v2.Util.deepCopy;
local v20 = v3.PureComponent:extend("CharacterConversionList");
v20.init = function(v21)
    v21.state = {
        expandedNestedItem = {
            [v5.InProgress] = true
        },
        expanded = nil
    };
    v21.onKeyPressed = function(v22)
        if not v6:isShift(v22.KeyCode) then
            if v6:isControl(v22.KeyCode) then
                v21._ctrlDown = true;
            end;
        else
            v21._shiftDown = true;
        end;
        if not ((not v21._shiftDown or not v21._ctrlDown) or not v6:isLetterA(v22.KeyCode)) then
            v21.selectAll();
        end;
    end;
    v21.onKeyReleased = function(v23)
        if not v6:isShift(v23.KeyCode) then
            if v6:isControl(v23.KeyCode) then
                v21._ctrlDown = false;
            end;
            return ;
        else
            v21._shiftDown = false;
            return ;
        end;
    end;
    v21.plainSelect = function(v24)
        v21.props.SetCharacterSelection({
            v24.key
        });
    end;
    v21.plainToggleSelect = function(v25)
        local v26 = l_deepCopy_0(v21.props.selection);
        local v27 = table.find(v26, v25.key);
        if not v27 then
            table.insert(v26, v25.key);
        else
            table.remove(v26, v27);
        end;
        v21.props.SetCharacterSelection(v26);
    end;
    v21.selectAll = function()
        local l_props_0 = v21.props;
        local l_Items_0 = l_props_0.Items;
        local v30 = {};
        local l_expandedNestedItem_0 = v21.state.expandedNestedItem;
        local v32 = {};
        for _, v34 in l_Items_0, nil, nil do
            if l_expandedNestedItem_0[v34.key] then
                for _, v36 in v34.children, nil, nil do
                    if not v32[v36.key] then
                        v32[v36.key] = true;
                        table.insert(v30, v36.key);
                    end;
                end;
            end;
        end;
        l_props_0.SetCharacterSelection(v30);
    end;
    v21.selectInRange = function(v37, v38, v39, v40, v41, v42)
        local v43 = {};
        for _, v45 in v38, nil, nil do
            v43[v45] = true;
        end;
        local v46 = v37[v39];
        local v47 = v37[v41];
        if v39 == v41 then
            for v48 = v40, v42 do
                local l_key_0 = v46.children[v48].key;
                if not v43[l_key_0] then
                    table.insert(v38, l_key_0);
                    v43[l_key_0] = true;
                end;
            end;
            return ;
        else
            for v50 = v40, #v46.children do
                local l_key_1 = v46.children[v50].key;
                if not v43[l_key_1] then
                    table.insert(v38, v46.children[v50].key);
                    v43[l_key_1] = true;
                end;
            end;
            for v52 = 1, v42 do
                local l_key_2 = v47.children[v52].key;
                if not v43[l_key_2] then
                    table.insert(v38, v47.children[v52].key);
                    v43[l_key_2] = true;
                end;
            end;
            return ;
        end;
    end;
    v21.areAllChildrenSelected = function(v54)
        local l_props_1 = v21.props;
        local v56 = {};
        for _, v58 in l_props_1.selection, nil, nil do
            v56[v58] = true;
        end;
        for _, v60 in v54.children, nil, nil do
            if not (v60.children or v56[v60.key]) then
                return false;
            end;
        end;
        return true;
    end;
    v21.toggleSelectAllChildren = function(v61)
        local l_props_2 = v21.props;
        local v63 = {};
        if v21.areAllChildrenSelected(v61) then
            local v64 = {};
            for _, v66 in l_props_2.selection, nil, nil do
                v64[v66] = true;
            end;
            for _, v68 in v61.children, nil, nil do
                v64[v68.key] = nil;
            end;
            for v69 in v64, nil, nil do
                table.insert(v63, v69);
            end;
        else
            v63 = l_deepCopy_0(l_props_2.selection);
            local v70 = {};
            for _, v72 in v63, nil, nil do
                v70[v72] = true;
            end;
            for _, v74 in v61.children, nil, nil do
                if not (v70[v74.key] or v74.children) then
                    v70[v74.key] = true;
                    table.insert(v63, v74.key);
                end;
            end;
        end;
        l_props_2.SetCharacterSelection(v63);
    end;
    v21.getSelectionRangeData = function(v75, v76, v77)
        local v78 = v76[#v76];
        local v79 = nil;
        local v80 = nil;
        local v81 = nil;
        local v82 = nil;
        for v83, v84 in v75, nil, nil do
            for v85, v86 in v84.children, nil, nil do
                if v78 == v86.key then
                    v79 = v83;
                    v80 = v85;
                end;
                if v77.key == v86.key then
                    v81 = v83;
                    v82 = v85;
                end;
            end;
        end;
        return v79, v80, v81, v82;
    end;
    v21.shiftSelect = function(v87)
        if not v87.children then
            local l_props_3 = v21.props;
            local l_Items_1 = l_props_3.Items;
            local v90 = l_deepCopy_0(l_props_3.selection);
            local v91, v92, v93, v94 = v21.getSelectionRangeData(l_Items_1, v90, v87);
            if not (v91 ~= nil) or v92 == nil then
                v21.plainSelect(v87);
                return ;
            else
                if v91 < v93 then
                    v21.selectInRange(l_Items_1, v90, v91, v92, v93, v94);
                elseif v93 < v91 then
                    v21.selectInRange(l_Items_1, v90, v93, v94, v91, v92);
                else
                    v21.selectInRange(l_Items_1, v90, v93, math.min(v94, v92), v93, (math.max(v94, v92)));
                end;
                v21.props.SetCharacterSelection(v90);
                return ;
            end;
        else
            return ;
        end;
    end;
    v21.isItemSelected = function(v95)
        for _, v97 in v21.props.selection, nil, nil do
            if v97 == v95.key then
                return true;
            end;
        end;
        return false;
    end;
end;
v20.getCharacterStatusKey = function(v98, v99)
    local l_convertedCharacters_0 = v98.props.convertedCharacters;
    if v99.characterInfo then
        local l_model_0 = v99.characterInfo.model;
        if l_model_0 then
            if not v7.GetNpcHasWarnings(l_model_0) then
                if not l_convertedCharacters_0[v99.characterInfo.key] then
                    return nil;
                else
                    return "Success";
                end;
            else
                return "Warning";
            end;
        else
            return nil;
        end;
    else
        return nil;
    end;
end;
v20.renderItem = function(v102, v103, v104, v105)
    local l_props_4 = v102.props;
    local l_Stylizer_0 = l_props_4.Stylizer;
    local l_worldModels_0 = l_props_4.worldModels;
    v104[v103.key] = v3.createElement(v12, {
        AutomaticSize = Enum.AutomaticSize.Y,
        Selected = v102.isItemSelected(v103),
        Size = UDim2.new(1, 0, 0, l_Stylizer_0.RowHeight),
        LayoutOrder = v105,
        Text = v103.text,
        Expanded = v102.state.expanded == v103.key and (l_worldModels_0[v103.key] and true or false),
        StatusKey = v102:getCharacterStatusKey(v103),
        RenderContent = function()
            return v3.createElement(v11, {
                previewModel = l_worldModels_0[v103.key].previewModel,
                convertedModel = l_worldModels_0[v103.key].convertedModel
            });
        end,
        OnExpandedChanged = function()
            coroutine.wrap(function()
                l_props_4.CreateWorldModels(v103.key, v103.characterInfo.model);
                v102:setState({
                    expanded = if v102.state.expanded == v103.key then v3.None else v103.key
                });
            end)();
        end,
        OnClick = function()
            if not v102._shiftDown then
                v102.plainToggleSelect(v103);
                return ;
            else
                v102.shiftSelect(v103);
                return ;
            end;
        end
    });
end;
v20.renderNestedItem = function(v109, v110, v111, v112)
    local l_props_5 = v109.props;
    local l_Stylizer_1 = l_props_5.Stylizer;
    local v115 = {
        Layout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, l_Stylizer_1.Spacing)
        })
    };
    local v116 = 0;
    for _, v118 in v110.children, nil, nil do
        if not v118.children then
            if not v115.SelectAllRow then
                v115.SelectAllRow = v3.createElement(v10, {
                    IsChecked = v109.areAllChildrenSelected(v110),
                    OnCheckboxClick = function()
                        v109.toggleSelectAllChildren(v110);
                    end,
                    OnResetPlugin = l_props_5.OnResetPlugin
                });
            end;
            v109:renderItem(v118, v115, v116);
        else
            v109:renderNestedItem(v118, v115, v116);
        end;
        v116 = v116 + 1;
    end;
    v111[v110.key] = v3.createElement(l_ExpandablePane_0, {
        AutomaticSize = Enum.AutomaticSize.Y,
        Style = "Section",
        ContentPadding = 0,
        ContentSpacing = 0,
        Size = UDim2.new(1, 0, 0, l_Stylizer_1.RowHeight),
        LayoutOrder = v112,
        Text = v110.text,
        Expanded = v109.state.expandedNestedItem[v110.key] or false,
        OnExpandedChanged = function()
            v109:setState({
                expandedNestedItem = v1.Dictionary.join(v109.state.expandedNestedItem, {
                    [v110.key] = not (v109.state.expandedNestedItem[v110.key] or false)
                })
            });
        end
    }, v115);
end;
v20.render = function(v119)
    local l_props_6 = v119.props;
    local l_Size_0 = l_props_6.Size;
    local l_LayoutOrder_0 = l_props_6.LayoutOrder;
    local l_Items_2 = l_props_6.Items;
    local v124 = {};
    local v125 = 0;
    for _, v127 in l_Items_2, nil, nil do
        if not v127.children then
            v119:renderItem(v127, v124, v125);
        else
            v119:renderNestedItem(v127, v124, v125);
        end;
        v125 = v125 + 1;
    end;
    return v3.createFragment({
        ScrollingFrame = v3.createElement(l_ScrollingFrame_0, {
            Layout = Enum.FillDirection.Vertical,
            AutomaticCanvasSize = Enum.AutomaticSize.Y,
            LayoutOrder = l_LayoutOrder_0,
            Size = l_Size_0
        }, v124),
        KeyboardListener = v3.createElement(l_KeyboardListener_0, {
            OnKeyPressed = v119.onKeyPressed,
            OnKeyReleased = v119.onKeyReleased
        })
    });
end;
return v4.connect(function(v128, _)
    return {
        selection = v128.CharacterConversion.selection,
        convertedCharacters = v128.CharacterConversion.convertedCharacters,
        worldModels = v128.CharacterConversion.worldModels
    };
end, function(v130)
    return {
        SetCharacterSelection = function(v131)
            v130(v8(v131));
        end,
        CreateWorldModels = function(v132, v133)
            v130(v13(v132, v133));
        end
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v20)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Checkbox_0 = l_UI_0.Checkbox;
local l_Util_0 = v2.Util;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_StyleModifier_0 = l_Util_0.StyleModifier;
local v14 = v1.PureComponent:extend("ExpandableCharacterListItem");
v14.render = function(v15)
    local l_props_0 = v15.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Expanded_0 = l_props_0.Expanded;
    local l_RenderContent_0 = l_props_0.RenderContent;
    local v20 = nil;
    local v21 = nil;
    local v22 = nil;
    if l_Expanded_0 then
        v22 = "BorderBox";
        v21 = l_Stylizer_0.SelectedBorderColor;
        v20 = l_Stylizer_0.SelectedColor;
    end;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local v24 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_Pane_0, {
        BorderColor = v21,
        BackgroundColor3 = v20,
        Style = v22,
        AutomaticSize = Enum.AutomaticSize.Y,
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = l_LayoutOrder_0,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        OnClick = l_props_0.OnExpandedChanged
    }, {
        Header = v15:renderHeader(v24:getNextOrder()),
        Container = if not l_Expanded_0 then nil else v1.createElement(l_Pane_0, {
            LayoutOrder = v24:getNextOrder(),
            AutomaticSize = Enum.AutomaticSize.XY,
            Padding = l_Stylizer_0.Content.Padding
        }, {
            Content = l_RenderContent_0()
        })
    });
end;
v14.renderHeader = function(v25, v26)
    local l_props_1 = v25.props;
    local l_Stylizer_1 = l_props_1.Stylizer;
    local l_Header_0 = l_Stylizer_1.Header;
    local l_Localization_0 = l_props_1.Localization;
    local l_Size_0 = l_props_1.Size;
    local l_Selected_0 = l_props_1.Selected;
    local l_Expanded_1 = l_props_1.Expanded;
    local l_StatusKey_0 = l_props_1.StatusKey;
    local l_OnClick_0 = l_props_1.OnClick;
    local v36 = l_LayoutOrderIterator_0.new();
    local v37 = nil;
    v37 = if not l_Expanded_1 then l_Header_0.BackgroundColor else nil;
    return v1.createElement(l_Pane_0, {
        BackgroundColor3 = v37,
        BorderSizePixel = 0,
        HorizontalAlignment = l_Header_0.HorizontalAlignment,
        LayoutOrder = v26,
        Layout = Enum.FillDirection.Horizontal,
        Padding = l_Header_0.Padding,
        Size = l_Size_0,
        VerticalAlignment = l_Header_0.VerticalAlignment
    }, {
        Checkbox = v1.createElement(l_Checkbox_0, {
            Checked = l_Selected_0,
            OnClick = l_OnClick_0,
            LayoutOrder = v36:getNextOrder()
        }),
        MainElements = v1.createElement(l_Pane_0, {
            BackgroundColor3 = v37,
            BorderSizePixel = 0,
            HorizontalAlignment = l_Header_0.HorizontalAlignment,
            LayoutOrder = v36:getNextOrder(),
            Layout = Enum.FillDirection.Horizontal,
            Size = UDim2.new(1, -l_Header_0.Padding.Right, 1, 0),
            Spacing = l_Header_0.Spacing,
            VerticalAlignment = l_Header_0.VerticalAlignment
        }, {
            Arrow = v1.createElement("TextButton", {
                BackgroundTransparency = 1,
                Text = "",
                LayoutOrder = v36:getNextOrder(),
                Size = l_Header_0.Arrow.Size,
                [v1.Event.MouseButton1Click] = l_props_1.OnExpandedChanged
            }, {
                Image = v1.createElement(l_Image_0, {
                    Style = l_Header_0.Arrow,
                    StyleModifier = not not l_props_1.Expanded and l_StyleModifier_0.Selected or nil
                })
            }),
            Title = v1.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = v36:getNextOrder(),
                Style = l_Header_0.Text,
                Text = l_props_1.Text,
                TextWrapped = true
            }),
            Icon = l_StatusKey_0 and v1.createElement(l_Image_0, {
                Image = l_Stylizer_1.Icons[l_StatusKey_0],
                Size = l_Stylizer_1.StatusImageSize,
                AnchorPoint = Vector2.new(1, 0.5),
                LayoutOrder = v36:getNextOrder()
            }, {
                Tooltip = v1.createElement(l_Tooltip_0, {
                    Text = l_Localization_0:getText("CharacterConversion", l_StatusKey_0)
                })
            })
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v14));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v4 = require(l_script_FirstAncestor_0.Src.Thunks.ConvertCharacters);
local v5 = require(l_script_FirstAncestor_0.Src.Thunks.RevertCharacters);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_Separator_0 = l_UI_0.Separator;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v13 = v2.PureComponent:extend("CharacterConversionPaneFooter");
v13.init = function(v14)
    v14.convertCharacters = function()
        v14.props.ConvertCharacters(v14.props.Analytics);
    end;
    v14.revertCharacters = function()
        v14.props.RevertCharacters(v14.props.Analytics);
    end;
end;
v13.render = function(v15)
    local l_props_0 = v15.props;
    local l_Localization_0 = l_props_0.Localization;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_processResultMessage_0 = l_props_0.processResultMessage;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Size_0 = l_props_0.Size;
    local v22 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_LayoutOrder_0,
        Size = l_Size_0,
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Spacing = l_Stylizer_0.Spacing
    }, {
        ResultContainer = v2.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            BorderSizePixel = 0,
            Padding = l_Stylizer_0.ResultContainerPadding,
            Size = l_Stylizer_0.ResultContainerSize,
            Spacing = l_Stylizer_0.ResultContainerSpacing
        }, {
            Separator = v2.createElement(l_Separator_0, {
                DominantAxis = Enum.DominantAxis.Width,
                LayoutOrder = v22:getNextOrder(),
                Style = l_Stylizer_0.SeparatorStyle
            }),
            ProcessResult = v2.createElement(l_TextLabel_0, {
                Size = l_Stylizer_0.ResultSize,
                LayoutOrder = v22:getNextOrder(),
                Text = l_processResultMessage_0 or "",
                TextXAlignment = Enum.TextXAlignment.Left
            })
        }),
        FooterButtons = v2.createElement(l_Pane_0, {
            LayoutOrder = v22:getNextOrder(),
            Size = UDim2.fromScale(1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Spacing = l_Stylizer_0.ButtonSpacing,
            Padding = l_Stylizer_0.ButtonPadding
        }, {
            RevertButton = v2.createElement(l_Button_0, {
                Size = l_Stylizer_0.RevertButtonSize,
                Text = l_Localization_0:getText("CharacterConversion", "Revert"),
                OnClick = v15.revertCharacters,
                LayoutOrder = v22:getNextOrder()
            }),
            ConvertButton = v2.createElement(l_Button_0, {
                Style = "RoundPrimary",
                Size = l_Stylizer_0.ReplaceButtonSize,
                Text = l_Localization_0:getText("CharacterConversion", "Replace"),
                OnClick = v15.convertCharacters,
                LayoutOrder = v22:getNextOrder()
            })
        })
    });
end;
return v3.connect(function(v23, _)
    return {
        selection = v23.CharacterConversion.selection
    };
end, function(v25)
    return {
        ConvertCharacters = function(v26)
            v25(v4(v26));
        end,
        RevertCharacters = function(v27)
            v25(v5(v27));
        end
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_ContextServices_0.Analytics,
    Plugin = l_ContextServices_0.Plugin,
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v13)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Cryo);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v2.ContextServices;
local l_InstanceTreeView_0 = v2.UI.InstanceTreeView;
local v6 = v3.PureComponent:extend("CharacterInstanceTree");
v6.isValidDisplayInstance = function(v7)
    if not v7:IsA("Accoutrement") then
        if not v7:IsA("BasePart") then
            return false;
        else
            return true;
        end;
    else
        return true;
    end;
end;
local function v8(v9, v10)
    local v11 = {};
    for _, v13 in v9:GetChildren() do
        if v10(v13) then
            v11[#v11 + 1] = v8(v13, v10);
        end;
    end;
    local v14 = v9:Clone();
    v14:ClearAllChildren();
    for _, v16 in v11, nil, nil do
        v16.Parent = v14;
    end;
    return v14;
end;
v6.getInstanceTreeRoot = function(v17)
    if v17 then
        return (v8(v17:GetChildren()[1], v6.isValidDisplayInstance));
    else
        return nil;
    end;
end;
v6.init = function(v18)
    v18.instanceTreeRoot = v18.getInstanceTreeRoot(v18.props.Instance);
    v18.state = {
        Expansion = {
            [v18.instanceTreeRoot] = true
        },
        Selection = {}
    };
    v18.onSelectionChanged = function(v19)
        for v20, v21 in v18.state.Selection, nil, nil do
            if not (not v19[v20] or not v21) then
                v19[v20] = false;
            end;
        end;
        v18:setState({
            Selection = v19
        });
        if v18.props.OnSelectionChange then
            v18.props.OnSelectionChange(v19);
        end;
    end;
    v18.onExpansionChanged = function(v22)
        v18:setState({
            Expansion = v1.Dictionary.join(v18.state.Expansion, v22)
        });
    end;
end;
v6.render = function(v23)
    return v3.createElement(l_InstanceTreeView_0, {
        Size = UDim2.fromScale(1, 1),
        LayoutOrder = v23.props.LayoutOrder,
        Instances = {
            v23.instanceTreeRoot
        },
        Selection = v23.state.Selection,
        Expansion = v23.state.Expansion,
        OnSelectionChange = v23.onSelectionChanged,
        OnExpansionChange = v23.onExpansionChanged,
        Style = v23.props.Stylizer.CompactNoBorder
    });
end;
v6.didUpdate = function(v24, v25)
    if v25.Instance ~= v24.props.Instance then
        v24.instanceTreeRoot = v24.getInstanceTreeRoot(v24.props.Instance);
        v24:setState({
            Expansion = {
                [v24.instanceTreeRoot] = true
            },
            Selection = {}
        });
        return ;
    else
        if v25.Selection ~= v24.props.Selection then
            local v26 = {};
            for v27 in v24.props.Selection, nil, nil do
                local l_FirstChild_0 = v24.instanceTreeRoot:FindFirstChild(v27, true);
                if l_FirstChild_0 then
                    v26[l_FirstChild_0] = true;
                end;
            end;
            v24:setState({
                Selection = v26
            });
        end;
        return ;
    end;
end;
v6 = l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v6);
return v6;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v4 = require(l_script_FirstAncestor_0.Src.Util.ItemState);
local v5 = require(l_script_FirstAncestor_0.Src.Components.CharacterConversion.CharacterList);
local v6 = require(l_script_FirstAncestor_0.Src.Util.sanitizeString);
local l_ContextServices_0 = v1.ContextServices;
local v8 = v2.PureComponent:extend("ModelConversionMainView");
v8.getChildItems = function(_, v10)
    local v11 = {};
    for _, v13 in v10, nil, nil do
        table.insert(v11, {
            key = v13.key,
            text = v6(v13.fullName),
            characterInfo = v13
        });
    end;
    return v11;
end;
v8.getItems = function(v14)
    local l_props_0 = v14.props;
    local l_Localization_0 = l_props_0.Localization;
    local v17 = {};
    table.insert(v17, {
        key = v4.InProgress,
        text = l_Localization_0:getText("CharacterConversion", "Issues"),
        children = v14:getChildItems(l_props_0.characters)
    });
    table.insert(v17, {
        key = v4.Completed,
        text = l_Localization_0:getText("CharacterConversion", "Converted"),
        children = v14:getChildItems(l_props_0.convertedCharacters)
    });
    return v17;
end;
v8.render = function(v18)
    local l_props_1 = v18.props;
    return v2.createElement(v5, {
        OnResetPlugin = l_props_1.OnResetPlugin,
        Size = l_props_1.Size,
        LayoutOrder = l_props_1.LayoutOrder,
        Items = v18:getItems()
    });
end;
return v3.connect(function(v20, _)
    return {
        characters = v20.CharacterConversion.characters,
        convertedCharacters = v20.CharacterConversion.convertedCharacters
    };
end)((l_ContextServices_0.withContext({
    Plugin = l_ContextServices_0.Plugin,
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v8)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Src.Components.CharacterConversion.InstanceTree);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Util_0 = v1.Util;
local l_AssetRenderModel_0 = l_UI_0.AssetRenderModel;
local l_Pane_0 = l_UI_0.Pane;
local v9 = v2.PureComponent:extend("CharacterPreview");
v9.init = function(v10, _)
    v10.onViewModelLoaded = function(v12)
        v12:MoveTo((Vector3.new()));
    end;
    v10.onSelectionChanged = function(v13)
        if v10.props.OnSelectionChange then
            v10.props.OnSelectionChange(v13);
        end;
    end;
    v10.getMatchingInstance = function(v14, v15)
        for _, v17 in v14:GetDescendants() do
            if not (not (v17.Name == v15) or not v3.isValidDisplayInstance(v17)) then
                return v17;
            end;
        end;
        return nil;
    end;
    local function v25(v18)
        local l_Parent_0 = v18.Parent;
        if l_Parent_0 then
            local l_SpecialMesh_0 = v18:FindFirstChildWhichIsA("SpecialMesh");
            if not l_SpecialMesh_0 then
                local v21 = v18.Name:gsub("%s+", "");
                for _, v23 in l_Parent_0:GetChildren() do
                    if v23:IsA("CharacterMesh") then
                        local l_BodyPart_0 = v23.BodyPart;
                        if l_BodyPart_0 and l_BodyPart_0.Name == v21 then
                            return v23;
                        end;
                    end;
                end;
                return nil;
            else
                return l_SpecialMesh_0;
            end;
        else
            return nil;
        end;
    end;
    v10.applySelectionEffect = function(v26)
        local l_SelectionColor_0 = v10.props.Stylizer.SelectionColor;
        if v26 then
            local function _(v28)
                v28.Color = l_SelectionColor_0;
                v28.Material = Enum.Material.Neon;
                v28.Transparency = 0.5;
                if v28:IsA("MeshPart") then
                    v28.TextureID = "";
                end;
            end;
            local function _(v30)
                local l_Part_0 = Instance.new("Part");
                l_Part_0.Name = "SelectionPart";
                l_Part_0.Anchored = true;
                l_Part_0.CanCollide = false;
                l_Part_0.CFrame = v30.CFrame;
                l_Part_0.Locked = true;
                l_Part_0.Size = v30.Size;
                l_Part_0.Parent = v30.Parent;
                l_Part_0.Color = l_SelectionColor_0;
                l_Part_0.Material = Enum.Material.Neon;
                l_Part_0.Transparency = 0.5;
                if l_Part_0:IsA("MeshPart") then
                    l_Part_0.TextureID = "";
                end;
            end;
            if not v26:IsA("MeshPart") then
                if not v26:IsA("BasePart") then
                    if v26:IsA("Accoutrement") then
                        local l_Handle_0 = v26:FindFirstChild("Handle");
                        if l_Handle_0 then
                            if not l_Handle_0:IsA("MeshPart") then
                                local l_Part_1 = Instance.new("Part");
                                l_Part_1.Name = "SelectionPart";
                                l_Part_1.Anchored = true;
                                l_Part_1.CanCollide = false;
                                l_Part_1.CFrame = l_Handle_0.CFrame;
                                l_Part_1.Locked = true;
                                l_Part_1.Size = l_Handle_0.Size;
                                l_Part_1.Parent = l_Handle_0.Parent;
                                l_Part_1.Color = l_SelectionColor_0;
                                l_Part_1.Material = Enum.Material.Neon;
                                l_Part_1.Transparency = 0.5;
                                if l_Part_1:IsA("MeshPart") then
                                    l_Part_1.TextureID = "";
                                end;
                            else
                                l_Handle_0.Color = l_SelectionColor_0;
                                l_Handle_0.Material = Enum.Material.Neon;
                                l_Handle_0.Transparency = 0.5;
                                if l_Handle_0:IsA("MeshPart") then
                                    l_Handle_0.TextureID = "";
                                    return ;
                                end;
                            end;
                        end;
                    end;
                elseif not v25(v26) then
                    v26.Color = l_SelectionColor_0;
                    v26.Material = Enum.Material.Neon;
                    v26.Transparency = 0.5;
                    if v26:IsA("MeshPart") then
                        v26.TextureID = "";
                        return ;
                    end;
                else
                    local l_Part_2 = Instance.new("Part");
                    l_Part_2.Name = "SelectionPart";
                    l_Part_2.Anchored = true;
                    l_Part_2.CanCollide = false;
                    l_Part_2.CFrame = v26.CFrame;
                    l_Part_2.Locked = true;
                    l_Part_2.Size = v26.Size;
                    l_Part_2.Parent = v26.Parent;
                    l_Part_2.Color = l_SelectionColor_0;
                    l_Part_2.Material = Enum.Material.Neon;
                    l_Part_2.Transparency = 0.5;
                    if l_Part_2:IsA("MeshPart") then
                        l_Part_2.TextureID = "";
                        return ;
                    end;
                end;
                return ;
            else
                v26.Color = l_SelectionColor_0;
                v26.Material = Enum.Material.Neon;
                v26.Transparency = 0.5;
                if v26:IsA("MeshPart") then
                    v26.TextureID = "";
                end;
                v26.Color = l_SelectionColor_0;
                v26.Material = Enum.Material.Neon;
                v26.TextureID = "";
                v26.Transparency = 0.5;
                return ;
            end;
        else
            return ;
        end;
    end;
    v10.setupAssetRenderModel = function(v36)
        if v36 then
            local l_Selection_0 = v10.props.Selection;
            local v38 = v36:Clone();
            for v39, v40 in l_Selection_0, nil, nil do
                if v40 then
                    v10.applySelectionEffect((v10.getMatchingInstance(v38, v39)));
                end;
            end;
            return v38;
        else
            return nil;
        end;
    end;
end;
v9.render = function(v41)
    local l_props_0 = v41.props;
    local l_Character_0 = l_props_0.Character;
    local l_Stylizer_0 = l_props_0.Stylizer;
    return v2.createFragment({
        ViewPortPane = v2.createElement(l_Pane_0, {
            BackgroundColor3 = l_Stylizer_0.ViewportBackgroundColor,
            BackgroundTransparency = 0,
            LayoutOrder = l_Util_0.LayoutOrderIterator.new():getNextOrder(),
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.ViewportHeight)
        }, {
            Viewport = v2.createElement(l_AssetRenderModel_0, {
                DisablePan = true,
                DisableZoom = true,
                FocusDirection = Vector3.new(0, 0, -1),
                Model = v41.setupAssetRenderModel(l_Character_0),
                OnViewModelLoaded = v41.onViewModelLoaded,
                RecenterModelOnUpdate = false,
                Size = UDim2.fromScale(1, 1)
            })
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v9));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Src.Components.CharacterConversion.Preview);
local v4 = require(l_script_FirstAncestor_0.Src.Modules.NpcManager);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Util_0 = v1.Util;
local l_Image_0 = l_UI_0.Image;
local l_Pane_0 = l_UI_0.Pane;
local v10 = v2.PureComponent:extend("CharacterSplitView");
v10.init = function(v11)
    v11.state = {
        selectedOriginalParts = {},
        selectedConvertedParts = {}
    };
    v11.mapToNames = function(v12)
        local v13 = {};
        for v14, v15 in v12, nil, nil do
            v13[v14.Name] = v15;
        end;
        return v13;
    end;
    v11.selectMatchingOriginalPart = function(v16)
        if v11.props.previewModel then
            local v17 = {};
            for v18 in v16, nil, nil do
                local v19 = v4.GetLimbForR15Part(v18.Name);
                if v19 then
                    v17[v19] = true;
                end;
            end;
            v11:setState({
                selectedOriginalParts = v17,
                selectedConvertedParts = v11.mapToNames(v16)
            });
            return ;
        else
            return ;
        end;
    end;
    v11.selectMatchingConvertedParts = function(v20)
        if v11.props.convertedModel then
            local v21 = {};
            for v22 in v20, nil, nil do
                local v23 = v4.GetR15PartsFromBodyPart((v4.GetBodyPartR6(v22)));
                if v23 then
                    for _, v25 in v23, nil, nil do
                        v21[v25] = true;
                    end;
                end;
            end;
            v11:setState({
                selectedOriginalParts = v11.mapToNames(v20),
                selectedConvertedParts = v21
            });
            return ;
        else
            return ;
        end;
    end;
end;
v10.render = function(v26)
    local l_state_0 = v26.state;
    local l_props_0 = v26.props;
    local l_selectedOriginalParts_0 = l_state_0.selectedOriginalParts;
    local l_selectedConvertedParts_0 = l_state_0.selectedConvertedParts;
    local l_previewModel_0 = l_props_0.previewModel;
    local l_convertedModel_0 = l_props_0.convertedModel;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v34 = l_Stylizer_0.Arrow.Size.X.Offset + l_Stylizer_0.ArrowPadding * 2;
    local v35 = l_Util_0.LayoutOrderIterator.new();
    return v2.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.Y,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        Size = UDim2.fromScale(1, 0),
        Spacing = l_Stylizer_0.HorizontalSpacing
    }, {
        Left = v2.createElement(l_Pane_0, {
            AutomaticSize = Enum.AutomaticSize.Y,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Layout = Enum.FillDirection.Vertical,
            LayoutOrder = v35:getNextOrder(),
            Size = UDim2.new(0, l_Stylizer_0.Width, 0, 0),
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Spacing = l_Stylizer_0.VerticalSpacing
        }, {
            CharacterPreview = v2.createElement(v3, {
                Character = l_previewModel_0,
                OnSelectionChange = v26.selectMatchingConvertedParts,
                Selection = l_selectedOriginalParts_0
            })
        }),
        ArrowFrame = v2.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            LayoutOrder = v35:getNextOrder(),
            Size = UDim2.new(0, v34, 0, 0)
        }, {
            Arrow = v2.createElement(l_Image_0, {
                AnchorPoint = Vector2.new(0.5, 0),
                Image = l_Stylizer_0.Arrow.Image,
                ImageColor3 = l_Stylizer_0.Arrow.Color,
                ImageRectOffset = l_Stylizer_0.Arrow.Offset,
                ImageRectSize = l_Stylizer_0.Arrow.ImageRectSize,
                Position = UDim2.fromScale(0.5, 0),
                Size = l_Stylizer_0.Arrow.Size
            })
        }),
        Right = v2.createElement(l_Pane_0, {
            AutomaticSize = Enum.AutomaticSize.Y,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Layout = Enum.FillDirection.Vertical,
            LayoutOrder = v35:getNextOrder(),
            Size = UDim2.new(0, l_Stylizer_0.Width, 0, 0),
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Spacing = l_Stylizer_0.VerticalSpacing
        }, {
            CharacterPreview = v2.createElement(v3, {
                Character = l_convertedModel_0,
                OnSelectionChange = v26.selectMatchingOriginalPart,
                Selection = l_selectedConvertedParts_0
            })
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v10));