local L=game.ReplicatedStorage.Packages local P=(game:GetService("\080\108\097\121\101\114\115")).LocalPlayer:WaitForChild("\080\108\097\121\101\114\071\117\105")local Y=require(L.Dev.Roact)local B=require(L.Dev.ReactRoblox)local s=require(L.Dev.Scheduler)local y=((require(L.PerformanceBenchmarks.concurrent))(Y,s)).Concurrent local E local function a(L,s)local y=Instance.new("\070\111\108\100\101\114")y.Name="\071\117\105\082\111\111\116"y.Parent=P local E=B.createBlockingRoot(y)E:render(Y.createElement(L,s))return function()E:unmount()y.Parent=nil end end local function f()E()end E=a(y,{Stop=f})
local rootWorkspace = game.ReplicatedStorage.Packages

local PlayerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
local Roact = require(rootWorkspace.Dev.Roact)
local ReactRoblox = require(rootWorkspace.Dev.ReactRoblox)
local Scheduler = require(rootWorkspace.Dev.Scheduler)
local Concurrent = require(rootWorkspace.PerformanceBenchmarks.concurrent)(Roact, Scheduler).Concurrent

local _stop

local function bootstrap(component, props)
	local rootInstance = Instance.new("Folder")
	rootInstance.Name = "GuiRoot"
	rootInstance.Parent = PlayerGui

	local root = ReactRoblox.createBlockingRoot(rootInstance)
	root:render(Roact.createElement(component, props))

	return function()
		root:unmount()
		rootInstance.Parent = nil
	end
end

local function stop()
	_stop()
end

_stop = bootstrap(Concurrent, {
	Stop = stop,
})
