function aura_env:InitArcEvents(interval, tolerance)
local a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F=WeakAuras,C_Timer.After,random,ipairs,pairs,self,{},{},"ArcEventIDs","arcEventID","arcEventNormal","events",{},"ARC_PERIODIC","ARC_TIMED",{},interval,tolerance;for G in("ABCDEFGHIJKLMNOPQRSTUVWXYZ"):gmatch"."do tinsert(g,G)end;function u()for H=1,6 do h[H]=g[c(1,#g)]end;return table.concat(h)end;v=a.GetData(f.id)w=_G[i]or{}_G[i]=w;x=v[j]or u()z=w[x]if z and z~=v.uid then for I=1,99 do y=u()if w[y]==nil then x=y;break end end end;w[x]=v.uid;v[j]=x;f[j]=x;A=n.."_"..x;B=o.."_"..x;f[k]={[A]=n,[B]=o}for I,J in d(v.triggers)do J=J.trigger;if J and J.type=="custom"and J[l]and(J.check~="update"or J.custom_type=="event")then for K,L in e(f[k])do C,D=J[l]:gsub(L.."[%w_]*",K)if C~=J[l]then J[l]=C end;if D>0 then m[L]=true end end end end;t=a.ScanEvents;s=f.region;if m[n]and q then(s[n]or{}).c=1;r=r or min(1,q)/20;E=function()if p.c then return end;if a.IsPaused()then b(.2+.01*c(),E)else t(A)b(q+(2*c()-1)*r,E)end end;s[n]=p;b(q+(2*c()-1)*r,E)end;if m[o]then F=s[o]or{}s[o]=F;function f:SetArcTimed(M,N,O,P)local Q,R=F[M]or{c=0}F[M]=Q;if Q.t~=N then R=Q.c+1;Q.c=R;Q.t=N;if N==nil then return end;b(max(0,N-GetTime()),function()if Q.c==R then t(B,M,O,P)end end)end end end
end