local v0 = {};
local l_CoreGui_0 = game:GetService("CoreGui");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_TextService_0 = game:GetService("TextService");
local l_GuiService_0 = game:GetService("GuiService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_Modules_0 = l_RobloxGui_0:WaitForChild("Modules");
local l_TenFootInterface_0 = require(l_Modules_0:WaitForChild("TenFootInterface"));
local l_Dialog_0 = require(l_Modules_0:WaitForChild("VR"):WaitForChild("Dialog"));
local v10 = nil;
getViewportSize = function()
    while not game.Workspace.CurrentCamera do
        game.Workspace.Changed:Wait();
    end;
    assert(game.Workspace.CurrentCamera, "");
    while not (game.Workspace.CurrentCamera.ViewportSize ~= Vector2.new(0, 0)) or game.Workspace.CurrentCamera.ViewportSize == Vector2.new(1, 1) do
        game.Workspace.CurrentCamera.Changed:Wait();
    end;
    return game.Workspace.CurrentCamera.ViewportSize;
end;
local v11 = l_TenFootInterface_0:IsEnabled();
local v12 = false;
local v13 = false;
if l_UserInputService_0.TouchEnabled == true then
    v13 = l_UserInputService_0.MouseEnabled == false;
end;
local v14 = v13 and getViewportSize().Y <= 370;
local v15 = v13 and not v14;
local v16 = false;
local v17 = false;
local v18 = false;
local v19 = false;
local v20 = false;
local v21 = {
    WindowTitle = "Confirm",
    MainText = "Is this okay?",
    ConfirmationText = "Confirm",
    CancelText = "Cancel",
    CancelActive = true,
    StripeColor = Color3.new(0.01, 0.72, 0.34),
    Image = nil,
    ImageConsoleVR = nil,
    PromptCompletedCallback = nil
};
local v22 = nil;
local v23 = nil;
local v24 = UDim2.new(0, 438, 0, 300);
local v25 = UDim2.new(0.5, -219, 0, -300);
local v26 = UDim2.new(0.5, -219, 0.5, -150);
if not v11 and not v12 then
    if not v14 then
        if v15 then
            v24 = UDim2.new(0, 400, 0, 305);
            v25 = UDim2.new(0.5, -200, 0, -305);
            v26 = UDim2.new(0.5, -200, 0.5, -152);
        end;
    else
        v24 = UDim2.new(0.9, 0, 0.9, 0);
        v25 = UDim2.new(0.05, 0, -0.9, 0);
        v26 = UDim2.new(0.05, 0, 0.05, 0);
    end;
else
    v24 = UDim2.new(1, 0, 0, 690);
    v25 = UDim2.new(0, 0, 0, -690);
    v26 = UDim2.new(0, 0, 0.5, -345);
end;
local v27 = 52;
if v14 then
    v27 = 44;
end;
local v28 = 24;
if not (not v11 and not v12) then
    v28 = 42;
end;
local function v35(v29, v30, v31, v32, v33)
    local l_Frame_0 = Instance.new("Frame");
    l_Frame_0.Name = v29;
    l_Frame_0.Size = v30;
    l_Frame_0.Position = v31 or UDim2.new(0, 0, 0, 0);
    l_Frame_0.BackgroundTransparency = v32;
    l_Frame_0.BackgroundColor3 = v33 or Color3.new();
    l_Frame_0.BorderSizePixel = 0;
    l_Frame_0.ZIndex = 8;
    return l_Frame_0;
end;
local function v43(v36, v37, v38, v39, v40, v41)
    local l_TextLabel_0 = Instance.new("TextLabel");
    l_TextLabel_0.Name = v36;
    l_TextLabel_0.Size = v37 or UDim2.new(0, 0, 0, 0);
    l_TextLabel_0.Position = v38;
    l_TextLabel_0.BackgroundTransparency = 1;
    l_TextLabel_0.Font = v39;
    l_TextLabel_0.TextSize = v40;
    l_TextLabel_0.TextColor3 = Color3.new(1, 1, 1);
    l_TextLabel_0.Text = v41;
    l_TextLabel_0.ZIndex = 8;
    return l_TextLabel_0;
end;
local function v56(v44, v45, v46, v47, v48, v49, v50)
    local v51 = v43(v44, v45, v46, v47, v48, v49);
    v51.TextXAlignment = Enum.TextXAlignment.Left;
    v51.TextYAlignment = Enum.TextYAlignment.Top;
    v51.TextWrapped = true;
    if v45.Y.Offset < l_TextService_0:GetTextSize(v49, v48, v47, Vector2.new(v45.X.Offset, 10000)).Y then
        local v52 = Vector2.new(v45.X.Offset - (v50 + 20), 10000);
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v49, v48, v47, v52);
        local l_Frame_1 = Instance.new("Frame");
        l_Frame_1.Name = "ScrollingTextParent";
        l_Frame_1.BackgroundTransparency = 1;
        l_Frame_1.BackgroundColor3 = Color3.new(1, 1, 1);
        l_Frame_1.BorderSizePixel = 0;
        l_Frame_1.Position = v46;
        l_Frame_1.Size = v45 - UDim2.new(0, v50 * 2, 0, 0);
        local l_ScrollingFrame_0 = Instance.new("ScrollingFrame");
        l_ScrollingFrame_0.Selectable = true;
        l_ScrollingFrame_0.Name = "ScrollingFrame";
        l_ScrollingFrame_0.BackgroundTransparency = 1;
        l_ScrollingFrame_0.BackgroundColor3 = Color3.new(1, 1, 1);
        l_ScrollingFrame_0.BorderSizePixel = 0;
        l_ScrollingFrame_0.Position = UDim2.new(0, 0, 0, 0);
        l_ScrollingFrame_0.Size = v45;
        l_ScrollingFrame_0.CanvasSize = UDim2.new(0, v52.X - v50 * 2, 0, l_l_TextService_0_TextSize_0.Y);
        l_ScrollingFrame_0.ScrollBarThickness = v50;
        l_ScrollingFrame_0.SelectionImageObject = Instance.new("ImageLabel");
        l_ScrollingFrame_0.SelectionImageObject.Name = "EmptySelectionImage";
        l_ScrollingFrame_0.SelectionImageObject.BackgroundTransparency = 1;
        l_ScrollingFrame_0.SelectionImageObject.Image = "";
        l_ScrollingFrame_0.Active = false;
        l_ScrollingFrame_0.SelectionGained:connect(function()
            l_Frame_1.BackgroundTransparency = 0.15;
        end);
        l_ScrollingFrame_0.SelectionLost:connect(function()
            l_Frame_1.BackgroundTransparency = 1;
        end);
        v51.Position = UDim2.new(0, 10, 0, 0);
        v51.Size = UDim2.new(0, v52.X, 0, l_l_TextService_0_TextSize_0.Y);
        v51.Parent = l_ScrollingFrame_0;
        l_ScrollingFrame_0.Parent = l_Frame_1;
        return l_Frame_1;
    else
        return v51;
    end;
end;
local function _(v57, v58, v59, v60, v61)
    local l_ImageLabel_0 = Instance.new("ImageLabel");
    l_ImageLabel_0.Name = v57;
    l_ImageLabel_0.Size = v58;
    l_ImageLabel_0.BackgroundTransparency = 1;
    l_ImageLabel_0.Position = v59;
    l_ImageLabel_0.Image = v60;
    if v61 then
        v61(l_ImageLabel_0);
    end;
    return l_ImageLabel_0;
end;
local function v73(v64, v65, v66, v67, v68, v69, v70)
    local l_ImageButton_0 = Instance.new("ImageButton");
    l_ImageButton_0.Name = v64;
    l_ImageButton_0.Size = v65;
    l_ImageButton_0.Position = v66;
    l_ImageButton_0.Image = v67;
    l_ImageButton_0.BackgroundTransparency = 1;
    l_ImageButton_0.AutoButtonColor = false;
    l_ImageButton_0.ZIndex = 8;
    l_ImageButton_0.Modal = true;
    l_ImageButton_0.Selectable = true;
    l_ImageButton_0.SelectionImageObject = Instance.new("ImageLabel");
    l_ImageButton_0.SelectionImageObject.Name = "EmptySelectionImage";
    l_ImageButton_0.SelectionImageObject.BackgroundTransparency = 1;
    l_ImageButton_0.SelectionImageObject.Image = "";
    local v72 = v43(v64 .. "Text", UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 0, 0), v70, v28, v69);
    v72.ZIndex = 9;
    v72.Parent = l_ImageButton_0;
    l_ImageButton_0.MouseEnter:connect(function()
        l_ImageButton_0.Image = v68;
    end);
    l_ImageButton_0.MouseLeave:connect(function()
        l_ImageButton_0.Image = v67;
    end);
    l_ImageButton_0.MouseButton1Click:connect(function()
        l_ImageButton_0.Image = v67;
    end);
    l_ImageButton_0.SelectionGained:connect(function()
        l_ImageButton_0.Image = v68;
    end);
    l_ImageButton_0.SelectionLost:connect(function()
        l_ImageButton_0.Image = v67;
    end);
    return l_ImageButton_0;
end;
local v74 = v35("PromptDialog", v24, v25, 1, nil);
v74.Visible = false;
v74.Parent = l_RobloxGui_0;
v74.Active = true;
local v75 = v35("ContainerFrame", UDim2.new(1, 0, 1, 0), nil, 0.36, Color3.new(0, 0, 0));
v75.ZIndex = 8;
v75.Parent = v74;
AddDefaultsToPromptOptions = function(v76, v77)
    for v78, v79 in pairs(v77) do
        if v76[v78] == nil then
            v76[v78] = v79;
        end;
    end;
end;
CreatePromptVRorConsole = function(v80)
    local v81 = 90;
    if v80.ImageConsoleVR then
        local v82 = UDim2.new(0, 600, 0, 600);
        local v83 = UDim2.new(0, 100, 0, 45);
        local l_ImageConsoleVR_0 = v80.ImageConsoleVR;
        local l_FetchImageFunctionConsoleVR_0 = v80.FetchImageFunctionConsoleVR;
        local l_ImageLabel_1 = Instance.new("ImageLabel");
        l_ImageLabel_1.Name = "Image";
        l_ImageLabel_1.Size = v82;
        l_ImageLabel_1.BackgroundTransparency = 1;
        l_ImageLabel_1.Position = v83;
        l_ImageLabel_1.Image = l_ImageConsoleVR_0;
        if l_FetchImageFunctionConsoleVR_0 then
            l_FetchImageFunctionConsoleVR_0(l_ImageLabel_1);
        end;
        local l_l_ImageLabel_1_0 = l_ImageLabel_1;
        l_l_ImageLabel_1_0.ZIndex = 9;
        l_l_ImageLabel_1_0.Parent = v75;
        v81 = 800;
    end;
    local v88 = v43("WindowTitle", UDim2.new(0, 800, 0, 60), UDim2.new(0, v81, 0, 60), Enum.Font.SourceSansBold, 48, v80.WindowTitle);
    v88.TextXAlignment = Enum.TextXAlignment.Left;
    v88.TextYAlignment = Enum.TextYAlignment.Center;
    v88.Parent = v75;
    v88.ZIndex = 9;
    local v89 = v35("ColorStripe", UDim2.new(0, 832, 0, 4), UDim2.new(0, v81, 0, 120), 0, v80.StripeColor);
    v89.ZIndex = 9;
    v89.Parent = v75;
    v56("MainText", UDim2.new(0, 800, 0, 450), UDim2.new(0, v81, 0, 152), Enum.Font.SourceSansBold, 44, v80.MainText, 16).Parent = v75;
    local v90 = Rect.new(8, 8, 56, 56);
    local l_Slice_0 = Enum.ScaleType.Slice;
    local v92 = v73("ConfirmButton", UDim2.new(0, 320, 0, 80), UDim2.new(0, v81, 1, -125), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v80.ConfirmationText, Enum.Font.SourceSans);
    v92.Parent = v75;
    v92.ScaleType = l_Slice_0;
    v92.SliceCenter = v90;
    v92.MouseButton1Click:connect(function()
        OnPromptEnded(true);
    end);
    if v80.CancelActive then
        local v93 = v73("CancelButton", UDim2.new(0, 320, 0, 80), UDim2.new(0, v81 + 340, 1, -125), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v80.CancelText, Enum.Font.SourceSans);
        v93.Parent = v75;
        v93.ScaleType = l_Slice_0;
        v93.SliceCenter = v90;
        v93.MouseButton1Click:connect(function()
            OnPromptEnded(false);
        end);
    end;
end;
CreatePromptPCorTablet = function(v94)
    local v95 = v43("WindowTitle", UDim2.new(1, 0, 0, v27), UDim2.new(0, 0, 0, 0), Enum.Font.SourceSansBold, 24, v94.WindowTitle);
    v95.Parent = v75;
    v95.ZIndex = 9;
    local v96 = v35("ColorStripe", UDim2.new(1, 0, 0, 2), nil, 0, v94.StripeColor);
    v96.Position = UDim2.new(0, 0, 0, v27);
    v96.ZIndex = 9;
    v96.Parent = v75;
    local v97 = nil;
    local v98 = nil;
    if not v94.Image then
        v97 = if not v15 then v56("MainText", UDim2.new(0, 398, 0, 150), UDim2.new(0, 20, 0, v27 + 17), Enum.Font.SourceSansBold, 22, v94.MainText, 8) else v56("MainText", UDim2.new(0, 360, 0, 150), UDim2.new(0, 20, 0, v27 + 17), Enum.Font.SourceSansBold, 22, v94.MainText, 8);
    else
        local v99 = UDim2.new(0, 150, 0, 150);
        local v100 = UDim2.new(0, 15, 0, v27 + 17);
        local l_Image_0 = v94.Image;
        local l_FetchImageFunction_0 = v94.FetchImageFunction;
        local l_ImageLabel_2 = Instance.new("ImageLabel");
        l_ImageLabel_2.Name = "Image";
        l_ImageLabel_2.Size = v99;
        l_ImageLabel_2.BackgroundTransparency = 1;
        l_ImageLabel_2.Position = v100;
        l_ImageLabel_2.Image = l_Image_0;
        if l_FetchImageFunction_0 then
            l_FetchImageFunction_0(l_ImageLabel_2);
        end;
        v98 = l_ImageLabel_2;
        v98.ZIndex = 9;
        v98.Parent = v75;
        v97 = if not v15 then v56("MainText", UDim2.new(0, 233, 0, 150), UDim2.new(0, 185, 0, v27 + 17), Enum.Font.SourceSansBold, 22, v94.MainText, 8) else v56("MainText", UDim2.new(0, 195, 0, 150), UDim2.new(0, 185, 0, v27 + 17), Enum.Font.SourceSansBold, 22, v94.MainText, 8);
    end;
    v97.Parent = v75;
    local v104 = Rect.new(8, 8, 56, 56);
    local l_Slice_1 = Enum.ScaleType.Slice;
    local v106 = nil;
    v106 = if not v15 then if v94.CancelActive then v73("ConfirmButton", UDim2.new(0, 128, 0, 38), UDim2.new(0.5, -138, 1, -53), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.ConfirmationText, Enum.Font.SourceSansBold) else v73("ConfirmButton", UDim2.new(0, 128, 0, 38), UDim2.new(0.5, -64, 1, -53), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.ConfirmationText, Enum.Font.SourceSans) else if v94.CancelActive then v73("ConfirmButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, -138, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.ConfirmationText, Enum.Font.SourceSansBold) else v73("ConfirmButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, -64, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.ConfirmationText, Enum.Font.SourceSans);
    v106.Parent = v75;
    v106.ScaleType = l_Slice_1;
    v106.SliceCenter = v104;
    v106.MouseButton1Click:connect(function()
        OnPromptEnded(true);
    end);
    if v94.CancelActive then
        local v107 = nil;
        v107 = if not v15 then v73("CancelButton", UDim2.new(0, 128, 0, 38), UDim2.new(0.5, 10, 1, -53), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.CancelText, Enum.Font.SourceSans) else v73("CancelButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, 10, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v94.CancelText, Enum.Font.SourceSans);
        v107.Parent = v75;
        v107.ScaleType = l_Slice_1;
        v107.SliceCenter = v104;
        v107.MouseButton1Click:connect(function()
            OnPromptEnded(false);
        end);
        v107.NextSelectionLeft = v106;
        v106.NextSelectionRight = v107;
    end;
end;
CreatePromptPhone = function(v108)
    local v109 = v43("WindowTitle", UDim2.new(1, 0, 0, v27), UDim2.new(0, 0, 0, 0), Enum.Font.SourceSansBold, 24, v108.WindowTitle);
    v109.Parent = v75;
    v109.ZIndex = 9;
    local v110 = v35("ColorStripe", UDim2.new(1, 0, 0, 2), nil, 0, v108.StripeColor);
    v110.Position = UDim2.new(0, 0, 0, v27);
    v110.ZIndex = 9;
    v110.Parent = v75;
    local v111 = nil;
    local v112 = nil;
    if not v108.Image then
        v111 = v56("MainText", UDim2.new(1, v75.AbsoluteSize.X - 40, 0, 120), UDim2.new(0, 20, 0, v27 + 17), Enum.Font.SourceSansBold, 20, v108.MainText, 8);
    else
        local v113 = UDim2.new(0, 120, 0, 120);
        local v114 = UDim2.new(0, 15, 0, v27 + 17);
        local l_Image_1 = v108.Image;
        local l_FetchImageFunction_1 = v108.FetchImageFunction;
        local l_ImageLabel_3 = Instance.new("ImageLabel");
        l_ImageLabel_3.Name = "Image";
        l_ImageLabel_3.Size = v113;
        l_ImageLabel_3.BackgroundTransparency = 1;
        l_ImageLabel_3.Position = v114;
        l_ImageLabel_3.Image = l_Image_1;
        if l_FetchImageFunction_1 then
            l_FetchImageFunction_1(l_ImageLabel_3);
        end;
        v112 = l_ImageLabel_3;
        v112.ZIndex = 9;
        v112.Parent = v75;
        v111 = v56("MainText", UDim2.new(0, v75.AbsoluteSize.X - 175, 0, 120), UDim2.new(0, 155, 0, v27 + 17), Enum.Font.SourceSansBold, 20, v108.MainText, 8);
    end;
    v111.Parent = v75;
    local v118 = Rect.new(8, 8, 56, 56);
    local l_Slice_2 = Enum.ScaleType.Slice;
    local v120 = nil;
    v120 = if not v108.CancelActive then v73("ConfirmButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, -64, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v108.ConfirmationText, Enum.Font.SourceSans) else v73("ConfirmButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, -138, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v108.ConfirmationText, Enum.Font.SourceSansBold);
    v120.Parent = v75;
    v120.ScaleType = l_Slice_2;
    v120.SliceCenter = v118;
    v120.MouseButton1Click:connect(function()
        OnPromptEnded(true);
    end);
    if v108.CancelActive then
        local v121 = v73("CancelButton", UDim2.new(0, 128, 0, 44), UDim2.new(0.5, 10, 1, -59), "rbxasset://textures/ui/VR/button.png", "rbxasset://textures/ui/VR/buttonSelected.png", v108.CancelText, Enum.Font.SourceSans);
        v121.Parent = v75;
        v121.ScaleType = l_Slice_2;
        v121.SliceCenter = v118;
        v121.MouseButton1Click:connect(function()
            OnPromptEnded(false);
        end);
    end;
end;
CreatePromptFromOptions = function(v122)
    v75:ClearAllChildren();
    if not v12 and not v11 then
        if not v14 then
            CreatePromptPCorTablet(v122);
            return ;
        else
            CreatePromptPhone(v122);
            return ;
        end;
    else
        CreatePromptVRorConsole(v122);
        return ;
    end;
end;
SetSelectedObject = function()
    local l_CancelButton_0 = v75:FindFirstChild("CancelButton");
    if not l_CancelButton_0 then
        local l_ConfirmButton_0 = v75:FindFirstChild("ConfirmButton");
        if l_ConfirmButton_0 then
            l_GuiService_0.SelectedCoreObject = l_ConfirmButton_0;
        end;
        return ;
    else
        l_GuiService_0.SelectedCoreObject = l_CancelButton_0;
        return ;
    end;
end;
OnTweenInFinished = function()
    if not (not v17 and not v11) then
        SetSelectedObject();
    end;
end;
ShowPrompt = function()
    v74.Visible = true;
    if v11 then
        l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.ForceHide;
    end;
    if not v12 then
        v74:TweenPosition(v26, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.3, true, OnTweenInFinished);
        DisableControllerMovement();
        EnableControllerInput();
        return ;
    else
        v74.Position = v26;
        v10:SetContent(v74);
        v10:Show(true);
        DisableControllerMovement();
        return ;
    end;
end;
HidePrompt = function()
    local function v125()
        v74.Visible = false;
        v16 = false;
        l_GuiService_0.CoreGuiNavigationEnabled = v18;
        l_GuiService_0.GuiNavigationEnabled = v19;
        l_GuiService_0.AutoSelectGuiEnabled = v20;
        l_GuiService_0.SelectedCoreObject = nil;
        if v11 then
            l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.None;
        end;
    end;
    if not v12 then
        v74:TweenPosition(v25, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.3, true, v125);
    else
        v74.Position = v25;
        v10:Close();
        v74.Visible = false;
        v16 = false;
        l_GuiService_0.CoreGuiNavigationEnabled = v18;
        l_GuiService_0.GuiNavigationEnabled = v19;
        l_GuiService_0.AutoSelectGuiEnabled = v20;
        l_GuiService_0.SelectedCoreObject = nil;
        if v11 then
            l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.None;
            return ;
        end;
    end;
end;
DoCreatePrompt = function(v126)
    v22 = v126.PromptCompletedCallback;
    AddDefaultsToPromptOptions(v126, v21);
    v23 = v126;
    CreatePromptFromOptions(v126);
    ShowPrompt();
end;
OnPromptEnded = function(v127)
    if v22 then
        if not v23.CancelActive then
            spawn(function()
                v22(true);
            end);
        else
            spawn(function()
                v22(v127);
            end);
        end;
    end;
    HidePrompt();
    EnableControllerMovement();
    DisableControllerInput();
end;
NoOpFunc = function()
end;
EnableControllerMovement = function()
    l_ContextActionService_0:UnbindCoreAction("doNothingThumbstick2PromptCreator");
    l_ContextActionService_0:UnbindCoreAction("doNothingAButtonPromptCreator");
end;
DisableControllerMovement = function()
    l_ContextActionService_0:BindCoreAction("doNothingThumbstick2PromptCreator", NoOpFunc, false, Enum.KeyCode.Thumbstick2);
    l_ContextActionService_0:BindCoreAction("doNothingAButtonPromptCreator", NoOpFunc, false, Enum.KeyCode.ButtonA);
end;
EnableControllerInput = function()
    l_ContextActionService_0:BindCoreAction("CoreScriptPromptCreatorCancel", function(_, v129, _)
        if v129 ~= Enum.UserInputState.Begin then
            return ;
        else
            if v23.CancelActive then
                OnPromptEnded(false);
            end;
            return ;
        end;
    end, false, Enum.KeyCode.ButtonB);
    l_ContextActionService_0:BindCoreAction("CoreScriptPromptCreatorSelect", function(_, v132, _)
        if v132 ~= Enum.UserInputState.Begin then
            return ;
        else
            if l_GuiService_0.SelectedCoreObject == nil then
                SetSelectedObject();
            end;
            return ;
        end;
    end, false, Enum.KeyCode.ButtonSelect);
end;
DisableControllerInput = function()
    l_ContextActionService_0:UnbindCoreAction("CoreScriptPromptCreatorCancel");
    l_ContextActionService_0:UnbindCoreAction("CoreScriptPromptCreatorSelect");
end;
valueInTable = function(v134, v135)
    for _, v137 in pairs(v135) do
        if v137 == v134 then
            return true;
        end;
    end;
    return false;
end;
OnInputChanged = function(v138)
    local l_UserInputType_0 = v138.UserInputType;
    local l_UserInputType_1 = Enum.UserInputType;
    if v12 or not valueInTable(l_UserInputType_0, {
        l_UserInputType_1.Gamepad1,
        l_UserInputType_1.Gamepad2,
        l_UserInputType_1.Gamepad3,
        l_UserInputType_1.Gamepad4
    }) then
        v17 = false;
    elseif not (v138.KeyCode ~= Enum.KeyCode.Thumbstick1) or v138.KeyCode == Enum.KeyCode.Thumbstick2 then
        if not (math.abs(v138.Position.X) <= 0.1 and math.abs(v138.Position.Z) <= 0.1) or math.abs(v138.Position.Y) > 0.1 then
            v17 = true;
            return ;
        end;
    else
        v17 = true;
        return ;
    end;
end;
l_UserInputService_0.InputChanged:connect(OnInputChanged);
l_UserInputService_0.InputBegan:connect(OnInputChanged);
OnVREnabled = function(v141)
    if not v141 then
        v12 = false;
        if v10 then
            v10:SetContent(nil);
        end;
        v74.Parent = l_RobloxGui_0;
        return ;
    else
        if not v10 then
            v10 = l_Dialog_0.new();
        end;
        v10:SetContent(v74);
        v12 = true;
        return ;
    end;
end;
spawn(function()
    OnVREnabled(l_UserInputService_0.VREnabled);
end);
l_UserInputService_0.Changed:connect(function(v142)
    if v142 == "VREnabled" then
        OnVREnabled(l_UserInputService_0.VREnabled);
    end;
end);
l_GuiService_0.Changed:connect(function(v143)
    if v16 then
        if v143 == "CoreGuiNavigationEnabled" then
            if l_GuiService_0.CoreGuiNavigationEnabled ~= true then
                v18 = l_GuiService_0.CoreGuiNavigationEnabled;
                l_GuiService_0.CoreGuiNavigationEnabled = true;
                return ;
            end;
        elseif v143 == "GuiNavigationEnabled" then
            if l_GuiService_0.GuiNavigationEnabled ~= false then
                v19 = l_GuiService_0.GuiNavigationEnabled;
                l_GuiService_0.GuiNavigationEnabled = false;
                return ;
            end;
        elseif v143 == "AutoSelectGuiEnabled" and l_GuiService_0.AutoSelectGuiEnabled ~= false then
            v20 = l_GuiService_0.AutoSelectGuiEnabled;
            l_GuiService_0.AutoSelectGuiEnabled = false;
        end;
    end;
end);
SetupGamepadSelection = function()
    v18 = l_GuiService_0.CoreGuiNavigationEnabled;
    v19 = l_GuiService_0.GuiNavigationEnabled;
    v20 = l_GuiService_0.AutoSelectGuiEnabled;
    l_GuiService_0.SelectedCoreObject = nil;
    l_GuiService_0.CoreGuiNavigationEnabled = true;
    l_GuiService_0.GuiNavigationEnabled = false;
    l_GuiService_0.AutoSelectGuiEnabled = false;
end;
v0.CreatePrompt = function(_, v145)
    if not v16 then
        v16 = true;
        SetupGamepadSelection();
        DoCreatePrompt(v145);
        return true;
    else
        return false;
    end;
end;
v0.IsCurrentlyPrompting = function(_)
    return v16;
end;
return v0;


local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local l_GuiService_0 = game:GetService("GuiService");
local v3 = {
    initStarted = false,
    TestModel = nil,
    hrp = nil,
    humanoid = nil,
    player = nil
};
v3.Init = function()
    if not v3.initStarted then
        v3.initStarted = true;
        local v4 = v3.WaitForExpression(function()
            return l_Players_0.LocalPlayer;
        end, 10, "Players.LocalPlayer not found");
        v3.player = v4;
        if not (not (v4.Character == nil) or not l_RunService_0:IsServer()) then
            v4:LoadCharacter();
        end;
        v3.WaitForExpression(function()
            return v4.Character;
        end, 10, "LocalPlayer.Character not found");
        v3.hrp = v4.Character:WaitForChild("HumanoidRootPart");
        v3.humanoid = v4.Character:WaitForChild("Humanoid");
        if v3.TestModel == nil then
            v3.TestModel = Instance.new("Model");
            v3.TestModel.Name = "_TestContainer";
            v3.TestModel.Parent = workspace;
        end;
        v3.PlayerGui = l_Players_0.LocalPlayer:WaitForChild("PlayerGui");
        return ;
    else
        return ;
    end;
end;
v3.AddInstance = function(v5)
    local v6 = Instance.new(v5);
    v6.Parent = v3.TestModel;
    return v6;
end;
v3.CleanUpAfterTest = function()
    v3.TestModel:ClearAllChildren();
end;
v3.SetCameraFOV = function(v7)
    workspace.CurrentCamera.FieldOfView = v7;
end;
v3.IsPartOnscreen = function(v8)
    local _, v10 = workspace.CurrentCamera:WorldToViewportPoint(v8.Position);
    return v10;
end;
v3.GetPartViewportPixelPosition = function(v11)
    local v12, _ = workspace.CurrentCamera:WorldToViewportPoint(v11.Position);
    return Vector2.new(v12.x, v12.y);
end;
v3.MovePlayerToPosition = function(v14)
    if v3.hrp ~= nil then
        v3.hrp.CFrame = (CFrame.new() + v14) + Vector3.new(0, 1 + v3.humanoid.HipHeight, 0);
    end;
end;
v3.SetPlayerCamera = function(v15, v16)
    local v17 = (CFrame.new(Vector3.new(), v15) + v3.player.Character:WaitForChild("Head", 10).Position) - v16 * v15.Unit;
    local l_CurrentCamera_0 = workspace.CurrentCamera;
    l_CurrentCamera_0.CameraType = Enum.CameraType.Scriptable;
    l_CurrentCamera_0.CFrame = v17;
end;
v3.WaitNFrames = function(v19)
    for _ = 1, v19 do
        l_RunService_0.RenderStepped:Wait();
    end;
end;
v3.WaitWallTime = function(v21)
    local v22 = tick();
    if v21 > 2 then
        warn("Requested wait time too long, waiting 2s");
        v21 = 2;
    end;
    while not (v21 < tick() - v22) do
        v3.WaitNFrames(1);
    end;
end;
v3.WaitGameTime = function(v23)
    local v24, v25 = l_RunService_0.Stepped:Wait();
    local l_v24_0 = v24;
    while l_v24_0 - v24 < v23 do
        local v27, v28 = l_RunService_0.Stepped:Wait();
        l_v24_0 = v27;
        v25 = v28;
    end;
end;
v3.WaitForExpression = function(v29, v30, v31)
    local v32 = tick();
    local v33 = v29();
    while not v33 and tick() - v32 < v30 do
        v3.WaitNFrames(1);
        v33 = v29();
    end;
    if not v33 then
        error(v31);
    end;
    return v33;
end;
v3.GetCornersOfBillboardGui = function(v34)
    local v35 = (v3.GetPartViewportPixelPosition(v34.Adornee) - l_GuiService_0:GetGuiInset()) + Vector2.new(v34.SizeOffset.x * v34.AbsoluteSize.x, v34.SizeOffset.y * v34.AbsoluteSize.y);
    local l_AbsoluteSize_0 = v34.AbsoluteSize;
    return {
        center = v35,
        topLeft = (v35 - l_AbsoluteSize_0 / 2) + Vector2.new(1, 1),
        topRight = v35 + Vector2.new(l_AbsoluteSize_0.x / 2 - 1, -l_AbsoluteSize_0.y / 2 + 1),
        bottomRight = v35 + Vector2.new(l_AbsoluteSize_0.x / 2 - 1, l_AbsoluteSize_0.y / 2 - 1),
        bottomLeft = v35 + Vector2.new(-l_AbsoluteSize_0.x / 2 + 1, l_AbsoluteSize_0.y / 2 - 1)
    };
end;
return v3;


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3, v4)
    return {
        promptInfo = {
            promptType = v0,
            assetInstance = v1,
            assetType = v2,
            guid = v3,
            scopes = v4
        }
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3)
    return {
        promptInfo = {
            promptType = v0,
            humanoidModel = v1,
            guid = v2,
            scopes = v3
        }
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        resultType = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        errorMessage = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        humanoidModel = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local v7 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local l_Focusable_0 = v6.Focusable;
local v9 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v9.Style.withStyle;
local l_withSelectionCursorProvider_0 = v9.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v9.App.SelectionImage.CursorKind;
local l_Images_0 = v9.App.ImageSet.Images;
local l_ImageSetLabel_0 = v9.Core.ImageSet.ImageSetLabel;
local v15 = l_Images_0["component_assets/circle_17_stroke_1"];
local v16 = Rect.new(8, 8, 8, 8);
local v17 = require(script.Parent.Parent.GetFFlagValidateDescription);
local v18 = v3.PureComponent:extend("AssetDescriptionTextBox");
v18.validateProps = v5.strictInterface({
    Size = v5.optional(v5.UDim2),
    Position = v5.optional(v5.UDim2),
    onAssetDescriptionUpdated = v5.callback,
    descriptionTextBoxRef = v5.optional(v5.table),
    NextSelectionUp = v5.optional(v5.table),
    assetType = v5.optional(v5.enum(Enum.AssetType)),
    defaultDescription = v5.optional(v5.string)
});
local function _(v19)
    local v20 = utf8.len(utf8.nfcnormalize(v19));
    if v20 == nil then
        return 0;
    else
        return v20;
    end;
end;
local function _(v22, v23)
    local v24 = utf8.len(utf8.nfcnormalize(v22));
    return v23 < (v24 == nil and 0 or v24);
end;
v18.init = function(v26)
    v26:setState({
        lastValidDescription = "",
        assetDescription = v26.props.defaultDescription or "",
        descriptionLength = 0,
        scrollingFrameHeight = 100,
        canvasHeight = 100,
        canvasPosition = 0,
        cursorPosition = 0,
        textBoxWidth = 100,
        isDescriptionValid = true
    });
    v26.wasInitiallyFocused = false;
    v26.tryFocusTextBox = function()
        if not v26.wasInitiallyFocused then
            local v27 = v26.props.descriptionTextBoxRef:getValue();
            if not (not v27 or not v27:IsDescendantOf(game)) then
                v27:CaptureFocus();
                v26.wasInitiallyFocused = true;
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v18.calculateNeedsRescroll = function(v28, v29, v30)
    if v28.state.cursorPosition == -1 then
        return ;
    else
        local v31 = (v28.state.assetDescription or ""):sub(1, v28.state.cursorPosition - 1);
        local v32 = v30.RelativeSize * v29.Font.BaseSize;
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v31, v32, v30.Font, (Vector2.new(v28.state.textBoxWidth, 10000)));
        if v28.state.scrollingFrameHeight + v28.state.canvasPosition < l_l_TextService_0_TextSize_0.Y then
            v28:setState({
                canvasPosition = l_l_TextService_0_TextSize_0.Y - v28.state.scrollingFrameHeight
            });
            return ;
        else
            if l_l_TextService_0_TextSize_0.Y - v32 < v28.state.canvasPosition then
                v28:setState({
                    canvasPosition = l_l_TextService_0_TextSize_0.Y - v32
                });
            end;
            return ;
        end;
    end;
end;
v18.onTextChanged = function(v34, v35, v36, v37)
    local l_Text_0 = v35.Text;
    local v39 = not v17() and true or l_Text_0 ~= "";
    local l_lastValidDescription_0 = v34.state.lastValidDescription;
    local v41 = utf8.len(utf8.nfcnormalize(l_Text_0));
    if not ((v41 == nil and 0 or v41) > 1000) then
        l_lastValidDescription_0 = v35.Text;
    else
        l_Text_0 = l_lastValidDescription_0;
        v35.Text = l_Text_0;
    end;
    local v42 = utf8.len(utf8.nfcnormalize(l_Text_0));
    v34:setState({
        lastValidDescription = l_lastValidDescription_0,
        assetDescription = l_Text_0,
        descriptionLength = v42 == nil and 0 or v42,
        canvasHeight = math.max(100, l_TextService_0:GetTextSize(l_Text_0, v37.RelativeSize * v36.Font.BaseSize, v37.Font, (Vector2.new(v34.state.textBoxWidth, 10000))).Y),
        isDescriptionValid = v39
    });
    v34.props.onAssetDescriptionUpdated(l_Text_0, v39);
end;
v18.renderWithProviders = function(v43, v44, v45)
    local l_Font_0 = v44.Font;
    local l_CaptionBody_0 = l_Font_0.CaptionBody;
    local l_Theme_0 = v44.Theme;
    return v3.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = v43.props.Size,
        Position = v43.props.Position
    }, {
        TextboxContainer = v3.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v15,
            ImageColor3 = l_Theme_0.UIDefault.Color,
            ImageTransparency = l_Theme_0.UIDefault.Transparency,
            LayoutOrder = 1,
            ScaleType = Enum.ScaleType.Slice,
            Size = UDim2.new(1, 0, 1, -15),
            SliceCenter = v16
        }, {
            ScrollingFrame = v3.createElement("ScrollingFrame", {
                Size = UDim2.fromScale(1, 1),
                BackgroundTransparency = 1,
                CanvasPosition = Vector2.new(0, v43.state.canvasPosition),
                AutomaticCanvasSize = Enum.AutomaticSize.Y,
                ScrollBarThickness = 12,
                BorderSizePixel = 0,
                [v3.Change.CanvasPosition] = function(v49)
                    v43:setState({
                        canvasPosition = v49.CanvasPosition.Y
                    });
                end,
                [v3.Change.AbsoluteSize] = function(v50)
                    v43:setState({
                        scrollingFrameHeight = v50.AbsoluteSize.Y
                    });
                    v43:calculateNeedsRescroll(v44, l_CaptionBody_0);
                end
            }, {
                Textbox = v3.createElement(l_Focusable_0.TextBox, {
                    Text = v43.state.assetDescription,
                    BackgroundTransparency = 1,
                    ClearTextOnFocus = false,
                    Font = l_Font_0.Header2.Font,
                    TextSize = l_Font_0.BaseSize * l_CaptionBody_0.RelativeSize,
                    PlaceholderColor3 = l_Theme_0.PlaceHolder.Color,
                    PlaceholderText = v7:FormatByKey("CoreScripts.PublishAssetPrompt.AssetDescriptionPlaceholder"),
                    Position = UDim2.fromOffset(6, 0),
                    Size = UDim2.new(1, -24, 0, v43.state.canvasHeight),
                    MultiLine = true,
                    TextColor3 = l_Theme_0.TextDefault.Color,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    TextWrapped = true,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Top,
                    OverlayNativeInput = true,
                    NextSelectionUp = v43.props.NextSelectionUp,
                    [v3.Change.TextFits] = v43.onTextFitsChanged,
                    SelectionImageObject = v45(l_CursorKind_0.InputFields),
                    [v3.Ref] = v43.props.descriptionTextBoxRef,
                    [v3.Event.AncestryChanged] = v43.tryFocusTextBox,
                    [v3.Change.Text] = function(v51)
                        v43:onTextChanged(v51, v44, l_CaptionBody_0);
                    end,
                    [v3.Change.AbsoluteSize] = function(v52)
                        v43:setState({
                            textBoxWidth = v52.AbsoluteSize.X
                        });
                        v43:calculateNeedsRescroll(v44, l_CaptionBody_0);
                    end,
                    [v3.Change.CursorPosition] = function(v53)
                        v43:setState({
                            cursorPosition = v53.CursorPosition
                        });
                        v43:calculateNeedsRescroll(v44, l_CaptionBody_0);
                    end
                })
            })
        }),
        LengthDisplay = if v43.state.descriptionLength / 1000 > 0.9 then v3.createElement("TextLabel", {
            Size = UDim2.new(not v17() and 1 or 0.2, 0, 0, 15),
            AnchorPoint = Vector2.new(1, 1),
            Position = UDim2.fromScale(1, 1),
            Text = v43.state.descriptionLength .. "/" .. 1000,
            TextXAlignment = Enum.TextXAlignment.Right,
            TextColor3 = l_Theme_0.TextDefault.Color,
            BackgroundTransparency = 1
        }) else nil,
        WarningText = (v17() and (not not v17() and not v43.state.isDescriptionValid)) and v3.createElement("TextLabel", {
            Position = UDim2.new(0, 0, 1, -15),
            BackgroundTransparency = 1,
            Text = v7:FormatByKey("CoreScripts.PublishAssetPrompt.InvalidDescription"),
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            Size = UDim2.new(0.8, 0, 0, 20),
            TextColor3 = l_Theme_0.Alert.Color,
            TextWrapped = true,
            Font = l_Font_0.Body.Font,
            TextSize = 12
        })
    });
end;
v18.render = function(v54)
    return l_withStyle_0(function(v55)
        return l_withSelectionCursorProvider_0(function(v56)
            return v54:renderWithProviders(v55, v56);
        end);
    end);
end;
v18.didMount = function(v57)
    v57.tryFocusTextBox();
end;
return v4.connect(function(v58)
    return {
        assetType = v58.promptRequest.promptInfo.assetType
    };
end)(v18);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_ExperienceAuthService_0 = game:GetService("ExperienceAuthService");
local l_Players_0 = game:GetService("Players");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_RunService_0 = game:GetService("RunService");
local v8 = require(l_CorePackages_0.Roact);
local v9 = require(l_CorePackages_0.RoactRodux);
local v10 = require(l_CorePackages_0.Packages.t);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v12 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local v13 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v13.Style.withStyle;
local l_FullPageModal_0 = v13.App.Dialog.Modal.FullPageModal;
local l_Overlay_0 = v13.App.Dialog.Overlay;
local l_ButtonType_0 = v13.App.Button.Enum.ButtonType;
local l_GamepadUtils_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Utils.GamepadUtils;
local v19 = require(l_RobloxGui_0.Modules.Common.httpRequest)(l_HttpRbxApiService_0);
local l_GetGameNameAndDescription_0 = require(l_CorePackages_0.Workspace.Packages.GameDetailRodux).GetGameNameAndDescription;
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_Parent_0 = script.Parent;
local v23 = require(l_Parent_0.Common.NameTextBox);
local v24 = require(script.Parent.Parent.Actions.CloseOpenPrompt);
local l_ItemInfoList_0 = require(l_CorePackages_0.Workspace.Packages.ItemDetails).ItemInfoList;
local v26 = require(script.Parent.LeaveCreationAlert);
local v27 = require(script.Parent.Parent.Constants);
local v28 = require(l_Parent_0.Common.PreviewViewport);
local v29 = require(l_Parent_0.ValidationErrorModal);
local v30 = v8.PureComponent:extend("BasePublishPrompt");
local v31 = UDim.new(1.5, 0);
v30.validateProps = v10.strictInterface({
    screenSize = v10.Vector2,
    nameLabel = v10.string,
    defaultName = v10.string,
    promptBody = v10.any,
    typeData = v10.string,
    titleText = v10.string,
    showingPreviewView = v10.boolean,
    closePreviewView = v10.callback,
    asset = v10.union(v10.instanceOf("Model"), v10.instanceIsA("AnimationClip")),
    onNameUpdated = v10.callback,
    canSubmit = v10.callback,
    onSubmit = v10.callback,
    enableInputDelayed = v10.optional(v10.boolean),
    isDelayedInput = v10.optional(v10.boolean),
    delayInputSeconds = v10.optional(v10.number),
    guid = v10.any,
    scopes = v10.any,
    errorMessage = v10.optional(v10.string),
    closePrompt = v10.callback
});
v30.init = function(v32)
    v32.isMounted = false;
    v32.swipeScrollingFrameRef = v8.createRef();
    v32.inputState = nil;
    v32.inputObject = nil;
    v32.connection = nil;
    v32.storeInput = function(_, v34, v35)
        v32.inputState = v34;
        v32.inputObject = v35;
        return Enum.ContextActionResult.Sink;
    end;
    v32:setState({
        showUnsavedDataWarning = false
    });
    v32.closePrompt = function()
        v32.props.closePrompt();
    end;
    v32.showUnsavedDataWarning = function()
        v32:setState({
            showUnsavedDataWarning = true
        });
    end;
    v32.cancelClosePrompt = function()
        v32:setState({
            showUnsavedDataWarning = false
        });
    end;
    v32.denyAndClose = function()
        l_ExperienceAuthService_0:ScopeCheckUIComplete(v32.props.guid, v32.props.scopes, Enum.ScopeCheckResult.ConsentDenied, {});
        v32.closePrompt();
    end;
    v32.confirmAndUpload = function()
        if v32.props.canSubmit() then
            v32.props.onSubmit();
            v32.closePrompt();
        end;
    end;
end;
v30.setUpGamepad = function(v36)
    if l_UserInputService_0.GamepadEnabled then
        l_ContextActionService_0:UnbindCoreAction("ScrollPrompt");
        l_ContextActionService_0:BindCoreAction("ScrollPrompt", v36.storeInput, false, Enum.KeyCode.Thumbstick2);
        v36.connection = l_RunService_0.RenderStepped:Connect(function(v37)
            if not (not (v36.inputState == Enum.UserInputState.Change) or not v36.inputObject) then
                local l_Position_0 = v36.inputObject.Position;
                local l_current_0 = v36.swipeScrollingFrameRef.current;
                local v40 = l_current_0.CanvasPosition.Y + (v37 * -l_GamepadUtils_0.normalizeStickByDeadzone(l_Position_0).Y) * 1000;
                if v40 <= l_current_0.AbsoluteSize.Y * v31.Scale + v31.Offset then
                    l_current_0.CanvasPosition = Vector2.new(0, v40);
                end;
            end;
        end);
        l_ContextActionService_0:UnbindCoreAction("ClosePrompt");
        l_ContextActionService_0:BindCoreAction("ClosePrompt", v36.storeInput, false, Enum.KeyCode.ButtonB);
    end;
end;
v30.cleanupGamepad = function(v41)
    l_ContextActionService_0:UnbindCoreAction("ClosePrompt");
    l_ContextActionService_0:UnbindCoreAction("ScrollPrompt");
    if v41.connection then
        v41.connection:Disconnect();
    end;
end;
v30.didMount = function(v42)
    v42.isMounted = true;
    v42:setUpGamepad();
    l_GetGameNameAndDescription_0(v19, game.GameId):andThen(function(v43)
        if not (not v42.isMounted or not v43.Name) then
            v42:setState({
                gameName = v43.Name
            });
        end;
    end);
end;
v30.renderMiddle = function(v44, v45)
    return l_withStyle_0(function(v46)
        local l_Font_0 = v46.Font;
        local v48 = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize;
        local l_Theme_0 = v46.Theme;
        assert(l_LocalPlayer_0, "Assert LocalPlayer not nil to silence type checker");
        local l_Name_0 = l_LocalPlayer_0.Name;
        local l_gameName_0 = v44.state.gameName;
        local l_typeData_0 = v44.props.typeData;
        return v8.createFragment({
            ScrollingFrame = v8.createElement("ScrollingFrame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, -50),
                CanvasSize = UDim2.new(1, 0, 0, 0),
                ScrollBarThickness = 0,
                ScrollingDirection = Enum.ScrollingDirection.Y,
                AutomaticCanvasSize = Enum.AutomaticSize.Y,
                Selectable = false,
                [v8.Ref] = v44.swipeScrollingFrameRef
            }, {
                layout = v8.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Vertical
                }),
                padding = v8.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v27.PromptSidePadding),
                    PaddingRight = UDim.new(0, v27.PromptSidePadding)
                }),
                NameLabel = v8.createElement("TextLabel", {
                    Size = UDim2.new(1, 0, 0, 39),
                    Font = l_Font_0.Body.Font,
                    Text = v44.props.nameLabel,
                    TextSize = v48,
                    TextColor3 = l_Theme_0.TextDefault.Color,
                    BackgroundTransparency = 1,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    LayoutOrder = 1
                }, {
                    Padding = v8.createElement("UIPadding", {
                        PaddingTop = UDim.new(0, 24)
                    })
                }),
                NameInput = v8.createElement(v23, {
                    Size = UDim2.new(1, 0, 0, 30),
                    onNameUpdated = v44.props.onNameUpdated,
                    defaultName = v44.props.defaultName,
                    LayoutOrder = 2
                }),
                PromptBody = v8.createElement("Frame", {
                    Size = UDim2.fromScale(1, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    LayoutOrder = 3
                }, v44.props.promptBody),
                PromptRows = v8.createElement(l_ItemInfoList_0, {
                    rowData = {
                        {
                            infoName = v45.creator,
                            infoData = l_Name_0,
                            hasVerifiedBadge = l_LocalPlayer_0.HasVerifiedBadge,
                            isLoading = l_Name_0 == nil,
                            Selectable = false
                        },
                        {
                            infoName = v45.madeIn,
                            infoData = l_gameName_0,
                            isLoading = l_gameName_0 == nil,
                            Selectable = false
                        },
                        {
                            infoName = v45.type,
                            infoData = l_typeData_0,
                            isLoading = l_typeData_0 == nil,
                            Selectable = false
                        }
                    },
                    LayoutOrder = 4
                })
            }),
            BottomGradient = v8.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 5),
                AnchorPoint = Vector2.new(0, 1),
                Position = UDim2.new(0, 0, 1, -50),
                BackgroundColor3 = Color3.fromRGB(255, 255, 255),
                BackgroundTransparency = 0,
                BorderSizePixel = 0,
                ZIndex = 2
            }, {
                gradient = v8.createElement("UIGradient", {
                    Rotation = 270,
                    Color = ColorSequence.new({
                        ColorSequenceKeypoint.new(0, l_Theme_0.BackgroundUIDefault.Color),
                        ColorSequenceKeypoint.new(1, l_Theme_0.BackgroundUIDefault.Color)
                    }),
                    Transparency = NumberSequence.new({
                        NumberSequenceKeypoint.new(0, l_Theme_0.BackgroundUIDefault.Transparency),
                        NumberSequenceKeypoint.new(0.5, l_Theme_0.BackgroundUIDefault.Transparency),
                        NumberSequenceKeypoint.new(1, 1)
                    })
                })
            }),
            DisclaimerContainer = v8.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, 50),
                Position = UDim2.new(0, 0, 1, -50)
            }, {
                padding = v8.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v27.PromptSidePadding),
                    PaddingRight = UDim.new(0, v27.PromptSidePadding)
                }),
                Disclaimer = v8.createElement("TextLabel", {
                    Size = UDim2.fromScale(1, 1),
                    Text = v45.disclaimer,
                    Font = l_Font_0.Body.Font,
                    TextSize = v48,
                    TextColor3 = l_Theme_0.TextEmphasis.Color,
                    BackgroundTransparency = 1,
                    TextWrapped = true
                })
            })
        });
    end);
end;
v30.renderAlertLocalized = function(v53, v54)
    return l_withStyle_0(function(v55)
        local l_Theme_1 = v55.Theme;
        return v8.createFragment({
            Overlay = v8.createElement(l_Overlay_0, {
                showGradient = false,
                ZIndex = -1
            }),
            PublishPrompt = v8.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1),
                Visible = not v53.state.showUnsavedDataWarning and not v53.props.showingPreviewView
            }, {
                FullPageModal = v8.createElement(l_FullPageModal_0, {
                    title = v53.props.titleText,
                    onCloseClicked = v53.showUnsavedDataWarning,
                    distanceFromTop = 37,
                    marginSize = 0,
                    screenSize = v53.props.screenSize,
                    buttonStackProps = {
                        buttons = {
                            {
                                buttonType = l_ButtonType_0.PrimarySystem,
                                props = {
                                    isDisabled = not v53.props.canSubmit(),
                                    isDelayedInput = v53.props.isDelayedInput,
                                    enableInputDelayed = v53.props.enableInputDelayed,
                                    delayInputSeconds = v53.props.delayInputSeconds,
                                    onActivated = v53.confirmAndUpload,
                                    text = v54.submit
                                }
                            }
                        },
                        disableRoactGamepadButtonSelection = true
                    }
                }, {
                    middleContent = v53:renderMiddle(v54)
                })
            }),
            LeaveCreationAlert = if not v53.state.showUnsavedDataWarning then nil else v8.createElement(v26, {
                screenSize = v53.props.screenSize,
                closePrompt = v53.denyAndClose,
                cancelClosePrompt = v53.cancelClosePrompt
            }),
            ValidationErrorAlert = if not v53.props.errorMessage then nil else v8.createElement(v29, {
                screenSize = v53.props.screenSize,
                closePrompt = v53.closePrompt
            }),
            PreviewFrame = not not v53.props.showingPreviewView and v8.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundColor3 = l_Theme_1.BackgroundUIDefault.Color,
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                BackgroundTransparency = l_Theme_1.BackgroundUIDefault.Transparency
            }, {
                PreviewViewport = v8.createElement(v28, {
                    asset = v53.props.asset,
                    closePreviewView = v53.props.closePreviewView
                })
            }) or nil
        });
    end);
end;
local function v57()
    return {
        submit = v12:FormatByKey("CoreScripts.PublishAssetPrompt.Submit"),
        creator = v12:FormatByKey("Feature.Catalog.Label.Filter.Creator"),
        type = v12:FormatByKey("Feature.Catalog.Label.CategoryType"),
        madeIn = v12:FormatByKey("Feature.Catalog.Label.Attribution"),
        disclaimer = v12:FormatByKey("CoreScripts.PublishCommon.Disclaimer")
    };
end;
v30.render = function(v58)
    return v58:renderAlertLocalized((v57()));
end;
v30.willUnmount = function(v59)
    v59:cleanupGamepad();
    v59.isMounted = false;
end;
return v9.connect(function(v60)
    return {
        guid = v60.promptRequest.promptInfo.guid,
        scopes = v60.promptRequest.promptInfo.scopes,
        errorMessage = v60.promptRequest.promptInfo.errorMessage
    };
end, function(v61)
    return {
        closePrompt = function()
            return v61(v24());
        end
    };
end)(v30);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_UserInputService_0 = game:GetService("UserInputService");
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.t);
local function _(v6)
    local v7 = v6.UserInputType == Enum.UserInputType.Touch;
    local v8 = v6.UserInputType == Enum.UserInputType.MouseButton1;
    local v9 = v6.UserInputType == Enum.UserInputType.MouseButton2;
    return v7, v8 or v9, v8, v9;
end;
local v11 = v4.PureComponent:extend("InteractionFrame");
v11.defaultProps = {
    Visible = true
};
v11.validateProps = v5.interface({
    panByPixels = v5.callback,
    rotateByPixels = v5.callback,
    setAngularVelocityByPixels = v5.callback,
    zoomToPoint = v5.callback,
    doubleTap = v5.optional(v5.callback),
    Size = v5.optional(v5.UDim2),
    Position = v5.optional(v5.UDim2),
    Visible = v5.optional(v5.boolean),
    ZIndex = v5.optional(v5.number)
});
v11.disconnectEvents = function(v12)
    v12.inputChangedConnection:Disconnect();
    v12.inputEndedConnection:Disconnect();
    v12.renderSteppedConnection:Disconnect();
    v12.inputChangedConnection = nil;
    v12.inputEndedConnection = nil;
    v12.renderSteppedConnection = nil;
end;
v11.getActiveInput = function(v13, v14)
    local v15 = v14.UserInputType == Enum.UserInputType.Touch;
    local v16 = v14.UserInputType == Enum.UserInputType.MouseButton1 or v14.UserInputType == Enum.UserInputType.MouseButton2;
    local l_v15_0 = v15;
    local v18 = v14.UserInputType == Enum.UserInputType.MouseMovement or v16;
    if v18 or l_v15_0 then
        local v19 = nil;
        if not v18 then
            if l_v15_0 then
                v19 = v13.activeTouchInputs[v14];
            end;
            return v19;
        else
            return v13.activeMouseInput;
        end;
    else
        return ;
    end;
end;
v11.removeActivePointerInput = function(v20, v21, v22)
    if not v22 then
        v20.activeTouchInputs[v21] = nil;
        v20.numActiveTouchInputs = v20.numActiveTouchInputs - 1;
    elseif l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) or l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
        return ;
    else
        v20.activeMouseInput = nil;
    end;
    v20.numActiveInputs = v20.numActiveInputs - 1;
    if v20.numActiveInputs == 0 then
        v20:disconnectEvents();
    end;
end;
v11.handleDoubleTap = function(v23, v24, v25)
    if v23.lastPrimaryPointerInputBeganPosition then
        local v26 = v23.lastPrimaryPointerInputBeganPosition - v24.Position;
        local v27 = v25 - v23.lastPrimaryPointerInputBeganTime;
        if (v23.props.doubleTap and v26.Magnitude < 30) and v27 < 0.25 then
            v23.props.doubleTap();
        end;
    end;
    v23.lastPrimaryPointerInputBeganPosition = v24.Position;
    v23.lastPrimaryPointerInputBeganTime = v25;
end;
v11.addActivePointerInput = function(v28, v29, v30, v31)
    if not v28:getActiveInput(v29) then
        local v32 = {
            lastPosition = v29.Position,
            lastTime = v31
        };
        if not v30 then
            v28.activeTouchInputs[v29] = v3.Dictionary.join(v32, {
                lastDeltaTime = 0,
                lastDeltaPosition = Vector3.new(0, 0, 0)
            });
            v28.numActiveTouchInputs = v28.numActiveTouchInputs + 1;
        else
            v28.activeMouseInput = v32;
        end;
        v28.numActiveInputs = v28.numActiveInputs + 1;
        if v28.numActiveInputs == 1 then
            v28.props.setAngularVelocityByPixels(0);
            v28.inputChangedConnection = l_UserInputService_0.InputChanged:Connect(v28.onInputChanged);
            v28.inputEndedConnection = l_UserInputService_0.InputEnded:Connect(v28.onInputEnded);
            v28.renderSteppedConnection = l_RunService_0.RenderStepped:Connect(v28.setInputNotChanged);
        end;
        return ;
    else
        return ;
    end;
end;
v11.init = function(v33)
    v33.inputChangedConnection = nil;
    v33.inputEndedConnection = nil;
    v33.lastPinchDistance = 1;
    v33.lastPanTime = 0;
    v33.lastPrimaryPointerInputBeganTime = 0;
    v33.lastPrimaryPointerInputBeganPosition = nil;
    v33.activeTouchInputs = {};
    v33.numActiveTouchInputs = 0;
    v33.activeMouseInput = nil;
    v33.numActiveInputs = 0;
    v33.handleScroll = function(_, v35)
        if v35.UserInputType == Enum.UserInputType.MouseWheel then
            v33.props.zoomToPoint(-v35.Position.Z, l_UserInputService_0:GetMouseLocation());
        end;
    end;
    v33.setInputNotChanged = function(_)
        for _, v38 in v33.activeTouchInputs, nil, nil do
            v38.changedThisFrame = false;
        end;
    end;
    v33.onInputChanged = function(v39, _)
        local v41 = v39.UserInputType == Enum.UserInputType.MouseMovement;
        local v42 = v39.UserInputType == Enum.UserInputType.Touch;
        if v41 or v42 then
            local v43 = v33:getActiveInput(v39);
            if v43 then
                local v44 = tick();
                local v45 = v44 - v43.lastTime;
                local v46 = v39.Position - v43.lastPosition;
                local v47 = Vector2.new(v46.X, v46.Y) * Vector2.new(-1, 1);
                local v48 = l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton1);
                local v49 = l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton2);
                local v50 = v44 - v33.lastPanTime > 0.1;
                if not (not (v41 and v48 or v42 and v33.numActiveTouchInputs == 1) or not v50) then
                    v33.props.rotateByPixels(-v47);
                end;
                if v41 and v49 or v42 and v33.numActiveTouchInputs == 2 then
                    v33.props.panByPixels(v47 / v33.numActiveInputs);
                    v33.lastPanTime = v44;
                end;
                v43.lastPosition = v39.Position;
                v43.lastTime = v44;
                if v42 then
                    if not v43.changedThisFrame then
                        v43.lastDeltaPosition = v46;
                        v43.lastDeltaTime = v45;
                        v43.changedThisFrame = true;
                    else
                        v43.lastDeltaPosition = v46 + v43.lastDeltaPosition;
                        v43.lastDeltaTime = v45 + v43.lastDeltaTime;
                        return ;
                    end;
                end;
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v33.onInputEnded = function(v51, _)
        local v53 = v51.UserInputType == Enum.UserInputType.Touch;
        local v54 = v51.UserInputType == Enum.UserInputType.MouseButton1;
        local v55 = v54 or v51.UserInputType == Enum.UserInputType.MouseButton2;
        local l_v53_0 = v53;
        local l_v55_0 = v55;
        local l_v54_0 = v54;
        if l_v53_0 or l_v55_0 then
            v54 = v33:getActiveInput(v51);
            if v54 then
                local v59 = tick();
                v55 = v59 - v33.lastPanTime;
                local v60 = l_v53_0 and v54.changedThisFrame;
                local v61 = false;
                if v33.numActiveInputs == 1 then
                    v61 = v55 > 0.1;
                end;
                if not (not v60 and not l_v54_0 or not v61) then
                    local v62 = nil;
                    local v63 = nil;
                    if not l_v54_0 then
                        v62 = v54.lastDeltaPosition;
                        v63 = v54.lastDeltaTime;
                    else
                        v62 = v51.Position - v54.lastPosition;
                        v63 = v59 - v54.lastTime;
                    end;
                    v33.props.setAngularVelocityByPixels(v62.X / v63);
                end;
                v33:removeActivePointerInput(v51, l_v55_0);
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v33.onInputBegan = function(v64, v65)
        v33.handleScroll(v64, v65);
        local v66 = v65.UserInputType == Enum.UserInputType.Touch;
        local v67 = v65.UserInputType == Enum.UserInputType.MouseButton1;
        local v68 = v67 or v65.UserInputType == Enum.UserInputType.MouseButton2;
        local l_v66_0 = v66;
        local l_v68_0 = v68;
        local l_v67_0 = v67;
        if l_v66_0 or l_v68_0 then
            v67 = l_v66_0 or l_v67_0;
            local v72 = tick();
            if v67 then
                v33:handleDoubleTap(v65, v72);
            end;
            v33:addActivePointerInput(v65, l_v68_0, v72);
            return ;
        else
            return ;
        end;
    end;
    v33.onTouchPinch = function(_, v74, _, _, v77)
        if v74[2] == nil then
            return ;
        elseif v77 == Enum.UserInputState.Begin then
            v33.lastPinchDistance = (v74[1] - v74[2]).Magnitude;
            return ;
        else
            local l_Magnitude_0 = (v74[1] - v74[2]).Magnitude;
            local v79 = l_Magnitude_0 - v33.lastPinchDistance;
            v33.lastPinchDistance = l_Magnitude_0;
            v33.props.zoomToPoint(v79 * -0.05, (v74[1] + v74[2]) / 2);
            return ;
        end;
    end;
end;
v11.willUnmount = function(v80)
    if v80.inputChangedConnection then
        v80:disconnectEvents();
    end;
end;
v11.render = function(v81)
    return v4.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = v81.props.Size or UDim2.new(1, 0, 1, 0),
        Position = v81.props.Position,
        ZIndex = v81.props.ZIndex,
        Visible = v81.props.Visible,
        Active = true,
        [v4.Event.InputBegan] = v81.onInputBegan,
        [v4.Event.InputChanged] = v81.handleScroll,
        [v4.Event.TouchPinch] = v81.onTouchPinch
    }, v81.props[v4.Children]);
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local v5 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local l_Focusable_0 = v4.Focusable;
local v7 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v7.Style.withStyle;
local l_withSelectionCursorProvider_0 = v7.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v7.App.SelectionImage.CursorKind;
local l_Images_0 = v7.App.ImageSet.Images;
local l_ImageSetLabel_0 = v7.Core.ImageSet.ImageSetLabel;
local v13 = l_Images_0["component_assets/circle_17_stroke_1"];
local v14 = Rect.new(8, 8, 8, 8);
local v15 = v2.PureComponent:extend("NameTextBox");
local v16 = game:DefineFastFlag("RemoveNameRegex", false);
local v17 = require(script.Parent.Parent.Parent.FFlagPublishAvatarPromptEnabled);
v15.validateProps = v3.strictInterface({
    Size = v3.optional(v3.UDim2),
    Position = v3.optional(v3.UDim2),
    onNameUpdated = v3.callback,
    LayoutOrder = v3.optional(v3.number),
    nameTextBoxRef = v3.optional(v3.table),
    NextSelectionDown = v3.optional(v3.table),
    defaultName = v3.optional(v3.string)
});
local function _(v18, v19)
    local v20 = utf8.len(utf8.nfcnormalize(v18));
    if v20 == nil then
        return true;
    else
        return v19 < v20;
    end;
end;
v15.init = function(v22)
    v22:setState({
        name = v22.props.defaultName or "",
        lastValidName = "",
        isNameValid = true
    });
    v22.wasInitiallyFocused = false;
    v22.tryFocusTextBox = function()
        if not v22.wasInitiallyFocused then
            local v23 = if not v17 then v22.props.nameTextBoxRef:getValue() else v22.props.nameTextBoxRef and v22.props.nameTextBoxRef:getValue();
            if not (not v23 or not v23:IsDescendantOf(game)) then
                v23:CaptureFocus();
                v22.wasInitiallyFocused = true;
            end;
            return ;
        else
            return ;
        end;
    end;
    v22.onTextChanged = function(v24)
        local l_Text_0 = v24.Text;
        local v26 = utf8.len(utf8.nfcnormalize(l_Text_0));
        if v26 == nil or v26 > 50 then
            l_Text_0 = string.sub(l_Text_0, 1, utf8.offset(l_Text_0, 51) - 1);
            v24.Text = l_Text_0;
        end;
        local v27 = v22:checkIsNameValid(l_Text_0);
        local l_lastValidName_0 = v22.state.lastValidName;
        if v27 then
            l_lastValidName_0 = v24.Text;
        end;
        v22:setState({
            lastValidName = l_lastValidName_0,
            isNameValid = v27,
            name = l_Text_0
        });
        v22.props.onNameUpdated(l_Text_0, v27);
    end;
end;
v15.checkIsNameValid = function(_, v30)
    if not v16 then
        if string.match(v30, "[0-9a-zA-Z_'%s]+$") then
            if string.sub(v30, 1, 1) == " " then
                return false;
            end;
        else
            return false;
        end;
    end;
    if not string.match(v30, "^%s*$") then
        return true;
    else
        return false;
    end;
end;
v15.renderWithProviders = function(v31, v32, v33)
    local l_Font_0 = v32.Font;
    local l_Theme_0 = v32.Theme;
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = v31.props.Size,
        Position = v31.props.Position,
        LayoutOrder = if not v17 then nil else v31.props.LayoutOrder
    }, {
        TextBoxContainer = if not v17 then v2.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v13,
            ImageColor3 = l_Theme_0.UIDefault.Color,
            ImageTransparency = l_Theme_0.UIDefault.Transparency,
            LayoutOrder = 1,
            ScaleType = Enum.ScaleType.Slice,
            Size = UDim2.new(1, 0, 0, 30),
            SliceCenter = v14
        }, {
            Textbox = v2.createElement(l_Focusable_0.TextBox, {
                Text = v31.state.name,
                BackgroundTransparency = 1,
                ClearTextOnFocus = false,
                Font = l_Font_0.CaptionBody.Font,
                TextSize = l_Font_0.BaseSize * l_Font_0.CaptionBody.RelativeSize,
                PlaceholderColor3 = l_Theme_0.PlaceHolder.Color,
                PlaceholderText = v5:FormatByKey("CoreScripts.PublishAssetPrompt.AssetNamePlaceholder"),
                Position = UDim2.fromOffset(6, 0),
                Size = UDim2.new(1, -12, 1, 0),
                TextColor3 = l_Theme_0.TextDefault.Color,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                OverlayNativeInput = true,
                [v2.Change.Text] = v31.onTextChanged,
                SelectionImageObject = v33(l_CursorKind_0.InputFields),
                NextSelectionDown = v31.props.NextSelectionDown,
                [v2.Ref] = v31.props.nameTextBoxRef,
                [v2.Event.AncestryChanged] = v31.tryFocusTextBox
            })
        }) else v2.createElement("Frame", {
            BackgroundColor3 = l_Theme_0.BackgroundContrast.Color,
            BackgroundTransparency = 0.5,
            LayoutOrder = 1,
            Size = UDim2.new(1, 0, 0, 30)
        }, {
            TextboxBorder = v2.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = v13,
                ImageColor3 = l_Theme_0.UIDefault.Color,
                ImageTransparency = l_Theme_0.UIDefault.Transparency,
                ScaleType = Enum.ScaleType.Slice,
                Size = UDim2.new(1, 0, 1, 0),
                SliceCenter = v14
            }, {
                Textbox = v2.createElement(l_Focusable_0.TextBox, {
                    Text = v31.state.name,
                    BackgroundTransparency = 1,
                    ClearTextOnFocus = false,
                    Font = l_Font_0.CaptionBody.Font,
                    TextSize = l_Font_0.BaseSize * l_Font_0.CaptionBody.RelativeSize,
                    PlaceholderColor3 = l_Theme_0.PlaceHolder.Color,
                    PlaceholderText = v31.props.defaultName,
                    Position = UDim2.fromOffset(6, 0),
                    Size = UDim2.new(1, -12, 1, 0),
                    TextColor3 = l_Theme_0.TextDefault.Color,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    TextWrapped = true,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    OverlayNativeInput = true,
                    [v2.Change.Text] = v31.onTextChanged,
                    SelectionImageObject = v33(l_CursorKind_0.InputFields),
                    NextSelectionDown = v31.props.NextSelectionDown,
                    [v2.Ref] = v31.props.nameTextBoxRef,
                    [v2.Event.AncestryChanged] = v31.tryFocusTextBox
                })
            }),
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 8)
            })
        }),
        WarningText = not v31.state.isNameValid and v2.createElement("TextLabel", {
            Position = UDim2.new(0, 0, 1, 0),
            BackgroundTransparency = 1,
            Text = v5:FormatByKey("CoreScripts.PublishAssetPrompt.InvalidName"),
            LayoutOrder = 2,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            Size = UDim2.new(1, 0, 0, 20),
            TextColor3 = l_Theme_0.Alert.Color,
            TextWrapped = true,
            Font = l_Font_0.Body.Font,
            TextSize = 12
        })
    });
end;
v15.render = function(v36)
    return l_withStyle_0(function(v37)
        return l_withSelectionCursorProvider_0(function(v38)
            return v36:renderWithProviders(v37, v38);
        end);
    end);
end;
v15.didMount = function(v39)
    v39.tryFocusTextBox();
end;
return v15;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v3.Style.withStyle;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local v6 = require(l_CorePackages_0.Packages.t);
local l_Images_0 = v3.App.ImageSet.Images;
local l_ShimmerPanel_0 = v3.App.Loading.ShimmerPanel;
local v9 = require(script.Parent.Parent.Parent.Constants);
local l_CharacterUtility_0 = require(l_CorePackages_0.Thumbnailing).CharacterUtility;
local l_CameraUtility_0 = require(l_CorePackages_0.Thumbnailing).CameraUtility;
local l_CFrameUtility_0 = require(l_CorePackages_0.Thumbnailing).CFrameUtility;
local l_EmoteUtility_0 = require(l_CorePackages_0.Thumbnailing).EmoteUtility;
local l_IconButton_0 = v3.App.Button.IconButton;
local l_IconSize_0 = v3.App.ImageSet.Enum.IconSize;
local v16 = l_Images_0["icons/actions/previewExpand"];
local v17 = l_Images_0["component_assets/dropshadow_25"];
local v18 = UDim2.new(0.4, 50, 0.15, 10);
local v19 = UDim2.new(0.5, 0, 1, 0);
local v20 = v2.PureComponent:extend("ObjectViewport");
v20.validateProps = v6.strictInterface({
    model = v6.optional(v6.instanceOf("Model")),
    fieldOfView = v6.optional(v6.number),
    isLoading = v6.optional(v6.boolean),
    useFullBodyCameraSettings = v6.optional(v6.boolean),
    openPreviewView = v6.optional(v6.callback),
    LayoutOrder = v6.optional(v6.number)
});
v20.createCamera = function(v21)
    local l_Camera_0 = Instance.new("Camera");
    l_Camera_0.CameraType = Enum.CameraType.Scriptable;
    l_Camera_0.Parent = v21.worldModelRef:getValue();
    return l_Camera_0;
end;
v20.init = function(v23)
    v23.worldModelRef = v2.createRef();
    local v24, v25 = v2.createBinding(nil);
    v23.camera = v24;
    v23.updateCamera = v25;
    v23.isMounted = false;
end;
v20.setupViewport = function(v26)
    local v27 = v26.props.model:Clone();
    assert(v27.PrimaryPart, "The Model should have a PrimaryPart for setting up Camera");
    v27.Parent = v26.worldModelRef:getValue();
    v27:MoveTo((Vector3.new(0, 0, 0)));
    local l_useFullBodyCameraSettings_0 = v26.props.useFullBodyCameraSettings;
    if l_useFullBodyCameraSettings_0 then
        l_EmoteUtility_0.SetPlayerCharacterPoseWithMoodFallback(v27);
        l_RunService_0.PostSimulation:Wait();
        if not v26.isMounted then
            return ;
        end;
    end;
    local v29 = v26:createCamera();
    local v30 = nil;
    if not l_useFullBodyCameraSettings_0 then
        v30 = v27.PrimaryPart.CFrame;
    else
        local v31 = l_CFrameUtility_0.CalculateTargetCFrame(v27.Head.CFrame);
        v30 = (v31 - v31.Position) + v27.PrimaryPart.CFrame.Position;
    end;
    local v32, v33 = l_CharacterUtility_0.CalculateModelExtents(v27, v30);
    local v34 = {
        optFieldOfView = not v26.props.fieldOfView and 30 or v26.props.fieldOfView,
        targetCFrame = v30,
        minExtent = v32,
        maxExtent = v33,
        extentScale = 1
    };
    if not l_useFullBodyCameraSettings_0 then
        v34.optCameraYRot = 25;
    else
        v34.optCameraXRot = l_CameraUtility_0.XRotForFullBody;
        v34.optCameraDistanceScale = l_CameraUtility_0.DistanceScaleForFullBody;
        v34.extentScale = l_CameraUtility_0.DefaultBodyMarginScale;
    end;
    l_CameraUtility_0.SetupCamera(v29, v34);
    v26.updateCamera(v29);
end;
v20.didMount = function(v35)
    v35.isMounted = true;
    task.spawn(function()
        if not v35.props.isLoading then
            v35:setupViewport();
        end;
    end);
end;
v20.didUpdate = function(v36, v37)
    if v37.isLoading and not v36.props.isLoading then
        task.spawn(function()
            v36:setupViewport();
        end);
    end;
end;
v20.render = function(v38)
    return l_withStyle_0(function(v39)
        local l_Theme_0 = v39.Theme;
        if v38.props.isLoading then
            return v2.createElement(l_ShimmerPanel_0, {
                Size = UDim2.new(1, v9.PromptSidePadding * 2, 0, 240),
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                LayoutOrder = v38.props.LayoutOrder
            });
        else
            return v2.createElement("Frame", {
                BackgroundColor3 = Color3.fromRGB(0, 0, 0),
                BackgroundTransparency = 0,
                Size = UDim2.new(1, v9.PromptSidePadding * 2, 0, 240),
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                LayoutOrder = v38.props.LayoutOrder
            }, {
                ViewportFrame = v2.createElement("ViewportFrame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.fromScale(1, 1),
                    Position = UDim2.fromScale(0.5, 0.5),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    LightColor = v9.ViewportLightColor,
                    Ambient = v9.ViewportLightAmbient,
                    LightDirection = v9.ViewportLightDirection,
                    CurrentCamera = v38.camera
                }, {
                    WorldModel = v2.createElement("WorldModel", {
                        [v2.Ref] = v38.worldModelRef
                    })
                }),
                ExpandPreviewButton = v38.props.openPreviewView and v2.createElement(l_IconButton_0, {
                    position = UDim2.new(1, -v9.PromptSidePadding, 1, 0),
                    anchorPoint = Vector2.new(1, 1),
                    icon = v16,
                    iconSize = l_IconSize_0.Medium,
                    onActivated = v38.props.openPreviewView
                }),
                Gradient = v2.createElement("UIGradient", {
                    Rotation = 90,
                    Color = ColorSequence.new({
                        ColorSequenceKeypoint.new(0, l_Theme_0.BackgroundMuted.Color),
                        ColorSequenceKeypoint.new(1, l_Theme_0.BackgroundMuted.Color)
                    }),
                    Transparency = NumberSequence.new({
                        NumberSequenceKeypoint.new(0, 1),
                        NumberSequenceKeypoint.new(0.7, 0.75),
                        NumberSequenceKeypoint.new(1, 1)
                    })
                }),
                DropShadow = v2.createElement(l_ImageSetLabel_0, {
                    Position = v19,
                    AnchorPoint = Vector2.new(0.5, 1),
                    Image = v17,
                    BackgroundTransparency = 1,
                    ImageTransparency = 0.5,
                    Size = v18,
                    ZIndex = 0
                })
            });
        end;
    end);
end;
v20.willUnmount = function(v41)
    v41.isMounted = false;
end;
return v20;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.RoactGamepad);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.RobloxTranslator);
local l_EmoteUtility_0 = require(l_CorePackages_0.Thumbnailing).EmoteUtility;
local v6 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v6.Style.withStyle;
local l_InteractiveAlert_0 = v6.App.Dialog.Alert.InteractiveAlert;
local l_ButtonType_0 = v6.App.Button.Enum.ButtonType;
local l_SystemSlider_0 = v6.App.Slider.SystemSlider;
local v11 = require(script.Parent.EmoteThumbnailParameters);
local v12 = require(script.Parent.EmoteThumbnailView);
local v13 = {
    CurveAnimationTimeIncrements = 0.01
};
local v14 = {
    Rotation = {
        Precision = 0,
        Range = NumberRange.new(0, 360),
        Default = 0,
        Increments = 361
    }
};
local v15 = v1.PureComponent:extend("EmoteThumbnailEditor");
v15.validateProps = v3.strictInterface({
    screenSize = v3.Vector2,
    animationClip = v3.instanceIsA("AnimationClip"),
    initialThumbnailParameters = v3.optional(v11.validate),
    closePromptCallback = v3.callback,
    updateThumbnailCallback = v3.callback
});
v15.init = function(v16)
    v16:setState({
        thumbnailParameters = v16.props.initialThumbnailParameters or v11.defaultParameters
    });
    v16.onCancelPressed = function()
        v16.props.closePromptCallback();
    end;
    v16.onUpdatePressed = function()
        v16.props.updateThumbnailCallback(v16.state.thumbnailParameters);
        v16.props.closePromptCallback();
    end;
    v16.onRotateChanged = function(v17)
        local v18 = table.clone(v16.state.thumbnailParameters);
        v18.thumbnailCharacterRotation = v17;
        v16:updateThumbnailParameters(v18);
    end;
    v16.onKeyframeOrTimeChanged = function(v19)
        local v20 = table.clone(v16.state.thumbnailParameters);
        v20.thumbnailTime = v19;
        v20.thumbnailKeyframe = v19;
        v16:updateThumbnailParameters(v20);
    end;
    v16.rotationSliderRef = v1.createRef();
    v16.timeSliderRef = v1.createRef();
    v16:updateSliderValuesForAnimationClip();
end;
v15.updateSliderValuesForAnimationClip = function(v21)
    local l_props_0 = v21.props;
    local v23 = nil;
    local v24 = nil;
    local v25 = nil;
    if not l_props_0.animationClip:IsA("KeyframeSequence") then
        if not l_props_0.animationClip:IsA("CurveAnimation") then
            error("Unsupported animation type:", l_props_0.animationClip.ClassName);
        else
            local v26 = math.floor(l_EmoteUtility_0.GetCurveAnimationTimeLength(l_props_0.animationClip) / v13.CurveAnimationTimeIncrements);
            v23 = 0;
            v24 = v26 * v13.CurveAnimationTimeIncrements;
            v25 = v13.CurveAnimationTimeIncrements;
        end;
    else
        local l_Keyframes_0 = l_props_0.animationClip:GetKeyframes();
        v23 = 1;
        v24 = #l_Keyframes_0;
        v25 = 1;
    end;
    v21:setState({
        timeSliderMin = v23,
        timeSliderMax = v24,
        timeSliderStepInterval = v25
    });
end;
v15.updateThumbnailParameters = function(v28, v29)
    v28:setState({
        thumbnailParameters = v29
    });
end;
v15.renderMiddle = function(v30, v31)
    return l_withStyle_0(function(v32)
        local l_Font_0 = v32.Font;
        local l_Theme_0 = v32.Theme;
        local v35 = v30.props.screenSize.Y > 481;
        local v36 = {};
        if not v35 then
            v36.contentSize = UDim2.new(1, 0, 0, 150);
            v36.thumbnailPosition = UDim2.new(0, 0, 0, 0);
            v36.thumbnailAnchorPoint = Vector2.new(0, 0);
            v36.leversPosition = UDim2.new(0, 160, 0, 0);
            v36.leversSize = UDim2.new(1, -160, 0, 102);
        else
            v36.contentSize = UDim2.new(1, 0, 0, 262);
            v36.thumbnailPosition = UDim2.new(0.5, 0, 0, 0);
            v36.thumbnailAnchorPoint = Vector2.new(0.5, 0);
            v36.leversPosition = UDim2.new(0, 0, 0, 160);
            v36.leversSize = UDim2.new(1, 0, 0, 102);
        end;
        local l_thumbnailParameters_0 = v30.state.thumbnailParameters;
        local l_thumbnailKeyframe_0 = l_thumbnailParameters_0.thumbnailKeyframe;
        local l_thumbnailCharacterRotation_0 = l_thumbnailParameters_0.thumbnailCharacterRotation;
        local function _(v40)
            return (v40.Range.Max - v40.Range.Min) / (v40.Increments - 1);
        end;
        local l_createElement_0 = v1.createElement;
        local l_Frame_0 = v2.Focusable.Frame;
        local v44 = {
            Size = v36.contentSize,
            BackgroundColor3 = Color3.new(1, 0, 1),
            BackgroundTransparency = 1,
            [v1.Ref] = v30.middleContentRef
        };
        local v45 = {};
        local l_createElement_1 = v1.createElement;
        local v47 = "Frame";
        local v48 = {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        };
        local v49 = {
            ThumbnailViewParent = v1.createElement("Frame", {
                LayoutOrder = 0,
                Position = v36.thumbnailPosition,
                AnchorPoint = v36.thumbnailAnchorPoint,
                Size = UDim2.new(0, 150, 0, 150),
                BackgroundColor3 = Color3.new(1, 1, 0),
                BackgroundTransparency = 1
            }, {
                EmoteThumbnailView = v1.createElement(v12, {
                    position = UDim2.new(0.5, 0, 0.5, 0),
                    anchorPoint = Vector2.new(0.5, 0.5),
                    animationClip = v30.props.animationClip,
                    thumbnailParameters = v30.state.thumbnailParameters
                })
            })
        };
        local l_createElement_2 = v1.createElement;
        local v51 = "Frame";
        local v52 = {
            LayoutOrder = 1,
            Size = v36.leversSize,
            AnchorPoint = Vector2.new(0, 0),
            Position = v36.leversPosition,
            BackgroundColor3 = Color3.new(1, 0, 0),
            BackgroundTransparency = 1
        };
        local v53 = {
            ListLayout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            FrameDescriptionLabel = v1.createElement("TextLabel", {
                LayoutOrder = 0,
                Size = UDim2.new(1, 0, 0, 15),
                Font = l_Font_0.Body.Font,
                TextSize = 12,
                Text = v31.timeLabelText,
                TextColor3 = l_Theme_0.TextDefault.Color,
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            TimeSlider = v1.createElement(l_SystemSlider_0, {
                layoutOrder = 1,
                min = v30.state.timeSliderMin,
                max = v30.state.timeSliderMax,
                stepInterval = v30.state.timeSliderStepInterval,
                value = l_thumbnailKeyframe_0,
                onValueChanged = v30.onKeyframeOrTimeChanged,
                width = UDim.new(1, 0),
                position = UDim2.new(0, 0, 0.5, 0),
                anchorPoint = Vector2.new(0, 0.5),
                NextSelectionDown = v30.rotationSliderRef,
                [v1.Ref] = v30.timeSliderRef
            }),
            RotationDescriptionLabel = v1.createElement("TextLabel", {
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, 15),
                Font = l_Font_0.Body.Font,
                TextSize = 12,
                Text = v31.rotationLabelText,
                TextColor3 = l_Theme_0.TextDefault.Color,
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Left
            })
        };
        local l_createElement_3 = v1.createElement;
        local l_l_SystemSlider_0_0 = l_SystemSlider_0;
        local v56 = {
            layoutOrder = 3,
            min = v14.Rotation.Range.Min,
            max = v14.Rotation.Range.Max
        };
        local l_Rotation_0 = v14.Rotation;
        v56.stepInterval = (l_Rotation_0.Range.Max - l_Rotation_0.Range.Min) / (l_Rotation_0.Increments - 1);
        v56.value = l_thumbnailCharacterRotation_0;
        v56.onValueChanged = v30.onRotateChanged;
        v56.width = UDim.new(1, 0);
        v56.position = UDim2.new(0, 0, 0.5, 0);
        v56.anchorPoint = Vector2.new(0, 0.5);
        v56.NextSelectionUp = v30.timeSliderRef;
        v56[v1.Ref] = v30.rotationSliderRef;
        v53.RotationSlider = l_createElement_3(l_l_SystemSlider_0_0, v56);
        v49.Levers = l_createElement_2(v51, v52, v53);
        v45.TopSection = l_createElement_1(v47, v48, v49);
        return l_createElement_0(l_Frame_0, v44, v45);
    end);
end;
v15.renderAlertLocalized = function(v58, v59)
    return v1.createElement(l_InteractiveAlert_0, {
        title = v59.titleText or "",
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = v58.onCancelPressed,
                        text = v59.cancelButtonText
                    },
                    isDefaultChild = true
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = v58.onUpdatePressed,
                        text = v59.updateButtonText
                    },
                    isDefaultChild = false
                }
            }
        },
        middleContent = function()
            return v58:renderMiddle(v59);
        end,
        screenSize = v58.props.screenSize,
        defaultChildRef = v58.props.defaultChildRef,
        isMiddleContentFocusable = true
    });
end;
local function v60()
    return {
        cancelButtonText = v4:FormatByKey("CoreScripts.EmoteThumbnailEditor.Action.Cancel"),
        updateButtonText = v4:FormatByKey("CoreScripts.EmoteThumbnailEditor.Action.Update"),
        titleText = v4:FormatByKey("CoreScripts.EmoteThumbnailEditor.Heading.EditThumbnail"),
        rotationLabelText = v4:FormatByKey("CoreScripts.EmoteThumbnailEditor.Label.Rotation"),
        timeLabelText = v4:FormatByKey("CoreScripts.EmoteThumbnailEditor.Label.Time")
    };
end;
v15.render = function(v61)
    return v61:renderAlertLocalized((v60()));
end;
return v15;


local v0 = require(game:GetService("CorePackages").Packages.t);
return {
    validate = v0.strictInterface({
        thumbnailKeyframe = v0.number,
        thumbnailTime = v0.number,
        thumbnailZoom = v0.number,
        thumbnailVerticalOffset = v0.number,
        thumbnailHorizontalOffset = v0.number,
        thumbnailCharacterRotation = v0.number
    }),
    defaultParameters = {
        thumbnailKeyframe = 1,
        thumbnailTime = 0,
        thumbnailZoom = 1,
        thumbnailVerticalOffset = 0,
        thumbnailHorizontalOffset = 0,
        thumbnailCharacterRotation = 0
    },
    encodeAsATable = function(v1)
        return {
            ThumbnailBundleId = 515,
            ThumbnailCharacterRotation = v1.thumbnailCharacterRotation,
            ThumbnailHorizontalOffset = v1.thumbnailHorizontalOffset,
            ThumbnailVerticalOffset = v1.thumbnailVerticalOffset,
            ThumbnailZoom = v1.thumbnailZoom,
            ThumbnailKeyframe = v1.thumbnailKeyframe,
            ThumbnailTime = v1.thumbnailTime
        };
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local l_EmoteUtility_0 = require(l_CorePackages_0.Thumbnailing).EmoteUtility;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(script.Parent.EmoteThumbnailParameters);
local v7 = v4.PureComponent:extend("EmoteThumbnailView");
v7.validateProps = v5.strictInterface({
    animationClip = v5.instanceIsA("AnimationClip"),
    thumbnailParameters = v6.validate,
    position = v5.optional(v5.UDim2),
    anchorPoint = v5.optional(v5.Vector2),
    size = v5.optional(v5.UDim2)
});
v7.updateCameraAndCharacterPose = function(v8)
    if v8.character == nil then
        return ;
    else
        local l_props_0 = v8.props;
        local l_character_0 = v8.character;
        local l_animationClip_0 = l_props_0.animationClip;
        local l_thumbnailParameters_0 = l_props_0.thumbnailParameters;
        local l_thumbnailTime_0 = l_thumbnailParameters_0.thumbnailTime;
        local l_thumbnailKeyframe_0 = l_thumbnailParameters_0.thumbnailKeyframe;
        local l_thumbnailCharacterRotation_0 = l_thumbnailParameters_0.thumbnailCharacterRotation;
        local v16 = nil;
        if not l_animationClip_0:IsA("CurveAnimation") then
            if not l_animationClip_0:IsA("KeyframeSequence") then
                error("Unsupported Animation data:", l_animationClip_0.ClassName);
            else
                v16 = l_EmoteUtility_0.GetThumbnailKeyframe(l_thumbnailKeyframe_0, l_animationClip_0, l_thumbnailCharacterRotation_0);
            end;
        else
            v16 = l_EmoteUtility_0.GetThumbnailKeyframeFromCurve(l_thumbnailTime_0, l_animationClip_0, l_thumbnailCharacterRotation_0);
        end;
        l_EmoteUtility_0.SetPlayerCharacterNeutralPose(l_character_0);
        l_EmoteUtility_0.ApplyKeyframe(l_character_0, v16);
        task.spawn(function()
            l_RunService_0.PreAnimation:Wait();
            l_RunService_0.PostSimulation:Wait();
            local l_Folder_0 = Instance.new("Folder");
            l_Folder_0.Parent = l_character_0;
            l_Folder_0:Destroy();
            local l_l_character_0_ModelCFrame_0 = l_character_0:GetModelCFrame();
            v8.updateCameraCFrameBinding((l_EmoteUtility_0.ThumbnailZoomExtents(l_character_0, 20, l_thumbnailParameters_0.thumbnailHorizontalOffset, l_thumbnailParameters_0.thumbnailVerticalOffset, l_thumbnailParameters_0.thumbnailZoom)));
            v8.updateCameraFocusBinding(l_l_character_0_ModelCFrame_0);
        end);
        return ;
    end;
end;
v7.addCharacterToViewportIfNeeded = function(v19)
    if v19.character ~= nil and v19.character.Parent ~= nil then
        return ;
    else
        if v19.worldModelRef:getValue() and v19.character ~= nil then
            v19.character.Parent = v19.worldModelRef:getValue();
            v19:updateCameraAndCharacterPose();
        end;
        return ;
    end;
end;
v7.init = function(v20)
    v20.cameraRef = v4.createRef();
    v20.worldModelRef = v4.createRef();
    local v21, v22 = v4.createBinding(CFrame.new());
    v20.cameraCFrameBinding = v21;
    v20.updateCameraCFrameBinding = v22;
    v21, v22 = v4.createBinding(CFrame.new());
    v20.cameraFocusBinding = v21;
    v20.updateCameraFocusBinding = v22;
    task.spawn(function()
        local l_status_0, l_result_0 = pcall(function()
            return (l_Players_0:GetHumanoidDescriptionFromOutfitId(1342485078));
        end);
        if not l_status_0 then
            l_result_0 = Instance.new("HumanoidDescription");
        end;
        v20.character = l_Players_0:CreateHumanoidModelFromDescription(l_result_0, Enum.HumanoidRigType.R15);
        v20:addCharacterToViewportIfNeeded();
    end);
end;
v7.render = function(v25)
    return v4.createElement("Frame", {
        BackgroundTransparency = 0,
        Position = v25.props.position or UDim2.fromScale(0, 0),
        AnchorPoint = v25.props.anchorPoint or Vector2.new(0, 0),
        Size = v25.props.size or UDim2.fromScale(1, 1),
        BackgroundColor3 = Color3.fromRGB(200, 200, 200)
    }, {
        UICorner = v4.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        AspectRatioConstraint = v4.createElement("UIAspectRatioConstraint", {
            AspectRatio = 1,
            AspectType = Enum.AspectType.FitWithinMaxSize,
            DominantAxis = Enum.DominantAxis.Width
        }),
        ViewportFrame = v4.createElement("ViewportFrame", {
            Size = UDim2.fromScale(1, 1),
            Position = UDim2.fromScale(0.5, 0.5),
            AnchorPoint = Vector2.new(0.5, 0.5),
            ImageColor3 = Color3.new(0, 0, 0),
            ImageTransparency = 0,
            BackgroundTransparency = 1,
            CurrentCamera = v25.cameraRef
        }, {
            Camera = v4.createElement("Camera", {
                CameraType = Enum.CameraType.Scriptable,
                FieldOfView = 20,
                CFrame = v25.cameraCFrameBinding,
                Focus = v25.cameraFocusBinding,
                [v4.Ref] = v25.cameraRef
            }),
            WorldModel = v4.createElement("WorldModel", {
                [v4.Ref] = v25.worldModelRef
            })
        })
    });
end;
v7.didMount = function(v26)
    v26:addCharacterToViewportIfNeeded();
end;
v7.didUpdate = function(v27, _)
    v27:updateCameraAndCharacterPose();
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.UIBlox);
local l_ButtonType_0 = v2.App.Button.Enum.ButtonType;
local l_InteractiveAlert_0 = v2.App.Dialog.Alert.InteractiveAlert;
local v5 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local v6 = require(l_CorePackages_0.Packages.React);
return function(v7)
    return v6.createElement(l_InteractiveAlert_0, {
        title = "Leave Creation?",
        bodyText = v5:FormatByKey("CoreScripts.PublishCommon.UnsavedWarning"),
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = v7.closePrompt,
                        text = v5:FormatByKey("CoreScripts.PublishCommon.Leave")
                    },
                    isDefaultChild = false
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = v7.cancelClosePrompt,
                        text = v5:FormatByKey("CoreScripts.PublishCommon.Stay")
                    },
                    isDefaultChild = true
                }
            }
        },
        position = UDim2.fromScale(0.5, 0.5),
        screenSize = v7.screenSize
    });
end;