Open Duckling96 opened 2 years ago
local Rostruct = (function() local a={_G={}}setmetatable(a,{index=function(self,b)if b=="Promise"then self.Promise=a.initialize("modules","Promise")return self.Promise end end})local c;do c={}c.index=c;function c.new(d)local e,f=string.match(d,"([^/]+)(/*)$")return setmetatable({name=e,path=string.sub(d,1,-#e-(f~=""and 2 or 1))},c)end;function c:index(b)if b=="Parent"then return c.new(self.path)end end end;local g;do g={}g.index=g;function g.new(d,h,i)return setmetatable({path=h~="init"and d or c.new(d).path,name=h,func=i,data=nil},g)end;function g:index(b)if g[b]then return g[b]elseif b=="Parent"then return c.new(self.path)elseif b=="Name"then return self.path end end;function g:require()if self.func then self.data=self.func()self.func=nil end;return self.data end;function g:GetFullName()return self.path end end;local j;do j={}j.index=j;setmetatable(j,{call=function(k,l)local self=setmetatable({},j)self.description="Symbol("..(l or"")..")"return self end})local m=setmetatable({},{index=function(self,b)self[b]=j(b)return self[b]end})function j:toString()return self.description end;j.tostring=j.toString;function j.getFor(n)return m[n]end;function j.keyFor(o)for n,p in pairs(m)do if p==o then return n end end end end;a.Symbol=j;a.Symbol_iterator=j("Symbol.iterator")local q={}local r={}function a.register(d,h,i)local s=g.new(d,h,i)q[d]=s;r[h]=s;return s end;function a.get(d)return q[d]end;function a.initialize(...)local p=setmetatable({},{__tostring=function()return"root"end})local t=a.register(p,p)return a.import(t,{path="out/"},...)end;function a.getModule(u,v)return error("TS.getModule is not supported",2)end;local w={}local x={}function a.import(t,y,...)local z=y.path..table.concat({...},"/")..".lua"local A=y.path..table.concat({...},"/").."/init.lua"local s=assert(q[z]or q[A],"No module exists at path '"..z.."'")w[t]=s;local B=s;local C=0;while B do C=C+1;B=w[B]if B==s then local D=B.name;for k=1,C do B=w[B]D=D.." => "..B.name end;error("Failed to import! Detected a circular dependency chain: "..D,2)end end;if not x[s]then if a._G[s]then error("Invalid module access! Do you have two TS runtimes trying to import this? "..s.path,2)end;a._G[s]=a;x[s]=true end;local E=s:require()if w[t]==s then w[t]=nil end;return E end;function a.async(F)local G=a.Promise;return function(...)local H=select("#",...)local I={...}return G.new(function(J,K)coroutine.wrap(function()local L,M=pcall(F,unpack(I,1,H))if L then J(M)else K(M)end end)()end)end end;function a.await(N)local G=a.Promise;if not G.is(N)then return N end;local O,P=N:awaitStatus()if O==G.Status.Resolved then return P elseif O==G.Status.Rejected then error(P,2)else error("The awaited Promise was cancelled",2)end end;function a.opcall(i,...)local Q,R=pcall(i,...)if Q then return{success=true,value=R}else return{success=false,error=R}end end;a.register("out/Package.lua","Package",function()local S=a.get("out/Package.lua")local a=a._G[S]local T=a.import(S,S.Parent,"core")local U=T.Session;local V=T.VirtualScript;local W=a.import(S,S.Parent,"utils","file-utils").pathUtils;local X=a.import(S,S.Parent,"modules","make")local Y;do Y=setmetatable({},{tostring=function()return"Package"end})Y.index=Y;function Y.new(...)local self=setmetatable({},Y)return self:constructor(...)or self end;function Y:constructor(Z,)self.tree=X("Folder",{Name="Tree"})local a0=type(Z)=="string"assert(a0,"(Package) The path must be a string")local a1=isfolder(Z)local a2="(Package) The path '"..Z.."' must be a valid directory"assert(a1,a2)self.root=W.formatPath(Z)self.session=U.new(Z)self.fetchInfo= end;function Y:build(a3,a4)if a3==nil then a3=""end;local a0=isfile(self.root..a3)or isfolder(self.root..a3)local a2="(Package.build) The path '"..self.root..a3 .."' must be a file or folder"assert(a0,a2)local a5=self.session:build(a3)local a6="(Package.build) The path '"..self.root..a3 .."' could not be turned into an Instance"assert(a5,a6)if a4~=nil then for a7,P in pairs(a4)do a5[a7]=P end end;a5.Parent=self.tree;return a5 end;function Y:start()return self.session:simulate()end;Y.require=a.async(function(self,s)local a0=s.ClassName=="ModuleScript"local a2="(Package.require) '"..tostring(s).."' must be a module"assert(a0,a2)local a1=s:IsDescendantOf(self.tree)local a6="(Package.require) '"..tostring(s).."' must be a descendant of Package.tree"assert(a1,a6)return V:requireFromInstance(s)end)function Y:requireAsync(s)return self:require(s):expect()end;Y.fromFetch=function()return Y.new(.location,_)end end;return{Package=Y}end)a.register("out/bootstrap.lua","bootstrap",function()local S=a.get("out/bootstrap.lua")local a=a._G[S]local a8=a.import(S,S.Parent,"utils","file-utils").makeUtils;local a9={ROOT="rostruct/",CACHE="rostruct/cache/",RELEASE_CACHE="rostruct/cache/releases/",RELEASE_TAGS="rostruct/cache/release_tags.json"}local aa=function(ab)return a9[ab]end;local ac=function()return a8.makeFiles({{"rostruct/cache/releases/",""},{"rostruct/cache/release_tags.json","{}"}})end;return{getRostructPath=aa,bootstrap=ac}end)a.register("out/init.lua","init",function()local S=a.get("out/init.lua")local a=a._G[S]local ac=a.import(S,S,"bootstrap").bootstrap;ac()local Y=a.import(S,S,"Package").Package;local ad=a.import(S,S,"utils","fetch-github-release")local ae=ad.clearReleaseCache;local af=ad.downloadLatestRelease;local ag=ad.downloadRelease;local ah=function()return ae()end;local ai=function(Z)return Y.new(Z)end;local aj=a.async(function(...)local I={...}return Y.fromFetch(a.await(ag(unpack(I))))end)local ak=function(...)local I={...}return Y.fromFetch(ag(unpack(I)):expect())end;local al=a.async(function(...)local I={...}return Y.fromFetch(a.await(af(unpack(I))))end)local am=function(...)local I={...}return Y.fromFetch(af(unpack(I)):expect())end;return{clearCache=ah,open=ai,fetch=aj,fetchAsync=ak,fetchLatest=al,fetchLatestAsync=am}end)a.register("out/api/compatibility.lua","compatibility",function()local S=a.get("out/api/compatibility.lua")local an=request or(syn.request or http.request)local ao=getcustomasset or getsynasset;return{httpRequest=an,getContentId=ao}end)a.register("out/api/init.lua","init",function()local S=a.get("out/api/init.lua")local a=a._G[S]local ap={}for aq,ar in pairs(a.import(S,S,"compatibility"))do ap[aq]=ar end;return ap end)a.register("out/core/Session.lua","Session",function()local S=a.get("out/core/Session.lua")local a=a._G[S]local as=a.import(S,S.Parent,"Store").Store;local at=a.import(S,S.Parent.Parent,"modules","services").HttpService;local au=a.import(S,S.Parent,"build").build;local U;do U=setmetatable({},{tostring=function()return"Session"end})U.index=U;function U.new(...)local self=setmetatable({},U)return self:constructor(...)or self end;function U:constructor(Z)self.root=Z;self.sessionId=at:GenerateGUID(false)self.virtualScripts={}local av=U.sessions;local aw=self.sessionId;local ax=self;av[aw]=ax end;function U:fromSessionId(ay)return self.sessions[ay]end;function U:virtualScriptAdded(az)local aA=self.virtualScripts;aA[#aA+1]=az end;function U:build(d)if d==nil then d=""end;local a0=isfile(self.root..d)or isfolder(self.root..d)local a2="The path '"..self.root..d.."' must be a file or folder"assert(a0,a2)return au(self,self.root..d)end;function U:simulate()local aB={}local a0=#self.virtualScripts>0;assert(a0,"This session cannot start because no LocalScripts were found.")for k,aC in ipairs(self.virtualScripts)do if aC.instance:IsA("LocalScript")then local a1=aC:deferExecutor():andThenReturn(aC.instance)aB[#aB+1]=a1 end end;return a.Promise.all(aB):timeout(10)end;U.sessions=as:getStore("Sessions")end;return{Session=U}end)a.register("out/core/Store.lua","Store",function()local S=a.get("out/core/Store.lua")local aD;if getgenv().RostructStore~=nil then aD=getgenv().RostructStore else local aE=getgenv()aE.RostructStore={}aD=aE.RostructStore end;local aF=aD;local as={getStore=function(self,aG)if aF[aG]~=nil then return aF[aG]end;local aH={}aF[aG]=aH;return aH end}return{Store=as}end)a.register("out/core/VirtualScript.lua","VirtualScript",function()local S=a.get("out/core/VirtualScript.lua")local a=a._G[S]local as=a.import(S,S.Parent,"Store").Store;local at=a.import(S,S.Parent.Parent,"modules","services").HttpService;local w={}local function aI(s)local B=s;local C=0;while B do C=C+1;local aJ=B;B=w[aJ]if s==B then local aK=s:getChunkName()do local aL=0;local aM=false;while true do if aM then aL=aL+1 else aM=true end;if not(aL<C)then break end;local aN=B;B=w[aN]aK=aK.."\n\t\t⇒ "..B:getChunkName()end end;error("Requested module '"..(s:getChunkName().."' contains a cyclic reference").."\n\tTraceback: "..aK)end end end;local V;do V=setmetatable({},{tostring=function()return"VirtualScript"end})V.index=V;function V.new(...)local self=setmetatable({},V)return self:constructor(...)or self end;function V:constructor(a5,d,Z,aO)if aO==nil then aO=readfile(d)end;self.instance=a5;self.path=d;self.root=Z;self.source=aO;self.id="VirtualScript-"..at:GenerateGUID(false)self.jobComplete=false;self.scriptEnvironment=setmetatable({script=a5,require=function(aP)return V:loadModule(aP,self)end,_PATH=d,_ROOT=Z},{index=getfenv(0),metatable="This metatable is locked"})local aQ=V.fromInstance;local ax=self;aQ[a5]=ax end;function V:getFromInstance(aR)return self.fromInstance[aR]end;function V:requireFromInstance(aR)local s=self:getFromInstance(aR)local a2="Failed to get VirtualScript for Instance '"..aR:GetFullName().."'"assert(s,a2)return s:runExecutor()end;function V:loadModule(aR,t)local s=self.fromInstance[aR]if not s then return require(aR)end;w[t]=s;aI(s)local M=s:runExecutor()if w[t]==s then w[t]=nil end;return M end;function V:getChunkName()local aS=self.path;local a0=#self.root+1;local aT=string.sub(aS,a0)return"@"..aT.." ("..self.instance:GetFullName()..")"end;function V:setExecutor(aU)local a0=self.jobComplete==false;assert(a0,"Cannot set executor after script was executed")self.executor=aU end;function V:createExecutor()if self.executor then return self.executor end;local aV,aW=loadstring(self.source,"="..self:getChunkName())assert(aV,aW)self.executor=setfenv(aV,self.scriptEnvironment)return self.executor end;function V:runExecutor()if self.jobComplete then return self.result end;local M=self:createExecutor()(self.scriptEnvironment)if self.instance:IsA("ModuleScript")and M==nil then error("Module '"..self:getChunkName().."' did not return any value")end;self.jobComplete=true;self.result=M;return self.result end;function V:deferExecutor()return a.Promise.defer(function(J)return J(self:runExecutor())end):timeout(30,"Script "..self:getChunkName().." reached execution timeout! Try not to yield the main thread in LocalScripts.")end;V.fromInstance=as:getStore("VirtualScriptStore")end;return{VirtualScript=V}end)a.register("out/core/init.lua","init",function()local S=a.get("out/core/init.lua")local a=a._G[S]local ap={}ap.build=a.import(S,S,"build").build;ap.Store=a.import(S,S,"Store").Store;ap.Session=a.import(S,S,"Session").Session;ap.VirtualScript=a.import(S,S,"VirtualScript").VirtualScript;return ap end)a.register("out/core/types.lua","types",function()local S=a.get("out/core/types.lua")return nil end)a.register("out/core/build/csv.lua","csv",function()local S=a.get("out/core/build/csv.lua")local a=a._G[S]local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local W=a.import(S,S.Parent.Parent.Parent,"utils","file-utils").pathUtils;local aX=a.import(S,S.Parent,"metadata").fileMetadata;local aY={"Context","Example","Key","Source"}local aZ;do aZ=setmetatable({},{tostring=function()return"CsvReader"end})aZ.index=aZ;function aZ.new(...)local self=setmetatable({},aZ)return self:constructor(...)or self end;function aZ:constructor(a,b0)if b0==nil then b0=string.split(a,"\n")end;self.raw=a_;self.buffer=b0;self.entries={}self.keys={}end;function aZ:read()for aL,b1 in ipairs(self.buffer)do if aL==1 then self:readHeader(b1)else self:readEntry(b1)end end;return self.entries end;function aZ:readHeader(b2)self.keys=string.split(b2,",")end;function aZ:validateEntry(b3)return b3.Context~=nil and(b3.Key~=nil and(b3.Source~=nil and b3.Values~=nil))end;function aZ:readEntry(b2)local b3={Values={}}for aL,P in ipairs(string.split(b2,","))do local n=self.keys[aL-1+1]if table.find(aY,n)~=nil then b3[n]=P else b3.Values[n]=P end end;if self:validateEntry(b3)then local b4=self.entries;b4[#b4+1]=b3 end end end;local function b5(d,h)local b6=aZ.new(readfile(d))local b7=X("LocalizationTable",{Name=h})b7:SetEntries(b6:read())local b8=tostring(W.getParent(d))..h..".meta.json"if isfile(b8)then aX(b8,b7)end;return b7 end;return{makeLocalizationTable=b5}end)a.register("out/core/build/dir.lua","dir",function()local S=a.get("out/core/build/dir.lua")local a=a._G[S]local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local W=a.import(S,S.Parent.Parent.Parent,"utils","file-utils").pathUtils;local b9=a.import(S,S.Parent,"metadata").directoryMetadata;local function ba(d)local b8=d.."init.meta.json"if isfile(b8)then return b9(b8,W.getName(d))end;return X("Folder",{Name=W.getName(d)})end;return{makeDir=ba}end)a.register("out/core/build/init.lua","init",function()local S=a.get("out/core/build/init.lua")local a=a._G[S]local W=a.import(S,S.Parent.Parent,"utils","file-utils").pathUtils;local b5=a.import(S,S,"csv").makeLocalizationTable;local ba=a.import(S,S,"dir").makeDir;local bb=a.import(S,S,"json").makeJsonModule;local bc=a.import(S,S,"json-model").makeJsonModel;local bd=a.import(S,S,"lua")local be=bd.makeLua;local bf=bd.makeLuaInit;local bg=a.import(S,S,"rbx-model").makeRobloxModel;local bh=a.import(S,S,"txt").makePlainText;local function bi(bj,d)if isfolder(d)then local a5;local bk=W.locateFiles(d,{"init.lua","init.server.lua","init.client.lua"})if bk~=nil then a5=bf(bj,d..bk)else a5=ba(d)end;for k,bl in ipairs(listfiles(W.trimTrailingSlash(d)))do local bm=bi(bj,W.addTrailingSlash(bl))if bm then bm.Parent=a5 end end;return a5 elseif isfile(d)then local h=W.getName(d)if string.match(h,"(%.lua)$")~=nil and string.match(h,"^(init%.)")==nil then return be(bj,d)elseif string.match(h,"(%.meta.json)$")~=nil then return nil elseif string.match(h,"(%.model.json)$")~=nil then return bc(d,string.match(h,"^(.)%.model.json$"))elseif string.match(h,"(%.project.json)$")~=nil then warn("Project files are not supported ("..d..")")elseif string.match(h,"(%.json)$")~=nil then return bb(bj,d,string.match(h,"^(.)%.json$"))elseif string.match(h,"(%.csv)$")~=nil then return b5(d,string.match(h,"^(.)%.csv$"))elseif string.match(h,"(%.txt)$")~=nil then return bh(d,string.match(h,"^(.)%.txt$"))elseif string.match(h,"(%.rbxm)$")~=nil then return bg(bj,d,string.match(h,"^(.)%.rbxm$"))elseif string.match(h,"(%.rbxmx)$")~=nil then return bg(bj,d,string.match(h,"^(.)%.rbxmx$"))end end end;return{build=bi}end)a.register("out/core/build/json-model.lua","json-model",function()local S=a.get("out/core/build/json-model.lua")local a=a._G[S]local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local at=a.import(S,S.Parent.Parent.Parent,"modules","services").HttpService;local bn=a.import(S,S.Parent,"EncodedValue")local function bo(bp,d,h)local bq=h;if bq==nil then bq=bp.Name end;local a2="A child in the model file '"..d.."' is missing a Name field"assert(bq~=""and bq,a2)if h~=nil and(bp.Name~=nil and bp.Name~=h)then warn("The name of the model file at '"..d.."' ("..h..") does not match the Name field '"..bp.Name.."'")end;local a0=bp.ClassName~=nil;local a6="An object in the model file '"..d.."' is missing a ClassName field"assert(a0,a6)local aE=bp.ClassName;local u={}local br="Name"local bs=h;if bs==nil then bs=bp.Name end;u[br]=bs;local aP=X(aE,u)if bp.Properties then bn.setModelProperties(aP,bp.Properties)end;if bp.Children then for k,b3 in ipairs(bp.Children)do local bl=bo(b3,d)bl.Parent=aP end end;return aP end;local function bc(d,h)return bo(at:JSONDecode(readfile(d)),d,h)end;return{makeJsonModel=bc}end)a.register("out/core/build/json.lua","json",function()local S=a.get("out/core/build/json.lua")local a=a._G[S]local V=a.import(S,S.Parent.Parent,"VirtualScript").VirtualScript;local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local at=a.import(S,S.Parent.Parent.Parent,"modules","services").HttpService;local W=a.import(S,S.Parent.Parent.Parent,"utils","file-utils").pathUtils;local aX=a.import(S,S.Parent,"metadata").fileMetadata;local function bb(bj,d,h)local a5=X("ModuleScript",{Name=h})local az=V.new(a5,d,bj.root)az:setExecutor(function()return at:JSONDecode(az.source)end)bj:virtualScriptAdded(az)local b8=tostring(W.getParent(d))..h..".meta.json"if isfile(b8)then aX(b8,a5)end;return a5 end;return{makeJsonModule=bb}end)a.register("out/core/build/lua.lua","lua",function()local S=a.get("out/core/build/lua.lua")local a=a._G[S]local V=a.import(S,S.Parent.Parent,"VirtualScript").VirtualScript;local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local bt=a.import(S,S.Parent.Parent.Parent,"utils","replace").replace;local W=a.import(S,S.Parent.Parent.Parent,"utils","file-utils").pathUtils;local aX=a.import(S,S.Parent,"metadata").fileMetadata;local bu={[".server.lua"]="Script",[".client.lua"]="LocalScript",[".lua"]="ModuleScript"}local function be(bj,d,bv)local e=W.getName(d)local bw=bt(e,"(%.client%.lua)$","")or(bt(e,"(%.server%.lua)$","")or(bt(e,"(%.lua)$","")or error("Invalid Lua file at "..d)))local h=bw[1]local bx=bw[2]local aE=bu[bx]local u={}local br="Name"local bq=bv;if bq==nil then bq=h end;u[br]=bq;local a5=X(aE,u)bj:virtualScriptAdded(V.new(a5,d,bj.root))local b8=tostring(W.getParent(d))..h..".meta.json"if isfile(b8)then aX(b8,a5)end;return a5 end;local function bf(bj,d)local by=W.getParent(d)local a5=be(bj,d,W.getName(by))return a5 end;return{makeLua=be,makeLuaInit=bf}end)a.register("out/core/build/metadata.lua","metadata",function()local S=a.get("out/core/build/metadata.lua")local a=a._G[S]local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local at=a.import(S,S.Parent.Parent.Parent,"modules","services").HttpService;local bn=a.import(S,S.Parent,"EncodedValue")local function aX(b8,a5)local bz=at:JSONDecode(readfile(b8))local a0=bz.className==nil;assert(a0,"className can only be specified in init.meta.json files if the parent directory would turn into a Folder!")if bz.properties~=nil then bn.setProperties(a5,bz.properties)end end;local function b9(b8,h)local bz=at:JSONDecode(readfile(b8))local a5=X(bz.className,{Name=h})if bz.properties~=nil then bn.setProperties(a5,bz.properties)end;return a5 end;return{fileMetadata=aX,directoryMetadata=b9}end)a.register("out/core/build/rbx-model.lua","rbx-model",function()local S=a.get("out/core/build/rbx-model.lua")local a=a._G[S]local ao=a.import(S,S.Parent.Parent.Parent,"api").getContentId;local V=a.import(S,S.Parent.Parent,"VirtualScript").VirtualScript;local function bg(bj,d,h)local a2="'"..d.."' could not be loaded; No way to get a content id"assert(ao,a2)local bA=game:GetObjects(ao(d))local a0=#bA==1;local a6="'"..d.."' could not be loaded; Only one top-level instance is supported"assert(a0,a6)local bB=bA[1]bB.Name=h;for k,aP in ipairs(bB:GetDescendants())do if aP:IsA("LuaSourceContainer")then bj:virtualScriptAdded(V.new(aP,d,bj.root,aP.Source))end end;if bB:IsA("LuaSourceContainer")then bj:virtualScriptAdded(V.new(bB,d,bj.root,bB.Source))end;return bB end;return{makeRobloxModel=bg}end)a.register("out/core/build/txt.lua","txt",function()local S=a.get("out/core/build/txt.lua")local a=a.G[S]local X=a.import(S,S.Parent.Parent.Parent,"modules","make")local W=a.import(S,S.Parent.Parent.Parent,"utils","file-utils").pathUtils;local aX=a.import(S,S.Parent,"metadata").fileMetadata;local function bh(d,h)local bC=X("StringValue",{Name=h,Value=readfile(d)})local b8=tostring(W.getParent(d))..h..".meta.json"if isfile(b8)then aX(b8,bC)end;return bC end;return{makePlainText=bh}end)a.register("out/core/build/EncodedValue/init.lua","init",function()local S=a.get("out/core/build/EncodedValue/init.lua")local bD;do local bE=math.floor;local bF=string.char;local function bG(D)local bH={}local bI=0;local bJ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"local bK=#D;for aL=1,bK-2,3 do local bL,bM,bN=D:byte(aL,aL+3)local bO=bN+bM256+bL256256;local bP=bO%64+1;bO=bE(bO/64)local bQ=bO%64+1;bO=bE(bO/64)local bR=bO%64+1;bO=bE(bO/64)local bS=bO%64+1;bH[bI+1]=bJ:sub(bS,bS)bH[bI+2]=bJ:sub(bR,bR)bH[bI+3]=bJ:sub(bQ,bQ)bH[bI+4]=bJ:sub(bP,bP)bI=bI+4 end;local bT=bK%3;if bT==2 then local bL,bM=D:byte(-2,-1)local bO=bM4+bL4256;local bQ=bO%64+1;bO=bE(bO/64)local bR=bO%64+1;bO=bE(bO/64)local bS=bO%64+1;bH[bI+1]=bJ:sub(bS,bS)bH[bI+2]=bJ:sub(bR,bR)bH[bI+3]=bJ:sub(bQ,bQ)bH[bI+4]="="elseif bT==1 then local bL=D:byte(-1,-1)local bO=bL16;local bR=bO%64+1;bO=bE(bO/64)local bS=bO%64+1;bH[bI+1]=bJ:sub(bS,bS)bH[bI+2]=bJ:sub(bR,bR)bH[bI+3]="="bH[bI+4]="="end;return table.concat(bH,"")end;local function bU(D)local bH={}local bI=0;local bJ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"local bK=#D;local bV=0;local bW=0;local bX={}for aL=1,#bJ do bX[bJ:sub(aL,aL)]=aL-1 end;for aL=1,bK do local bY=D:sub(aL,aL)local bZ=bX[bY]if bZ then bV=bV64+bZ;bW=bW+1 end;if bW==4 then local bN=bV%256;bV=bE(bV/256)local bM=bV%256;bV=bE(bV/256)local bL=bV%256;bH[bI+1]=bF(bL)bH[bI+2]=bF(bM)bH[bI+3]=bF(bN)bI=bI+3;bW=0;bV=0 end end;if bW==3 then bV=bV64;bV=bE(bV/256)local bM=bV%256;bV=bE(bV/256)local bL=bV%256;bH[bI+1]=bF(bL)bH[bI+2]=bF(bM)elseif bW==2 then bV=bV64;bV=bE(bV/256)bV=bV*64;bV=bE(bV/256)local bL=bV%256;bH[bI+1]=bF(bL)elseif bW==1 then error("Base64 has invalid length")end;return table.concat(bH,"")end;bD={decode=bU,encode=bG}end;local function b(...)return...end;local function c0(aV)return function(P)return aV(unpack(P))end end;local function c1(P)if P==math.huge or P==-math.huge then return 999999999math.sign(P)end;return P end;local c2={"X","Y","Z"}local c3={"Right","Top","Back","Left","Bottom","Front"}local c4;c4={boolean={fromPod=b,toPod=b},number={fromPod=b,toPod=b},string={fromPod=b,toPod=b},EnumItem={fromPod=b,toPod=function(c5)if typeof(c5)=="number"then return c5 else return c5.Value end end},Axes={fromPod=function(c6)local c7={}for c8,c9 in ipairs(c6)do c7[c8]=Enum.Axis[c9]end;return Axes.new(unpack(c7))end,toPod=function(c5)local ca={}for k,cb in ipairs(c2)do if c5[cb]then table.insert(ca,cb)end end;return ca end},BinaryString={fromPod=bD.decode,toPod=bD.encode},Bool={fromPod=b,toPod=b_},BrickColor={fromPod=function(c6)return BrickColor.new(c6)end,toPod=function(c5)return c5.Number end},CFrame={fromPod=function(c6)local cc=c6.Position;local cd=c6.Orientation;return CFrame.new(cc[1],cc[2],cc[3],cd[1][1],cd[1][2],cd[1][3],cd[2][1],cd[2][2],cd[2][3],cd[3][1],cd[3][2],cd[3][3])end,toPod=function(c5)local ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp=c5:GetComponents()return{Position={ce,cf,cg},Orientation={{ch,ci,cj},{ck,cl,cm},{cn,co,cp}}}end},Color3={fromPod=c0(Color3.new),toPod=function(c5)return{c5.r,c5.g,c5.b}end},Color3uint8={fromPod=c0(Color3.fromRGB),toPod=function(c5)return{math.round(c5.R255),math.round(c5.G255),math.round(c5.B255)}end},ColorSequence={fromPod=function(c6)local cq={}for c8,cr in ipairs(c6.Keypoints)do cq[c8]=ColorSequenceKeypoint.new(cr.Time,c4.Color3.fromPod(cr.Color))end;return ColorSequence.new(cq)end,toPod=function(c5)local cq={}for c8,cr in ipairs(c5.Keypoints)do cq[c8]={Time=cr.Time,Color=c4.Color3.toPod(cr.Value)}end;return{Keypoints=cq}end},Content={fromPod=b,toPod=b},Faces={fromPod=function(c6)local cs={}for c8,ct in ipairs(c6)do cs[c8]=Enum.NormalId[ct]end;return Faces.new(unpack(cs))end,toPod=function(c5)local c6={}for k,cu in ipairs(c3)do if c5[cu]then table.insert(c6,cu)end end;return c6 end},Float32={fromPod=b,toPod=c1},Float64={fromPod=b,toPod=c1},Int32={fromPod=b,toPod=b},Int64={fromPod=b,toPod=b},NumberRange={fromPod=c0(NumberRange.new),toPod=function(c5)return{c5.Min,c5.Max}end},NumberSequence={fromPod=function(c6)local cq={}for c8,cr in ipairs(c6.Keypoints)do cq[c8]=NumberSequenceKeypoint.new(cr.Time,cr.Value,cr.Envelope)end;return NumberSequence.new(cq)end,toPod=function(c5)local cq={}for c8,cr in ipairs(c5.Keypoints)do cq[c8]={Time=cr.Time,Value=cr.Value,Envelope=cr.Envelope}end;return{Keypoints=cq}end},PhysicalProperties={fromPod=function(c6)if c6=="Default"then return nil else return PhysicalProperties.new(c6.Density,c6.Friction,c6.Elasticity,c6.FrictionWeight,c6.ElasticityWeight)end end,toPod=function(c5)if c5==nil then return"Default"else return{Density=c5.Density,Friction=c5.Friction,Elasticity=c5.Elasticity,FrictionWeight=c5.FrictionWeight,ElasticityWeight=c5.ElasticityWeight}end end},Ray={fromPod=function(c6)return Ray.new(c4.Vector3.fromPod(c6.Origin),c4.Vector3.fromPod(c6.Direction))end,toPod=function(c5)return{Origin=c4.Vector3.toPod(c5.Origin),Direction=c4.Vector3.toPod(c5.Direction)}end},Rect={fromPod=function(c6)return Rect.new(c4.Vector2.fromPod(c6[1]),c4.Vector2.fromPod(c6[2]))end,toPod=function(c5)return{c4.Vector2.toPod(c5.Min),c4.Vector2.toPod(c5.Max)}end},Instance={fromPod=function(cv)error("Ref cannot be decoded on its own")end,toPod=function(cw)error("Ref can not be encoded on its own")end},Ref={fromPod=function(cv)error("Ref cannot be decoded on its own")end,toPod=function(cw)error("Ref can not be encoded on its own")end},Region3={fromPod=function(c6)error("Region3 is not implemented")end,toPod=function(c5)error("Region3 is not implemented")end},Region3int16={fromPod=function(c6)return Region3int16.new(c4.Vector3int16.fromPod(c6[1]),c4.Vector3int16.fromPod(c6[2]))end,toPod=function(c5)return{c4.Vector3int16.toPod(c5.Min),c4.Vector3int16.toPod(c5.Max)}end},SharedString={fromPod=function(c6)error("SharedString is not supported")end,toPod=function(c5)error("SharedString is not supported")end},String={fromPod=b,toPod=b},UDim={fromPod=c0(UDim.new),toPod=function(c5)return{c5.Scale,c5.Offset}end},UDim2={fromPod=function(c6)return UDim2.new(c4.UDim.fromPod(c6[1]),c4.UDim.fromPod(c6[2]))end,toPod=function(c5)return{c4.UDim.toPod(c5.X),c4.UDim.toPod(c5.Y)}end},Vector2={fromPod=c0(Vector2.new),toPod=function(c5)return{c1(c5.X),c1(c5.Y)}end},Vector2int16={fromPod=c0(Vector2int16.new),toPod=function(c5)return{c5.X,c5.Y}end},Vector3={fromPod=c0(Vector3.new),toPod=function(c5)return{c1(c5.X),c1(c5.Y),c1(c5.Z)}end},Vector3int16={fromPod=c0(Vector3int16.new),toPod=function(c5)return{c5.X,c5.Y,c5.Z}end}}local bn={}function bn.decode(cx,cy)local cz=c4[cx]if cz==nil then return false,"Couldn't decode value "..tostring(cx)end;return true,cz.fromPod(cy)end;function bn.setProperty(aP,a7,cy,cx)cx=cx or typeof(aP[a7])local Q,M=bn.decode(cx,cy)if Q then aP[a7]=M else warn("Could not set property "..a7 .." of "..aP.GetFullName().."; "..M)end end;function bn.setProperties(aP,cA)for a7,cy in pairs(cA)do bn.setProperty(aP,a7,cy)end end;function bn.setModelProperties(aP,cA)for a7,cy in pairs(cA)do bn.setProperty(aP,a7,cy.Value,cy.Type)end end;return bn end)a.register("out/modules/Promise/init.lua","init",function()local S=a.get("out/modules/Promise/init.lua")local cB="Non-promise value passed into %s at index %s"local cC="Please pass a list of promises to %s"local cD="Please pass a handler function to %s!"local cE={mode="k"}local function cF(cG,cH)local cI={}for k,cJ in ipairs(cH)do cI[cJ]=cJ end;return setmetatable(cI,{index=function(k,b)error(string.format("%s is not in %s!",b,cG),2)end,newindex=function()error(string.format("Creating new members in %s is not allowed!",cG),2)end})end;local cK;do cK={Kind=cF("Promise.Error.Kind",{"ExecutionError","AlreadyCancelled","NotResolvedInTime","TimedOut"})}cK.index=cK;function cK.new(cL,cM)cL=cL or{}return setmetatable({error=tostring(cL.error)or"[This error has no error text.]",trace=cL.trace,context=cL.context,kind=cL.kind,parent=cM,createdTick=os.clock(),createdTrace=debug.traceback()},cK)end;function cK.is(cN)if type(cN)=="table"then local cO=getmetatable(cN)if type(cO)=="table"then return rawget(cN,"error")~=nil and type(rawget(cO,"extend"))=="function"end end;return false end;function cK.isKind(cN,cP)assert(cP~=nil,"Argument #2 to Promise.Error.isKind must not be nil")return cK.is(cN)and cN.kind==cP end;function cK:extend(cL)cL=cL or{}cL.kind=cL.kind or self.kind;return cK.new(cL,self)end;function cK:getErrorChain()local cQ={self}while cQ[#cQ].parent do table.insert(cQ,cQ[#cQ].parent)end;return cQ end;function cK:tostring()local cR={string.format("-- Promise.Error(%s) --",self.kind or"?")}for k,cS in ipairs(self:getErrorChain())do table.insert(cR,table.concat({cS.trace or cS.error,cS.context},"\n"))end;return table.concat(cR,"\n")end end;local function cT(...)return select("#",...),{...}end;local function cU(Q,...)return Q,select("#",...),{...}end;local function cV(aK)assert(aK~=nil)return function(aW)if type(aW)=="table"then return aW end;return cK.new({error=aW,kind=cK.Kind.ExecutionError,trace=debug.traceback(tostring(aW),2),context="Promise created at:\n\n"..aK})end end;local function cW(aK,F,...)return cU(xpcall(F,cV(aK),...))end;local function cX(aK,F,J,K)return function(...)local L,cY,M=cW(aK,F,...)if L then J(unpack(M,1,cY))else K(M[1])end end end;local function cZ(c)return next(c)==nil end;local G={Error=cK,Status=cF("Promise.Status",{"Started","Resolved","Rejected","Cancelled"}),_getTime=os.clock,_timeEvent=game:GetService("RunService").Heartbeat}G.prototype={}G.index=G.prototype;function G._new(aK,F,cM)if cM~=nil and not G.is(cM)then error("Argument #2 to Promise.new must be a promise or nil",2)end;local self={_source=aK,_status=G.Status.Started,_values=nil,_valuesLength=-1,_unhandledRejection=true,_queuedResolve={},_queuedReject={},_queuedFinally={},_cancellationHook=nil,_parent=cM,_consumers=setmetatable({},cE)}if cM and cM._status==G.Status.Started then cM._consumers[self]=true end;setmetatable(self,G)local function J(...)self:_resolve(...)end;local function K(...)self:_reject(...)end;local function d0(d1)if d1 then if self._status==G.Status.Cancelled then d1()else self._cancellationHook=d1 end end;return self._status==G.Status.Cancelled end;coroutine.wrap(function()local L,k,M=cW(self._source,F,J,K,d0)if not L then K(M[1])end end)()return self end;function G.new(d2)return G._new(debug.traceback(nil,2),d2)end;function G:tostring()return string.format("Promise(%s)",self:getStatus())end;function G.defer(F)local aK=debug.traceback(nil,2)local N;N=G._new(aK,function(J,K,d0)local d3;d3=G._timeEvent:Connect(function()d3:Disconnect()local L,k,M=cW(aK,F,J,K,d0)if not L then K(M[1])end end)end)return N end;G.async=G.defer;function G.resolve(...)local d4,d5=cT(...)return G._new(debug.traceback(nil,2),function(J)J(unpack(d5,1,d4))end)end;function G.reject(...)local d4,d5=cT(...)return G._new(debug.traceback(nil,2),function(k,K)K(unpack(d5,1,d4))end)end;function G._try(aK,F,...)local d6,d5=cT(...)return G._new(aK,function(J)J(F(unpack(d5,1,d6)))end)end;function G.try(...)return G._try(debug.traceback(nil,2),...)end;function G._all(aK,d7,d8)if type(d7)~="table"then error(string.format(cC,"Promise.all"),3)end;for aL,N in pairs(d7)do if not G.is(N)then error(string.format(cB,"Promise.all",tostring(aL)),3)end end;if#d7==0 or d8==0 then return G.resolve({})end;return G._new(aK,function(J,K,d0)local d9={}local da={}local db=0;local dc=0;local dd=false;local function de()for k,N in ipairs(da)do N:cancel()end end;local function df(aL,...)if dd then return end;db=db+1;if d8==nil then d9[aL]=...else d9[db]=...end;if db>=(d8 or#d7)then dd=true;J(d9)de()end end;d0(de)for aL,N in ipairs(d7)do da[aL]=N:andThen(function(...)df(aL,...)end,function(...)dc=dc+1;if d8==nil or#d7-dc<d8 then de()dd=true;K(...)end end)end;if dd then de()end end)end;function G.all(d7)return G._all(debug.traceback(nil,2),d7)end;function G.fold(dg,F,dh)assert(type(dg)=="table","Bad argument #1 to Promise.fold: must be a table")assert(type(F)=="function","Bad argument #2 to Promise.fold: must be a function")local di=G.resolve(dh)return G.each(dg,function(dj,aL)di=di:andThen(function(dk)return F(dk,dj,aL)end)end):andThenReturn(di)end;function G.some(d7,d8)assert(type(d8)=="number","Bad argument #2 to Promise.some: must be a number")return G._all(debug.traceback(nil,2),d7,d8)end;function G.any(d7)return G._all(debug.traceback(nil,2),d7,1):andThen(function(d5)return d5[1]end)end;function G.allSettled(d7)if type(d7)~="table"then error(string.format(cC,"Promise.allSettled"),2)end;for aL,N in pairs(d7)do if not G.is(N)then error(string.format(cB,"Promise.allSettled",tostring(aL)),2)end end;if#d7==0 then return G.resolve({})end;return G._new(debug.traceback(nil,2),function(J,k,d0)local dl={}local da={}local dm=0;local function df(aL,...)dm=dm+1;dl[aL]=...if dm>=#d7 then J(dl)end end;d0(function()for k,N in ipairs(da)do N:cancel()end end)for aL,N in ipairs(d7)do da[aL]=N:finally(function(...)df(aL,...)end)end end)end;function G.race(d7)assert(type(d7)=="table",string.format(cC,"Promise.race"))for aL,N in pairs(d7)do assert(G.is(N),string.format(cB,"Promise.race",tostring(aL)))end;return G._new(debug.traceback(nil,2),function(J,K,d0)local da={}local dn=false;local function de()for k,N in ipairs(da)do N:cancel()end end;local function dp(F)return function(...)de()dn=true;return F(...)end end;if d0(dp(K))then return end;for aL,N in ipairs(d7)do da[aL]=N:andThen(dp(J),dp(K))end;if dn then de()end end)end;function G.each(dg,dq)assert(type(dg)=="table",string.format(cC,"Promise.each"))assert(type(dq)=="function",string.format(cD,"Promise.each"))return G._new(debug.traceback(nil,2),function(J,K,d0)local dr={}local ds={}local dt=false;local function de()for k,du in ipairs(ds)do du:cancel()end end;d0(function()dt=true;de()end)local dv={}for c8,P in ipairs(dg)do if G.is(P)then if P:getStatus()==G.Status.Cancelled then de()return K(cK.new({error="Promise is cancelled",kind=cK.Kind.AlreadyCancelled,context=string.format("The Promise that was part of the array at index %d passed into Promise.each was already cancelled when Promise.each began.\n\nThat Promise was created at:\n\n%s",c8,P._source)}))elseif P:getStatus()==G.Status.Rejected then de()return K(select(2,P:await()))end;local dw=P:andThen(function(...)return...end)table.insert(ds,dw)dv[c8]=dw else dv[c8]=P end end;for c8,P in ipairs(dv)do if G.is(P)then local Q;Q,P=P:await()if not Q then de()return K(P)end end;if dt then return end;local dx=G.resolve(dq(P,c8))table.insert(ds,dx)local Q,M=dx:await()if not Q then de()return K(M)end;dr[c8]=M end;J(dr)end)end;function G.is(aR)if type(aR)~="table"then return false end;local dy=getmetatable(aR)if dy==G then return true elseif dy==nil then return type(aR.andThen)=="function"elseif type(dy)=="table"and type(rawget(dy,"index"))=="table"and type(rawget(rawget(dy,"index"),"andThen"))=="function"then return true end;return false end;function G.promisify(F)return function(...)return G._try(debug.traceback(nil,2),F,...)end end;do local dz;local d3;function G.delay(dA)assert(type(dA)=="number","Bad argument #1 to Promise.delay, must be a number.")if not(dA>=1/60)or dA==math.huge then dA=1/60 end;return G._new(debug.traceback(nil,2),function(J,k,d0)local dB=G._getTime()local dC=dB+dA;local dD={resolve=J,startTime=dB,endTime=dC}if d3==nil then dz=dD;d3=G._timeEvent:Connect(function()local dE=G._getTime()while dz~=nil and dz.endTime<dE do local dF=dz;dz=dF.next;if dz==nil then d3:Disconnect()d3=nil else dz.previous=nil end;dF.resolve(G._getTime()-dF.startTime)end end)else if dz.endTime<dC then local dF=dz;local next=dF.next;while next~=nil and next.endTime<dC do dF=next;next=dF.next end;dF.next=dD;dD.previous=dF;if next~=nil then dD.next=next;next.previous=dD end else dD.next=dz;dz.previous=dD;dz=dD end end;d0(function()local next=dD.next;if dz==dD then if next==nil then d3:Disconnect()d3=nil else next.previous=nil end;dz=next else local dG=dD.previous;dG.next=next;if next~=nil then next.previous=dG end end end)end)end end;function G.prototype:timeout(dA,dH)local aK=debug.traceback(nil,2)return G.race({G.delay(dA):andThen(function()return G.reject(dH==nil and cK.new({kind=cK.Kind.TimedOut,error="Timed out",context=string.format("Timeout of %d seconds exceeded.\n:timeout() called at:\n\n%s",dA,aK)})or dH)end),self})end;function G.prototype:getStatus()return self._status end;function G.prototype:_andThen(aK,dI,dJ)self._unhandledRejection=false;return G._new(aK,function(J,K)local dK=J;if dI then dK=cX(aK,dI,J,K)end;local dL=K;if dJ then dL=cX(aK,dJ,J,K)end;if self._status==G.Status.Started then table.insert(self._queuedResolve,dK)table.insert(self._queuedReject,dL)elseif self._status==G.Status.Resolved then dK(unpack(self._values,1,self._valuesLength))elseif self._status==G.Status.Rejected then dL(unpack(self._values,1,self._valuesLength))elseif self._status==G.Status.Cancelled then K(cK.new({error="Promise is cancelled",kind=cK.Kind.AlreadyCancelled,context="Promise created at\n\n"..aK}))end end,self)end;function G.prototype:andThen(dI,dJ)assert(dI==nil or type(dI)=="function",string.format(cD,"Promise:andThen"))assert(dJ==nil or type(dJ)=="function",string.format(cD,"Promise:andThen"))return self:_andThen(debug.traceback(nil,2),dI,dJ)end;function G.prototype:catch(dL)assert(dL==nil or type(dL)=="function",string.format(cD,"Promise:catch"))return self:_andThen(debug.traceback(nil,2),nil,dL)end;function G.prototype:tap(dM)assert(type(dM)=="function",string.format(cD,"Promise:tap"))return self:_andThen(debug.traceback(nil,2),function(...)local dN=dM(...)if G.is(dN)then local d4,d5=cT(...)return dN:andThen(function()return unpack(d5,1,d4)end)end;return...end)end;function G.prototype:andThenCall(F,...)assert(type(F)=="function",string.format(cD,"Promise:andThenCall"))local d4,d5=cT(...)return self:_andThen(debug.traceback(nil,2),function()return F(unpack(d5,1,d4))end)end;function G.prototype:andThenReturn(...)local d4,d5=cT(...)return self:_andThen(debug.traceback(nil,2),function()return unpack(d5,1,d4)end)end;function G.prototype:cancel()if self._status~=G.Status.Started then return end;self._status=G.Status.Cancelled;if self._cancellationHook then self._cancellationHook()end;if self._parent then self._parent:_consumerCancelled(self)end;for bl in pairs(self._consumers)do bl:cancel()end;self:_finalize()end;function G.prototype:_consumerCancelled(dO)if self._status~=G.Status.Started then return end;self._consumers[dO]=nil;if next(self._consumers)==nil then self:cancel()end end;function G.prototype:_finally(aK,dP,dQ)if not dQ then self._unhandledRejection=false end;return G._new(aK,function(J,K)local dR=J;if dP then dR=cX(aK,dP,J,K)end;if dQ then local F=dR;dR=function(...)if self._status==G.Status.Rejected then return J(self)end;return F(...)end end;if self._status==G.Status.Started then table.insert(self._queuedFinally,dR)else dR(self._status)end end,self)end;function G.prototype:finally(dP)assert(dP==nil or type(dP)=="function",string.format(cD,"Promise:finally"))return self:_finally(debug.traceback(nil,2),dP)end;function G.prototype:finallyCall(F,...)assert(type(F)=="function",string.format(cD,"Promise:finallyCall"))local d4,d5=cT(...)return self:_finally(debug.traceback(nil,2),function()return F(unpack(d5,1,d4))end)end;function G.prototype:finallyReturn(...)local d4,d5=cT(...)return self:_finally(debug.traceback(nil,2),function()return unpack(d5,1,d4)end)end;function G.prototype:done(dP)assert(dP==nil or type(dP)=="function",string.format(cD,"Promise:done"))return self:_finally(debug.traceback(nil,2),dP,true)end;function G.prototype:doneCall(F,...)assert(type(F)=="function",string.format(cD,"Promise:doneCall"))local d4,d5=cT(...)return self:_finally(debug.traceback(nil,2),function()return F(unpack(d5,1,d4))end,true)end;function G.prototype:doneReturn(...)local d4,d5=cT(...)return self:_finally(debug.traceback(nil,2),function()return unpack(d5,1,d4)end,true)end;function G.prototype:awaitStatus()self._unhandledRejection=false;if self._status==G.Status.Started then local dS=Instance.new("BindableEvent")self:finally(function()dS:Fire()end)dS.Event:Wait()dS:Destroy()end;if self._status==G.Status.Resolved then return self._status,unpack(self._values,1,self._valuesLength)elseif self._status==G.Status.Rejected then return self._status,unpack(self._values,1,self._valuesLength)end;return self._status end;local function dT(O,...)return O==G.Status.Resolved,...end;function G.prototype:await()return dT(self:awaitStatus())end;local function dU(O,...)if O~=G.Status.Resolved then error(...==nil and"Expected Promise rejected with no value."or...,3)end;return...end;function G.prototype:expect()return dU(self:awaitStatus())end;G.prototype.awaitValue=G.prototype.expect;function G.prototype:_unwrap()if self._status==G.Status.Started then error("Promise has not resolved or rejected.",2)end;local Q=self._status==G.Status.Resolved;return Q,unpack(self._values,1,self._valuesLength)end;function G.prototype:_resolve(...)if self._status~=G.Status.Started then if G.is(...)then select(1,...):_consumerCancelled(self)end;return end;if G.is(...)then if select("#",...)>1 then local dV=string.format("When returning a Promise from andThen, extra arguments are ".."discarded! See:\n\n%s",self._source)warn(dV)end;local dW=...local N=dW:andThen(function(...)self:_resolve(...)end,function(...)local dX=dW._values[1]if dW._error then dX=cK.new({error=dW._error,kind=cK.Kind.ExecutionError,context="[No stack trace available as this Promise originated from an older version of the Promise library (< v2)]"})end;if cK.isKind(dX,cK.Kind.ExecutionError)then return self:_reject(dX:extend({error="This Promise was chained to a Promise that errored.",trace="",context=string.format("The Promise at:\n\n%s\n...Rejected because it was chained to the following Promise, which encountered an error:\n",self._source)}))end;self:_reject(...)end)if N._status==G.Status.Cancelled then self:cancel()elseif N._status==G.Status.Started then self._parent=N;N._consumers[self]=true end;return end;self._status=G.Status.Resolved;self._valuesLength,self._values=cT(...)for k,F in ipairs(self._queuedResolve)do coroutine.wrap(F)(...)end;self:_finalize()end;function G.prototype:_reject(...)if self._status~=G.Status.Started then return end;self._status=G.Status.Rejected;self._valuesLength,self._values=cT(...)if not cZ(self._queuedReject)then for k,F in ipairs(self._queuedReject)do coroutine.wrap(F)(...)end else local aW=tostring(...)coroutine.wrap(function()G._timeEvent:Wait()if not self._unhandledRejection then return end;local dV=string.format("Unhandled Promise rejection:\n\n%s\n\n%s",aW,self._source)if G.TEST then return end;warn(dV)end)()end;self:_finalize()end;function G.prototype:_finalize()for k,F in ipairs(self._queuedFinally)do coroutine.wrap(F)(self._status)end;self._queuedFinally=nil;self._queuedReject=nil;self._queuedResolve=nil;if not G.TEST then self._parent=nil;self._consumers=nil end end;function G.prototype:now(dH)local aK=debug.traceback(nil,2)if self:getStatus()==G.Status.Resolved then return self:_andThen(aK,function(...)return...end)else return G.reject(dH==nil and cK.new({kind=cK.Kind.NotResolvedInTime,error="This Promise was not resolved in time for :now()",context=":now() was called at:\n\n"..aK})or dH)end end;function G.retry(F,dY,...)assert(type(F)=="function","Parameter #1 to Promise.retry must be a function")assert(type(dY)=="number","Parameter #2 to Promise.retry must be a number")local I,d4={...},select("#",...)return G.resolve(F(...)):catch(function(...)if dY>0 then return G.retry(F,dY-1,unpack(I,1,d4))else return G.reject(...)end end)end;function G.fromEvent(dZ,dq)dq=dq or function()return true end;return G.new(debug.traceback(nil,2),function(J,K,d0)local d3;local d=false;local function e0()d3:Disconnect()d3=nil end;d3=dZ:Connect(function(...)local e1=dq(...)if e1==true then J(...)if d3 then e0()else d=true end elseif type(e1)~="boolean"then error("Promise.fromEvent predicate should always return a boolean")end end)if d and d3 then return e0()end;d0(function()e0()end)end)end;return G end)a.register("out/modules/make/init.lua","init",function()local S=a.get("out/modules/make/init.lua")local function X(e2,e3)local e4=e3;local e5=e4.Children;local cM=e4.Parent;local a5=Instance.new(e2)for e6,P in pairs(e3)do if e6~="Children"and e6~="Parent"then local e7=a5;local e8=e7[e6]local e9=e8;if typeof(e9)=="RBXScriptSignal"then e8:Connect(P)else a5[e6]=P end end end;if e5 then for k,bl in ipairs(e5)do bl.Parent=a5 end end;a5.Parent=cM;return a5 end;return X end)a.register("out/modules/object-utils/init.lua","init",function()local S=a.get("out/modules/object-utils/init.lua")local at=game:GetService("HttpService")local ea={}function ea.keys(aR)local M=table.create(#aR)for n in pairs(aR)do M[#M+1]=n end;return M end;function ea.values(aR)local M=table.create(#aR)for k,P in pairs(aR)do M[#M+1]=P end;return M end;function ea.entries(aR)local M=table.create(#aR)for n,P in pairs(aR)do M[#M+1]={n,P}end;return M end;function ea.assign(eb,...)for aL=1,select("#",...)do local ec=select(aL,...)if type(ec)=="table"then for n,P in pairs(ec)do eb[n]=P end end end;return eb end;function ea.copy(aR)local M=table.create(#aR)for b,aC in pairs(aR)do M[b]=aC end;return M end;local function ed(aR,ee)local M=table.create(#aR)ee[aR]=M;for b,aC in pairs(aR)do if type(b)=="table"then b=ee[b]or ed(b,ee)end;if type(aC)=="table"then aC=ee[aC]or ed(aC,ee)end;M[b]=aC end;return M end;function ea.deepCopy(aR)return ed(aR,{})end;function ea.deepEquals(ef,eg)for b in pairs(ef)do local eh=ef[b]local ei=eg[b]if type(eh)=="table"and type(ei)=="table"then local M=ea.deepEquals(eh,ei)if not M then return false end elseif eh~=ei then return false end end;for b in pairs(eg)do if ef[b]==nil then return false end end;return true end;function ea.toString(E)return at:JSONEncode(E)end;function ea.isEmpty(aR)return next(aR)==nil end;function ea.fromEntries(ej)local ek=#ej;local M=table.create(ek)if ej then for aL=1,ek do local el=ej[aL]M[el[1]]=el[2]end end;return M end;return ea end)a.register("out/modules/services/init.lua","init",function()local S=a.get("out/modules/services/init.lua")return setmetatable({},{__index=function(self,em)local en=game:GetService(em)self[em]=en;return en end})end)a.register("out/modules/zzlib/init.lua","init",function()local S=a.get("out/modules/zzlib/init.lua")local unpack=unpack;local M;local eo;do local ep={}local eq=bit32;ep.band=eq.band;ep.rshift=eq.rshift;function ep.bitstreaminit(aT)local er={file=aT,buf=nil,len=nil,pos=1,b=0,n=0}function er:flushb(H)self.n=self.n-H;self.b=eq.rshift(self.b,H)end;function er:peekb(H)while self.n
Rostruct -- Download the latest release to local files .fetchLatest("richie0866", "MidiPlayer") -- Then, build and start all scripts :andThen(function(package) package:build("src/") package:start() end)
"Could you provide detail about the issue, such as your Synapse Version (V2/V3), aswell as if it made a midi folder in workspace, aswell as fi it made a rostruct/cache directory? I'd like to attempt to slove it in my fork of the project." the answer to this, I'm using Synapse Version "Synapse X - v2.17.0c" as of now, and yes it did made a midi folder in workspace, and also made a rostruct/cashe directory.
I've always loved and used this script, it was always so fun, and unfortunately it just stopped executing, like at all, there's no crashing, nothing in the Dev console, nothing, it just doesn't execute at all, even with the updated version it doesn't do anything.