local v0 = {};
local function _(v1, v2, v3, v4)
    local l_Motor6D_0 = Instance.new("Motor6D");
    l_Motor6D_0.Part0 = v1;
    l_Motor6D_0.Part1 = v2;
    l_Motor6D_0.C0 = v3;
    l_Motor6D_0.C1 = v4;
    l_Motor6D_0.Parent = v1;
    return l_Motor6D_0;
end;
v0.Create = function()
    local l_Model_0 = Instance.new("Model");
    l_Model_0.Name = "R6";
    local l_Part_0 = Instance.new("Part");
    l_Part_0.Name = "HumanoidRootPart";
    l_Part_0.CanCollide = true;
    l_Part_0.Transparency = 1;
    l_Part_0.Size = Vector3.new(2, 2, 1);
    l_Part_0.CFrame = CFrame.new(0, 5.2, 4.5);
    l_Part_0.BottomSurface = "Smooth";
    l_Part_0.TopSurface = "Smooth";
    l_Part_0.Parent = l_Model_0;
    l_Model_0.PrimaryPart = l_Part_0;
    local l_Part_1 = Instance.new("Part");
    l_Part_1.Name = "Torso";
    l_Part_1.Anchored = false;
    l_Part_1.CanCollide = false;
    l_Part_1.Size = Vector3.new(2, 2, 1);
    l_Part_1.CFrame = CFrame.new(0, 5.2, 4.5);
    l_Part_1.BottomSurface = "Smooth";
    l_Part_1.TopSurface = "Smooth";
    l_Part_1.Parent = l_Model_0;
    local v10 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0);
    local l_Motor6D_1 = Instance.new("Motor6D");
    l_Motor6D_1.Part0 = l_Part_0;
    l_Motor6D_1.Part1 = l_Part_1;
    l_Motor6D_1.C0 = v10;
    l_Motor6D_1.C1 = v10;
    l_Motor6D_1.Parent = l_Part_0;
    local l_l_Motor6D_1_0 = l_Motor6D_1;
    l_l_Motor6D_1_0.Name = "Root Hip";
    l_l_Motor6D_1_0.MaxVelocity = 0.1;
    l_Motor6D_1 = Instance.new("Part");
    l_Motor6D_1.Name = "Left Leg";
    l_Motor6D_1.Anchored = false;
    l_Motor6D_1.CanCollide = false;
    l_Motor6D_1.Size = Vector3.new(1, 2, 1);
    l_Motor6D_1.CFrame = CFrame.new(0.5, 3.2, 4.5);
    l_Motor6D_1.BottomSurface = "Smooth";
    l_Motor6D_1.TopSurface = "Smooth";
    l_Motor6D_1.Parent = l_Model_0;
    local v13 = CFrame.new(-1, -1, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), -1.5707963267948966);
    local v14 = CFrame.new(-0.5, 1, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), -1.5707963267948966);
    local l_Motor6D_2 = Instance.new("Motor6D");
    l_Motor6D_2.Part0 = l_Part_1;
    l_Motor6D_2.Part1 = l_Motor6D_1;
    l_Motor6D_2.C0 = v13;
    l_Motor6D_2.C1 = v14;
    l_Motor6D_2.Parent = l_Part_1;
    local l_l_Motor6D_2_0 = l_Motor6D_2;
    l_l_Motor6D_2_0.Name = "Left Hip";
    l_l_Motor6D_2_0.MaxVelocity = 0.1;
    l_Motor6D_2 = Instance.new("Part");
    l_Motor6D_2.Name = "Right Leg";
    l_Motor6D_2.Anchored = false;
    l_Motor6D_2.CanCollide = false;
    l_Motor6D_2.Size = Vector3.new(1, 2, 1);
    l_Motor6D_2.CFrame = CFrame.new(-0.5, 3.2, 4.5);
    l_Motor6D_2.BottomSurface = "Smooth";
    l_Motor6D_2.TopSurface = "Smooth";
    l_Motor6D_2.Parent = l_Model_0;
    local v17 = CFrame.new(1, -1, 0) * CFrame.fromAxisAngle(Vector3.new(0, -1, 0), -1.5707963267948966);
    local v18 = CFrame.new(0.5, 1, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), 1.5707963267948966);
    local l_Motor6D_3 = Instance.new("Motor6D");
    l_Motor6D_3.Part0 = l_Part_1;
    l_Motor6D_3.Part1 = l_Motor6D_2;
    l_Motor6D_3.C0 = v17;
    l_Motor6D_3.C1 = v18;
    l_Motor6D_3.Parent = l_Part_1;
    local l_l_Motor6D_3_0 = l_Motor6D_3;
    l_l_Motor6D_3_0.Name = "Right Hip";
    l_l_Motor6D_3_0.MaxVelocity = 0.1;
    l_Motor6D_3 = Instance.new("Part");
    l_Motor6D_3.Name = "Left Arm";
    l_Motor6D_3.Anchored = false;
    l_Motor6D_3.CanCollide = false;
    l_Motor6D_3.Size = Vector3.new(1, 2, 1);
    l_Motor6D_3.CFrame = CFrame.new(1.5, 5.2, 4.5);
    l_Motor6D_3.BottomSurface = "Smooth";
    l_Motor6D_3.TopSurface = "Smooth";
    l_Motor6D_3.Parent = l_Model_0;
    local v21 = CFrame.new(-1, 0.5, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), -1.5707963267948966);
    local v22 = CFrame.new(0.5, 0.5, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), -1.5707963267948966);
    local l_Motor6D_4 = Instance.new("Motor6D");
    l_Motor6D_4.Part0 = l_Part_1;
    l_Motor6D_4.Part1 = l_Motor6D_3;
    l_Motor6D_4.C0 = v21;
    l_Motor6D_4.C1 = v22;
    l_Motor6D_4.Parent = l_Part_1;
    local l_l_Motor6D_4_0 = l_Motor6D_4;
    l_l_Motor6D_4_0.Name = "Left Shoulder";
    l_l_Motor6D_4_0.MaxVelocity = 0.1;
    l_Motor6D_4 = Instance.new("Part");
    l_Motor6D_4.Name = "Right Arm";
    l_Motor6D_4.Anchored = false;
    l_Motor6D_4.CanCollide = false;
    l_Motor6D_4.Size = Vector3.new(1, 2, 1);
    l_Motor6D_4.CFrame = CFrame.new(-1.5, 5.2, 4.5);
    l_Motor6D_4.BottomSurface = "Smooth";
    l_Motor6D_4.TopSurface = "Smooth";
    l_Motor6D_4.Parent = l_Model_0;
    local v25 = CFrame.new(1, 0.5, 0) * CFrame.fromAxisAngle(Vector3.new(0, -1, 0), -1.5707963267948966);
    local v26 = CFrame.new(-0.5, 0.5, 0) * CFrame.fromAxisAngle(Vector3.new(0, 1, 0), 1.5707963267948966);
    local l_Motor6D_5 = Instance.new("Motor6D");
    l_Motor6D_5.Part0 = l_Part_1;
    l_Motor6D_5.Part1 = l_Motor6D_4;
    l_Motor6D_5.C0 = v25;
    l_Motor6D_5.C1 = v26;
    l_Motor6D_5.Parent = l_Part_1;
    local l_l_Motor6D_5_0 = l_Motor6D_5;
    l_l_Motor6D_5_0.Name = "Right Shoulder";
    l_l_Motor6D_5_0.MaxVelocity = 0.1;
    l_Motor6D_5 = Instance.new("Part");
    l_Motor6D_5.Name = "Head";
    l_Motor6D_5.Anchored = false;
    l_Motor6D_5.CanCollide = true;
    l_Motor6D_5.Size = Vector3.new(2, 1, 1);
    l_Motor6D_5.CFrame = CFrame.new(0, 6.7, 4.5);
    l_Motor6D_5.BottomSurface = "Smooth";
    l_Motor6D_5.TopSurface = "Smooth";
    l_Motor6D_5.Parent = l_Model_0;
    local v29 = Instance.new("SpecialMesh", l_Motor6D_5);
    v29.MeshType = Enum.MeshType.Head;
    v29.Scale = Vector3.new(1.25, 1.25, 1.25);
    local v30 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0);
    local v31 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0);
    local l_Motor6D_6 = Instance.new("Motor6D");
    l_Motor6D_6.Part0 = l_Part_1;
    l_Motor6D_6.Part1 = l_Motor6D_5;
    l_Motor6D_6.C0 = v30;
    l_Motor6D_6.C1 = v31;
    l_Motor6D_6.Parent = l_Part_1;
    local l_l_Motor6D_6_0 = l_Motor6D_6;
    l_l_Motor6D_6_0.Name = "Neck";
    l_l_Motor6D_6_0.MaxVelocity = 0.1;
    l_Motor6D_6 = Instance.new("Decal");
    l_Motor6D_6.Name = "face";
    l_Motor6D_6.Texture = "rbxasset://textures/face.png";
    l_Motor6D_6.Parent = l_Motor6D_5;
    Instance.new("Humanoid").Parent = l_Model_0;
    return l_Model_0;
end;
return v0;


local v0 = {};
local l_ServerStorage_0 = game:GetService("ServerStorage");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_PublishService_0 = game:GetService("PublishService");
local v4 = require(script.Parent.Constants);
local v5 = require(script.Parent.FixedRigPositions);
local v6 = require(script.Parent.R6);
local v7 = {
    Head = {
        "Head"
    },
    Torso = {
        "UpperTorso",
        "LowerTorso"
    },
    ["Right Arm"] = {
        "RightUpperArm",
        "RightLowerArm",
        "RightHand"
    },
    ["Left Arm"] = {
        "LeftUpperArm",
        "LeftLowerArm",
        "LeftHand"
    },
    ["Right Leg"] = {
        "RightUpperLeg",
        "RightLowerLeg",
        "RightFoot"
    },
    ["Left Leg"] = {
        "LeftUpperLeg",
        "LeftLowerLeg",
        "LeftFoot"
    }
};
local v8 = {
    l_ContentProvider_0.BaseUrl .. "asset/?id=",
    "rbxassetid://"
};
local function _(v9)
    if not tonumber(v9) then
        return v9;
    else
        return l_ContentProvider_0.BaseUrl .. "asset/?id=" .. v9;
    end;
end;
v0.GetLimbNames = function()
    local v11 = {};
    for v12, _ in pairs(v7) do
        v11[#v11 + 1] = v12;
    end;
    return v11;
end;
v0.GetBodyPartNames = function()
    local v14 = {};
    for _, v16 in pairs(Enum.BodyPart:GetEnumItems()) do
        v14[#v14 + 1] = v16.Name;
    end;
    return v14;
end;
v0.RemoveAssetUrlFromText = function(v17)
    if typeof(v17) ~= "string" then
        return v17;
    else
        for _, v19 in pairs(v8) do
            if string.find(v17, v19, 1, true) ~= nil then
                return (string.sub(v17, v19:len() + 1));
            end;
        end;
        return v17;
    end;
end;
v0.GetCurrentTextureIdFromRig = function(v20, v21)
    for _, v23 in pairs(v7[v21]) do
        local l_v20_FirstChild_0 = v20:FindFirstChild(v23);
        if l_v20_FirstChild_0 and l_v20_FirstChild_0.TextureID ~= "" then
            return v0.RemoveAssetUrlFromText(l_v20_FirstChild_0.TextureID);
        end;
    end;
    return nil;
end;
local function _(v25)
    if typeof(v25) == "string" and v25 ~= "" then
        return true;
    elseif typeof(v25) == "number" and v25 ~= 0 then
        return true;
    else
        return ;
    end;
end;
local function _(v27)
    local v28 = false;
    if v27 ~= "" then
        v28 = v27 ~= v4.DEFAULT_FACE_TEXTURE;
    end;
    return v28;
end;
v0.FindFaceTexture = function(v30, v31)
    if v31 then
        local l_Head_0 = v31:FindFirstChild("Head");
        if l_Head_0 then
            local l_face_0 = l_Head_0:FindFirstChild("face");
            if l_face_0 then
                local l_Texture_0 = l_face_0.Texture;
                local v35 = false;
                if l_Texture_0 ~= "" then
                    v35 = l_Texture_0 ~= v4.DEFAULT_FACE_TEXTURE;
                end;
                if v35 then
                    return l_face_0.Texture;
                end;
            end;
        end;
    end;
    if v30 then
        local l_Head_1 = v30:FindFirstChild("Head");
        if l_Head_1 then
            if l_Head_1:IsA("MeshPart") and l_Head_1.TextureID ~= "" then
                return l_Head_1.TextureID;
            else
                local l_face_1 = l_Head_1:FindFirstChild("face");
                if l_face_1 then
                    local l_Texture_1 = l_face_1.Texture;
                    local v39 = false;
                    if l_Texture_1 ~= "" then
                        v39 = l_Texture_1 ~= v4.DEFAULT_FACE_TEXTURE;
                    end;
                    if v39 then
                        return l_face_1.Texture;
                    end;
                end;
            end;
        end;
    end;
    return nil;
end;
v0.GetCurrentCharacterMeshIdFromRig = function(v40, v41)
    for _, v43 in pairs(v40:GetChildren()) do
        if v43:IsA("CharacterMesh") and v43.BodyPart.Name == v41 then
            local l_MeshId_0 = v43.MeshId;
            if typeof(l_MeshId_0) == "string" and l_MeshId_0 ~= "" or ((typeof(l_MeshId_0) == "number" and l_MeshId_0 ~= 0) and true or nil) then
                return v43.MeshId;
            end;
        elseif v43:IsA("Part") and v43.Name == v41 then
            local l_SpecialMesh_0 = v43:FindFirstChildWhichIsA("SpecialMesh");
            if l_SpecialMesh_0 then
                local l_MeshId_1 = l_SpecialMesh_0.MeshId;
                if typeof(l_MeshId_1) == "string" and l_MeshId_1 ~= "" or ((typeof(l_MeshId_1) == "number" and l_MeshId_1 ~= 0) and true or nil) then
                    return v0.RemoveAssetUrlFromText(l_SpecialMesh_0.MeshId);
                end;
            end;
        end;
    end;
    return nil;
end;
v0.GetCharacterMeshPropertyFromRig = function(v47, v48)
    for _, v50 in pairs(v47:GetChildren()) do
        if v50:IsA("CharacterMesh") then
            local v51 = v50[v48];
            if typeof(v51) == "string" and v51 ~= "" or ((typeof(v51) == "number" and v51 ~= 0) and true or nil) then
                return v51;
            end;
        end;
    end;
    return nil;
end;
local function v58(v52, v53, v54)
    for _, v56 in pairs(v53) do
        local l_v52_FirstChild_0 = v52:FindFirstChild(v56);
        if l_v52_FirstChild_0 then
            l_v52_FirstChild_0.TextureID = if not tonumber(v54) then v54 else l_ContentProvider_0.BaseUrl .. "asset/?id=" .. v54;
        end;
    end;
end;
local function v66(v59, v60, v61)
    for _, v63 in pairs(v59:GetChildren()) do
        if v63:IsA("CharacterMesh") then
            local l_status_0, l_result_0 = pcall(function()
                v63[v60] = v61;
            end);
            if not l_status_0 then
                warn("Expected CharacterMesh property, got " .. v60 .. "\n" .. "Error: " .. l_result_0 .. "\n" .. "Traceback: " .. debug.traceback());
            end;
        end;
    end;
end;
local function v71(v67, v68)
    for _, v70 in pairs(v68:GetChildren()) do
        if v70:IsA("CharacterMesh") and v70.BodyPart == v67 then
            return v70;
        end;
    end;
    return nil;
end;
local function v76(v72, v73)
    for _, v75 in pairs(v73:GetChildren()) do
        if v75:IsA("Part") and v75.Name == v72 then
            return v75;
        end;
    end;
    return nil;
end;
v0.CopyCharacterMeshesToRig = function(v77, v78)
    for _, v80 in pairs(Enum.BodyPart:GetEnumItems()) do
        local v81 = tonumber(v77[v80.Name]);
        if v81 and v80 ~= Enum.BodyPart.Head then
            local v82 = v71(v80, v78);
            if not v82 then
                v82 = Instance.new("CharacterMesh");
                v82.BodyPart = v80;
                v82.Parent = v78;
            end;
            v82.MeshId = v81;
        end;
    end;
    local l_Name_0 = Enum.BodyPart.Head.Name;
    local v84 = v76(l_Name_0, v78);
    local v85 = tonumber(v77[l_Name_0]);
    if not (not v85 or not v84) then
        local l_SpecialMesh_1 = v84:FindFirstChildWhichIsA("SpecialMesh");
        if l_SpecialMesh_1 then
            l_SpecialMesh_1.MeshId = if not tonumber(v85) then v85 else l_ContentProvider_0.BaseUrl .. "asset/?id=" .. v85;
        end;
    end;
end;
v0.CopyTexturesToRig = function(v87, v88)
    for v89, v90 in pairs(v87) do
        if not v7[v89] then
            v66(v88, v89, v90);
        else
            v58(v88, v7[v89], v90);
        end;
    end;
end;
v0.AddFaceToRig = function(v91, v92)
    if v91 then
        local l_Head_2 = v92:FindFirstChild("Head");
        if l_Head_2 then
            if l_Head_2:IsA("MeshPart") and l_Head_2.TextureID ~= "" then
                return ;
            else
                local l_face_2 = l_Head_2:FindFirstChild("face");
                if not l_face_2 then
                    l_face_2 = Instance.new("Decal");
                    l_face_2.Name = "face";
                    l_face_2.Parent = l_Head_2;
                end;
                l_face_2.Texture = if not tonumber(v91) then v91 else l_ContentProvider_0.BaseUrl .. "asset/?id=" .. v91;
            end;
        end;
        return ;
    else
        return ;
    end;
end;
local function _(v95, v96)
    local v97 = v6.Create();
    local l_CFrame_0 = v95.HumanoidRootPart.CFrame;
    v97.HumanoidRootPart.CFrame = l_CFrame_0 + l_CFrame_0.rightVector * 5;
    v97.Parent = v96;
end;
local function _(v100)
    local l_AvatarPartScaleType_0 = v100:FindFirstChild("AvatarPartScaleType");
    if not l_AvatarPartScaleType_0 then
        return v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_CLASSIC;
    else
        return l_AvatarPartScaleType_0.Value;
    end;
end;
local function _(v103)
    local l_AvatarPartScaleType_1 = v103.Parent:FindFirstChild("AvatarPartScaleType");
    local v105 = if not l_AvatarPartScaleType_1 then v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_CLASSIC else l_AvatarPartScaleType_1.Value;
    if v105 == v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_NORMAL then
        return v5.AnthroNormalFixedRigAttachmentMap[v103.Name];
    elseif v105 == v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_SLENDER then
        return v5.AnthroSlenderFixedRigAttachmentMap[v103.Name];
    else
        return v5.R15FixedRigAttachmentMap[v103.Name];
    end;
end;
local function v107(v108, v109)
    if not v109:IsA("Motor6D") then
        if v109:IsA("Attachment") then
            local l_AvatarPartScaleType_2 = v109.Parent:FindFirstChild("AvatarPartScaleType");
            local v111 = if not l_AvatarPartScaleType_2 then v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_CLASSIC else l_AvatarPartScaleType_2.Value;
            local v112 = if v111 == v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_NORMAL then v5.AnthroNormalFixedRigAttachmentMap[v109.Name] else if v111 == v4.AVATAR_PART_SCALE_TYPE.PROPORTIONS_SLENDER then v5.AnthroSlenderFixedRigAttachmentMap[v109.Name] else v5.R15FixedRigAttachmentMap[v109.Name];
            if v112 then
                v111 = v109.Parent;
                local l_OriginalPosition_0 = v109:FindFirstChild("OriginalPosition");
                if l_OriginalPosition_0 then
                    l_OriginalPosition_0:Destroy();
                end;
                v109.Position = ((v111.CFrame - v108.WorldPosition):inverse() * CFrame.new(v112)).p;
            end;
        end;
    else
        v109:Destroy();
    end;
    if v109.Name ~= "HumanoidRootPart" then
        for _, v115 in pairs(v109:GetChildren()) do
            v107(v108, v115);
        end;
    end;
end;
local function v116(v117)
    if v117:IsA("Motor6D") then
        v117:Destroy();
    end;
    for _, v119 in pairs(v117:GetChildren()) do
        v116(v119);
    end;
end;
local function v125(v120, v121)
    local v122 = v120:Clone();
    v122.Name = v4.R15_FIXED_FOLDER_NAME;
    v116(v122);
    v107(v122.HumanoidRootPart.RootRigAttachment, v122);
    local l_Humanoid_0 = v122:FindFirstChildOfClass("Humanoid");
    if l_Humanoid_0 then
        l_Humanoid_0.NameOcclusion = Enum.NameOcclusion.NoOcclusion;
        l_Humanoid_0:BuildRigFromAttachments();
    end;
    local l_CFrame_1 = v120.HumanoidRootPart.CFrame;
    v122.HumanoidRootPart.CFrame = l_CFrame_1 + l_CFrame_1.rightVector * -5;
    v122.Parent = v121;
end;
v0.CreateImportedFbxModel = function(v126)
    for _, v128 in pairs(workspace:GetChildren()) do
        if v128.Name == v4.IMPORTED_RIGS_MODEL_NAME then
            v128:Destroy();
        end;
    end;
    local l_Model_0 = Instance.new("Model");
    l_Model_0.Name = v4.IMPORTED_RIGS_MODEL_NAME;
    v126.Name = v4.R15_ARTIST_INTENT_FOLDER_NAME;
    v126.Parent = l_Model_0;
    local v130 = v6.Create();
    local l_CFrame_2 = v126.HumanoidRootPart.CFrame;
    v130.HumanoidRootPart.CFrame = l_CFrame_2 + l_CFrame_2.rightVector * 5;
    v130.Parent = l_Model_0;
    v125(v126, l_Model_0);
    l_Model_0.Parent = workspace;
    return l_Model_0;
end;
v0.FindExistingImportedFbx = function()
    return (workspace:FindFirstChild(v4.IMPORTED_RIGS_MODEL_NAME));
end;
local function _(v132, v133, v134)
    local l_Position_0 = v132.HumanoidRootPart.Position;
    local l_v132_FirstChild_0 = v132:FindFirstChild(v133);
    if l_v132_FirstChild_0 then
        local v137 = l_v132_FirstChild_0:Clone();
        v137.CFrame = (CFrame.new() + l_v132_FirstChild_0.Position) - l_Position_0;
        v137.Parent = v134;
    end;
end;
local function v143(v139, v140)
    for _, v142 in pairs(v139:GetChildren()) do
        if v142:IsA("CharacterMesh") and v142.BodyPart.Name == v140:gsub("%s+", "") then
            return v142:Clone();
        end;
    end;
end;
v0.MakeExportVersion = function(v144)
    for _, v146 in pairs(l_ServerStorage_0:GetChildren()) do
        if v146.Name == v4.PACKAGE_EXPORT_MODEL_NAME then
            v146:Destroy();
        end;
    end;
    local l_Model_1 = Instance.new("Model");
    l_Model_1.Name = v4.PACKAGE_EXPORT_MODEL_NAME;
    l_Model_1.Parent = l_ServerStorage_0;
    local function v171()
        l_Model_1:ClearAllChildren();
        local l_v144_FirstChild_0 = v144:FindFirstChild(v4.R15_ARTIST_INTENT_FOLDER_NAME);
        local l_v144_FirstChild_1 = v144:FindFirstChild(v4.R15_FIXED_FOLDER_NAME);
        local l_v144_FirstChild_2 = v144:FindFirstChild(v4.R6_FOLDER_NAME);
        if not (not l_v144_FirstChild_0 or not l_v144_FirstChild_1) and l_v144_FirstChild_2 then
            for v151, v152 in pairs(v7) do
                local v153 = Instance.new("Folder", l_Model_1);
                v153.Name = v151;
                local v154 = Instance.new("Folder", v153);
                v154.Name = v4.R15_ARTIST_INTENT_FOLDER_NAME;
                local v155 = Instance.new("Folder", v153);
                v155.Name = v4.R15_FIXED_FOLDER_NAME;
                for _, v157 in pairs(v152) do
                    local l_Position_1 = l_v144_FirstChild_0.HumanoidRootPart.Position;
                    local l_l_v144_FirstChild_0_FirstChild_0 = l_v144_FirstChild_0:FindFirstChild(v157);
                    if l_l_v144_FirstChild_0_FirstChild_0 then
                        local v160 = l_l_v144_FirstChild_0_FirstChild_0:Clone();
                        v160.CFrame = (CFrame.new() + l_l_v144_FirstChild_0_FirstChild_0.Position) - l_Position_1;
                        v160.Parent = v154;
                    end;
                    l_Position_1 = l_v144_FirstChild_1.HumanoidRootPart.Position;
                    l_l_v144_FirstChild_0_FirstChild_0 = l_v144_FirstChild_1:FindFirstChild(v157);
                    if l_l_v144_FirstChild_0_FirstChild_0 then
                        local v161 = l_l_v144_FirstChild_0_FirstChild_0:Clone();
                        v161.CFrame = (CFrame.new() + l_l_v144_FirstChild_0_FirstChild_0.Position) - l_Position_1;
                        v161.Parent = v155;
                    end;
                end;
                local v162 = Instance.new("Folder", v153);
                v162.Name = "R6";
                local l_Name_1 = Enum.BodyPart.Head.Name;
                if v151 == l_Name_1 then
                    local v164 = v76(l_Name_1, l_v144_FirstChild_2);
                    local v165 = v76(l_Name_1, l_v144_FirstChild_0);
                    local v166 = not not v164 and v164:FindFirstChildWhichIsA("SpecialMesh") or nil;
                    if not (not v166 or not v165) then
                        v166 = v166:Clone();
                        v166:ClearAllChildren();
                        for _, v168 in pairs(v165:GetChildren()) do
                            if not v168:IsA("ValueBase") then
                                if v168:IsA("Attachment") then
                                    local l_Vector3Value_0 = Instance.new("Vector3Value");
                                    l_Vector3Value_0.Name = v168.Name;
                                    l_Vector3Value_0.Value = v168.Position;
                                    l_Vector3Value_0.Parent = v166;
                                end;
                            else
                                v168:Clone().Parent = v166;
                            end;
                        end;
                        v166.Parent = v162;
                    end;
                else
                    local v170 = v143(l_v144_FirstChild_2, v151);
                    if v170 then
                        v170.Parent = v162;
                    end;
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
    v171();
    local v172 = false;
    spawn(function()
        while v144 and v144.Parent ~= nil do
            if v172 then
                v171();
                v172 = false;
            end;
            wait(1);
        end;
    end);
    local function v173(v174)
        v174.Changed:connect(function()
            v172 = true;
        end);
        for _, v176 in pairs(v174:GetChildren()) do
            v173(v176);
        end;
    end;
    v173(v144);
    local l_v144_FirstChild_3 = v144:FindFirstChild(v4.R6_FOLDER_NAME);
    if l_v144_FirstChild_3 then
        l_v144_FirstChild_3.ChildAdded:connect(function(v178)
            v178.Changed:connect(v171);
            v172 = true;
        end);
        l_v144_FirstChild_3.ChildRemoved:connect(function()
            v172 = true;
        end);
    end;
end;
v0.Export = function(v179)
    local l_l_ServerStorage_0_FirstChild_0 = l_ServerStorage_0:FindFirstChild(v4.PACKAGE_EXPORT_MODEL_NAME);
    if l_l_ServerStorage_0_FirstChild_0 then
        for _, v182 in pairs(l_l_ServerStorage_0_FirstChild_0:GetChildren()) do
            l_PublishService_0:PublishDescendantAssets(v182);
            local l_Name_2 = v182.Name;
            if v182.Name == "Head" then
                local l_R15ArtistIntent_0 = v182:FindFirstChild("R15ArtistIntent");
                if l_R15ArtistIntent_0 then
                    v182 = l_R15ArtistIntent_0;
                end;
            end;
            game.Selection:Set(v182:GetChildren());
            v179:PromptSaveSelection(l_Name_2);
        end;
        return ;
    else
        return ;
    end;
end;
return v0;


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


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


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


game:DefineFastString("AvatarImportDeprecationMessage", "The Avatar Importer will be deprecated in the near future. Switch to the new Unified Mesh Importer available in beta.");
return function()
    return game:GetFastString("AvatarImportDeprecationMessage");
end;


game:DefineFastString("AvatarImportDeprecationDevForumLink", "https://devforum.roblox.com/");
return function()
    return game:GetFastString("AvatarImportDeprecationDevForumLink");
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.Cryo);
return v1.createReducer({}, {
    [require(l_Parent_0.src.actions.SetError).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            name = v4.name,
            message = v4.message
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.src.Constants);
local l_actions_0 = l_Parent_0.src.actions;
return v1.createReducer({
    enabled = false,
    screen = v3.SCREENS.AVATAR,
    avatarType = nil
}, {
    [require(l_actions_0.ClosePlugin).name] = function(v5, v6)
        if v5.screen == v3.SCREENS.LOADING and not v6.force then
            return v5;
        else
            return v2.Dictionary.join(v5, {
                enabled = false
            });
        end;
    end,
    [require(l_actions_0.TogglePlugin).name] = function(v7)
        return v2.Dictionary.join(v7, {
            enabled = not v7.enabled,
            screen = v3.SCREENS.AVATAR
        });
    end,
    [require(l_actions_0.SetScreen).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            screen = v9.screen
        });
    end,
    [require(l_actions_0.SetOriginalAvatarType).name] = function(v10, v11)
        return v2.Dictionary.join(v10, {
            avatarType = v11.avatarType
        });
    end
});


local l_Parent_0 = script.Parent.Parent;
return require(l_Parent_0.Packages.Rodux).combineReducers({
    plugin = require(l_Parent_0.src.reducers.PluginReducer),
    error = require(l_Parent_0.src.reducers.ErrorReducer)
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.src.thunks.ImportWithoutSceneLoad);
local v2 = require(l_Parent_0.src.Constants);
local v3 = require(l_Parent_0.src.utils.getLinesFromStr);
local v4 = require(l_Parent_0.src.actions.SetScreen);
local v5 = require(l_Parent_0.src.actions.SetError);
return function()
    return function(v6)
        v6:dispatch(v4(v2.SCREENS.LOADING));
        local function v8(v7)
            if not v7 then
                v6:dispatch(v1(v2.AVATAR_TYPE.CUSTOM));
                return ;
            else
                v6:dispatch(v4(v2.SCREENS.REDIRECT_RIG));
                return ;
            end;
        end;
        local _, l_result_0 = pcall(function()
            return game:GetService("AvatarImportService"):LoadRigAndDetectType(v8);
        end);
        if l_result_0 then
            local v11 = "<filename>";
            local l_l_result_0_0 = l_result_0;
            local v13 = v3(l_result_0);
            if v13[1] == "FBX Import Error(s):" and #v13 >= 3 then
                v11 = v13[2];
                for v14 = 3, #v13 do
                    v13[v14] = "- " .. v13[v14];
                end;
                l_l_result_0_0 = table.concat(v13, "\n", 3);
            end;
            v6:dispatch(v5(v11, l_l_result_0_0));
            v6:dispatch(v4(v2.SCREENS.ERROR));
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.src.thunks.ImportWithoutSceneLoad);
local v2 = require(l_Parent_0.src.Constants);
local v3 = require(l_Parent_0.src.utils.getLinesFromStr);
local v4 = require(l_Parent_0.src.actions.SetScreen);
local v5 = require(l_Parent_0.src.actions.SetError);
local v6 = require(l_Parent_0.src.actions.SetOriginalAvatarType);
return function(v7)
    return function(v8)
        v8:dispatch(v4(v2.SCREENS.LOADING));
        v8:dispatch(v6(v7));
        local v9 = v7 ~= v2.AVATAR_TYPE.CUSTOM;
        local function v11(v10)
            if v9 or not v10 then
                if not v9 or v10 then
                    v8:dispatch(v1(v7));
                    return ;
                else
                    v8:dispatch(v4(v2.SCREENS.REDIRECT_RIG));
                    return ;
                end;
            else
                v8:dispatch(v4(v2.SCREENS.REDIRECT_RIG));
                return ;
            end;
        end;
        local _, l_result_0 = pcall(function()
            return game:GetService("AvatarImportService"):LoadRigAndDetectType(v11);
        end);
        if l_result_0 then
            local v14 = "<filename>";
            local l_l_result_0_0 = l_result_0;
            local v16 = v3(l_result_0);
            if v16[1] == "FBX Import Error(s):" and #v16 >= 3 then
                v14 = v16[2];
                for v17 = 3, #v16 do
                    v16[v17] = "- " .. v16[v17];
                end;
                l_l_result_0_0 = table.concat(v16, "\n", 3);
            end;
            v8:dispatch(v5(v14, l_l_result_0_0));
            v8:dispatch(v4(v2.SCREENS.ERROR));
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.src.Globals);
local v2 = require(l_Parent_0.src.Constants);
local v3 = require(l_Parent_0.src.actions.SetScreen);
local v4 = require(l_Parent_0.src.actions.SetError);
local v5 = require(l_Parent_0.src.actions.ClosePlugin);
local v6 = require(l_Parent_0.src.utils.getLinesFromStr);
local v7 = require(l_Parent_0.src.utils.setupImportedAvatar);
return function(v8)
    local v9 = v8 ~= v2.AVATAR_TYPE.CUSTOM;
    return function(v10)
        v10:dispatch(v3(v2.SCREENS.LOADING));
        local l_status_0, l_result_0 = pcall(function()
            return v1.plugin:ImportFbxRig(v9);
        end);
        if not l_status_0 then
            if l_result_0 == v2.ERROR_NO_FILE then
                v10:dispatch(v3(v2.SCREENS.AVATAR));
                return ;
            else
                local v13 = "<filename>";
                local l_l_result_0_0 = l_result_0;
                local v15 = v6(l_result_0);
                if v15[1] == "FBX Import Error(s):" and #v15 >= 3 then
                    v13 = v15[2];
                    for v16 = 3, #v15 do
                        v15[v16] = "- " .. v15[v16];
                    end;
                    l_l_result_0_0 = table.concat(v15, "\n", 3);
                end;
                v10:dispatch(v4(v13, l_l_result_0_0));
                v10:dispatch(v3(v2.SCREENS.ERROR));
                return ;
            end;
        else
            v7(l_result_0, v8);
            v10:dispatch(v5(true));
            return ;
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.src.Constants);
local v2 = require(l_Parent_0.src.actions.SetScreen);
local v3 = require(l_Parent_0.src.actions.SetError);
local v4 = require(l_Parent_0.src.actions.ClosePlugin);
local v5 = require(l_Parent_0.src.utils.getLinesFromStr);
local v6 = require(l_Parent_0.src.utils.setupImportedAvatar);
return function(v7)
    return function(v8)
        v8:dispatch(v2(v1.SCREENS.LOADING));
        local v9 = v7 ~= v1.AVATAR_TYPE.CUSTOM;
        local l_status_0, l_result_0 = pcall(function()
            return game:GetService("AvatarImportService"):ImportFbxRigWithoutSceneLoad(v9);
        end);
        if not l_status_0 then
            if l_result_0 == v1.ERROR_NO_FILE then
                v8:dispatch(v2(v1.SCREENS.AVATAR));
                return ;
            else
                local v12 = "<filename>";
                local l_l_result_0_0 = l_result_0;
                local v14 = v5(l_result_0);
                if v14[1] == "FBX Import Error(s):" and #v14 >= 3 then
                    v12 = v14[2];
                    for v15 = 3, #v14 do
                        v14[v15] = "- " .. v14[v15];
                    end;
                    l_l_result_0_0 = table.concat(v14, "\n", 3);
                end;
                v8:dispatch(v3(v12, l_l_result_0_0));
                v8:dispatch(v2(v1.SCREENS.ERROR));
                return ;
            end;
        else
            v6(l_result_0, v7);
            v8:dispatch(v4(true));
            return ;
        end;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
return function(v3)
    return v1.createElement(v2.StoreProvider, {
        store = v3.store
    }, v3[v1.Children]);
end;


return function(v0)
    local v1 = {};
    for _, v3 in ipairs(v0) do
        if v1[v3] ~= nil then
            error("convertArrayToTable: sourceArray should not contain duplicate values");
        else
            v1[v3] = v3;
        end;
    end;
    return v1;
end;


return function(v0)
    local v1 = {};
    for v2 in string.gmatch(v0, "[^\n]+") do
        v1[#v1 + 1] = v2;
    end;
    return v1;
end;


local l_TextService_0 = game:GetService("TextService");
local v1 = Vector2.new(math.huge, math.huge);
return function(v2, v3, v4)
    return l_TextService_0:GetTextSize(v2, v3, v4, v1).X;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.src.FastFlags);
local v2 = require(l_Parent_0.src.Constants);
local v3 = require(l_Parent_0.src.Globals);
local v4 = nil;
if v1:isBundleConfigurationEnabled() then
    local l_CoreGui_0 = game:GetService("CoreGui");
    local l_ScreenGui_0 = Instance.new("ScreenGui");
    l_ScreenGui_0.Name = "AvatarImporterConfigurer";
    l_ScreenGui_0.Parent = l_CoreGui_0;
    v4 = require(l_Parent_0.src.configurer.Configurer).new(l_ScreenGui_0);
    v4:createButtons(v3.plugin, v3.toolbar);
end;
local l_Workspace_0 = game:GetService("Workspace");
local l_Selection_0 = game:GetService("Selection");
local function v13(v9)
    local l_Camera_0 = l_Workspace_0:FindFirstChild("Camera");
    if not l_Camera_0 then
        return (Vector3.new(0, 5.2, 0));
    else
        local _, v12 = l_Workspace_0:FindPartOnRay((Ray.new(l_Camera_0.CFrame.p, l_Camera_0.CFrame.lookVector * v9)));
        l_Camera_0.Focus = CFrame.new(v12);
        return v12;
    end;
end;
local function v20(v14, v15)
    local v16 = v2.SCALE_VALUES_DEFAULTS[v15];
    if v16 then
        v14.AutomaticScalingEnabled = false;
        for v17, v18 in pairs(v16) do
            if not v14:FindFirstChild(v17) then
                local l_NumberValue_0 = Instance.new("NumberValue");
                l_NumberValue_0.Name = v17;
                l_NumberValue_0.Value = v18;
                l_NumberValue_0.Parent = v14;
            end;
        end;
        v14.AutomaticScalingEnabled = true;
        return ;
    else
        return ;
    end;
end;
local function _(v21)
    local l_Head_0 = v21:FindFirstChild("Head");
    if (l_Head_0 and l_Head_0.TextureID == "") and l_Head_0:FindFirstChildWhichIsA("FaceControls") == nil then
        local l_Decal_0 = Instance.new("Decal");
        l_Decal_0.Name = "face";
        l_Decal_0.Texture = "rbxasset://textures/face.png";
        l_Decal_0.Parent = l_Head_0;
    end;
end;
local function v31(v25, v26)
    local v27 = v2.TYPE_TO_SCALE[v26];
    if v27 then
        for _, v29 in pairs(v25:GetChildren()) do
            if v29:IsA("MeshPart") then
                local l_StringValue_0 = Instance.new("StringValue");
                l_StringValue_0.Name = "AvatarPartScaleType";
                l_StringValue_0.Value = v27;
                l_StringValue_0.Parent = v29;
            end;
        end;
    end;
end;
return function(v32, v33)
    local l_Humanoid_0 = v32:FindFirstChildOfClass("Humanoid");
    if l_Humanoid_0 then
        v32.Name = "Imported" .. v33 .. "Rig";
        local l_Head_1 = v32:FindFirstChild("Head");
        if (l_Head_1 and l_Head_1.TextureID == "") and l_Head_1:FindFirstChildWhichIsA("FaceControls") == nil then
            local l_Decal_1 = Instance.new("Decal");
            l_Decal_1.Name = "face";
            l_Decal_1.Texture = "rbxasset://textures/face.png";
            l_Decal_1.Parent = l_Head_1;
        end;
        v31(v32, v33);
        v20(l_Humanoid_0, v33);
        if v33 == v2.AVATAR_TYPE.CUSTOM then
            l_Humanoid_0.HipHeight = 2;
        end;
        v32:MoveTo((v13(10)));
        l_Selection_0:Set({
            v32
        });
        if v4 then
            v4:ConfigureImportedAvatar(v32);
        end;
        return ;
    else
        v32:MoveTo((v13(10)));
        return ;
    end;
end;


local l_Studio_0 = settings().Studio;
return function(v1)
    return v1[l_Studio_0.Theme.Name];
end;


if game:GetService("StudioService"):HasInternalPermission() then
    require(script.Parent.defineLuaFlags);
    if plugin then
        local l_Parent_0 = script.Parent.Parent;
        local v1 = require(l_Parent_0.Packages.TestLoader);
        v1.launch("BootcampPlugin", l_Parent_0.Src);
        if not v1.isCli() then
            if game:GetFastFlag("DebugEnableBootcampPlugin") then
                local v2 = require(l_Parent_0.Packages.React);
                local v3 = require(l_Parent_0.Packages.ReactRoblox);
                local v4 = require(l_Parent_0.Src.MainPlugin);
                local v5 = nil;
                local function v7()
                    plugin.Name = l_Parent_0.Name;
                    local v6 = v2.createElement(v4, {
                        Plugin = plugin
                    });
                    v5 = v3.createRoot(Instance.new("Frame"));
                    v5:render(v6);
                end;
                plugin.Unloading:Connect(function()
                    if v5 then
                        v5:render(nil);
                        v5 = nil;
                    end;
                end);
                v7();
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
else
    return ;
end;


local l_STUDIOAUTO1302_0 = game:GetFastFlag("STUDIOAUTO1302");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
local v3 = require(l_Parent_0.Packages.Framework);
local l_withContext_0 = v3.ContextServices.withContext;
local l_Stylizer_0 = v3.Style.Stylizer;
local v6 = require(l_Parent_0.Src.Components.TutorialComponents.MyJiraTicket);
local v7 = v2.PureComponent:extend("Aggregator");
v7.render = function(_)
    return v2.createElement(v2.Fragment, {}, {
        BootcampComponent = not not l_STUDIOAUTO1302_0 and v2.createElement(v6) or nil
    });
end;
return (l_withContext_0({
    Stylizer = l_Stylizer_0
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Button_0 = v2.UI.Button;
local v6 = v1.PureComponent:extend("MyJiraTicket");
local function v9()
    local v7 = Random.new();
    local l_Part_0 = Instance.new("Part");
    l_Part_0.Name = "My part";
    l_Part_0.Color = Color3.fromRGB(27, 143, 143);
    l_Part_0.Position = l_Part_0.Position + Vector3.new(v7:NextInteger(-10, 10), 0, v7:NextInteger(-10, 10));
    l_Part_0.Parent = workspace;
end;
v6.render = function(v10)
    return v1.createElement(l_Button_0, {
        Text = v10.props.Localization:getText("TutorialComponents", "MyJiraTicket"),
        OnClick = v9
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization
})(v6));


local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_Parent_0 = script.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
local v3 = require(l_Parent_0.Packages.ReactRoblox);
local v4 = require(l_Parent_0.Packages.Framework);
local l_UI_0 = v4.UI;
local l_DockWidget_0 = l_UI_0.DockWidget;
local l_PluginButton_0 = l_UI_0.PluginButton;
local l_PluginToolbar_0 = l_UI_0.PluginToolbar;
local l_ContextServices_0 = v4.ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local v12 = require(l_Parent_0.Src.Resources.MakeTheme);
local l_SourceStrings_0 = l_Parent_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.Localization.LocalizedStrings;
local v15 = require(l_Parent_0.Src.Components.Aggregator);
local v16 = v2.PureComponent:extend("MainPlugin");
v16.init = function(v17, _)
    v17.state = {
        enabled = false
    };
    v17.toggleEnabled = function()
        v17:setState(function(v19)
            return {
                enabled = not v19.enabled
            };
        end);
    end;
    v17.onClose = function()
        v17:setState({
            enabled = false
        });
    end;
    v17.onRestore = function(v20)
        v17:setState({
            enabled = v20
        });
    end;
    v17.onWidgetEnabledChanged = function(v21)
        v17:setState({
            enabled = v21.Enabled
        });
    end;
    v17.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "BootcampPlugin"
    });
    v17.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
end;
v16.renderButtons = function(v22, v23)
    return {
        Toggle = v2.createElement(l_PluginButton_0, {
            Toolbar = v23,
            Active = v22.state.enabled,
            Id = "BootcampPluginButton",
            Title = v22.localization:getText("Plugin", "Button"),
            Tooltip = v22.localization:getText("Plugin", "Description"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            OnClick = v22.toggleEnabled,
            ClickableWhenViewportHidden = true
        })
    };
end;
v16.render = function(v24)
    local l_props_0 = v24.props;
    local l_state_0 = v24.state;
    local l_Plugin_1 = l_props_0.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v12(),
        v24.localization,
        v24.analytics
    }, {
        Toolbar = v2.createElement(l_PluginToolbar_0, {
            Title = v24.localization:getText("Plugin", "Toolbar"),
            RenderButtons = function(v28)
                return v24:renderButtons(v28);
            end
        }),
        MainWidget = v2.createElement(l_DockWidget_0, {
            Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "Bootcamp",
            Enabled = l_state_0.enabled,
            Title = v24.localization:getText("Plugin", "Name"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Right,
            Size = Vector2.new(640, 480),
            MinSize = Vector2.new(250, 200),
            OnClose = v24.onClose,
            ShouldRestore = true,
            OnWidgetRestored = v24.onRestore,
            [v3.Change.Enabled] = v24.onWidgetEnabledChanged
        }, {
            Aggregator = v2.createElement(v15, {})
        })
    });
end;
return v16;


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


local l_Parent_0 = script.Parent.Parent.Parent;
local l_TestHelpers_0 = require(l_Parent_0.Packages.Framework).TestHelpers;
local v2 = {
    require(l_Parent_0.Src.Resources.MakeTheme)(true)
};
return function(v3)
    assert(type(v3) == "table", "Expected story to be a table");
    return l_TestHelpers_0.provideMockContext(v2, v3);
end;


local v0 = false;
return function()
    if not v0 then
        v0 = true;
        return ;
    else
        return ;
    end;
end;


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


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


return "local userInputService = game:GetService(\"UserInputService\")\n\nlocal delayBeforeStart = 3\nlocal delayBetweenSwitching = 1\n\nlocal AnimationInfo = {\n\tdisplayName = nil,\n\tfaceAnimationAssetId = \"-1\",\n\tbodyAnimationAssetId = \"-1\",\n}\n\nAnimationInfo.__index = AnimationInfo\n\nfunction AnimationInfo.new(tbl)\n\tlocal newListItemInfo = tbl or {}\n\tsetmetatable(newListItemInfo, AnimationInfo)\n\treturn newListItemInfo\nend\n\nlocal animationsListMoods = { -- moods expressions:\n\tAnimationInfo.new({\n\t\tdisplayName = \"mood_neutral\",\n\t\tfaceAnimationAssetId = \"7715096377\",\n\t\tbodyAnimationAssetId = \"3333331310\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_1\",\n\t\tfaceAnimationAssetId = \"7715102557\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_2\",\n\t\tfaceAnimationAssetId = \"7715106138\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_3\",\n\t\tfaceAnimationAssetId = \"7715109713\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_4\",\n\t\tfaceAnimationAssetId = \"7715114351\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_5\",\n\t\tfaceAnimationAssetId = \"7715119645\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_6\",\n\t\tfaceAnimationAssetId = \"7715122816\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_8\",\n\t\tfaceAnimationAssetId = \"7715129652\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_9\",\n\t\tfaceAnimationAssetId = \"7715137283\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_11\",\n\t\tfaceAnimationAssetId = \"7715145252\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_12\",\n\t\tfaceAnimationAssetId = \"7715148763\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_13\",\n\t\tfaceAnimationAssetId = \"7715155442\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_15\",\n\t\tfaceAnimationAssetId = \"7715163042\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_16\",\n\t\tfaceAnimationAssetId = \"7715166020\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_17\",\n\t\tfaceAnimationAssetId = \"7715171634\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_18\",\n\t\tfaceAnimationAssetId = \"7715175106\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_19\",\n\t\tfaceAnimationAssetId = \"7715178118\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t}), AnimationInfo.new({\n\t\tdisplayName = \"mood_20\",\n\t\tfaceAnimationAssetId = \"7715183102\",\n\t\tbodyAnimationAssetId = \"-1\"\n\t})}\n\n\n\nlocal character = script.Parent\nlocal humanoid = character:WaitForChild(\"Humanoid\")\n\nfunction StopPlayback()\n\tlocal playingAnims = humanoid:GetPlayingAnimationTracks()\n\tfor i, track in pairs(playingAnims) do\n\t\tif track.Name == \"head\" then\n\t\t\ttrack:Stop()\n\t\tend\n\tend\nend\n\n\nfunction PlayFaceAndBodyAnimsByIds(targetFaceAnim, targetBodyAnim)\n\tlocal humanoid = character:WaitForChild(\"Humanoid\")\n\n\tStopPlayback()\n\n\tlocal faceAnimation\n\tlocal faceAnimationTrack\n\n\t-- play the face animation\n\tif targetFaceAnim ~= \"-1\" and targetFaceAnim ~= nil then\n\t\tfaceAnimation = Instance.new(\"Animation\")\n\t\tfaceAnimation.AnimationId = \"rbxassetid://\" .. targetFaceAnim\n\t\tfaceAnimationTrack = humanoid:LoadAnimation(faceAnimation)\n\t\tfaceAnimationTrack.Looped = true\n\t\tfaceAnimationTrack.Name = \"head\"\n\t\tfaceAnimationTrack:Play()\n\tend\n\n\tlocal bodyAnimation\n\tlocal bodyAnimationTrack\n\n\t-- play the body animation\n\tlocal bodyAnim = script:GetAttribute(\"BodyAnimate\")\n\tif bodyAnim and targetBodyAnim ~= \"-1\" and targetBodyAnim ~= nil then\n\t\tbodyAnimation = Instance.new(\"Animation\")\n\t\tbodyAnimation.AnimationId = \"http://www.roblox.com/asset/?id=\" .. targetBodyAnim\n\t\tbodyAnimationTrack = humanoid:LoadAnimation(bodyAnimation)\n\t\tbodyAnimationTrack.Looped = true\n\t\tbodyAnimationTrack.Name = \"body\"\n\t\tbodyAnimationTrack:Play()\n\tend\nend\n\n\nwait(delayBeforeStart)\n\n\nwhile true do\n\tfor index = 1, #animationsListMoods do\n\tlocal item = animationsListMoods[index]\n\tPlayFaceAndBodyAnimsByIds(item.faceAnimationAssetId, item.bodyAnimationAssetId)\n\n\tprint(\"playing: \"..item.displayName)\n\twait(delayBetweenSwitching)\n\tend\nend";


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local l_UI_0 = require(l_Parent_0.Packages.Framework).UI;
local l_Button_0 = l_UI_0.Button;
local l_ScrollingFrame_0 = l_UI_0.ScrollingFrame;
local v5 = require(script.Parent.animationFunctions);
local v6 = v1.PureComponent:extend("animationCatalogUIComponent");
v6.init = function(v7)
    v7.state = {
        items = {
            ["Rthro-Walk"] = 10921269718,
            ["Rthro-Run"] = 10921261968,
            ["Rthro-Climb"] = 10921257536,
            ["Rthro-Jump"] = 10921263860,
            ["Rthro-Fall"] = 10921262864,
            ["Rthro-Swim"] = 10921264784,
            ["Rthro-Idle"] = 10921258489
        }
    };
end;
v6.render = function(v8)
    local l_items_0 = v8.state.items;
    local v10 = {};
    for v11, v12 in pairs(l_items_0) do
        v10[v11] = v1.createElement(l_Button_0, {
            Style = "Round",
            Text = v11,
            Size = UDim2.new(1, 0, 0, 30),
            OnClick = function()
                v5.attachAnimation(v12);
            end
        });
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = Color3.fromRGB(100, 100, 100)
    }, {
        v1.createElement(l_ScrollingFrame_0, {
            Size = UDim2.new(1, 0, 1, 0),
            CanvasSize = UDim2.new(0, 0, 0, #l_items_0 * 30)
        }, v10)
    });
end;
return v6;


return {
    attachAnimation = function(v0)
        local l_RunService_0 = game:GetService("RunService");
        local l_Selection_0 = game:GetService("Selection");
        if not l_RunService_0:IsRunning() then
            print("Animation will be played only in Play mode.");
            return ;
        else
            for _, v4 in pairs(l_Selection_0:Get()) do
                local l_Humanoid_0 = v4:FindFirstChild("Humanoid");
                if l_Humanoid_0 ~= nil then
                    local l_Head_0 = v4:FindFirstChild("Head");
                    if not (not (l_Head_0 ~= nil) or not l_Head_0:IsA("MeshPart")) then
                        l_Head_0.Anchored = false;
                    end;
                    local l_Animator_0 = l_Humanoid_0:FindFirstChildOfClass("Animator");
                    if l_Animator_0 then
                        for _, v9 in pairs((l_Animator_0:GetPlayingAnimationTracks())) do
                            v9:Stop();
                        end;
                        local l_Animation_0 = Instance.new("Animation");
                        l_Animation_0.AnimationId = string.format("rbxassetid://%s", v0);
                        local v11 = l_Animator_0:LoadAnimation(l_Animation_0);
                        v11.Looped = true;
                        v11:Play();
                    end;
                end;
            end;
            return ;
        end;
    end
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(script.Parent.animationFunctions);
local v4 = require(script.Parent.animationCatalogUIComponent);
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_DEPRECATED_TextInput_0 = l_UI_0.DEPRECATED_TextInput;
local v9 = v1.PureComponent:extend("avatarCheckUIComponent");
v9.init = function(v10)
    v10.state = {
        animLoop = true,
        playSpeed = 1,
        animIsRunning = false
    };
    v10.animationID = "";
    v10.attachAnimation = function()
        if v10.animationID ~= "" then
            v3.attachAnimation(v10.animationID);
        end;
    end;
end;
v9.render = function(v11)
    return v1.createElement(l_Pane_0, {
        BackgroundColor = Color3.fromRGB(100, 100, 100),
        Padding = 10,
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = 0
    }, {
        First = v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 0.2, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundColor3 = Color3.fromRGB(100, 100, 100),
            LayoutOrder = 1
        }, {
            UIListLayout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 10)
            });
            v1.createElement(l_Button_0, {
                OnClick = v11.attachAnimation,
                Style = "RoundPrimary",
                Size = UDim2.fromOffset(200, 30),
                Text = "Attach animation from ID",
                LayoutOrder = 1
            }),
            v1.createElement(l_DEPRECATED_TextInput_0, {
                Size = UDim2.fromOffset(200, 30),
                Style = "FilledRoundedBorder",
                PlaceholderText = "Input animation ID here",
                OnTextChanged = function(v12)
                    v11.animationID = v12;
                end,
                LayoutOrder = 2
            })
        }),
        Second = v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 0.6, 0),
            Position = UDim2.new(0, 0, 0.2, 0),
            BackgroundColor3 = Color3.fromRGB(100, 100, 100),
            LayoutOrder = 2
        }, {
            v1.createElement(v4)
        })
    });
end;
return v9;


avatarUtils = {};
local v0 = require(script.Parent.Parent.Parent.Packages._Index.Dash.Dash.splitOn);
avatarUtils.getFaceList = function(v1)
    local v2 = {};
    for _, v4 in pairs(v1) do
        local v5 = v0(v4.Name, "_");
        local v6 = v5[1];
        local v7 = v5[2];
        if v2[v6] == nil then
            v2[v6] = {
                [v7] = v4
            };
        else
            v2[v6][v7] = v4;
        end;
    end;
    return v2;
end;
avatarUtils.getAllAvatars = function()
    local v8 = {};
    for _, v10 in pairs((workspace:GetDescendants())) do
        if v10:IsA("Model") and v10:FindFirstChild("Humanoid") ~= nil then
            table.insert(v8, v10);
        end;
    end;
    return v8;
end;
avatarUtils.checkAvatar = function(v11)
    local v12 = {};
    for _, v14 in v11, nil, nil do
        if v14:FindFirstChild("Humanoid") ~= nil then
            table.insert(v12, v14);
        end;
    end;
    if #v12 ~= 0 then
        return v12;
    else
        return nil;
    end;
end;
return avatarUtils;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local l_UI_0 = require(l_Parent_0.Packages.Framework).UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_Checkbox_0 = l_UI_0.Checkbox;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_DEPRECATED_TextInput_0 = l_UI_0.DEPRECATED_TextInput;
local v8 = require(script.Parent.multipleFBXimporter);
local v9 = require(script.Parent.setTestAvatarBody);
local l_Dialog_0 = l_UI_0.Dialog;
local l_LoadingBar_0 = l_UI_0.LoadingBar;
local v12 = v1.PureComponent:extend("importUIComponent");
v12.init = function(v13)
    v13.state = {
        keepBody = false,
        enabled = false,
        objectName = "",
        canceled = false,
        completed = false,
        progress = 0
    };
    v13.bundleIDs = "";
    v13.setKeepBody = function(v14)
        v13:setState({
            [v14] = not v13.state[v14]
        });
    end;
    v13.close = function()
        v13:setState({
            enabled = false
        });
    end;
    v13.cancelUploadProcess = function()
        v13:setState({
            canceled = true
        });
        print("Cancel");
    end;
    v13.importAvatars = function()
        v8.importAvatars(v13);
    end;
    v13.changeAvatarBody = function()
        v9(v13);
    end;
end;
v12.render = function(v15)
    local l_createElement_0 = v1.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v18 = {
        BackgroundColor = Color3.fromRGB(100, 100, 100),
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = 1
    };
    local v19 = {};
    local l_createElement_1 = v1.createElement;
    local l_l_Pane_0_1 = l_Pane_0;
    local v22 = {
        Padding = 5,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = 1,
        Layout = Enum.FillDirection.Horizontal
    };
    local v23 = {};
    local l_createElement_2 = v1.createElement;
    local l_l_Button_0_0 = l_Button_0;
    local v26 = {
        OnClick = v15.importAvatars,
        Style = "RoundPrimary",
        Size = UDim2.fromOffset(200, 70),
        Text = "Import Avatars",
        LayoutOrder = 1
    };
    local v27 = {};
    local v28 = false;
    if v15.state.enabled == true then
        v28 = v1.createElement(l_Dialog_0, {
            Title = "Uploading",
            Enabled = v15.state.enabled,
            Size = Vector2.new(350, 90),
            OnClose = v15.close,
            Modal = true
        }, {
            v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundColor3 = Color3.fromRGB(100, 100, 100),
                LayoutOrder = 1
            }, {
                UIListLayout = v1.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 10)
                });
                v1.createElement(l_TextLabel_0, {
                    AutomaticSize = Enum.AutomaticSize.XY,
                    Text = v15.state.objectName,
                    BackgroundTransparency = 1,
                    LayoutOrder = 1
                }),
                v1.createElement(l_LoadingBar_0, {
                    LayoutOrder = 2,
                    Size = UDim2.fromOffset(150, 10),
                    Progress = v15.state.progress
                }),
                v1.createElement(l_Button_0, {
                    OnClick = v15.cancelUploadProcess,
                    Style = "Round",
                    Size = UDim2.fromOffset(90, 20),
                    Text = "Cancel",
                    LayoutOrder = 3
                })
            })
        });
    end;
    v27.progressWindow = v28;
    v23.Button = l_createElement_2(l_l_Button_0_0, v26, v27);
    v19.First = l_createElement_1(l_l_Pane_0_1, v22, v23);
    v19.Second = v1.createElement(l_Pane_0, {
        Padding = 10,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = 2
    }, {
        v1.createElement(l_Checkbox_0, {
            Checked = v15.state.keepBody,
            Key = "keepBody",
            LayoutOrder = 1,
            OnClick = v15.setKeepBody,
            Text = "Keep body"
        })
    });
    v19.Third = v1.createElement(l_Pane_0, {
        Padding = 10,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = 3,
        Layout = Enum.FillDirection.Vertical
    }, {
        Button2 = v1.createElement(l_Button_0, {
            OnClick = v15.changeAvatarBody,
            Style = "RoundPrimary",
            Size = UDim2.fromOffset(200, 30),
            Text = "Change Avatar Body",
            LayoutOrder = 1
        })
    });
    v19.Fourth = v1.createElement(l_Pane_0, {
        Padding = 10,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = 4,
        Layout = Enum.FillDirection.Vertical
    }, {
        v1.createElement(l_DEPRECATED_TextInput_0, {
            Size = UDim2.fromOffset(200, 30),
            Style = "FilledRoundedBorder",
            PlaceholderText = "Input avatar bundle ID here",
            OnTextChanged = function(v29)
                v15.bundleIDs = v29;
            end,
            LayoutOrder = 1
        })
    });
    return l_createElement_0(l_l_Pane_0_0, v18, v19);
end;
return v12;


local v0 = require(script.Parent.Parent.Parent.Packages.React);
local v1 = v0.PureComponent:extend("Tabs");
local v2 = require(script.Parent.importUIComponent);
local v3 = require(script.Parent.avatarCheckUIComponent);
v1.init = function(v4)
    v4.state = {
        currentTab = "Tab1"
    };
end;
v1.render = function(v5)
    return v0.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        Tabs = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 30),
            BackgroundColor3 = Color3.fromRGB(100, 100, 100)
        }, {
            Tab1 = v0.createElement("TextButton", {
                Size = UDim2.new(0.5, 0, 1, 0),
                Position = UDim2.new(0, 0, 0, 0),
                Text = "Import",
                Font = Enum.Font.SourceSans,
                TextSize = 18,
                BackgroundColor3 = Color3.fromRGB(150, 150, 150),
                BorderSizePixel = 0,
                [v0.Event.Activated] = function()
                    v5:setState({
                        currentTab = "Tab1"
                    });
                end
            }),
            Tab2 = v0.createElement("TextButton", {
                Size = UDim2.new(0.5, 0, 1, 0),
                Position = UDim2.new(0.5, 0, 0, 0),
                Text = "Check",
                Font = Enum.Font.SourceSans,
                TextSize = 18,
                BackgroundColor3 = Color3.fromRGB(150, 150, 150),
                BorderSizePixel = 0,
                [v0.Event.Activated] = function()
                    v5:setState({
                        currentTab = "Tab2"
                    });
                end
            })
        }),
        Frame = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -30),
            Position = UDim2.new(0, 0, 0, 30),
            BackgroundColor3 = Color3.fromRGB(200, 200, 200)
        }, {
            Content = v5.state.currentTab == "Tab1" and v0.createElement(v2) or v0.createElement(v3)
        })
    });
end;
return v1;


local v0 = {};
local v1 = require(script.Parent.animateModule);
local v2 = require(script.Parent.avatarUtils);
local v3 = require(script.Parent.Parent.Parent.Packages._Index.Dash.Dash.splitOn);
v0.attachScript = function(v4)
    local l_Script_0 = Instance.new("Script");
    l_Script_0.Source = v1;
    l_Script_0.Parent = v4;
end;
v0.alignFaceModels = function(v6, v7)
    local v8 = Instance.new("Model", workspace);
    local v9 = 5;
    if v7 then
        for _, v11 in v6, nil, nil do
            local v12 = 0;
            local v13 = {};
            for v14, _ in pairs(v11) do
                table.insert(v13, v14);
            end;
            table.sort(v13);
            for _, v17 in pairs(v13) do
                v11[v17]:PivotTo((CFrame.new(-5 + v12, v11[v17].PrimaryPart.Size.Y / 2 + v11[v17].Humanoid.HipHeight, v9)));
                v11[v17].Parent = v8;
                v12 = v12 + 5;
            end;
            v9 = v9 + 5;
        end;
        return v8;
    else
        for _, v19 in v6, nil, nil do
            local v20 = 0;
            local v21 = {};
            for v22, _ in pairs(v19) do
                table.insert(v21, v22);
            end;
            table.sort(v21);
            for _, v25 in pairs(v21) do
                v19[v25]:PivotTo((CFrame.new(-4 + v20, v9, 0)));
                v19[v25].Parent = v8;
                v20 = v20 + 2;
            end;
            v9 = v9 + 2;
        end;
        v8:PivotTo(CFrame.new(0, 10, 0));
        return v8;
    end;
end;
v0.setUpFaceModel = function(v26, v27)
    local v28 = v3(v26.Name, "_")[1];
    v26:WaitForChild("Humanoid").DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None;
    local l_Head_0 = v26:WaitForChild("Head");
    if v27 then
        local l_v26_Children_0 = v26:GetChildren();
        local v31 = false;
        for _, v33 in pairs(l_v26_Children_0) do
            if not (not (v33.Name ~= "Head") or not v33:IsA("MeshPart")) then
                v31 = true;
            end;
        end;
        if not v31 then
            v26.PrimaryPart = l_Head_0;
            v26.PrimaryPart.PivotOffset = CFrame.new(0, 0, 0);
        end;
    else
        for _, v35 in pairs((v26:GetChildren())) do
            if not (not (v35.Name ~= "Head") or not v35:IsA("MeshPart")) then
                v35:Destroy();
            end;
        end;
        local l_Neck_0 = l_Head_0:FindFirstChild("Neck");
        if l_Neck_0 ~= nil then
            l_Neck_0:Destroy();
        end;
        v26.PrimaryPart = l_Head_0;
        v26.PrimaryPart.PivotOffset = CFrame.new(0, 0, 0);
    end;
    local v37 = {
        ChiseledGoodLooks = "rbxassetid://12259863451",
        Man = "rbxassetid://12259863451",
        StevieStandard = "rbxassetid://12651328744",
        Stevie = "rbxassetid://12651328744",
        MakeupMinimalist = "rbxassetid://12262506468",
        Woman = "rbxassetid://12262506468",
        ClassicVampire = "rbxassetid://12431828460"
    };
    local function v41(v38)
        for v39, _ in pairs(v37) do
            if string.match(v38, v39) then
                return v37[v39];
            end;
        end;
        return "rbxassetid://144080495";
    end;
    if l_Head_0 ~= nil then
        l_Head_0.Name = "Head";
        l_Head_0.Anchored = true;
        l_Head_0.BrickColor = BrickColor.new("Bright orange");
        l_Head_0.Material = Enum.Material.SmoothPlastic;
        local l_face_0 = l_Head_0:FindFirstChild("face");
        if l_face_0 ~= nil then
            l_face_0:Destroy();
        end;
        local v43 = "";
        v43 = if l_Head_0.TextureID ~= "" then l_Head_0.TextureID else v41(v28);
        local v44 = nil;
        v44 = l_Head_0:FindFirstChild("SurfaceAppearance");
        if v44 ~= nil then
            v44:Destroy();
        end;
        Instance.new("SurfaceAppearance", l_Head_0).ColorMap = v43;
    end;
    v26:WaitForChild("HumanoidRootPart").Anchored = true;
    if v26:FindFirstChild("Script") == nil then
        v0.attachScript(v26);
    end;
end;
v0.setCameraPosition = function(v45)
    local l_Camera_0 = workspace.Camera;
    local l_v45_Children_0 = v45:GetChildren();
    if #l_v45_Children_0 ~= 0 then
        local l_v45_ExtentsSize_0 = v45:GetExtentsSize();
        local v49 = math.clamp(math.max(l_v45_ExtentsSize_0.X, l_v45_ExtentsSize_0.Y) * 5, 40, 90);
        l_Camera_0.CameraType = Enum.CameraType.Scriptable;
        local l_Position_0 = v45:GetPivot().Position;
        l_Camera_0.CFrame = CFrame.lookAt(Vector3.new(l_Position_0.X, l_Position_0.Y, v49 * -1), l_Position_0);
        l_Camera_0.DiagonalFieldOfView = 4;
        l_Camera_0.FieldOfView = 9.8;
        l_Camera_0.FieldOfViewMode = Enum.FieldOfViewMode.Vertical;
        l_Camera_0.MaxAxisFieldOfView = 19;
        for _, v52 in pairs(l_v45_Children_0) do
            v52.Parent = workspace;
        end;
        v45:Destroy();
        l_Camera_0.CameraType = Enum.CameraType.Custom;
        return ;
    else
        v45:Destroy();
        return ;
    end;
end;
v0.importAvatars = function(v53)
    local v54 = {};
    local v55 = nil;
    local l_keepBody_0 = v53.state.keepBody;
    for _, v58 in pairs((v0.selectFiles())) do
        local v59, v60 = v0.setUploadSession(v58);
        v59:GetImportTree().RigType = 0;
        local v61 = false;
        v53:setState({
            objectName = v60
        });
        v53:setState({
            enabled = true
        });
        v59:Upload();
        do
            local l_v61_0 = v61;
            v59.UploadComplete:Connect(function(v63)
                l_v61_0 = true;
                local l_Instance_0 = v63.Instance;
                l_Instance_0.Parent = workspace;
                table.insert(v54, l_Instance_0);
            end);
            while not l_v61_0 do
                if not v53.state.canceled then
                    v59.UploadProgress:Connect(function(v65)
                        v53:setState({
                            progress = v65
                        });
                    end);
                    wait();
                else
                    v59:Cancel();
                    break;
                end;
            end;
        end;
    end;
    if v54 ~= {} then
        for _, v67 in v54, nil, nil do
            v0.setUpFaceModel(v67, l_keepBody_0);
        end;
        v55 = v2.getFaceList(v54);
        if v55 ~= {} then
            local v68 = v0.alignFaceModels(v55, l_keepBody_0);
            if v68 ~= nil then
                v0.setCameraPosition(v68);
            end;
        end;
    end;
    v53:setState({
        enabled = false
    });
end;
v0.selectFiles = function()
    return (game:GetService("AssetImportService"):PickMultipleFilesWithPrompt());
end;
v0.setUploadSession = function(v69)
    local v70 = v3(v69, "/");
    return game:GetService("AssetImportService"):StartSessionWithPath(v69), (string.gsub(v70[#v70], ".fbx", ""));
end;
return v0;


local v0 = require(script.Parent.Parent.Parent.Packages._Index.Dash.Dash.splitOn);
local function v11(v1, v2, v3, v4)
    local l_Humanoid_0 = v3:FindFirstChild("Humanoid");
    if l_Humanoid_0 ~= nil then
        local l_Items_0 = v2:GetBundleDetailsAsync(v4).Items;
        local l_HumanoidDescription_0 = Instance.new("HumanoidDescription");
        l_HumanoidDescription_0.BodyTypeScale = 1;
        l_HumanoidDescription_0.ProportionScale = 0;
        for v8 = 1, #l_Items_0 do
            local l_Id_0 = l_Items_0[v8].Id;
            local l_AssetTypeId_0 = v1:GetProductInfo(l_Id_0).AssetTypeId;
            if l_AssetTypeId_0 == 27 then
                l_HumanoidDescription_0.Torso = l_Id_0;
            elseif l_AssetTypeId_0 == 28 then
                l_HumanoidDescription_0.RightArm = l_Id_0;
            elseif l_AssetTypeId_0 == 29 then
                l_HumanoidDescription_0.LeftArm = l_Id_0;
            elseif l_AssetTypeId_0 == 30 then
                l_HumanoidDescription_0.LeftLeg = l_Id_0;
            elseif l_AssetTypeId_0 == 31 then
                l_HumanoidDescription_0.RightLeg = l_Id_0;
            end;
        end;
        l_HumanoidDescription_0.HeadColor = BrickColor.new("Bright orange").Color;
        l_Humanoid_0:ApplyDescription(l_HumanoidDescription_0);
        v3:PivotTo((CFrame.new(v3.PrimaryPart.Position.X, v3.PrimaryPart.Size.Y / 2 + v3.Humanoid.HipHeight, v3.PrimaryPart.Position.Z)));
    end;
end;
return function(v12)
    local l_RunService_0 = game:GetService("RunService");
    local l_AssetService_0 = game:GetService("AssetService");
    local l_MarketplaceService_0 = game:GetService("MarketplaceService");
    local l_Selection_0 = game:GetService("Selection");
    if l_RunService_0:IsRunning() then
        print("changing body is currently only editor mode.");
        return ;
    else
        local v17 = nil;
        if string.find(v12.bundleIDs, ",") ~= nil then
            v17 = v0(v12.bundleIDs, ",");
        elseif v12.bundleIDs ~= "" then
            v17 = {
                v12.bundleIDs
            };
        end;
        for v18, v19 in pairs(v17) do
            local v20 = l_Selection_0:Get()[1];
            if v18 == 1 then
                v11(l_MarketplaceService_0, l_AssetService_0, v20, (tonumber(v19)));
            elseif v18 >= 1 then
                local v21 = v20:Clone();
                v21.Parent = workspace;
                v11(l_MarketplaceService_0, l_AssetService_0, v21, (tonumber(v19)));
            end;
        end;
        return ;
    end;
end;


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


local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_Parent_0 = script.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
local v3 = require(l_Parent_0.Packages.ReactRoblox);
local v4 = require(l_Parent_0.Packages.Rodux);
local v5 = require(l_Parent_0.Packages.Framework);
local l_UI_0 = v5.UI;
local l_DockWidget_0 = l_UI_0.DockWidget;
local l_PluginButton_0 = l_UI_0.PluginButton;
local l_PluginToolbar_0 = l_UI_0.PluginToolbar;
local l_ContextServices_0 = v5.ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_Store_0 = l_ContextServices_0.Store;
local v14 = require(l_Parent_0.Src.Reducers.MainReducer);
local v15 = require(l_Parent_0.Src.Resources.MakeTheme);
local l_SourceStrings_0 = l_Parent_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.Localization.LocalizedStrings;
local v18 = require(l_Parent_0.Src.Components.mainUIComponent);
local v19 = v2.PureComponent:extend("MainPlugin");
v19.init = function(v20, _)
    v20:setState({
        enabled = false
    });
    v20.toggleEnabled = function()
        v20:setState(function(v22)
            return {
                enabled = not v22.enabled
            };
        end);
    end;
    v20.onClose = function()
        v20:setState({
            enabled = false
        });
    end;
    v20.onRestore = function(v23)
        v20:setState({
            enabled = v23
        });
    end;
    v20.onWidgetEnabledChanged = function(v24)
        v20:setState({
            enabled = v24.Enabled
        });
    end;
    v20.store = v4.Store.new(v14, nil, {
        v4.thunkMiddleware
    }, nil);
    v20.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "BulkFaceImporter"
    });
    v20.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
end;
v19.renderButtons = function(v25, v26)
    return {
        Toggle = v2.createElement(l_PluginButton_0, {
            Toolbar = v26,
            Active = v25.state.enabled,
            Id = "template_button",
            Title = v25.localization:getText("Plugin", "Button"),
            Tooltip = v25.localization:getText("Plugin", "Description"),
            Icon = "rbxasset://textures/GameSettings/ToolbarIcon.png",
            OnClick = v25.toggleEnabled,
            ClickableWhenViewportHidden = true
        })
    };
end;
v19.render = function(v27)
    local l_props_0 = v27.props;
    local l_state_0 = v27.state;
    local l_Plugin_1 = l_props_0.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Store_0.new(v27.store),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v15(),
        v27.localization,
        v27.analytics
    }, {
        Toolbar = v2.createElement(l_PluginToolbar_0, {
            Title = v27.localization:getText("Plugin", "Toolbar"),
            RenderButtons = function(v31)
                return v27:renderButtons(v31);
            end
        }),
        MainWidget = v2.createElement(l_DockWidget_0, {
            Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "BulkFaceImporter",
            Enabled = l_state_0.enabled,
            Title = v27.localization:getText("Plugin", "Name"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Bottom,
            Size = Vector2.new(640, 480),
            MinSize = Vector2.new(250, 200),
            OnClose = v27.onClose,
            ShouldRestore = true,
            OnWidgetRestored = v27.onRestore,
            [v3.Change.Enabled] = v27.onWidgetEnabledChanged
        }, {
            mainUIComponent = v2.createElement(v18)
        })
    });
end;
return v19;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.Cryo);
return (v1.createReducer({
    DefaultStateObject = ""
}, {
    [require(l_Parent_0.Src.Actions.ExampleAction).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            DefaultStateObject = v4.something
        });
    end
}));


return (require(script.Parent.Parent.Parent.Packages.Rodux).combineReducers({
    ExampleReducer = require(script.Parent.ExampleReducer)
}));


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


local v0 = require(script.Parent.Parent.Parent.Src.Flags.FFlagEnableBulkFaceImporter);
return function()
    return game:GetService("StudioService"):HasInternalPermission() and v0();
end;


require(script.Parent.defineLuaFlags);
if plugin then
    local l_Parent_0 = script.Parent.Parent;
    local v1 = require(l_Parent_0.Packages.TestLoader);
    v1.launch("CompositorDebugger", l_Parent_0.Src);
    if not v1.isCli() then
        if game:GetFastFlag("CDEnableCompositorDebugger1") then
            local v2 = require(l_Parent_0.Packages.React);
            local v3 = require(l_Parent_0.Packages.ReactRoblox);
            local v4 = require(l_Parent_0.Src.MainPlugin);
            local v5 = nil;
            local function v7()
                plugin.Name = l_Parent_0.Name;
                local v6 = v2.createElement(v4, {
                    Plugin = plugin
                });
                v5 = v3.createRoot(Instance.new("Frame"));
                v5:render(v6);
            end;
            plugin.Unloading:Connect(function()
                if v5 then
                    v5:render(nil);
                    v5 = nil;
                end;
            end);
            v7();
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
else
    return ;
end;


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


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local l_Action_0 = require(l_script_FirstAncestor_0.Packages.Framework).Util.Action;
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v3)
    return {
        adornments = v3 or {}
    };
end);


local v0 = require(script:FindFirstAncestor("CompositorDebugger").Packages.Framework);
local l_None_0 = v0.Dash.None;
return v0.Util.Action(script.Name, function(v2, v3)
    return {
        event = v2 or l_None_0,
        connection = v3 or l_None_0
    };
end);


local v0 = require(script:FindFirstAncestor("CompositorDebugger").Packages.Framework);
local l_None_0 = v0.Dash.None;
return v0.Util.Action(script.Name, function(v2)
    return {
        event = v2 or l_None_0
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local l_Action_0 = require(l_script_FirstAncestor_0.Packages.Framework).Util.Action;
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v3)
    return {
        expandedSections = v3 or {}
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local l_Action_0 = require(l_script_FirstAncestor_0.Packages.Framework).Util.Action;
local l_None_0 = require(l_script_FirstAncestor_0.Packages.Dash).None;
local _ = require(l_script_FirstAncestor_0.Src.Util.CircularBuffer);
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v5)
    return {
        frameBuffer = v5 or l_None_0
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_Action_0 = v1.Util.Action;
local _ = v1.Dash.None;
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v5, v6, v7)
    return {
        id = v5,
        section = v6,
        field = v7
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_Action_0 = v1.Util.Action;
local l_None_0 = v1.Dash.None;
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v5)
    return {
        historyOffset = v5 or l_None_0
    };
end);


local v0 = require(script:FindFirstAncestor("CompositorDebugger").Packages.Framework);
local _ = v0.Dash.None;
return v0.Util.Action(script.Name, function(v2, v3)
    return {
        layerFilters = {
            [v2] = v3
        }
    };
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_Action_0 = v1.Util.Action;
local l_None_0 = v1.Dash.None;
local _ = require(l_script_FirstAncestor_0.Src.Types);
return l_Action_0(script.Name, function(v5)
    return {
        overrides = v5 or l_None_0
    };
end);


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


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v3 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Selection_0 = game:GetService("Selection");
local v7 = v1.PureComponent:extend("InstanceSelector");
v3.Util.Typecheck.wrap(v7, script);
v7.didMount = function(v8)
    local l_props_0 = v8.props;
    local l_IsSelectedInstanceValid_0 = l_props_0.IsSelectedInstanceValid;
    local l_OnValidSelection_0 = l_props_0.OnValidSelection;
    local l_OnInvalidSelection_0 = l_props_0.OnInvalidSelection;
    v8.SelectionChangedHandle = l_Selection_0.SelectionChanged:Connect(function()
        local l_Actor_0 = v8.props.Actor;
        if #l_Selection_0:Get() == 1 then
            local v14 = l_Selection_0:Get()[1];
            if v14 ~= l_Actor_0 then
                if not l_IsSelectedInstanceValid_0(v14) then
                    l_OnInvalidSelection_0(v14);
                else
                    l_OnValidSelection_0(v14);
                    return ;
                end;
            end;
        end;
    end);
end;
v7.willUnmount = function(v15)
    if v15.SelectionChangedHandle then
        v15.SelectionChangedHandle:Disconnect();
    end;
end;
v7.render = function(_)
    return nil;
end;
v7 = l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Mouse = l_ContextServices_0.Mouse,
    Plugin = l_ContextServices_0.Plugin
})(v7);
InstancSelector = v2.connect(function(v17, _)
    return {
        Actor = v17.Status.Actor
    };
end, function(_)
    return {};
end)(v7);
return v7;


local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(script:FindFirstAncestor("CompositorDebugger").Packages.React).PureComponent:extend("PlayerListener");
v2.init = function(v3)
    v3.onCharacterAdded = function(v4)
        if v3.characterAddedEvent then
            v3.characterAddedEvent:Disconnect();
            v3.characterAddedEvent = nil;
        end;
        if not v3.props.IsSelectedInstanceValid(v4) then
            v3.descendantAddedEvent = v4.DescendantAdded:Connect(function(v5)
                if not (not v5:IsA("Script") and not v5:IsA("BindableEvent") or not v3.props.IsSelectedInstanceValid(v4)) then
                    v3.descendantAddedEvent:Disconnect();
                    v3.descendantAddedEvent = nil;
                    v3.props.OnValidSelection(v4);
                end;
            end);
            return ;
        else
            v3.props.OnValidSelection(v4);
            return ;
        end;
    end;
    v3.onPlayerAdded = function(v6)
        if v3.onPlayerAddedEvent then
            v3.onPlayerAddedEvent:Disconnect();
            v3.onPlayerAddedEvent = nil;
        end;
        if not v6.Character then
            v3.characterAddedEvent = v6.CharacterAdded:Connect(v3.onCharacterAdded);
            return ;
        else
            v3.onCharacterAdded(v6.Character);
            return ;
        end;
    end;
end;
v2.didMount = function(v7)
    if l_RunService_0:IsRunning() then
        if not l_RunService_0:IsClient() then
            local l_l_Players_0_Players_0 = l_Players_0:GetPlayers();
            if not l_l_Players_0_Players_0[1] then
                v7.onPlayerAddedEvent = l_Players_0.PlayerAdded:Connect(v7.onPlayerAdded);
                return ;
            else
                v7.onPlayerAdded(l_l_Players_0_Players_0[1]);
                return ;
            end;
        else
            v7.onPlayerAdded(l_Players_0.LocalPlayer);
            return ;
        end;
    else
        return ;
    end;
end;
v2.render = function(_)
    return nil;
end;
return v2;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.React);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local v7 = require(l_script_FirstAncestor_0.Src.Components.AvatarToolsShared.InstanceSelector);
local l_Thunks_0 = l_script_FirstAncestor_0.Src.Thunks;
local v9 = require(l_Thunks_0.AttachCompositor);
local v10 = require(l_Thunks_0.DetachCompositor);
local v11 = require(script.PlayerListener);
local _ = require(l_script_FirstAncestor_0.Src.Types);
local v13 = v2.PureComponent:extend("CompositorSelector");
local function v16(v14)
    if v14 then
        assert(v14);
        local v15 = if v14:IsA("Actor") or v14:IsA("Model") then v14 else if v14:IsA("Player") then v14.Character else nil;
        if not v15 or not v15:GetAttribute("HasCompositor") then
            return nil;
        else
            return v15;
        end;
    else
        return nil;
    end;
end;
v13.init = function(v17)
    v17.isSelectedInstanceValid = function(v18)
        return v16(v18) ~= nil;
    end;
    v17.onValidSelection = function(v19, v20)
        local l_props_0 = v17.props;
        if not v20 or not l_props_0.DebugDataConnection then
            local v22 = v16(v19);
            if v22 then
                l_props_0.AttachCompositor(v22, l_props_0.Analytics);
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v13.willUnmount = function(v23)
    v23.props.DetachCompositor();
end;
v13.render = function(v24)
    return v2.createElement("Folder", {}, {
        InstanceSelector = v2.createElement(v7, {
            IsSelectedInstanceValid = v24.isSelectedInstanceValid,
            OnValidSelection = function(v25)
                v24.onValidSelection(v25, false);
            end,
            OnInvalidSelection = function()
            end
        }),
        PlayerListener = v2.createElement(v11, {
            IsSelectedInstanceValid = v24.isSelectedInstanceValid,
            OnValidSelection = function(v26)
                v24.onValidSelection(v26, true);
            end,
            OnInvalidSelection = function()
            end
        })
    });
end;
return (v3.connect(function(v27)
    return {
        DebugDataConnection = v27.Status.DebugDataConnection
    };
end, function(v28)
    return {
        AttachCompositor = function(v29, v30)
            v28(v9(v29, v30));
        end,
        DetachCompositor = function()
            v28(v10());
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0
})(v13))));


local l_TextService_0 = game:GetService("TextService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v2 = require(l_script_FirstAncestor_0.Packages.React);
local v3 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v3.UI;
local l_ShowOnTop_0 = l_UI_0.ShowOnTop;
local l_DropShadow_0 = l_UI_0.DropShadow;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Typecheck_0 = v3.Util.Typecheck;
local v12 = v2.PureComponent:extend("DragTooltip");
l_Typecheck_0.wrap(v12, script);
v12.defaultProps = {
    Enabled = true,
    Priority = 0
};
v12.init = function(v13)
    v13.mouseEnter = function(_, v15, v16)
        if not v13.isTooltipHovered then
            v13.mousePosition = Vector2.new(v15, v16);
        end;
    end;
    v13.mouseMoved = function(_, v18, v19)
        v13.mousePosition = Vector2.new(v18, v19);
    end;
    v13.mouseLeave = function()
        v13.mousePosition = nil;
    end;
end;
v12.render = function(v20)
    local l_props_0 = v20.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Padding_0 = l_Stylizer_0.Padding;
    local v24 = not not l_Stylizer_0.DropShadow and l_Stylizer_0.DropShadow.Radius or 0;
    local l_Offset_0 = l_Stylizer_0.Offset;
    local v26 = l_props_0.MaxWidth or l_Stylizer_0.MaxWidth;
    local l_Text_0 = l_props_0.Text;
    local l_Priority_0 = l_props_0.Priority;
    local l_mousePosition_0 = v20.mousePosition;
    local v30 = {};
    local v31 = l_props_0.Focus:get();
    if not (not l_mousePosition_0 or not v31) then
        local v32 = l_mousePosition_0.X + l_Offset_0.X;
        local v33 = l_mousePosition_0.Y + l_Offset_0.Y;
        local l_X_0 = v31.AbsoluteSize.X;
        local l_Y_0 = v31.AbsoluteSize.Y;
        local v36 = (v24 + l_Padding_0) * 2;
        local v37 = math.max(0, math.min(l_X_0, v26) - v36);
        local v38 = nil;
        local v39 = nil;
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(l_Text_0, l_Stylizer_0.TextSize, l_Stylizer_0.Font, Vector2.new(v37, math.huge));
        v38 = (l_l_TextService_0_TextSize_0.X + v36) + 1;
        v39 = (l_l_TextService_0_TextSize_0.Y + v36) + 1;
        if l_X_0 <= v32 + v38 then
            v32 = l_X_0 - v38;
        end;
        if l_Y_0 <= v33 + v39 then
            v33 = l_Y_0 - v39;
        end;
        v30.TooltipContainer = v2.createElement(l_ShowOnTop_0, {
            Priority = l_Priority_0
        }, {
            Tooltip = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Position = UDim2.fromOffset(v32, v33),
                Size = UDim2.fromOffset(v38, v39)
            }, {
                DropShadow = v2.createElement(l_DropShadow_0, {
                    Style = l_Stylizer_0.DropShadow
                }, {
                    ContentPane = v2.createElement(l_Pane_0, {
                        Padding = l_Padding_0,
                        Style = "Box"
                    }, {
                        Label = v2.createElement(l_TextLabel_0, {
                            Size = UDim2.new(1, 0, 1, 0),
                            Text = l_Text_0,
                            TextWrapped = true,
                            TextXAlignment = l_props_0.TextXAlignment
                        })
                    })
                })
            })
        });
    end;
    return v2.createElement("Frame", {
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1,
        [v2.Event.MouseMoved] = v20.mouseMoved
    }, v30);
end;
return (l_withContext_0({
    Focus = l_ContextServices_0.Focus,
    Stylizer = l_ContextServices_0.Stylizer
})(v12));


return {
    Padding = 5,
    MaxWidth = 200,
    ShowDelay = 0.3,
    Offset = Vector2.new(10, 5),
    DropShadow = {
        Color = require(script:FindFirstAncestor("CompositorDebugger").Packages.Framework).Style.StyleKey.Border,
        Image = "rbxasset://textures/StudioSharedUI/dropShadow.png",
        ImageSize = 16,
        Offset = Vector2.new(),
        Radius = 3,
        Transparency = 0
    }
};


local v0 = require(script:FindFirstAncestor("CompositorDebugger").Packages.React);
local v1 = v0.PureComponent:extend("Line");
v1.render = function(v2)
    local l_props_0 = v2.props;
    local l_A_0 = l_props_0.A;
    local l_B_0 = l_props_0.B;
    if l_B_0.X < l_A_0.X then
        local l_l_B_0_0 = l_B_0;
        l_B_0 = l_A_0;
        l_A_0 = l_l_B_0_0;
    end;
    return v0.createElement("Frame", {
        Position = UDim2.new(0, (l_A_0.X + l_B_0.X) / 2, 0, (l_A_0.Y + l_B_0.Y) / 2),
        Size = UDim2.new(0, math.sqrt((l_B_0.X - l_A_0.X) * (l_B_0.X - l_A_0.X) + (l_B_0.Y - l_A_0.Y) * (l_B_0.Y - l_A_0.Y)) + 1, 0, l_props_0.Width or 1),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = l_props_0.Transparency,
        BackgroundColor3 = l_props_0.Color,
        BorderSizePixel = 0,
        BorderColor3 = l_props_0.Color,
        Rotation = math.deg((math.atan2(l_B_0.Y - l_A_0.Y, l_B_0.X - l_A_0.X))),
        ZIndex = l_props_0.ZIndex
    });
end;
return v1;


local l_StyleKey_0 = require(script:FindFirstAncestor("CompositorDebugger").Packages.Framework).Style.StyleKey;
return {
    FieldNameHeight = 32,
    LegendHeight = 32,
    BorderColor = l_StyleKey_0.MainText,
    BorderWidth = 1,
    BackgroundColor = l_StyleKey_0.SubBackground2,
    GraphColors = {
        number = {
            l_StyleKey_0.DialogMainButton
        },
        Vector2 = {
            Color3.new(0.75, 0, 0),
            Color3.new(0, 0.75, 0)
        },
        Vector3 = {
            Color3.new(0.75, 0, 0),
            Color3.new(0, 0.75, 0),
            Color3.new(0, 0, 0.75)
        }
    },
    Grid = {
        MaxTicks = 10,
        Intervals = {
            0.05,
            0.1,
            0.25,
            0.5,
            1
        },
        AxisColor = l_StyleKey_0.MainText,
        GridColor = l_StyleKey_0.MainTextDisabled,
        Margin = 0.05
    },
    Padding = 15,
    ScaleWidth = 50
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local l_join_0 = require(l_script_FirstAncestor_0.Packages.Framework).Dash.join;
local v3 = require(script.Parent.BlendBase);
local v4 = v1.PureComponent:extend("Blend1DVisualization");
v4.render = function(v5)
    return v1.createElement(v3, l_join_0(v5.props, {
        Show2D = false,
        Stylizer = v5.props.Stylizer.Blend
    }));
end;
return v4;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("CompositorDebugger");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local l_join_0 = require(l_script_FirstAncestor_0.Packages.Framework).Dash.join;
local v3 = require(script.Parent.BlendBase);
local v4 = v1.PureComponent:extend("Blend2DVisualization");
v4.render = function(v5)
    return v1.createElement(v3, l_join_0(v5.props, {
        Show2D = true,
        Stylizer = v5.props.Stylizer.Blend
    }));
end;
return v4;