Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Yonaba/Moses.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYonaba <roland.yonaba@gmail.com>2018-08-23 13:16:57 +0300
committerYonaba <roland.yonaba@gmail.com>2018-08-23 13:16:57 +0300
commit68cbec82057d85082d889b5b80bd99322000b209 (patch)
treea35a4b9eab2762c4221bb89c3e032e5ae5eb19df
parent58a47a72160ac20bf71d06a814ab63d005eb53e7 (diff)
Updates and fixes
-rw-r--r--.luacov2
-rw-r--r--doc/index.html2
-rw-r--r--doc/manual/tutorial.md.html2
-rw-r--r--moses.lua18
-rw-r--r--moses_min.lua982
5 files changed, 498 insertions, 508 deletions
diff --git a/.luacov b/.luacov
index a39eca7..1d4f5bb 100644
--- a/.luacov
+++ b/.luacov
@@ -18,7 +18,7 @@ return {
runreport = true,
-- Delete stats file after reporting?
- deletestats = true,
+ deletestats = false,
-- Patterns for files to include when reporting
-- all will be included if nothing is listed
diff --git a/doc/index.html b/doc/index.html
index 7108fb6..8dee3c0 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -6559,7 +6559,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2018-08-22 20:49:28 </i>
+<i style="float:right;">Last updated 2018-08-23 10:16:23 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/doc/manual/tutorial.md.html b/doc/manual/tutorial.md.html
index 6cc4cdd..334b0b7 100644
--- a/doc/manual/tutorial.md.html
+++ b/doc/manual/tutorial.md.html
@@ -2862,7 +2862,7 @@ M.import(context, <span class="keyword">true</span>)
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2018-08-22 20:49:28 </i>
+<i style="float:right;">Last updated 2018-08-23 10:16:23 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/moses.lua b/moses.lua
index 00b7f30..924bbea 100644
--- a/moses.lua
+++ b/moses.lua
@@ -9,7 +9,7 @@
local _MODULEVERSION = '2.0.0'
-- Internalisation
-local next, type, select, pcall = next, type, select, pcall
+local next, type, pcall = next, type, pcall
local setmetatable, getmetatable = setmetatable, getmetatable
local t_insert, t_sort = table.insert, table.sort
local t_remove,t_concat = table.remove, table.concat
@@ -1958,10 +1958,10 @@ end
-- @param[opt] n the number of times the iterator should run
-- @return an iterator function
function M.iterator(f, value, n)
- local count = 0
+ local cnt = 0
return function()
- count = count + 1
- if n and count > n then return end
+ cnt = cnt + 1
+ if n and cnt > n then return end
value = f(value)
return value
end
@@ -2114,8 +2114,8 @@ function M.overArgs(f,...)
return function(...)
local _args = {...}
for i = 1,#_argf do
- local f = _argf[i]
- if _args[i] then _args[i] = f(_args[i]) end
+ local func = _argf[i]
+ if _args[i] then _args[i] = func(_args[i]) end
end
return f(unpack(_args))
end
@@ -2507,7 +2507,7 @@ end
function M.isCallable(obj)
return
((type(obj) == 'function') or
- ((type(obj) == 'table') and getmetatable(obj) and getmetatable(obj).__call~=nil) or
+ ((type(obj) == 'table') and getmetatable(obj) and getmetatable(obj).__call~=nil) or
false)
end
@@ -2756,7 +2756,7 @@ do
f.import = function(context, noConflict)
context = context or _ENV or _G
local funcs = M.functions()
- for k, fname in ipairs(funcs) do
+ for k, fname in ipairs(funcs) do
if rawget(context, fname)~= nil then
if not noConflict then
rawset(context, fname, M[fname])
@@ -2775,5 +2775,5 @@ do
Moses._DESCRIPTION = 'utility-belt library for functional programming in Lua'
return Moses
-
+
end
diff --git a/moses_min.lua b/moses_min.lua
index 1fd6146..fe6a9b3 100644
--- a/moses_min.lua
+++ b/moses_min.lua
@@ -1,521 +1,511 @@
-local e='2.0.0'local v,l6Sm5,oUA,QFKEzBf=next,type,select,pcall
-local odpE,p=setmetatable,getmetatable;local lIpFkbLI,JdUtcU=table.insert,table.sort
-local GQLN,toXyq=table.remove,table.concat;local S9TO,pS78Y,BCf7=math.randomseed,math.random,math.huge
-local RlMSrmdD,VCD,OV7,X83a=math.floor,math.max,math.min,math.ceil;local PizLA9mj=coroutine.wrap;local hUL=coroutine.yield;local l=rawget
-local kyWtqIf0=table.unpack or unpack;local zupvsz,Mw=pairs,ipairs;local S1wg_DG=error;local sf0=os.clock;local qxZa6ozV={}local function hgW2H5(BKLwtAVx,BMZNmf0)
-return BKLwtAVx>BMZNmf0 end
-local function z5i2i(qL9C,Colg)return qL9C<Colg end
-local function MGSnnzOI(ex2xo17)local I=0;for K66,Tq in zupvsz(ex2xo17)do I=I+1 end;return I end
-local function B0o5xpg7(jmB,bjO,QoYPziln,...)QoYPziln=QoYPziln or qxZa6ozV.identity;local Hj
-for KBlIVi,OR8it1 in zupvsz(jmB)do if not Hj then
-Hj=QoYPziln(OR8it1,...)else local GAqAsa=QoYPziln(OR8it1,...)
-Hj=bjO(Hj,GAqAsa)and Hj or GAqAsa end end;return Hj end
-local function VQT(Oc_,Qj,Ybp8,ZmzyNm)
-for akG0mUnS=0,#Oc_,Qj do
-local iy=qxZa6ozV.slice(Oc_,akG0mUnS+1,akG0mUnS+Qj)if#iy>0 then
-while(#iy<Qj and ZmzyNm)do iy[#iy+1]=ZmzyNm end;Ybp8(iy)end end end
-local function Id(gc7SaW,FnbJWd2,cpdLk,FbQX)
-for ejMVLYZd=0,#gc7SaW,FnbJWd2-1 do
-local eS0X=qxZa6ozV.slice(gc7SaW,ejMVLYZd+1,ejMVLYZd+FnbJWd2)
-if#eS0X>0 and ejMVLYZd+1 <#gc7SaW then while
-(#eS0X<FnbJWd2 and FbQX)do eS0X[#eS0X+1]=FbQX end;cpdLk(eS0X)end end end
-local function Ub(XDQS4ASf,IiNU,gUfudNUg,d3)
-for gTOcAHv=0,#XDQS4ASf,1 do
-local vY_4HT1n=qxZa6ozV.slice(XDQS4ASf,gTOcAHv+1,gTOcAHv+IiNU)
-if#vY_4HT1n>0 and gTOcAHv+IiNU<=#XDQS4ASf then
-while(#vY_4HT1n<
-IiNU and d3)do vY_4HT1n[#vY_4HT1n+1]=d3 end;gUfudNUg(vY_4HT1n)end end end
-local function qJExeUn2(DzPbzg,UMD,K3ZE7Ou)if UMD==0 then K3ZE7Ou(DzPbzg)end;for fBI=1,UMD do
-DzPbzg[UMD],DzPbzg[fBI]=DzPbzg[fBI],DzPbzg[UMD]qJExeUn2(DzPbzg,UMD-1,K3ZE7Ou)
-DzPbzg[UMD],DzPbzg[fBI]=DzPbzg[fBI],DzPbzg[UMD]end end;local function cmWo_v(wMSY)return wMSY>=0 and 1 or-1 end;local RoXZEsn=-1
-qxZa6ozV.operator={}
-qxZa6ozV.operator.add=function(_nD2rl,aVh8xSly)return _nD2rl+aVh8xSly end
-qxZa6ozV.operator.sub=function(i,P_NNVDyt)return i-P_NNVDyt end
-qxZa6ozV.operator.mul=function(cVEyN,uj2AiF)return cVEyN*uj2AiF end
-qxZa6ozV.operator.div=function(W,lbHN2)return W/lbHN2 end
-qxZa6ozV.operator.mod=function(PwgW3lfq,z)return PwgW3lfq%z end;qxZa6ozV.operator.exp=function(K,xx)return K^xx end
-qxZa6ozV.operator.pow=qxZa6ozV.operator.exp;qxZa6ozV.operator.unm=function(aYb)return-aYb end
-qxZa6ozV.operator.neg=qxZa6ozV.operator.unm
-qxZa6ozV.operator.floordiv=function(JM2,bmAjLT)return RlMSrmdD(JM2/bmAjLT)end
-qxZa6ozV.operator.intdiv=function(eExYnwnh,XMBmJyiP)
-return
-eExYnwnh>=0 and RlMSrmdD(eExYnwnh/XMBmJyiP)or X83a(eExYnwnh/XMBmJyiP)end
-qxZa6ozV.operator.eq=function(nowqEU6m,iKD8V)return nowqEU6m==iKD8V end
-qxZa6ozV.operator.neq=function(YtRS,A)return YtRS~=A end
-qxZa6ozV.operator.lt=function(mHJ,Q57BJ)return mHJ<Q57BJ end
-qxZa6ozV.operator.gt=function(vM,JeGCDX)return vM>JeGCDX end
-qxZa6ozV.operator.le=function(A,UFZlp)return A<=UFZlp end
-qxZa6ozV.operator.ge=function(VsrKM,uhIq)return VsrKM>=uhIq end
-qxZa6ozV.operator.land=function(EEOUzhy,hbrt)return EEOUzhy and hbrt end;qxZa6ozV.operator.lor=function(D,Q)return D or Q end;qxZa6ozV.operator.lnot=function(mRqle)return
-not mRqle end
-qxZa6ozV.operator.concat=function(sBEZ8,WhHB0ygh)return
-sBEZ8 ..WhHB0ygh end
-qxZa6ozV.operator.length=function(rYSD0)return#rYSD0 end;qxZa6ozV.operator.len=qxZa6ozV.operator.length
-function qxZa6ozV.clear(BIL5)for GQLlkH in
-zupvsz(BIL5)do BIL5[GQLlkH]=nil end;return BIL5 end;function qxZa6ozV.each(aN4J2zRQ,eWca,...)
-for AGUR2QK,FK in zupvsz(aN4J2zRQ)do eWca(FK,AGUR2QK,...)end end
-function qxZa6ozV.eachi(_,YQZ729qQ,...)
-local rZh2wG=qxZa6ozV.sort(qxZa6ozV.select(qxZa6ozV.keys(_),qxZa6ozV.isInteger))for sef4eW6Q,Z in Mw(rZh2wG)do YQZ729qQ(_[Z],Z,...)end end
-function qxZa6ozV.at(UacO6D,...)local FdnzjW={}for o,lMAL in Mw({...})do
-FdnzjW[#FdnzjW+1]=UacO6D[lMAL]end;return FdnzjW end
-function qxZa6ozV.adjust(CpQ,L,HnQS_Z,...)if(CpQ[L]==nil)then
-S1wg_DG("key not existing in table")end;local rib=qxZa6ozV.clone(CpQ)
-rib[L]=
-l6Sm5(HnQS_Z)=='function'and HnQS_Z(rib[L],...)or HnQS_Z;return rib end
-function qxZa6ozV.count(w,YT6wZ)if YT6wZ==nil then return qxZa6ozV.size(w)end
-local MGSnnzOI=0;for VYv,gU in zupvsz(w)do
-if qxZa6ozV.isEqual(gU,YT6wZ)then MGSnnzOI=MGSnnzOI+1 end end;return MGSnnzOI end
-function qxZa6ozV.countf(JzG8W4Ya,dZ54oc,...)local MGSnnzOI=0;for v_LoR,gRY in zupvsz(JzG8W4Ya)do if dZ54oc(gRY,v_LoR,...)then
-MGSnnzOI=MGSnnzOI+1 end end;return
-MGSnnzOI end
-function qxZa6ozV.cycle(z,ad)ad=ad or 1;if ad<=0 then return qxZa6ozV.noop end;local Ui0Qa,g
-local Itx=0
+local SWFtRywD='2.0.0'local e,v,l6Sm5=next,type,pcall;local oUA,QFKEzBf=setmetatable,getmetatable
+local odpE,p=table.insert,table.sort;local lIpFkbLI,JdUtcU=table.remove,table.concat
+local GQLN,toXyq,S9TO=math.randomseed,math.random,math.huge;local pS78Y,BCf7,RlMSrmdD,VCD=math.floor,math.max,math.min,math.ceil
+local OV7=coroutine.wrap;local X83a=coroutine.yield;local PizLA9mj=rawget
+local hUL=table.unpack or unpack;local l,kyWtqIf0=pairs,ipairs;local zupvsz=error;local Mw=os.clock;local S1wg_DG={}local function sf0(cmWo_v,RoXZEsn)
+return cmWo_v>RoXZEsn end
+local function qxZa6ozV(BKLwtAVx,BMZNmf0)return BKLwtAVx<BMZNmf0 end
+local function hgW2H5(qL9C)local Colg=0;for ex2xo17,I in l(qL9C)do Colg=Colg+1 end;return Colg end
+local function z5i2i(K66,Tq,jmB,...)jmB=jmB or S1wg_DG.identity;local bjO;for QoYPziln,Hj in l(K66)do
+if not bjO then bjO=jmB(Hj,...)else
+local KBlIVi=jmB(Hj,...)bjO=Tq(bjO,KBlIVi)and bjO or KBlIVi end end;return bjO end
+local function MGSnnzOI(OR8it1,GAqAsa,Oc_,Qj)
+for Ybp8=0,#OR8it1,GAqAsa do
+local ZmzyNm=S1wg_DG.slice(OR8it1,Ybp8+1,Ybp8+GAqAsa)
+if#ZmzyNm>0 then while(#ZmzyNm<GAqAsa and Qj)do
+ZmzyNm[#ZmzyNm+1]=Qj end;Oc_(ZmzyNm)end end end
+local function B0o5xpg7(akG0mUnS,iy,gc7SaW,FnbJWd2)
+for cpdLk=0,#akG0mUnS,iy-1 do
+local FbQX=S1wg_DG.slice(akG0mUnS,cpdLk+1,cpdLk+iy)if#FbQX>0 and cpdLk+1 <#akG0mUnS then while
+(#FbQX<iy and FnbJWd2)do FbQX[#FbQX+1]=FnbJWd2 end
+gc7SaW(FbQX)end end end
+local function VQT(ejMVLYZd,eS0X,XDQS4ASf,IiNU)
+for gUfudNUg=0,#ejMVLYZd,1 do
+local d3=S1wg_DG.slice(ejMVLYZd,gUfudNUg+1,gUfudNUg+eS0X)
+if#d3 >0 and gUfudNUg+eS0X<=#ejMVLYZd then while
+(#d3 <eS0X and IiNU)do d3[#d3+1]=IiNU end;XDQS4ASf(d3)end end end
+local function Id(gTOcAHv,vY_4HT1n,DzPbzg)if vY_4HT1n==0 then DzPbzg(gTOcAHv)end
+for UMD=1,vY_4HT1n do
+gTOcAHv[vY_4HT1n],gTOcAHv[UMD]=gTOcAHv[UMD],gTOcAHv[vY_4HT1n]Id(gTOcAHv,vY_4HT1n-1,DzPbzg)
+gTOcAHv[vY_4HT1n],gTOcAHv[UMD]=gTOcAHv[UMD],gTOcAHv[vY_4HT1n]end end;local function Ub(K3ZE7Ou)return K3ZE7Ou>=0 and 1 or-1 end
+local qJExeUn2=-1;S1wg_DG.operator={}
+S1wg_DG.operator.add=function(fBI,wMSY)return fBI+wMSY end
+S1wg_DG.operator.sub=function(_nD2rl,aVh8xSly)return _nD2rl-aVh8xSly end
+S1wg_DG.operator.mul=function(i,P_NNVDyt)return i*P_NNVDyt end
+S1wg_DG.operator.div=function(cVEyN,uj2AiF)return cVEyN/uj2AiF end
+S1wg_DG.operator.mod=function(W,lbHN2)return W%lbHN2 end
+S1wg_DG.operator.exp=function(PwgW3lfq,z)return PwgW3lfq^z end;S1wg_DG.operator.pow=S1wg_DG.operator.exp;S1wg_DG.operator.unm=function(K)return
+-K end
+S1wg_DG.operator.neg=S1wg_DG.operator.unm
+S1wg_DG.operator.floordiv=function(xx,aYb)return pS78Y(xx/aYb)end
+S1wg_DG.operator.intdiv=function(JM2,bmAjLT)return JM2 >=0 and pS78Y(JM2/bmAjLT)or
+VCD(JM2/bmAjLT)end
+S1wg_DG.operator.eq=function(eExYnwnh,XMBmJyiP)return eExYnwnh==XMBmJyiP end
+S1wg_DG.operator.neq=function(nowqEU6m,iKD8V)return nowqEU6m~=iKD8V end
+S1wg_DG.operator.lt=function(YtRS,A)return YtRS<A end
+S1wg_DG.operator.gt=function(mHJ,Q57BJ)return mHJ>Q57BJ end
+S1wg_DG.operator.le=function(vM,JeGCDX)return vM<=JeGCDX end
+S1wg_DG.operator.ge=function(A,UFZlp)return A>=UFZlp end
+S1wg_DG.operator.land=function(VsrKM,uhIq)return VsrKM and uhIq end
+S1wg_DG.operator.lor=function(EEOUzhy,hbrt)return EEOUzhy or hbrt end;S1wg_DG.operator.lnot=function(D)return not D end;S1wg_DG.operator.concat=function(Q,mRqle)return
+Q..mRqle end;S1wg_DG.operator.length=function(sBEZ8)return
+#sBEZ8 end
+S1wg_DG.operator.len=S1wg_DG.operator.length;function S1wg_DG.clear(WhHB0ygh)for rYSD0 in l(WhHB0ygh)do WhHB0ygh[rYSD0]=nil end
+return WhHB0ygh end
+function S1wg_DG.each(BIL5,GQLlkH,...)for aN4J2zRQ,eWca in l(BIL5)do
+GQLlkH(eWca,aN4J2zRQ,...)end end
+function S1wg_DG.eachi(AGUR2QK,FK,...)
+local _=S1wg_DG.sort(S1wg_DG.select(S1wg_DG.keys(AGUR2QK),S1wg_DG.isInteger))
+for YQZ729qQ,rZh2wG in kyWtqIf0(_)do FK(AGUR2QK[rZh2wG],rZh2wG,...)end end;function S1wg_DG.at(sef4eW6Q,...)local Z={}
+for UacO6D,FdnzjW in kyWtqIf0({...})do Z[#Z+1]=sef4eW6Q[FdnzjW]end;return Z end
+function S1wg_DG.adjust(o,lMAL,CpQ,...)
+if(
+o[lMAL]==nil)then zupvsz("key not existing in table")end;local L=S1wg_DG.clone(o)L[lMAL]=
+v(CpQ)=='function'and CpQ(L[lMAL],...)or CpQ;return L end
+function S1wg_DG.count(HnQS_Z,rib)
+if rib==nil then return S1wg_DG.size(HnQS_Z)end;local hgW2H5=0;for w,YT6wZ in l(HnQS_Z)do
+if S1wg_DG.isEqual(YT6wZ,rib)then hgW2H5=hgW2H5+1 end end;return hgW2H5 end
+function S1wg_DG.countf(VYv,gU,...)local hgW2H5=0;for JzG8W4Ya,dZ54oc in l(VYv)do
+if gU(dZ54oc,JzG8W4Ya,...)then hgW2H5=hgW2H5+1 end end;return hgW2H5 end
+function S1wg_DG.cycle(v_LoR,gRY)gRY=gRY or 1;if gRY<=0 then return S1wg_DG.noop end;local z,ad
+local Ui0Qa=0
while true do
return
-function()Ui0Qa=Ui0Qa and v(z,Ui0Qa)or v(z)
-g=not g and Ui0Qa or g;if ad then Itx=(Ui0Qa==g)and Itx+1 or Itx
-if Itx>ad then return end end;return z[Ui0Qa],Ui0Qa end end end
-function qxZa6ozV.map(JpoaGH,cyAcCT,...)local RCA={}
-for L46S,GKTYT in zupvsz(JpoaGH)do
-local hXSTz8FJ,C24r7o4G,b_4Q38cU=L46S,cyAcCT(GKTYT,L46S,...)
-RCA[b_4Q38cU and C24r7o4G or hXSTz8FJ]=b_4Q38cU or C24r7o4G end;return RCA end
-function qxZa6ozV.reduce(N,JbPw,j)for S,cg4FV7bl in zupvsz(N)do
-if j==nil then j=cg4FV7bl else j=JbPw(j,cg4FV7bl)end end;return j end
-function qxZa6ozV.reduceby(flf9sWX,uNoS,ZWoH9V08,RWo,...)return
-qxZa6ozV.reduce(qxZa6ozV.select(flf9sWX,ZWoH9V08,...),uNoS,RWo)end
-function qxZa6ozV.reduceRight(GWBQL,PCldTUn9,sO_)return
-qxZa6ozV.reduce(qxZa6ozV.reverse(GWBQL),PCldTUn9,sO_)end
-function qxZa6ozV.mapReduce(ALbdmINL,b,DUgF0E)local vGxJ6f={}
-for a4ga2I,syGyB_ in zupvsz(ALbdmINL)do vGxJ6f[a4ga2I]=not DUgF0E and syGyB_ or
-b(DUgF0E,syGyB_)DUgF0E=vGxJ6f[a4ga2I]end;return vGxJ6f end
-function qxZa6ozV.mapReduceRight(VO,J1r,iBcU3_7D)return
-qxZa6ozV.mapReduce(qxZa6ozV.reverse(VO),J1r,iBcU3_7D)end
-function qxZa6ozV.include(N,M4V)local _feve=(l6Sm5(M4V)=='function')and M4V or
-qxZa6ozV.isEqual;for OPz_7bk,H64aD in zupvsz(N)do if
-_feve(H64aD,M4V)then return true end end;return false end
-function qxZa6ozV.detect(ny7,QDj6GAX)
-local k6pXzd=
-(l6Sm5(QDj6GAX)=='function')and QDj6GAX or qxZa6ozV.isEqual
-for hsLwu,R in zupvsz(ny7)do if k6pXzd(R,QDj6GAX)then return hsLwu end end end
-function qxZa6ozV.where(JKZ,yHbsh)
-local d4z=qxZa6ozV.select(JKZ,function(i)
-for HyEk4lbh in zupvsz(yHbsh)do if i[HyEk4lbh]~=yHbsh[HyEk4lbh]then return
-false end end;return true end)return#d4z>0 and d4z or nil end
-function qxZa6ozV.findWhere(PhU,rWwbNge)
-local SKxD=qxZa6ozV.detect(PhU,function(o3uQKvJ)
-for vAZm in zupvsz(rWwbNge)do if
-rWwbNge[vAZm]~=o3uQKvJ[vAZm]then return false end end;return true end)return SKxD and PhU[SKxD]end
-function qxZa6ozV.select(q,fFuE,...)local KypMW={}for JJT4nKO,TFLF in zupvsz(q)do if fFuE(TFLF,JJT4nKO,...)then
-KypMW[#KypMW+1]=TFLF end end
-return KypMW end
-function qxZa6ozV.reject(hEoAa,PGN,...)local K2_kF5={}
-for YpimJ,Gg7Ttui in zupvsz(hEoAa)do if not PGN(Gg7Ttui,YpimJ,...)then
-K2_kF5[#K2_kF5+1]=Gg7Ttui end end;return K2_kF5 end
-function qxZa6ozV.all(_,EGeAf,...)for ymP,z5pHKyoa in zupvsz(_)do
-if not EGeAf(z5pHKyoa,ymP,...)then return false end end;return true end
-function qxZa6ozV.invoke(h,xwT,...)local y33ux={...}
+function()z=z and e(v_LoR,z)or e(v_LoR)
+ad=not ad and z or ad;if gRY then Ui0Qa=(z==ad)and Ui0Qa+1 or Ui0Qa
+if Ui0Qa>gRY then return end end;return v_LoR[z],z end end end
+function S1wg_DG.map(g,Itx,...)local JpoaGH={}for cyAcCT,RCA in l(g)do local L46S,GKTYT,hXSTz8FJ=cyAcCT,Itx(RCA,cyAcCT,...)
+JpoaGH[hXSTz8FJ and
+GKTYT or L46S]=hXSTz8FJ or GKTYT end
+return JpoaGH end;function S1wg_DG.reduce(C24r7o4G,b_4Q38cU,N)
+for JbPw,j in l(C24r7o4G)do if N==nil then N=j else N=b_4Q38cU(N,j)end end;return N end
+function S1wg_DG.reduceby(S,cg4FV7bl,flf9sWX,uNoS,...)return
+S1wg_DG.reduce(S1wg_DG.select(S,flf9sWX,...),cg4FV7bl,uNoS)end
+function S1wg_DG.reduceRight(ZWoH9V08,RWo,GWBQL)return
+S1wg_DG.reduce(S1wg_DG.reverse(ZWoH9V08),RWo,GWBQL)end
+function S1wg_DG.mapReduce(PCldTUn9,sO_,ALbdmINL)local b={}
+for DUgF0E,vGxJ6f in l(PCldTUn9)do b[DUgF0E]=not ALbdmINL and vGxJ6f or
+sO_(ALbdmINL,vGxJ6f)ALbdmINL=b[DUgF0E]end;return b end
+function S1wg_DG.mapReduceRight(a4ga2I,syGyB_,VO)return
+S1wg_DG.mapReduce(S1wg_DG.reverse(a4ga2I),syGyB_,VO)end
+function S1wg_DG.include(J1r,iBcU3_7D)local N=(v(iBcU3_7D)=='function')and iBcU3_7D or
+S1wg_DG.isEqual;for M4V,_feve in l(J1r)do if
+N(_feve,iBcU3_7D)then return true end end;return false end
+function S1wg_DG.detect(OPz_7bk,H64aD)
+local ny7=(v(H64aD)=='function')and H64aD or S1wg_DG.isEqual
+for QDj6GAX,k6pXzd in l(OPz_7bk)do if ny7(k6pXzd,H64aD)then return QDj6GAX end end end
+function S1wg_DG.where(hsLwu,R)
+local JKZ=S1wg_DG.select(hsLwu,function(yHbsh)for d4z in l(R)do
+if yHbsh[d4z]~=R[d4z]then return false end end;return true end)return#JKZ>0 and JKZ or nil end
+function S1wg_DG.findWhere(i,HyEk4lbh)
+local PhU=S1wg_DG.detect(i,function(rWwbNge)for SKxD in l(HyEk4lbh)do if HyEk4lbh[SKxD]~=rWwbNge[SKxD]then
+return false end end
+return true end)return PhU and i[PhU]end
+function S1wg_DG.select(o3uQKvJ,vAZm,...)local q={}for fFuE,KypMW in l(o3uQKvJ)do
+if vAZm(KypMW,fFuE,...)then q[#q+1]=KypMW end end;return q end
+function S1wg_DG.reject(JJT4nKO,TFLF,...)local hEoAa={}
+for PGN,K2_kF5 in l(JJT4nKO)do if not TFLF(K2_kF5,PGN,...)then
+hEoAa[#hEoAa+1]=K2_kF5 end end;return hEoAa end
+function S1wg_DG.all(YpimJ,Gg7Ttui,...)for _,EGeAf in l(YpimJ)do
+if not Gg7Ttui(EGeAf,_,...)then return false end end;return true end
+function S1wg_DG.invoke(ymP,z5pHKyoa,...)local h={...}
return
-qxZa6ozV.map(h,function(Ut)
-if(l6Sm5(Ut)=='table')then
-if Ut[xwT]then
+S1wg_DG.map(ymP,function(xwT)
+if(v(xwT)=='table')then
+if xwT[z5pHKyoa]then
if
-qxZa6ozV.isCallable(Ut[xwT])then return Ut[xwT](Ut,kyWtqIf0(y33ux))else return Ut[xwT]end else
-if qxZa6ozV.isCallable(xwT)then return xwT(Ut,kyWtqIf0(y33ux))end end elseif qxZa6ozV.isCallable(xwT)then return xwT(Ut,kyWtqIf0(y33ux))end end)end
-function qxZa6ozV.pluck(GOijBp,oUi)local b2a3={}for xer,SQHAAR in zupvsz(GOijBp)do if SQHAAR[oUi]then
-b2a3[#b2a3+1]=SQHAAR[oUi]end end;return b2a3 end
-function qxZa6ozV.max(qybRcP1,z,...)return B0o5xpg7(qybRcP1,hgW2H5,z,...)end
-function qxZa6ozV.min(N0NaR,FBfW,...)return B0o5xpg7(N0NaR,z5i2i,FBfW,...)end
-function qxZa6ozV.same(lnM4,_oDmX_)
+S1wg_DG.isCallable(xwT[z5pHKyoa])then return xwT[z5pHKyoa](xwT,hUL(h))else return xwT[z5pHKyoa]end else
+if S1wg_DG.isCallable(z5pHKyoa)then return z5pHKyoa(xwT,hUL(h))end end elseif S1wg_DG.isCallable(z5pHKyoa)then return z5pHKyoa(xwT,hUL(h))end end)end
+function S1wg_DG.pluck(y33ux,Ut)local GOijBp={}for oUi,b2a3 in l(y33ux)do if b2a3[Ut]then
+GOijBp[#GOijBp+1]=b2a3[Ut]end end;return GOijBp end
+function S1wg_DG.max(xer,SQHAAR,...)return z5i2i(xer,sf0,SQHAAR,...)end
+function S1wg_DG.min(qybRcP1,z,...)return z5i2i(qybRcP1,qxZa6ozV,z,...)end
+function S1wg_DG.same(N0NaR,FBfW)
return
-qxZa6ozV.all(lnM4,function(t)return qxZa6ozV.include(_oDmX_,t)end)and
-qxZa6ozV.all(_oDmX_,function(K)return qxZa6ozV.include(lnM4,K)end)end
-function qxZa6ozV.sort(ppm021I,ASUXhD)JdUtcU(ppm021I,ASUXhD)return ppm021I end
-function qxZa6ozV.sortBy(KCm,u,fDk)local gxYY=u or qxZa6ozV.identity
-if
-(l6Sm5(u)=='string')then gxYY=function(KCm)return KCm[u]end end;fDk=fDk or z5i2i
-JdUtcU(KCm,function(sVMxk,SyD)return fDk(gxYY(sVMxk),gxYY(SyD))end)return KCm end
-function qxZa6ozV.groupBy(v4,j7siW,...)local Hl={...}local AP060rq={}
-for DIEKD10,lLJ in zupvsz(v4)do
-local EicsS=j7siW(lLJ,DIEKD10,kyWtqIf0(Hl))if AP060rq[EicsS]then
-AP060rq[EicsS][#AP060rq[EicsS]+1]=lLJ else AP060rq[EicsS]={lLJ}end end;return AP060rq end
-function qxZa6ozV.countBy(JubU,L,...)local JKci={}
-for SsBe,o in zupvsz(JubU)do local ZOmcmO=L(o,SsBe,...)JKci[ZOmcmO]=(
-JKci[ZOmcmO]or 0)+1 end;return JKci end
-function qxZa6ozV.size(...)local _G19JrRB={...}local m0r3_J=_G19JrRB[1]return
+S1wg_DG.all(N0NaR,function(lnM4)return S1wg_DG.include(FBfW,lnM4)end)and
+S1wg_DG.all(FBfW,function(_oDmX_)return S1wg_DG.include(N0NaR,_oDmX_)end)end;function S1wg_DG.sort(tK,ppm021I)p(tK,ppm021I)return tK end
+function S1wg_DG.sortBy(ASUXhD,KCm,u)local fDk=KCm or
+S1wg_DG.identity;if(v(KCm)=='string')then
+fDk=function(ASUXhD)return ASUXhD[KCm]end end;u=u or qxZa6ozV
+p(ASUXhD,function(gxYY,sVMxk)return
+u(fDk(gxYY),fDk(sVMxk))end)return ASUXhD end
+function S1wg_DG.groupBy(SyD,v4,...)local j7siW={...}local Hl={}
+for AP060rq,DIEKD10 in l(SyD)do
+local lLJ=v4(DIEKD10,AP060rq,hUL(j7siW))if Hl[lLJ]then Hl[lLJ][#Hl[lLJ]+1]=DIEKD10 else
+Hl[lLJ]={DIEKD10}end end;return Hl end
+function S1wg_DG.countBy(EicsS,JubU,...)local L={}for JKci,SsBe in l(EicsS)do local o=JubU(SsBe,JKci,...)
+L[o]=(L[o]or 0)+1 end;return L end
+function S1wg_DG.size(...)local ZOmcmO={...}local _G19JrRB=ZOmcmO[1]return
-(l6Sm5(m0r3_J)=='table')and MGSnnzOI(_G19JrRB[1])or MGSnnzOI(_G19JrRB)end
-function qxZa6ozV.containsKeys(MLrs,hP5)for oqjhEZb0 in zupvsz(hP5)do
-if not MLrs[oqjhEZb0]then return false end end;return true end
-function qxZa6ozV.sameKeys(Pha,G)
-for MOrzq4 in zupvsz(Pha)do if not G[MOrzq4]then return false end end
-for bEMp in zupvsz(G)do if not Pha[bEMp]then return false end end;return true end
-function qxZa6ozV.sample(dd,MOQN,O)MOQN=MOQN or 1;if MOQN==0 then return{}end;if MOQN==1 then
-if O then S9TO(O)end;return{dd[pS78Y(1,#dd)]}end;return
-qxZa6ozV.slice(qxZa6ozV.shuffle(dd,O),1,MOQN)end
-function qxZa6ozV.sampleProb(FEpet,P,G)if G then S9TO(G)end;local EcLLM={}for wo,ur in Mw(FEpet)do if pS78Y()<P then
-EcLLM[#EcLLM+1]=ur end end;return EcLLM end
-function qxZa6ozV.shuffle(XTX,wc8hjKp1)if wc8hjKp1 then S9TO(wc8hjKp1)end;local f={}
-for Hjag,Yg in Mw(XTX)do local uc=RlMSrmdD(pS78Y()*
-Hjag)+1;f[Hjag]=f[uc]f[uc]=Yg end;return f end;function qxZa6ozV.toArray(...)return{...}end;function qxZa6ozV.find(bw,ad,EG344W)
-for MVlUhPEM=EG344W or 1,#bw do if
-qxZa6ozV.isEqual(bw[MVlUhPEM],ad)then return MVlUhPEM end end end;function qxZa6ozV.reverse(LT)
-local pfiWYrg={}
-for smnX9H6=#LT,1,-1 do pfiWYrg[#pfiWYrg+1]=LT[smnX9H6]end;return pfiWYrg end
-function qxZa6ozV.fill(FzRhHR,mMBxOoQa,xYSLIT,Eae7ILmk)Eae7ILmk=
-Eae7ILmk or qxZa6ozV.size(FzRhHR)for xYSLIT=xYSLIT or 1,Eae7ILmk
-do FzRhHR[xYSLIT]=mMBxOoQa end;return FzRhHR end
-function qxZa6ozV.zeros(Jy23ZRAA)return qxZa6ozV.fill({},0,1,Jy23ZRAA)end
-function qxZa6ozV.ones(V8IWw)return qxZa6ozV.fill({},1,1,V8IWw)end
-function qxZa6ozV.vector(uyYdf,K)return qxZa6ozV.fill({},uyYdf,1,K)end
-function qxZa6ozV.selectWhile(ZX,tbdC,...)local VaY3={}
-for HK7Mbgze,VXPfx in Mw(ZX)do if tbdC(VXPfx,HK7Mbgze,...)then VaY3[HK7Mbgze]=VXPfx else
-break end end;return VaY3 end
-function qxZa6ozV.dropWhile(j3Qk,X1,...)local GpruB;for r,V7YqV in Mw(j3Qk)do
-if not X1(V7YqV,r,...)then GpruB=r;break end end;if(GpruB==nil)then return{}end;return
-qxZa6ozV.rest(j3Qk,GpruB)end
-function qxZa6ozV.sortedIndex(JbvH7,Cqk9Luq,PeAP9X,vN5AF9)local j=PeAP9X or z5i2i;if(vN5AF9 ==true)then
-JdUtcU(JbvH7,j)end;for EOgmP=1,#JbvH7 do
-if not j(JbvH7[EOgmP],Cqk9Luq)then return EOgmP end end;return#JbvH7+1 end;function qxZa6ozV.indexOf(j,mJof)
-for yz1Kuwby=1,#j do if j[yz1Kuwby]==mJof then return yz1Kuwby end end end
-function qxZa6ozV.lastIndexOf(KVE6TG,YY)
-local r9=qxZa6ozV.indexOf(qxZa6ozV.reverse(KVE6TG),YY)if r9 then return#KVE6TG-r9+1 end end
-function qxZa6ozV.findIndex(mtUG,PFRuf,...)for KhK1gRj9=1,#mtUG do
-if PFRuf(mtUG[KhK1gRj9],KhK1gRj9,...)then return KhK1gRj9 end end end
-function qxZa6ozV.findLastIndex(Xgj,Ko,...)
-local A=qxZa6ozV.findIndex(qxZa6ozV.reverse(Xgj),Ko,...)if A then return#Xgj-A+1 end end;function qxZa6ozV.addTop(IU6Om,...)
-for sKIIqz,wmhARqEa in Mw({...})do lIpFkbLI(IU6Om,1,wmhARqEa)end;return IU6Om end;function qxZa6ozV.prepend(_RT3,...)return
-qxZa6ozV.append({...},_RT3)end
-function qxZa6ozV.push(V,...)local BTA={...}for QVEYENaX,gxqa in
-Mw({...})do V[#V+1]=gxqa end;return V end
-function qxZa6ozV.shift(q4,QyKi)QyKi=OV7(QyKi or 1,#q4)local _o3FE={}for n=1,QyKi do local WM=q4[1]
-_o3FE[#_o3FE+1]=WM;GQLN(q4,1)end;return kyWtqIf0(_o3FE)end
-function qxZa6ozV.unshift(zb8b,YBqeh)YBqeh=OV7(YBqeh or 1,#zb8b)local WRkIg={}
-for RH_vLUg=1,YBqeh do
-local aEH=zb8b[#zb8b]WRkIg[#WRkIg+1]=aEH;GQLN(zb8b)end;return kyWtqIf0(WRkIg)end
-function qxZa6ozV.pull(g20N7,...)
-for puZN,_Dy in Mw({...})do for MC=#g20N7,1,-1 do if qxZa6ozV.isEqual(g20N7[MC],_Dy)then
-GQLN(g20N7,MC)end end end;return g20N7 end
-function qxZa6ozV.removeRange(WOBSVeqF,A,vqW6)A=A or 1;vqW6=vqW6 or#WOBSVeqF;if A>vqW6 then
-S1wg_DG("start cannot be greater than finish.")end
-for R4oRlgh=vqW6,A,-1 do GQLN(WOBSVeqF,R4oRlgh)end;return WOBSVeqF end
-function qxZa6ozV.chunk(rBRXA,qfFSJN,...)local Va8fT08T,d778,aZT,ni9je9bJ={},0
-for uwwNE,X40cF in Mw(rBRXA)do
-ni9je9bJ=qfFSJN(X40cF,uwwNE,...)aZT=(aZT==nil)and ni9je9bJ or aZT
-d778=(
-(ni9je9bJ~=aZT)and(d778+1)or d778)if not Va8fT08T[d778]then Va8fT08T[d778]={rBRXA[uwwNE]}else
-Va8fT08T[d778][
-#Va8fT08T[d778]+1]=rBRXA[uwwNE]end;aZT=ni9je9bJ end;return Va8fT08T end
-function qxZa6ozV.slice(EW,asgq,IQybL1)local hYKT45={}for Rq7=asgq or 1,IQybL1 or#EW do
-hYKT45[#hYKT45+1]=EW[Rq7]end;return hYKT45 end
-function qxZa6ozV.first(LQ_EIcl,uaL)uaL=uaL or 1;local gujcrFp={}for ph06vXj=1,uaL do
-gujcrFp[ph06vXj]=LQ_EIcl[ph06vXj]end;return gujcrFp end
-function qxZa6ozV.initial(nH0LB4c,ALwJ9)local _X=#nH0LB4c;ALwJ9=
-ALwJ9 and _X- (OV7(ALwJ9,_X))or _X-1;local ruXMob={}for E=1,ALwJ9 do
-ruXMob[E]=nH0LB4c[E]end;return ruXMob end
-function qxZa6ozV.last(jcgjAE,BZmaGN)local HSav=#jcgjAE;BZmaGN=
-BZmaGN and HSav-OV7(BZmaGN-1,HSav-1)or 2;local sDjMr={}for biQX3Ut=BZmaGN,HSav do
-sDjMr[#sDjMr+1]=jcgjAE[biQX3Ut]end;return sDjMr end
-function qxZa6ozV.rest(BLEXN_,Ljc)local fpN7T={}for FNSk_=Ljc or 1,#BLEXN_ do
-fpN7T[#fpN7T+1]=BLEXN_[FNSk_]end;return fpN7T end;function qxZa6ozV.nth(LmE,pZTFVP)return LmE[pZTFVP]end
-function qxZa6ozV.compact(XL)
-local L5vC0Jx={}
-for vpONJ,A in zupvsz(XL)do if A then L5vC0Jx[#L5vC0Jx+1]=A end end;return L5vC0Jx end
-function qxZa6ozV.flatten(LN,dA14qP)dA14qP=dA14qP or false;local JcQc;local hDih6_D={}
-for QKbZ464i,F1TsZ in Mw(LN)do
+(v(_G19JrRB)=='table')and hgW2H5(ZOmcmO[1])or hgW2H5(ZOmcmO)end;function S1wg_DG.containsKeys(m0r3_J,MLrs)
+for hP5 in l(MLrs)do if not m0r3_J[hP5]then return false end end;return true end
+function S1wg_DG.sameKeys(oqjhEZb0,Pha)for G in
+l(oqjhEZb0)do if not Pha[G]then return false end end
+for MOrzq4 in l(Pha)do if not
+oqjhEZb0[MOrzq4]then return false end end;return true end
+function S1wg_DG.sample(bEMp,dd,MOQN)dd=dd or 1;if dd==0 then return{}end
+if dd==1 then
+if MOQN then GQLN(MOQN)end;return{bEMp[toXyq(1,#bEMp)]}end
+return S1wg_DG.slice(S1wg_DG.shuffle(bEMp,MOQN),1,dd)end
+function S1wg_DG.sampleProb(O,FEpet,P)if P then GQLN(P)end;local G={}for EcLLM,wo in kyWtqIf0(O)do if toXyq()<FEpet then
+G[#G+1]=wo end end;return G end
+function S1wg_DG.shuffle(ur,XTX)if XTX then GQLN(XTX)end;local wc8hjKp1={}for f,Hjag in kyWtqIf0(ur)do local Yg=
+pS78Y(toXyq()*f)+1;wc8hjKp1[f]=wc8hjKp1[Yg]
+wc8hjKp1[Yg]=Hjag end;return wc8hjKp1 end;function S1wg_DG.toArray(...)return{...}end;function S1wg_DG.find(uc,bw,ad)
+for EG344W=ad or 1,#uc do if
+S1wg_DG.isEqual(uc[EG344W],bw)then return EG344W end end end;function S1wg_DG.reverse(MVlUhPEM)
+local LT={}
+for pfiWYrg=#MVlUhPEM,1,-1 do LT[#LT+1]=MVlUhPEM[pfiWYrg]end;return LT end
+function S1wg_DG.fill(smnX9H6,FzRhHR,mMBxOoQa,xYSLIT)xYSLIT=
+xYSLIT or S1wg_DG.size(smnX9H6)for mMBxOoQa=mMBxOoQa or 1,xYSLIT do
+smnX9H6[mMBxOoQa]=FzRhHR end;return smnX9H6 end
+function S1wg_DG.zeros(Eae7ILmk)return S1wg_DG.fill({},0,1,Eae7ILmk)end
+function S1wg_DG.ones(Jy23ZRAA)return S1wg_DG.fill({},1,1,Jy23ZRAA)end
+function S1wg_DG.vector(V8IWw,uyYdf)return S1wg_DG.fill({},V8IWw,1,uyYdf)end
+function S1wg_DG.selectWhile(K,ZX,...)local tbdC={}for VaY3,HK7Mbgze in kyWtqIf0(K)do
+if ZX(HK7Mbgze,VaY3,...)then tbdC[VaY3]=HK7Mbgze else break end end;return tbdC end
+function S1wg_DG.dropWhile(VXPfx,j3Qk,...)local X1;for GpruB,r in kyWtqIf0(VXPfx)do
+if not j3Qk(r,GpruB,...)then X1=GpruB;break end end;if(X1 ==nil)then return{}end;return
+S1wg_DG.rest(VXPfx,X1)end
+function S1wg_DG.sortedIndex(V7YqV,JbvH7,Cqk9Luq,PeAP9X)local vN5AF9=Cqk9Luq or qxZa6ozV;if(PeAP9X==true)then
+p(V7YqV,vN5AF9)end;for j=1,#V7YqV do
+if not vN5AF9(V7YqV[j],JbvH7)then return j end end;return#V7YqV+1 end;function S1wg_DG.indexOf(EOgmP,j)
+for mJof=1,#EOgmP do if EOgmP[mJof]==j then return mJof end end end
+function S1wg_DG.lastIndexOf(yz1Kuwby,KVE6TG)
+local YY=S1wg_DG.indexOf(S1wg_DG.reverse(yz1Kuwby),KVE6TG)if YY then return#yz1Kuwby-YY+1 end end;function S1wg_DG.findIndex(r9,mtUG,...)
+for PFRuf=1,#r9 do if mtUG(r9[PFRuf],PFRuf,...)then return PFRuf end end end
+function S1wg_DG.findLastIndex(KhK1gRj9,Xgj,...)
+local Ko=S1wg_DG.findIndex(S1wg_DG.reverse(KhK1gRj9),Xgj,...)if Ko then return#KhK1gRj9-Ko+1 end end;function S1wg_DG.addTop(A,...)
+for IU6Om,sKIIqz in kyWtqIf0({...})do odpE(A,1,sKIIqz)end;return A end;function S1wg_DG.prepend(wmhARqEa,...)return
+S1wg_DG.append({...},wmhARqEa)end;function S1wg_DG.push(_RT3,...)
+local V={...}
+for BTA,QVEYENaX in kyWtqIf0({...})do _RT3[#_RT3+1]=QVEYENaX end;return _RT3 end
+function S1wg_DG.shift(gxqa,q4)q4=RlMSrmdD(
+q4 or 1,#gxqa)local QyKi={}for _o3FE=1,q4 do local n=gxqa[1]
+QyKi[#QyKi+1]=n;lIpFkbLI(gxqa,1)end;return hUL(QyKi)end
+function S1wg_DG.unshift(WM,zb8b)zb8b=RlMSrmdD(zb8b or 1,#WM)local YBqeh={}
+for WRkIg=1,zb8b do
+local RH_vLUg=WM[#WM]YBqeh[#YBqeh+1]=RH_vLUg;lIpFkbLI(WM)end;return hUL(YBqeh)end
+function S1wg_DG.pull(aEH,...)
+for g20N7,puZN in kyWtqIf0({...})do for _Dy=#aEH,1,-1 do if S1wg_DG.isEqual(aEH[_Dy],puZN)then
+lIpFkbLI(aEH,_Dy)end end end;return aEH end
+function S1wg_DG.removeRange(MC,WOBSVeqF,A)WOBSVeqF=WOBSVeqF or 1;A=A or#MC;if WOBSVeqF>A then
+zupvsz("start cannot be greater than finish.")end
+for vqW6=A,WOBSVeqF,-1 do lIpFkbLI(MC,vqW6)end;return MC end
+function S1wg_DG.chunk(R4oRlgh,rBRXA,...)local qfFSJN,Va8fT08T,d778,aZT={},0
+for ni9je9bJ,uwwNE in kyWtqIf0(R4oRlgh)do
+aZT=rBRXA(uwwNE,ni9je9bJ,...)d778=(d778 ==nil)and aZT or d778
+Va8fT08T=(
+(aZT~=d778)and(Va8fT08T+1)or Va8fT08T)if not qfFSJN[Va8fT08T]then
+qfFSJN[Va8fT08T]={R4oRlgh[ni9je9bJ]}else
+qfFSJN[Va8fT08T][#qfFSJN[Va8fT08T]+1]=R4oRlgh[ni9je9bJ]end;d778=aZT end;return qfFSJN end
+function S1wg_DG.slice(X40cF,EW,asgq)local IQybL1={}for hYKT45=EW or 1,asgq or#X40cF do
+IQybL1[#IQybL1+1]=X40cF[hYKT45]end;return IQybL1 end
+function S1wg_DG.first(Rq7,LQ_EIcl)LQ_EIcl=LQ_EIcl or 1;local uaL={}for gujcrFp=1,LQ_EIcl do
+uaL[gujcrFp]=Rq7[gujcrFp]end;return uaL end
+function S1wg_DG.initial(ph06vXj,nH0LB4c)local ALwJ9=#ph06vXj
+nH0LB4c=nH0LB4c and
+ALwJ9- (RlMSrmdD(nH0LB4c,ALwJ9))or ALwJ9-1;local _X={}for ruXMob=1,nH0LB4c do _X[ruXMob]=ph06vXj[ruXMob]end
+return _X end
+function S1wg_DG.last(E,jcgjAE)local BZmaGN=#E
+jcgjAE=jcgjAE and
+BZmaGN-RlMSrmdD(jcgjAE-1,BZmaGN-1)or 2;local HSav={}for sDjMr=jcgjAE,BZmaGN do HSav[#HSav+1]=E[sDjMr]end;return
+HSav end;function S1wg_DG.rest(biQX3Ut,BLEXN_)local Ljc={}
+for fpN7T=BLEXN_ or 1,#biQX3Ut do Ljc[#Ljc+1]=biQX3Ut[fpN7T]end;return Ljc end;function S1wg_DG.nth(FNSk_,LmE)return
+FNSk_[LmE]end
+function S1wg_DG.compact(pZTFVP)local XL={}for L5vC0Jx,vpONJ in l(pZTFVP)do if vpONJ then
+XL[#XL+1]=vpONJ end end;return XL end
+function S1wg_DG.flatten(A,LN)LN=LN or false;local dA14qP;local JcQc={}
+for hDih6_D,QKbZ464i in kyWtqIf0(A)do
+if v(QKbZ464i)=='table'then
+dA14qP=
+LN and QKbZ464i or S1wg_DG.flatten(QKbZ464i)for F1TsZ,uF2 in kyWtqIf0(dA14qP)do JcQc[#JcQc+1]=uF2 end else JcQc[
+#JcQc+1]=QKbZ464i end end;return JcQc end
+function S1wg_DG.difference(T,pC_)if not pC_ then return S1wg_DG.clone(T)end;return
+S1wg_DG.select(T,function(ju)return
+not S1wg_DG.include(pC_,ju)end)end;function S1wg_DG.union(...)
+return S1wg_DG.unique(S1wg_DG.flatten({...}))end
+function S1wg_DG.intersection(deu1,...)local IgZ6={...}local kVRiv3F={}for kWMf,DawC in
+kyWtqIf0(deu1)do
if
-l6Sm5(F1TsZ)=='table'then
-JcQc=dA14qP and F1TsZ or qxZa6ozV.flatten(F1TsZ)for uF2,T in Mw(JcQc)do hDih6_D[#hDih6_D+1]=T end else hDih6_D[#
-hDih6_D+1]=F1TsZ end end;return hDih6_D end
-function qxZa6ozV.difference(pC_,ju)if not ju then return qxZa6ozV.clone(pC_)end;return
-qxZa6ozV.select(pC_,function(deu1)return
-not qxZa6ozV.include(ju,deu1)end)end;function qxZa6ozV.union(...)
-return qxZa6ozV.unique(qxZa6ozV.flatten({...}))end
-function qxZa6ozV.intersection(IgZ6,...)local kVRiv3F={...}local kWMf={}
-for DawC,cP in
-Mw(IgZ6)do if
-qxZa6ozV.all(kVRiv3F,function(w)return qxZa6ozV.include(w,cP)end)then kWMf[#kWMf+1]=cP end end;return kWMf end
-function qxZa6ozV.symmetricDifference(UZ,tdH)return
-qxZa6ozV.difference(qxZa6ozV.union(UZ,tdH),qxZa6ozV.intersection(UZ,tdH))end
-function qxZa6ozV.unique(ymt)local WxGA={}
-for jBuHkH=1,#ymt do if
-not qxZa6ozV.find(WxGA,ymt[jBuHkH])then WxGA[#WxGA+1]=ymt[jBuHkH]end end;return WxGA end;function qxZa6ozV.isunique(E3)
-return#E3 ==# (qxZa6ozV.unique(E3))end
-function qxZa6ozV.zip(...)local CZi_zK={...}local _6KCMph=qxZa6ozV.max(CZi_zK,function(V)
-return#V end)local PY3VqYZ8={}
-for y=1,_6KCMph
-do if not PY3VqYZ8[y]then PY3VqYZ8[y]={}end;for QF,hN in Mw(CZi_zK)do
-if hN[y]then PY3VqYZ8[y][
-#PY3VqYZ8[y]+1]=hN[y]end end end;return PY3VqYZ8 end
-function qxZa6ozV.zipWith(hVflx4kh,...)local GP={...}
-local oCZYv2dT=qxZa6ozV.max(GP,function(PoH)return#PoH end)local RLaqM3={}for xM709D=1,oCZYv2dT do
-RLaqM3[xM709D]=hVflx4kh(kyWtqIf0(qxZa6ozV.pluck(GP,xM709D)))end;return RLaqM3 end
-function qxZa6ozV.append(z50,sAPD)local AVFi={}for GGKI,gWaGu in Mw(z50)do AVFi[GGKI]=gWaGu end;for SFKM,j6jQmlbr in
-Mw(sAPD)do AVFi[#AVFi+1]=j6jQmlbr end;return AVFi end
-function qxZa6ozV.interleave(...)local m403CY={...}
-local dL=qxZa6ozV.max(m403CY,qxZa6ozV.size)local PrTsHeT={}for eNI3MT7=1,dL do
-for Rfoo,eUJhGD in Mw(m403CY)do if eUJhGD[eNI3MT7]then
-PrTsHeT[#PrTsHeT+1]=eUJhGD[eNI3MT7]end end end;return PrTsHeT end;function qxZa6ozV.interpose(wot8,j9vJ)
-for J6Qr27Mh=#wot8,2,-1 do lIpFkbLI(wot8,J6Qr27Mh,j9vJ)end;return wot8 end
-function qxZa6ozV.range(AwxW8Do,_u,B)
-if(
-AwxW8Do==nil)and(_u==nil)and(B==nil)then return{}elseif(
-AwxW8Do~=nil)and(_u==nil)and(B==nil)then
-AwxW8Do,_u,B=cmWo_v(AwxW8Do),AwxW8Do,cmWo_v(AwxW8Do)elseif(AwxW8Do~=nil)and(_u~=nil)and(B==nil)then B=cmWo_v(_u-
-AwxW8Do)end;local cdxFVpZw={AwxW8Do}
-local Y=VCD(RlMSrmdD((_u-AwxW8Do)/B),0)
-for o9Uh=1,Y do cdxFVpZw[#cdxFVpZw+1]=AwxW8Do+B*o9Uh end;return cdxFVpZw end
-function qxZa6ozV.rep(BuX1r,Wyf83f2)local P0olj={}for z=1,Wyf83f2 do P0olj[z]=BuX1r end;return P0olj end
-function qxZa6ozV.powerset(EHCCkt)local x=#EHCCkt;if x==0 then return{{}}end;local xNWVmS={}
-for kGWnkgDu=1,x do for Pkis6H28=1,x-kGWnkgDu+1
-do
-xNWVmS[#xNWVmS+1]=qxZa6ozV.slice(EHCCkt,Pkis6H28,Pkis6H28+kGWnkgDu-1)end end;return xNWVmS end
-function qxZa6ozV.partition(tSE,abKH,LDp)if abKH<=0 then return end;return PizLA9mj(function()
-VQT(tSE,abKH or 1,hUL,LDp)end)end;function qxZa6ozV.overlapping(GWouUlzZ,MqJhIr,Q9)if MqJhIr<=1 then return end
-return PizLA9mj(function()
-Id(GWouUlzZ,MqJhIr or 2,hUL,Q9)end)end
-function qxZa6ozV.aperture(c,qnZ81I)if
-qnZ81I<=1 then return end;return
-PizLA9mj(function()Ub(c,qnZ81I or 2,hUL)end)end
-function qxZa6ozV.pairwise(N9uN)return qxZa6ozV.aperture(N9uN,2)end;function qxZa6ozV.permutation(QGC)return
-PizLA9mj(function()qJExeUn2(QGC,#QGC,hUL)end)end
-function qxZa6ozV.invert(K8iFU)
-local gbU={}for h,hS7 in Mw(K8iFU)do gbU[hS7]=h end;return gbU end
-function qxZa6ozV.concat(KQjMKhN,R6PYgHHE,ZwCXrLO,lI)return
-toXyq(qxZa6ozV.map(KQjMKhN,tostring),R6PYgHHE,ZwCXrLO,lI)end
-function qxZa6ozV.xprod(iMSMP5Lp,WoARZdZ3)local n={}for Uj,HpN_N in Mw(iMSMP5Lp)do
-for yP3QEJ,pwi in Mw(WoARZdZ3)do n[#n+1]={HpN_N,pwi}end end;return n end
-function qxZa6ozV.sum(QP)local Iy=0;for O9P0mj,eFGwPxi in Mw(QP)do Iy=Iy+eFGwPxi end;return Iy end;function qxZa6ozV.product(m4x8ZsD4)local _witc0Pe=1
-for Y8E,h in Mw(m4x8ZsD4)do _witc0Pe=_witc0Pe*h end;return _witc0Pe end
-function qxZa6ozV.mean(EnMMG)return
-qxZa6ozV.sum(EnMMG)/ (#EnMMG)end
-function qxZa6ozV.median(HzO7UpZ)
-local B=qxZa6ozV.sort(qxZa6ozV.clone(HzO7UpZ))local RNTu=#B;if RNTu==0 then return elseif RNTu==1 then return B[1]end
-local Q_=X83a(RNTu/2)return
-RNTu%2 ==0 and(B[Q_]+B[Q_+1])/2 or B[Q_]end;function qxZa6ozV.noop()return end;function qxZa6ozV.identity(S8GB)return S8GB end;function qxZa6ozV.constant(W7yjGm)return function()return
-W7yjGm end end
-function qxZa6ozV.applySpec(X)return
+S1wg_DG.all(IgZ6,function(cP)return S1wg_DG.include(cP,DawC)end)then kVRiv3F[#kVRiv3F+1]=DawC end end
+return kVRiv3F end
+function S1wg_DG.symmetricDifference(w,UZ)return
+S1wg_DG.difference(S1wg_DG.union(w,UZ),S1wg_DG.intersection(w,UZ))end
+function S1wg_DG.unique(tdH)local ymt={}for WxGA=1,#tdH do if not S1wg_DG.find(ymt,tdH[WxGA])then
+ymt[#ymt+1]=tdH[WxGA]end end;return
+ymt end;function S1wg_DG.isunique(jBuHkH)return
+#jBuHkH==# (S1wg_DG.unique(jBuHkH))end
+function S1wg_DG.zip(...)
+local E3={...}
+local CZi_zK=S1wg_DG.max(E3,function(PY3VqYZ8)return#PY3VqYZ8 end)local _6KCMph={}
+for V=1,CZi_zK do if not _6KCMph[V]then _6KCMph[V]={}end;for y,QF in kyWtqIf0(E3)do
+if
+QF[V]then _6KCMph[V][#_6KCMph[V]+1]=QF[V]end end end;return _6KCMph end
+function S1wg_DG.zipWith(hN,...)local hVflx4kh={...}
+local GP=S1wg_DG.max(hVflx4kh,function(RLaqM3)return#RLaqM3 end)local oCZYv2dT={}for PoH=1,GP do
+oCZYv2dT[PoH]=hN(hUL(S1wg_DG.pluck(hVflx4kh,PoH)))end;return oCZYv2dT end
+function S1wg_DG.append(xM709D,z50)local sAPD={}
+for AVFi,GGKI in kyWtqIf0(xM709D)do sAPD[AVFi]=GGKI end;for gWaGu,SFKM in kyWtqIf0(z50)do sAPD[#sAPD+1]=SFKM end
+return sAPD end
+function S1wg_DG.interleave(...)local j6jQmlbr={...}
+local m403CY=S1wg_DG.max(j6jQmlbr,S1wg_DG.size)local dL={}
+for PrTsHeT=1,m403CY do for eNI3MT7,Rfoo in kyWtqIf0(j6jQmlbr)do
+if Rfoo[PrTsHeT]then dL[#dL+1]=Rfoo[PrTsHeT]end end end;return dL end;function S1wg_DG.interpose(eUJhGD,wot8)
+for j9vJ=#eUJhGD,2,-1 do odpE(eUJhGD,j9vJ,wot8)end;return eUJhGD end
+function S1wg_DG.range(J6Qr27Mh,AwxW8Do,_u)
+if
+(
+J6Qr27Mh==nil)and(AwxW8Do==nil)and(_u==nil)then return{}elseif
+(J6Qr27Mh~=nil)and(AwxW8Do==nil)and(_u==nil)then J6Qr27Mh,AwxW8Do,_u=Ub(J6Qr27Mh),J6Qr27Mh,Ub(J6Qr27Mh)elseif
+(J6Qr27Mh~=nil)and(AwxW8Do~=nil)and(_u==nil)then _u=Ub(AwxW8Do-
+J6Qr27Mh)end;local B={J6Qr27Mh}
+local cdxFVpZw=BCf7(pS78Y((AwxW8Do-J6Qr27Mh)/_u),0)for Y=1,cdxFVpZw do B[#B+1]=J6Qr27Mh+_u*Y end;return B end;function S1wg_DG.rep(o9Uh,BuX1r)local Wyf83f2={}for P0olj=1,BuX1r do Wyf83f2[P0olj]=o9Uh end
+return Wyf83f2 end
+function S1wg_DG.powerset(z)
+local EHCCkt=#z;if EHCCkt==0 then return{{}}end;local x={}for xNWVmS=1,EHCCkt do
+for kGWnkgDu=1,EHCCkt-xNWVmS+1 do x[#x+1]=S1wg_DG.slice(z,kGWnkgDu,
+kGWnkgDu+xNWVmS-1)end end;return x end;function S1wg_DG.partition(Pkis6H28,tSE,abKH)if tSE<=0 then return end
+return OV7(function()
+MGSnnzOI(Pkis6H28,tSE or 1,X83a,abKH)end)end;function S1wg_DG.overlapping(LDp,GWouUlzZ,MqJhIr)if
+GWouUlzZ<=1 then return end
+return OV7(function()
+B0o5xpg7(LDp,GWouUlzZ or 2,X83a,MqJhIr)end)end;function S1wg_DG.aperture(Q9,c)if
+c<=1 then return end;return
+OV7(function()VQT(Q9,c or 2,X83a)end)end;function S1wg_DG.pairwise(qnZ81I)return
+S1wg_DG.aperture(qnZ81I,2)end
+function S1wg_DG.permutation(N9uN)return OV7(function()
+Id(N9uN,#N9uN,X83a)end)end;function S1wg_DG.invert(QGC)local K8iFU={}for gbU,h in kyWtqIf0(QGC)do K8iFU[h]=gbU end
+return K8iFU end
+function S1wg_DG.concat(hS7,KQjMKhN,R6PYgHHE,ZwCXrLO)return
+JdUtcU(S1wg_DG.map(hS7,tostring),KQjMKhN,R6PYgHHE,ZwCXrLO)end
+function S1wg_DG.xprod(lI,iMSMP5Lp)local WoARZdZ3={}
+for n,Uj in kyWtqIf0(lI)do for HpN_N,yP3QEJ in kyWtqIf0(iMSMP5Lp)do
+WoARZdZ3[#WoARZdZ3+1]={Uj,yP3QEJ}end end;return WoARZdZ3 end
+function S1wg_DG.sum(pwi)local QP=0;for Iy,O9P0mj in kyWtqIf0(pwi)do QP=QP+O9P0mj end;return QP end
+function S1wg_DG.product(eFGwPxi)local m4x8ZsD4=1
+for _witc0Pe,Y8E in kyWtqIf0(eFGwPxi)do m4x8ZsD4=m4x8ZsD4*Y8E end;return m4x8ZsD4 end
+function S1wg_DG.mean(h)return S1wg_DG.sum(h)/ (#h)end
+function S1wg_DG.median(EnMMG)
+local HzO7UpZ=S1wg_DG.sort(S1wg_DG.clone(EnMMG))local B=#HzO7UpZ;if B==0 then return elseif B==1 then return HzO7UpZ[1]end
+local RNTu=VCD(B/2)
+return B%2 ==0 and
+(HzO7UpZ[RNTu]+HzO7UpZ[RNTu+1])/2 or HzO7UpZ[RNTu]end;function S1wg_DG.noop()return end;function S1wg_DG.identity(Q_)return Q_ end;function S1wg_DG.constant(S8GB)return function()return
+S8GB end end
+function S1wg_DG.applySpec(W7yjGm)return
function(...)
-local Y={}for qqvEf3,Wriu in zupvsz(X)do Y[qqvEf3]=Wriu(...)end;return Y end end
-function qxZa6ozV.memoize(I0Pxr5F)local ukGf_=odpE({},{__mode='kv'})
-return function(uZpt01P)if
-(ukGf_[uZpt01P]==nil)then ukGf_[uZpt01P]=I0Pxr5F(uZpt01P)end;return
-ukGf_[uZpt01P]end end
-function qxZa6ozV.unfold(hJk0n8bR,o9DTTJig)local v4,Uaq2_Xzk={}
-while true do Uaq2_Xzk,o9DTTJig=hJk0n8bR(o9DTTJig)if
-Uaq2_Xzk~=nil then v4[#v4+1]=Uaq2_Xzk else break end end;return v4 end
-function qxZa6ozV.once(S0DM)local GHasi5=0;local QeX_U9tm={}return
-function(...)GHasi5=GHasi5+1
-if GHasi5 <=1 then QeX_U9tm={...}end;return S0DM(kyWtqIf0(QeX_U9tm))end end
-function qxZa6ozV.before(Dp9m,MGSnnzOI)local sJjNM=0;local GnSs={}return
-function(...)sJjNM=sJjNM+1
-if sJjNM<=MGSnnzOI then GnSs={...}end;return Dp9m(kyWtqIf0(GnSs))end end
-function qxZa6ozV.after(XP,MGSnnzOI)local Sj,yKj1=MGSnnzOI,0;return function(...)yKj1=yKj1+1
-if yKj1 >=Sj then return XP(...)end end end
-function qxZa6ozV.compose(...)local F9WZ=qxZa6ozV.reverse{...}
-return function(...)local A5,nY_O=true
-for QAJAyj5,EZ in Mw(F9WZ)do if A5 then
-A5=false;nY_O=EZ(...)else nY_O=EZ(nY_O)end end;return nY_O end end
-function qxZa6ozV.pipe(n,...)return qxZa6ozV.compose(...)(n)end
-function qxZa6ozV.complement(M)return function(...)return not M(...)end end
-function qxZa6ozV.juxtapose(AADiL1,...)local Arw={}
-for b,_ZM1Yj3 in Mw({...})do Arw[b]=_ZM1Yj3(AADiL1)end;return kyWtqIf0(Arw)end;function qxZa6ozV.wrap(rmSU,L2RHrI)
-return function(...)return L2RHrI(rmSU,...)end end
-function qxZa6ozV.times(XW7Y5Rz,C,...)local NhwEkTd={}for XGz=1,(C or 1)do
-NhwEkTd[XGz]=XW7Y5Rz(XGz,...)end;return NhwEkTd end;function qxZa6ozV.bind(Tf4P2eIf,TF3Htu)
-return function(...)return Tf4P2eIf(TF3Htu,...)end end
-function qxZa6ozV.bind2(K5yUw1t,Mi)return function(WWyrqnSL,...)return
-K5yUw1t(WWyrqnSL,Mi,...)end end;function qxZa6ozV.bindn(gVTyP,...)local Ck={...}
-return function(...)return
-gVTyP(kyWtqIf0(qxZa6ozV.append(Ck,{...})))end end
-function qxZa6ozV.bindall(CRG,...)
-local dkz={...}
-for zrCq,azXMvVdM in Mw(dkz)do local CBgxHfbq=CRG[azXMvVdM]if CBgxHfbq then
-CRG[azXMvVdM]=qxZa6ozV.bind(CBgxHfbq,CRG)end end;return CRG end
-function qxZa6ozV.cond(WO)return
-function(...)for H,C28NuJ3 in Mw(WO)do
-if C28NuJ3[1](...)then return C28NuJ3[2](...)end end end end
-function qxZa6ozV.uniqueId(sz,...)RoXZEsn=RoXZEsn+1;if sz then
-if l6Sm5(sz)=='string'then
-return sz:format(RoXZEsn)elseif l6Sm5(sz)=='function'then return sz(RoXZEsn,...)end end;return RoXZEsn end
-function qxZa6ozV.iterator(qH,u,uJ1Vn4uYP)local MGSnnzOI=0;return
-function()MGSnnzOI=MGSnnzOI+1;if
-uJ1Vn4uYP and MGSnnzOI>uJ1Vn4uYP then return end;u=qH(u)return u end end
-function qxZa6ozV.array(...)local Z={}for pJ in...do Z[#Z+1]=pJ end;return Z end;function qxZa6ozV.castArray(NAjg)return
-(l6Sm5(NAjg)~='table')and{NAjg}or NAjg end;function qxZa6ozV.flip(con)
+local X={}for Y,qqvEf3 in l(W7yjGm)do X[Y]=qqvEf3(...)end;return X end end
+function S1wg_DG.memoize(Wriu)local I0Pxr5F=oUA({},{__mode='kv'})
+return function(ukGf_)if
+(I0Pxr5F[ukGf_]==nil)then I0Pxr5F[ukGf_]=Wriu(ukGf_)end;return
+I0Pxr5F[ukGf_]end end
+function S1wg_DG.unfold(uZpt01P,hJk0n8bR)local o9DTTJig,v4={}
+while true do v4,hJk0n8bR=uZpt01P(hJk0n8bR)if v4 ~=nil then o9DTTJig[
+#o9DTTJig+1]=v4 else break end end;return o9DTTJig end
+function S1wg_DG.once(Uaq2_Xzk)local S0DM=0;local GHasi5={}
+return function(...)S0DM=S0DM+1;if S0DM<=1 then GHasi5={...}end;return
+Uaq2_Xzk(hUL(GHasi5))end end
+function S1wg_DG.before(QeX_U9tm,hgW2H5)local Dp9m=0;local sJjNM={}return
+function(...)Dp9m=Dp9m+1
+if Dp9m<=hgW2H5 then sJjNM={...}end;return QeX_U9tm(hUL(sJjNM))end end
+function S1wg_DG.after(GnSs,hgW2H5)local XP,Sj=hgW2H5,0;return
+function(...)Sj=Sj+1;if Sj>=XP then return GnSs(...)end end end
+function S1wg_DG.compose(...)local yKj1=S1wg_DG.reverse{...}
+return
+function(...)local F9WZ,A5=true;for nY_O,QAJAyj5 in
+kyWtqIf0(yKj1)do
+if F9WZ then F9WZ=false;A5=QAJAyj5(...)else A5=QAJAyj5(A5)end end;return A5 end end
+function S1wg_DG.pipe(EZ,...)return S1wg_DG.compose(...)(EZ)end
+function S1wg_DG.complement(n)return function(...)return not n(...)end end
+function S1wg_DG.juxtapose(M,...)local AADiL1={}
+for Arw,b in kyWtqIf0({...})do AADiL1[Arw]=b(M)end;return hUL(AADiL1)end;function S1wg_DG.wrap(_ZM1Yj3,rmSU)
+return function(...)return rmSU(_ZM1Yj3,...)end end;function S1wg_DG.times(L2RHrI,XW7Y5Rz,...)local C={}for NhwEkTd=1,(XW7Y5Rz or 1)
+do C[NhwEkTd]=L2RHrI(NhwEkTd,...)end
+return C end
+function S1wg_DG.bind(XGz,Tf4P2eIf)return function(...)return
+XGz(Tf4P2eIf,...)end end;function S1wg_DG.bind2(TF3Htu,K5yUw1t)
+return function(Mi,...)return TF3Htu(Mi,K5yUw1t,...)end end;function S1wg_DG.bindn(WWyrqnSL,...)local gVTyP={...}
return function(...)return
-con(kyWtqIf0(qxZa6ozV.reverse({...})))end end;function qxZa6ozV.nthArg(I)
+WWyrqnSL(hUL(S1wg_DG.append(gVTyP,{...})))end end
+function S1wg_DG.bindall(Ck,...)
+local CRG={...}
+for dkz,zrCq in kyWtqIf0(CRG)do local azXMvVdM=Ck[zrCq]if azXMvVdM then
+Ck[zrCq]=S1wg_DG.bind(azXMvVdM,Ck)end end;return Ck end;function S1wg_DG.cond(CBgxHfbq)
return function(...)
-local TxmZR6UE={...}return
-TxmZR6UE[(I<0)and(#TxmZR6UE+I+1)or I]end end;function qxZa6ozV.unary(I1b4o)
+for WO,H in kyWtqIf0(CBgxHfbq)do if H[1](...)then return H[2](...)end end end end
+function S1wg_DG.uniqueId(C28NuJ3,...)qJExeUn2=
+qJExeUn2+1;if C28NuJ3 then
+if v(C28NuJ3)=='string'then
+return C28NuJ3:format(qJExeUn2)elseif v(C28NuJ3)=='function'then return C28NuJ3(qJExeUn2,...)end end;return
+qJExeUn2 end
+function S1wg_DG.iterator(sz,qH,u)local uJ1Vn4uYP=0
+return function()uJ1Vn4uYP=uJ1Vn4uYP+1
+if u and uJ1Vn4uYP>u then return end;qH=sz(qH)return qH end end
+function S1wg_DG.array(...)local Z={}for pJ in...do Z[#Z+1]=pJ end;return Z end;function S1wg_DG.castArray(NAjg)return
+(v(NAjg)~='table')and{NAjg}or NAjg end;function S1wg_DG.flip(con)
+return function(...)return
+con(hUL(S1wg_DG.reverse({...})))end end;function S1wg_DG.nthArg(I)
+return function(...)local TxmZR6UE={...}return
+TxmZR6UE[(
+I<0)and(#TxmZR6UE+I+1)or I]end end;function S1wg_DG.unary(I1b4o)
return function(...)
local nAt={...}return I1b4o(nAt[1])end end
-function qxZa6ozV.ary(pNJ,RQ)RQ=RQ or 1
+function S1wg_DG.ary(pNJ,RQ)RQ=RQ or 1
return function(...)
-local wnZcHKf={...}local Lv_8={}for UQ=1,RQ do Lv_8[UQ]=wnZcHKf[UQ]end;return
-pNJ(kyWtqIf0(Lv_8))end end
-function qxZa6ozV.rearg(FG,vLzqjJw)return
+local wnZcHKf={...}local Lv_8={}for UQ=1,RQ do Lv_8[UQ]=wnZcHKf[UQ]end
+return pNJ(hUL(Lv_8))end end
+function S1wg_DG.rearg(FG,vLzqjJw)return
function(...)local v2dsC21={...}local O={}
-for wx,u in Mw(vLzqjJw)do O[wx]=v2dsC21[u]end;return FG(kyWtqIf0(O))end end
-function qxZa6ozV.over(...)local V_84V={...}
-return function(...)local qF={}
-for IZbOX7TW,Dd6ZLpU in Mw(V_84V)do qF[#qF+1]=Dd6ZLpU(...)end;return qF end end
-function qxZa6ozV.overEvery(...)local MP=qxZa6ozV.over(...)
+for wx,u in kyWtqIf0(vLzqjJw)do O[wx]=v2dsC21[u]end;return FG(hUL(O))end end
+function S1wg_DG.over(...)local V_84V={...}return
+function(...)local qF={}for IZbOX7TW,Dd6ZLpU in kyWtqIf0(V_84V)do
+qF[#qF+1]=Dd6ZLpU(...)end;return qF end end
+function S1wg_DG.overEvery(...)local MP=S1wg_DG.over(...)
return function(...)
-return qxZa6ozV.reduce(MP(...),function(w4c,C58)
+return S1wg_DG.reduce(MP(...),function(w4c,C58)
return w4c and C58 end)end end
-function qxZa6ozV.overSome(...)local Jk6Nh=qxZa6ozV.over(...)
+function S1wg_DG.overSome(...)local Jk6Nh=S1wg_DG.over(...)
return function(...)
-return qxZa6ozV.reduce(Jk6Nh(...),function(s1Ws,desLYv)return
+return S1wg_DG.reduce(Jk6Nh(...),function(s1Ws,desLYv)return
s1Ws or desLYv end)end end
-function qxZa6ozV.overArgs(COq2NY9I,...)local aoBEg65S={...}
+function S1wg_DG.overArgs(COq2NY9I,...)local aoBEg65S={...}
return
-function(...)local x6={...}for t3cNa2l=1,#aoBEg65S do
-local COq2NY9I=aoBEg65S[t3cNa2l]
-if x6[t3cNa2l]then x6[t3cNa2l]=COq2NY9I(x6[t3cNa2l])end end;return
-COq2NY9I(kyWtqIf0(x6))end end
-function qxZa6ozV.converge(Ik,SeHOs,P2rGsUx)return
-function(...)return Ik(SeHOs(...),P2rGsUx(...))end end
-function qxZa6ozV.partial(c,...)local v12AhMm={...}
+function(...)local x6={...}
+for t3cNa2l=1,#aoBEg65S do local Ik=aoBEg65S[t3cNa2l]if
+x6[t3cNa2l]then x6[t3cNa2l]=Ik(x6[t3cNa2l])end end;return COq2NY9I(hUL(x6))end end
+function S1wg_DG.converge(SeHOs,P2rGsUx,c)return
+function(...)return SeHOs(P2rGsUx(...),c(...))end end
+function S1wg_DG.partial(v12AhMm,...)local F2uxGC={...}
return
-function(...)local F2uxGC={...}local Xs0={}for QK8ibF,TEio7k0z in Mw(v12AhMm)do
-Xs0[QK8ibF]=
-(TEio7k0z=='_')and qxZa6ozV.shift(F2uxGC)or TEio7k0z end;return
-c(kyWtqIf0(qxZa6ozV.append(Xs0,F2uxGC)))end end
-function qxZa6ozV.partialRight(u,...)local N={...}
+function(...)local Xs0={...}local QK8ibF={}for TEio7k0z,u in kyWtqIf0(F2uxGC)do
+QK8ibF[TEio7k0z]=(u==
+'_')and S1wg_DG.shift(Xs0)or u end;return
+v12AhMm(hUL(S1wg_DG.append(QK8ibF,Xs0)))end end
+function S1wg_DG.partialRight(N,...)local O2YgxDc={...}
return
-function(...)local O2YgxDc={...}local VLsC67={}for OHw4=1,#N do
-VLsC67[OHw4]=
-(N[OHw4]=='_')and qxZa6ozV.shift(O2YgxDc)or N[OHw4]end;return
-u(kyWtqIf0(qxZa6ozV.append(O2YgxDc,VLsC67)))end end
-function qxZa6ozV.curry(FKZ,Fl)Fl=Fl or 2;local QhS8FvKI={}
-local function FaZIJL(sOT2O5)if Fl==1 then return FKZ(sOT2O5)end
-if sOT2O5 ~=
-nil then QhS8FvKI[#QhS8FvKI+1]=sOT2O5 end
-if#QhS8FvKI<Fl then return FaZIJL else
-local x={FKZ(kyWtqIf0(QhS8FvKI))}QhS8FvKI={}return kyWtqIf0(x)end end;return FaZIJL end;function qxZa6ozV.time(Wswd_OC,...)local E=sf0()local A0Un={Wswd_OC(...)}
-return sf0()-E,kyWtqIf0(A0Un)end
-function qxZa6ozV.keys(nRHrI)local k={}for Zp in
-zupvsz(nRHrI)do k[#k+1]=Zp end;return k end;function qxZa6ozV.values(A)local _L_={}for WHpm,g in zupvsz(A)do _L_[#_L_+1]=g end
-return _L_ end
-function qxZa6ozV.path(HiR3yiw,...)
-local KeKbiDqN,WfrZqHH8=HiR3yiw,{...}for YX9s9O,y64dF in Mw(WfrZqHH8)do if(KeKbiDqN[y64dF]==nil)then return end
-KeKbiDqN=KeKbiDqN[y64dF]end;return KeKbiDqN end;function qxZa6ozV.kvpairs(sNSsH)local K={}
-for o8T,xeP in zupvsz(sNSsH)do K[#K+1]={o8T,xeP}end;return K end
-function qxZa6ozV.toObj(Tv_3VlmX)
-local BT={}for _y3z,rdl in Mw(Tv_3VlmX)do BT[rdl[1]]=rdl[2]end;return BT end;function qxZa6ozV.property(NAP_5jYs)
-return function(BZnlpW)return BZnlpW[NAP_5jYs]end end
-function qxZa6ozV.propertyOf(isN)return function(yRADzw1v)
-return isN[yRADzw1v]end end;function qxZa6ozV.toBoolean(Jafp)return not not Jafp end
-function qxZa6ozV.extend(XWh8Ee,...)
-local kpezL1e={...}for h,R7yfz_l9 in Mw(kpezL1e)do
-if l6Sm5(R7yfz_l9)=='table'then for D35PFLu,wK in zupvsz(R7yfz_l9)do
-XWh8Ee[D35PFLu]=wK end end end;return XWh8Ee end
-function qxZa6ozV.functions(qeEwE,cbtvFnSa)qeEwE=qeEwE or qxZa6ozV;local fYKH_={}
-for W,o in zupvsz(qeEwE)do if
-l6Sm5(o)=='function'then fYKH_[#fYKH_+1]=W end end
-if cbtvFnSa then local Mm99M=p(qeEwE)
-if Mm99M and Mm99M.__index then
-local l6YH=qxZa6ozV.functions(Mm99M.__index,cbtvFnSa)for gf2,F744Ew in Mw(l6YH)do fYKH_[#fYKH_+1]=F744Ew end end end;return fYKH_ end
-function qxZa6ozV.clone(zgxKF4,UlvVvSBR)if l6Sm5(zgxKF4)~='table'then return zgxKF4 end
-local i2i={}
-for uRGAL,UUlqXyb6 in zupvsz(zgxKF4)do
-if l6Sm5(UUlqXyb6)=='table'then if not UlvVvSBR then
-i2i[uRGAL]=qxZa6ozV.clone(UUlqXyb6,UlvVvSBR)else i2i[uRGAL]=UUlqXyb6 end else
-i2i[uRGAL]=UUlqXyb6 end end;return i2i end
-function qxZa6ozV.tap(fOR92g8,jU26,...)jU26(fOR92g8,...)return fOR92g8 end
-function qxZa6ozV.has(WIPTsAPz,DgUx8)return WIPTsAPz[DgUx8]~=nil end
-function qxZa6ozV.pick(imac,...)local xX=qxZa6ozV.flatten{...}local Mfb6Kb={}for RRjV,TDOaFo in zupvsz(xX)do
+function(...)local VLsC67={...}local OHw4={}
+for FKZ=1,#O2YgxDc do OHw4[FKZ]=(O2YgxDc[FKZ]==
+'_')and S1wg_DG.shift(VLsC67)or
+O2YgxDc[FKZ]end
+return N(hUL(S1wg_DG.append(VLsC67,OHw4)))end end
+function S1wg_DG.curry(Fl,QhS8FvKI)QhS8FvKI=QhS8FvKI or 2;local FaZIJL={}
+local function sOT2O5(x)
+if QhS8FvKI==1 then return Fl(x)end;if x~=nil then FaZIJL[#FaZIJL+1]=x end;if
+#FaZIJL<QhS8FvKI then return sOT2O5 else local Wswd_OC={Fl(hUL(FaZIJL))}FaZIJL={}
+return hUL(Wswd_OC)end end;return sOT2O5 end
+function S1wg_DG.time(E,...)local A0Un=Mw()local nRHrI={E(...)}return Mw()-A0Un,hUL(nRHrI)end
+function S1wg_DG.keys(k)local Zp={}for A in l(k)do Zp[#Zp+1]=A end;return Zp end;function S1wg_DG.values(_L_)local WHpm={}
+for g,HiR3yiw in l(_L_)do WHpm[#WHpm+1]=HiR3yiw end;return WHpm end
+function S1wg_DG.path(KeKbiDqN,...)
+local WfrZqHH8,YX9s9O=KeKbiDqN,{...}for y64dF,sNSsH in kyWtqIf0(YX9s9O)do if(WfrZqHH8[sNSsH]==nil)then return end
+WfrZqHH8=WfrZqHH8[sNSsH]end;return WfrZqHH8 end;function S1wg_DG.kvpairs(K)local o8T={}
+for xeP,Tv_3VlmX in l(K)do o8T[#o8T+1]={xeP,Tv_3VlmX}end;return o8T end;function S1wg_DG.toObj(BT)
+local _y3z={}
+for rdl,NAP_5jYs in kyWtqIf0(BT)do _y3z[NAP_5jYs[1]]=NAP_5jYs[2]end;return _y3z end
+function S1wg_DG.property(BZnlpW)return function(isN)return
+isN[BZnlpW]end end;function S1wg_DG.propertyOf(yRADzw1v)
+return function(Jafp)return yRADzw1v[Jafp]end end;function S1wg_DG.toBoolean(XWh8Ee)
+return not not XWh8Ee end
+function S1wg_DG.extend(kpezL1e,...)local h={...}for R7yfz_l9,D35PFLu in kyWtqIf0(h)do
if
-(imac[TDOaFo])~=nil then Mfb6Kb[TDOaFo]=imac[TDOaFo]end end;return Mfb6Kb end
-function qxZa6ozV.omit(tLo4,...)local m72l=qxZa6ozV.flatten{...}local npM3DSU={}for HGp4e1,uzJt7E in zupvsz(tLo4)do
+v(D35PFLu)=='table'then for wK,qeEwE in l(D35PFLu)do kpezL1e[wK]=qeEwE end end end;return kpezL1e end
+function S1wg_DG.functions(cbtvFnSa,fYKH_)cbtvFnSa=cbtvFnSa or S1wg_DG;local W={}for o,Mm99M in l(cbtvFnSa)do if
+v(Mm99M)=='function'then W[#W+1]=o end end
+if fYKH_ then
+local l6YH=QFKEzBf(cbtvFnSa)
+if l6YH and l6YH.__index then
+local gf2=S1wg_DG.functions(l6YH.__index,fYKH_)for F744Ew,zgxKF4 in kyWtqIf0(gf2)do W[#W+1]=zgxKF4 end end end;return W end
+function S1wg_DG.clone(UlvVvSBR,i2i)if v(UlvVvSBR)~='table'then return UlvVvSBR end
+local uRGAL={}
+for UUlqXyb6,fOR92g8 in l(UlvVvSBR)do if v(fOR92g8)=='table'then if not i2i then
+uRGAL[UUlqXyb6]=S1wg_DG.clone(fOR92g8,i2i)else uRGAL[UUlqXyb6]=fOR92g8 end else
+uRGAL[UUlqXyb6]=fOR92g8 end end;return uRGAL end
+function S1wg_DG.tap(jU26,WIPTsAPz,...)WIPTsAPz(jU26,...)return jU26 end;function S1wg_DG.has(DgUx8,imac)return DgUx8[imac]~=nil end
+function S1wg_DG.pick(xX,...)
+local Mfb6Kb=S1wg_DG.flatten{...}local RRjV={}for TDOaFo,tLo4 in l(Mfb6Kb)do
+if(xX[tLo4])~=nil then RRjV[tLo4]=xX[tLo4]end end;return RRjV end
+function S1wg_DG.omit(m72l,...)local npM3DSU=S1wg_DG.flatten{...}local HGp4e1={}for uzJt7E,sRe5S32N in l(m72l)do
if not
-qxZa6ozV.include(m72l,HGp4e1)then npM3DSU[HGp4e1]=uzJt7E end end;return npM3DSU end
-function qxZa6ozV.template(sRe5S32N,Bp)if not Bp then return sRe5S32N end;for rg,S in zupvsz(Bp)do if not sRe5S32N[rg]then
-sRe5S32N[rg]=S end end;return sRe5S32N end
-function qxZa6ozV.isEqual(Fem,cHmVGY,g29sXR)local Vat=l6Sm5(Fem)local sfnkWAy8=l6Sm5(cHmVGY)if Vat~=sfnkWAy8 then
-return false end
-if Vat~='table'then return(Fem==cHmVGY)end;local hbJSGe9=p(Fem)local pI=p(cHmVGY)
-if g29sXR then if(hbJSGe9 or pI)and
-(hbJSGe9.__eq or pI.__eq)then
+S1wg_DG.include(npM3DSU,uzJt7E)then HGp4e1[uzJt7E]=sRe5S32N end end;return HGp4e1 end;function S1wg_DG.template(Bp,rg)if not rg then return Bp end
+for S,Fem in l(rg)do if not Bp[S]then Bp[S]=Fem end end;return Bp end
+function S1wg_DG.isEqual(cHmVGY,g29sXR,Vat)
+local sfnkWAy8=v(cHmVGY)local hbJSGe9=v(g29sXR)if sfnkWAy8 ~=hbJSGe9 then return false end;if
+sfnkWAy8 ~='table'then return(cHmVGY==g29sXR)end
+local pI=QFKEzBf(cHmVGY)local B7jhm=QFKEzBf(g29sXR)
+if Vat then if(pI or B7jhm)and
+(pI.__eq or B7jhm.__eq)then
return
-hbJSGe9.__eq(Fem,cHmVGY)or pI.__eq(cHmVGY,Fem)or(Fem==cHmVGY)end end
-if qxZa6ozV.size(Fem)~=qxZa6ozV.size(cHmVGY)then return false end;local B7jhm;for hj3,FKxU4 in zupvsz(Fem)do B7jhm=cHmVGY[hj3]
-if B7jhm==nil or not
-qxZa6ozV.isEqual(FKxU4,B7jhm,g29sXR)then return false end end;for UW in
-zupvsz(cHmVGY)do if Fem[UW]==nil then return false end end;return
-true end
-function qxZa6ozV.result(tReY,lex,...)
-if tReY[lex]then if qxZa6ozV.isCallable(tReY[lex])then return
-tReY[lex](tReY,...)else return tReY[lex]end end
-if qxZa6ozV.isCallable(lex)then return lex(tReY,...)end end
-function qxZa6ozV.isTable(h79Pm)return l6Sm5(h79Pm)=='table'end
-function qxZa6ozV.isCallable(vksQpy4)return
-((l6Sm5(vksQpy4)=='function')or
+pI.__eq(cHmVGY,g29sXR)or B7jhm.__eq(g29sXR,cHmVGY)or(cHmVGY==g29sXR)end end
+if S1wg_DG.size(cHmVGY)~=S1wg_DG.size(g29sXR)then return false end;local hj3
+for FKxU4,UW in l(cHmVGY)do hj3=g29sXR[FKxU4]if hj3 ==nil or
+not S1wg_DG.isEqual(UW,hj3,Vat)then return false end end
+for tReY in l(g29sXR)do if cHmVGY[tReY]==nil then return false end end;return true end
+function S1wg_DG.result(lex,h79Pm,...)
+if lex[h79Pm]then if S1wg_DG.isCallable(lex[h79Pm])then return
+lex[h79Pm](lex,...)else return lex[h79Pm]end end
+if S1wg_DG.isCallable(h79Pm)then return h79Pm(lex,...)end end
+function S1wg_DG.isTable(vksQpy4)return v(vksQpy4)=='table'end
+function S1wg_DG.isCallable(gPCIWPt)return
(
-(l6Sm5(vksQpy4)=='table')and p(vksQpy4)and p(vksQpy4).__call~=nil)or false)end
-function qxZa6ozV.isArray(gPCIWPt)
-if not(l6Sm5(gPCIWPt)=='table')then return false end;local l4Byxa7=0;for Fn8OR in zupvsz(gPCIWPt)do l4Byxa7=l4Byxa7+1;if gPCIWPt[l4Byxa7]==nil then
-return false end end
-return true end;function qxZa6ozV.isIterable(X1Z0van)return
-qxZa6ozV.toBoolean((QFKEzBf(zupvsz,X1Z0van)))end
-function qxZa6ozV.isEmpty(C_ACFsd)if(
-C_ACFsd==nil)then return true end;if l6Sm5(C_ACFsd)=='string'then return
-#C_ACFsd==0 end;if l6Sm5(C_ACFsd)=='table'then return
-v(C_ACFsd)==nil end;return true end
-function qxZa6ozV.isString(GC)return l6Sm5(GC)=='string'end
-function qxZa6ozV.isFunction(SC7gSvMB)return l6Sm5(SC7gSvMB)=='function'end;function qxZa6ozV.isNil(Ei)return Ei==nil end;function qxZa6ozV.isNumber(GFuK1ut)return l6Sm5(GFuK1ut)==
-'number'end;function qxZa6ozV.isNaN(SXmRY3i)
-return
-l6Sm5(SXmRY3i)=='number'and SXmRY3i~=SXmRY3i end
-function qxZa6ozV.isFinite(b)if
-l6Sm5(b)~='number'then return false end;return b>-BCf7 and b<BCf7 end
-function qxZa6ozV.isBoolean(KApFr)return l6Sm5(KApFr)=='boolean'end;function qxZa6ozV.isInteger(jE)
-return l6Sm5(jE)=='number'and RlMSrmdD(jE)==jE end
-do
-qxZa6ozV.forEach=qxZa6ozV.each;qxZa6ozV.forEachi=qxZa6ozV.eachi
-qxZa6ozV.update=qxZa6ozV.adjust;qxZa6ozV.loop=qxZa6ozV.cycle;qxZa6ozV.collect=qxZa6ozV.map
-qxZa6ozV.inject=qxZa6ozV.reduce;qxZa6ozV.foldl=qxZa6ozV.reduce
-qxZa6ozV.injectr=qxZa6ozV.reduceRight;qxZa6ozV.foldr=qxZa6ozV.reduceRight
-qxZa6ozV.mapr=qxZa6ozV.mapReduce;qxZa6ozV.maprr=qxZa6ozV.mapReduceRight
-qxZa6ozV.any=qxZa6ozV.include;qxZa6ozV.some=qxZa6ozV.include
-qxZa6ozV.contains=qxZa6ozV.include;qxZa6ozV.filter=qxZa6ozV.select
-qxZa6ozV.discard=qxZa6ozV.reject;qxZa6ozV.every=qxZa6ozV.all
-qxZa6ozV.takeWhile=qxZa6ozV.selectWhile;qxZa6ozV.rejectWhile=qxZa6ozV.dropWhile
-qxZa6ozV.pop=qxZa6ozV.shift;qxZa6ozV.remove=qxZa6ozV.pull
-qxZa6ozV.rmRange=qxZa6ozV.removeRange;qxZa6ozV.chop=qxZa6ozV.removeRange
-qxZa6ozV.sub=qxZa6ozV.slice;qxZa6ozV.head=qxZa6ozV.first;qxZa6ozV.take=qxZa6ozV.first
-qxZa6ozV.tail=qxZa6ozV.rest;qxZa6ozV.skip=qxZa6ozV.last
-qxZa6ozV.without=qxZa6ozV.difference;qxZa6ozV.diff=qxZa6ozV.difference
-qxZa6ozV.symdiff=qxZa6ozV.symmetricDifference;qxZa6ozV.xor=qxZa6ozV.symmetricDifference
-qxZa6ozV.uniq=qxZa6ozV.unique;qxZa6ozV.isuniq=qxZa6ozV.isunique
-qxZa6ozV.transpose=qxZa6ozV.zip;qxZa6ozV.part=qxZa6ozV.partition
-qxZa6ozV.perm=qxZa6ozV.permutation;qxZa6ozV.transposeWith=qxZa6ozV.zipWith
-qxZa6ozV.intersperse=qxZa6ozV.interpose;qxZa6ozV.sliding=qxZa6ozV.aperture
-qxZa6ozV.mirror=qxZa6ozV.invert;qxZa6ozV.join=qxZa6ozV.concat;qxZa6ozV.average=qxZa6ozV.mean
-qxZa6ozV.always=qxZa6ozV.constant;qxZa6ozV.cache=qxZa6ozV.memoize
-qxZa6ozV.juxt=qxZa6ozV.juxtapose;qxZa6ozV.uid=qxZa6ozV.uniqueid
-qxZa6ozV.iter=qxZa6ozV.iterator;qxZa6ozV.tabulate=qxZa6ozV.array;qxZa6ozV.nAry=qxZa6ozV.ary
-qxZa6ozV.methods=qxZa6ozV.functions;qxZa6ozV.choose=qxZa6ozV.pick;qxZa6ozV.drop=qxZa6ozV.omit
-qxZa6ozV.defaults=qxZa6ozV.template;qxZa6ozV.compare=qxZa6ozV.isEqual
-qxZa6ozV.matches=qxZa6ozV.isEqual end
-do local yVVmXC={}local MkxwoCeK={}MkxwoCeK.__index=yVVmXC;local function AT(_8KO)return
-odpE({_value=_8KO,_wrapped=true},MkxwoCeK)end
-odpE(MkxwoCeK,{__call=function(NI,PE)
-return AT(PE)end,__index=function(a,GhVWeuQs,...)return yVVmXC[GhVWeuQs]end})function MkxwoCeK.chain(kQlY)return AT(kQlY)end;function MkxwoCeK:value()
-return self._value end
-yVVmXC.chain,yVVmXC.value=MkxwoCeK.chain,MkxwoCeK.value
-for xIl1shq,qv in zupvsz(qxZa6ozV)do
-if xIl1shq~='operator'then
-yVVmXC[xIl1shq]=function(pbEt6T,...)
-local MBdHQ=l6Sm5(pbEt6T)=='table'and
-l(pbEt6T,'_wrapped')or false;if MBdHQ then local STXAhhM=pbEt6T._value;local assFn=qv(STXAhhM,...)return AT(assFn)else return
-qv(pbEt6T,...)end end end end;yVVmXC.operator=qxZa6ozV.operator;yVVmXC.op=qxZa6ozV.operator
-yVVmXC.import=function(EXpWzv,kq)EXpWzv=
-EXpWzv or _ENV or _G;local up=qxZa6ozV.functions()
-for wlI_l,nK7J in
-Mw(up)do if l(EXpWzv,nK7J)~=nil then if not kq then
-rawset(EXpWzv,nK7J,qxZa6ozV[nK7J])end else
-rawset(EXpWzv,nK7J,qxZa6ozV[nK7J])end end;return EXpWzv end;MkxwoCeK._VERSION='Moses v'..e
-MkxwoCeK._URL='http://github.com/Yonaba/Moses'
-MkxwoCeK._LICENSE='MIT <http://raw.githubusercontent.com/Yonaba/Moses/master/LICENSE>'
-MkxwoCeK._DESCRIPTION='utility-belt library for functional programming in Lua'return MkxwoCeK end \ No newline at end of file
+(v(gPCIWPt)=='function')or(
+(v(gPCIWPt)=='table')and QFKEzBf(gPCIWPt)and
+QFKEzBf(gPCIWPt).__call~=nil)or false)end
+function S1wg_DG.isArray(l4Byxa7)
+if not(v(l4Byxa7)=='table')then return false end;local Fn8OR=0;for X1Z0van in l(l4Byxa7)do Fn8OR=Fn8OR+1
+if l4Byxa7[Fn8OR]==nil then return false end end;return true end;function S1wg_DG.isIterable(C_ACFsd)
+return S1wg_DG.toBoolean((l6Sm5(l,C_ACFsd)))end
+function S1wg_DG.isEmpty(GC)
+if(GC==nil)then return true end;if v(GC)=='string'then return#GC==0 end;if v(GC)=='table'then
+return e(GC)==nil end;return true end
+function S1wg_DG.isString(SC7gSvMB)return v(SC7gSvMB)=='string'end;function S1wg_DG.isFunction(Ei)return v(Ei)=='function'end;function S1wg_DG.isNil(GFuK1ut)return
+GFuK1ut==nil end;function S1wg_DG.isNumber(SXmRY3i)return
+v(SXmRY3i)=='number'end;function S1wg_DG.isNaN(b)return
+v(b)=='number'and b~=b end;function S1wg_DG.isFinite(KApFr)if v(KApFr)~='number'then return
+false end
+return KApFr>-S9TO and KApFr<S9TO end;function S1wg_DG.isBoolean(jE)return v(jE)==
+'boolean'end
+function S1wg_DG.isInteger(yVVmXC)return
+v(yVVmXC)=='number'and pS78Y(yVVmXC)==yVVmXC end
+do S1wg_DG.forEach=S1wg_DG.each;S1wg_DG.forEachi=S1wg_DG.eachi
+S1wg_DG.update=S1wg_DG.adjust;S1wg_DG.loop=S1wg_DG.cycle;S1wg_DG.collect=S1wg_DG.map
+S1wg_DG.inject=S1wg_DG.reduce;S1wg_DG.foldl=S1wg_DG.reduce
+S1wg_DG.injectr=S1wg_DG.reduceRight;S1wg_DG.foldr=S1wg_DG.reduceRight
+S1wg_DG.mapr=S1wg_DG.mapReduce;S1wg_DG.maprr=S1wg_DG.mapReduceRight
+S1wg_DG.any=S1wg_DG.include;S1wg_DG.some=S1wg_DG.include;S1wg_DG.contains=S1wg_DG.include
+S1wg_DG.filter=S1wg_DG.select;S1wg_DG.discard=S1wg_DG.reject;S1wg_DG.every=S1wg_DG.all
+S1wg_DG.takeWhile=S1wg_DG.selectWhile;S1wg_DG.rejectWhile=S1wg_DG.dropWhile;S1wg_DG.pop=S1wg_DG.shift
+S1wg_DG.remove=S1wg_DG.pull;S1wg_DG.rmRange=S1wg_DG.removeRange
+S1wg_DG.chop=S1wg_DG.removeRange;S1wg_DG.sub=S1wg_DG.slice;S1wg_DG.head=S1wg_DG.first
+S1wg_DG.take=S1wg_DG.first;S1wg_DG.tail=S1wg_DG.rest;S1wg_DG.skip=S1wg_DG.last
+S1wg_DG.without=S1wg_DG.difference;S1wg_DG.diff=S1wg_DG.difference
+S1wg_DG.symdiff=S1wg_DG.symmetricDifference;S1wg_DG.xor=S1wg_DG.symmetricDifference
+S1wg_DG.uniq=S1wg_DG.unique;S1wg_DG.isuniq=S1wg_DG.isunique;S1wg_DG.transpose=S1wg_DG.zip
+S1wg_DG.part=S1wg_DG.partition;S1wg_DG.perm=S1wg_DG.permutation
+S1wg_DG.transposeWith=S1wg_DG.zipWith;S1wg_DG.intersperse=S1wg_DG.interpose
+S1wg_DG.sliding=S1wg_DG.aperture;S1wg_DG.mirror=S1wg_DG.invert;S1wg_DG.join=S1wg_DG.concat
+S1wg_DG.average=S1wg_DG.mean;S1wg_DG.always=S1wg_DG.constant;S1wg_DG.cache=S1wg_DG.memoize
+S1wg_DG.juxt=S1wg_DG.juxtapose;S1wg_DG.uid=S1wg_DG.uniqueid;S1wg_DG.iter=S1wg_DG.iterator
+S1wg_DG.tabulate=S1wg_DG.array;S1wg_DG.nAry=S1wg_DG.ary;S1wg_DG.methods=S1wg_DG.functions
+S1wg_DG.choose=S1wg_DG.pick;S1wg_DG.drop=S1wg_DG.omit;S1wg_DG.defaults=S1wg_DG.template
+S1wg_DG.compare=S1wg_DG.isEqual;S1wg_DG.matches=S1wg_DG.isEqual end
+do local MkxwoCeK={}local AT={}AT.__index=MkxwoCeK;local function _8KO(NI)
+return oUA({_value=NI,_wrapped=true},AT)end
+oUA(AT,{__call=function(PE,a)return _8KO(a)end,__index=function(GhVWeuQs,kQlY,...)return
+MkxwoCeK[kQlY]end})function AT.chain(xIl1shq)return _8KO(xIl1shq)end
+function AT:value()return self._value end;MkxwoCeK.chain,MkxwoCeK.value=AT.chain,AT.value
+for qv,pbEt6T in l(S1wg_DG)do
+if
+qv~='operator'then
+MkxwoCeK[qv]=function(MBdHQ,...)local STXAhhM=
+v(MBdHQ)=='table'and PizLA9mj(MBdHQ,'_wrapped')or false;if STXAhhM then
+local assFn=MBdHQ._value;local EXpWzv=pbEt6T(assFn,...)return _8KO(EXpWzv)else
+return pbEt6T(MBdHQ,...)end end end end;MkxwoCeK.operator=S1wg_DG.operator
+MkxwoCeK.op=S1wg_DG.operator
+MkxwoCeK.import=function(kq,up)kq=kq or _ENV or _G
+local wlI_l=S1wg_DG.functions()for nK7J,xv in kyWtqIf0(wlI_l)do
+if PizLA9mj(kq,xv)~=nil then if not up then
+rawset(kq,xv,S1wg_DG[xv])end else rawset(kq,xv,S1wg_DG[xv])end end
+return kq end;AT._VERSION='Moses v'..SWFtRywD
+AT._URL='http://github.com/Yonaba/Moses'
+AT._LICENSE='MIT <http://raw.githubusercontent.com/Yonaba/Moses/master/LICENSE>'AT._DESCRIPTION='utility-belt library for functional programming in Lua'
+return AT end \ No newline at end of file