@push.rocks/taskbuffer 3.1.3 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +632 -86
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/taskbuffer.classes.distributedcoordinator.d.ts +2 -0
- package/dist_ts/taskbuffer.classes.distributedcoordinator.js +1 -1
- package/dist_ts/taskbuffer.classes.taskmanager.js +3 -2
- package/dist_ts/taskbuffer.plugins.d.ts +2 -2
- package/dist_ts/taskbuffer.plugins.js +3 -3
- package/package.json +5 -5
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/taskbuffer.classes.distributedcoordinator.ts +2 -0
- package/ts/taskbuffer.classes.taskmanager.ts +3 -1
- package/ts/taskbuffer.plugins.ts +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/ts/index.ts", "../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/dayjs.min.js", "../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/isToday.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js", "../ts/taskbuffer.plugins.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartdelay@3.0.5/node_modules/@push.rocks/smartdelay/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.deferred.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.cumulativedeferred.ts", "../node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/ts/index.ts", "../node_modules/.pnpm/matcher@5.0.0/node_modules/matcher/index.js", "../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.plugins.rxjs.ts", "../node_modules/.pnpm/tslib@2.6.1/node_modules/tslib/tslib.es6.mjs", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isFunction.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/createErrorClass.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/arrRemove.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subscription.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/config.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/noop.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/NotificationFactories.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/errorContext.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subscriber.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/symbol/observable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/identity.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/pipe.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Observable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/lift.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subject.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/ReplaySubject.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/Action.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Scheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/async.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/args.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isArrayLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isPromise.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/symbol/iterator.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/innerFrom.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/executeSchedule.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/observeOn.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/subscribeOn.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/from.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isDate.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/map.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeInternals.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeMap.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeAll.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/concatAll.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/concat.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/fromEvent.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/timer.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/filter.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/debounce.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/debounceTime.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/startWith.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/takeUntil.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/throttle.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/throttleTime.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observablemap.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observableintake.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/index.ts", "../node_modules/.pnpm/croner@5.7.0/node_modules/croner/dist/croner.min.mjs", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.plugins.ts", "../node_modules/.pnpm/parse-ms@3.0.0/node_modules/parse-ms/index.js", "../node_modules/.pnpm/pretty-ms@8.0.0/node_modules/pretty-ms/index.js", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronjob.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.units.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronmanager.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.extendeddate.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.hrtmeasurement.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.interval.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timestamp.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.4/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timer.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.plugins.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.asyncexecutionstack.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.fastmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.objectmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.interestmap.interest.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.interestmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.limitedarray.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.looptracker.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.stringmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.timedaggregator.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.3/node_modules/@push.rocks/lik/ts/lik.tree.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.consolelog.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.logrouter.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.smartlog.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.loggroup.ts", "../ts/taskbuffer.classes.bufferrunner.ts", "../ts/taskbuffer.classes.cyclecounter.ts", "../ts/taskbuffer.logging.ts", "../ts/taskbuffer.classes.task.ts", "../ts/taskbuffer.classes.taskchain.ts", "../ts/taskbuffer.classes.taskparallel.ts", "../ts/taskbuffer.classes.distributedcoordinator.ts", "../ts/taskbuffer.classes.taskmanager.ts", "../ts/taskbuffer.classes.taskonce.ts", "../ts/taskbuffer.classes.taskrunner.ts", "../ts/taskbuffer.classes.taskdebounced.ts"],
|
|
4
|
-
"sourcesContent": [null, "!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof b},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,f=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=O.p(f),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return O.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return O.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return O.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return O.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return O.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return O.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return O.s(e.$s,2,\"0\");case\"SSS\":return O.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=O.p(d),m=w(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return O.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:O.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),_=b.prototype;return w.prototype=_,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,b,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));", "!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));", "'use strict';\n\nmodule.exports = class SymbolTreeNode {\n constructor() {\n this.parent = null;\n this.previousSibling = null;\n this.nextSibling = null;\n\n this.firstChild = null;\n this.lastChild = null;\n\n /** This value is incremented anytime a children is added or removed */\n this.childrenVersion = 0;\n /** The last child object which has a cached index */\n this.childIndexCachedUpTo = null;\n\n /** This value represents the cached node index, as long as\n * cachedIndexVersion matches with the childrenVersion of the parent */\n this.cachedIndex = -1;\n this.cachedIndexVersion = NaN; // NaN is never equal to anything\n }\n\n get isAttached() {\n return Boolean(this.parent || this.previousSibling || this.nextSibling);\n }\n\n get hasChildren() {\n return Boolean(this.firstChild);\n }\n\n childrenChanged() {\n /* jshint -W016 */\n // integer wrap around\n this.childrenVersion = (this.childrenVersion + 1) & 0xFFFFFFFF;\n this.childIndexCachedUpTo = null;\n }\n\n getCachedIndex(parentNode) {\n // (assumes parentNode is actually the parent)\n if (this.cachedIndexVersion !== parentNode.childrenVersion) {\n this.cachedIndexVersion = NaN;\n // cachedIndex is no longer valid\n return -1;\n }\n\n return this.cachedIndex; // -1 if not cached\n }\n\n setCachedIndex(parentNode, index) {\n // (assumes parentNode is actually the parent)\n this.cachedIndexVersion = parentNode.childrenVersion;\n this.cachedIndex = index;\n }\n};\n", "'use strict';\n\n/* eslint-disable sort-keys */\nmodule.exports = Object.freeze({\n // same as DOM DOCUMENT_POSITION_\n DISCONNECTED: 1,\n PRECEDING: 2,\n FOLLOWING: 4,\n CONTAINS: 8,\n CONTAINED_BY: 16,\n});\n", "'use strict';\n\nconst TREE = Symbol();\nconst ROOT = Symbol();\nconst NEXT = Symbol();\nconst ITERATE_FUNC = Symbol();\n\nclass TreeIterator {\n constructor(tree, root, firstResult, iterateFunction) {\n this[TREE] = tree;\n this[ROOT] = root;\n this[NEXT] = firstResult;\n this[ITERATE_FUNC] = iterateFunction;\n }\n\n next() {\n const tree = this[TREE];\n const iterateFunc = this[ITERATE_FUNC];\n const root = this[ROOT];\n\n if (!this[NEXT]) {\n return {\n done: true,\n value: root,\n };\n }\n\n const value = this[NEXT];\n\n if (iterateFunc === 1) {\n this[NEXT] = tree._node(value).previousSibling;\n }\n else if (iterateFunc === 2) {\n this[NEXT] = tree._node(value).nextSibling;\n }\n else if (iterateFunc === 3) {\n this[NEXT] = tree._node(value).parent;\n }\n else if (iterateFunc === 4) {\n this[NEXT] = tree.preceding(value, {root: root});\n }\n else /* if (iterateFunc === 5)*/ {\n this[NEXT] = tree.following(value, {root: root});\n }\n\n return {\n done: false,\n value: value,\n };\n }\n}\n\nObject.defineProperty(TreeIterator.prototype, Symbol.iterator, {\n value: function() {\n return this;\n },\n writable: false,\n});\n\nTreeIterator.PREV = 1;\nTreeIterator.NEXT = 2;\nTreeIterator.PARENT = 3;\nTreeIterator.PRECEDING = 4;\nTreeIterator.FOLLOWING = 5;\n\nObject.freeze(TreeIterator);\nObject.freeze(TreeIterator.prototype);\n\nmodule.exports = TreeIterator;\n", "'use strict';\n\n/**\n * @module symbol-tree\n * @author Joris van der Wel <joris@jorisvanderwel.com>\n */\n\nconst SymbolTreeNode = require('./SymbolTreeNode');\nconst TreePosition = require('./TreePosition');\nconst TreeIterator = require('./TreeIterator');\n\nfunction returnTrue() {\n return true;\n}\n\nfunction reverseArrayIndex(array, reverseIndex) {\n return array[array.length - 1 - reverseIndex]; // no need to check `index >= 0`\n}\n\nclass SymbolTree {\n\n /**\n * @constructor\n * @alias module:symbol-tree\n * @param {string} [description='SymbolTree data'] Description used for the Symbol\n */\n constructor(description) {\n this.symbol = Symbol(description || 'SymbolTree data');\n }\n\n /**\n * You can use this function to (optionally) initialize an object right after its creation,\n * to take advantage of V8's fast properties. Also useful if you would like to\n * freeze your object.\n *\n * `O(1)`\n *\n * @method\n * @alias module:symbol-tree#initialize\n * @param {Object} object\n * @return {Object} object\n */\n initialize(object) {\n this._node(object);\n\n return object;\n }\n\n _node(object) {\n if (!object) {\n return null;\n }\n\n const node = object[this.symbol];\n\n if (node) {\n return node;\n }\n\n return (object[this.symbol] = new SymbolTreeNode());\n }\n\n /**\n * Returns `true` if the object has any children. Otherwise it returns `false`.\n *\n * * `O(1)`\n *\n * @method hasChildren\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Boolean}\n */\n hasChildren(object) {\n return this._node(object).hasChildren;\n }\n\n /**\n * Returns the first child of the given object.\n *\n * * `O(1)`\n *\n * @method firstChild\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n firstChild(object) {\n return this._node(object).firstChild;\n }\n\n /**\n * Returns the last child of the given object.\n *\n * * `O(1)`\n *\n * @method lastChild\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n lastChild(object) {\n return this._node(object).lastChild;\n }\n\n /**\n * Returns the previous sibling of the given object.\n *\n * * `O(1)`\n *\n * @method previousSibling\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n previousSibling(object) {\n return this._node(object).previousSibling;\n }\n\n /**\n * Returns the next sibling of the given object.\n *\n * * `O(1)`\n *\n * @method nextSibling\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n nextSibling(object) {\n return this._node(object).nextSibling;\n }\n\n /**\n * Return the parent of the given object.\n *\n * * `O(1)`\n *\n * @method parent\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n parent(object) {\n return this._node(object).parent;\n }\n\n /**\n * Find the inclusive descendant that is last in tree order of the given object.\n *\n * * `O(n)` (worst case) where `n` is the depth of the subtree of `object`\n *\n * @method lastInclusiveDescendant\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n lastInclusiveDescendant(object) {\n let lastChild;\n let current = object;\n\n while ((lastChild = this._node(current).lastChild)) {\n current = lastChild;\n }\n\n return current;\n }\n\n /**\n * Find the preceding object (A) of the given object (B).\n * An object A is preceding an object B if A and B are in the same tree\n * and A comes before B in tree order.\n *\n * * `O(n)` (worst case)\n * * `O(1)` (amortized when walking the entire tree)\n *\n * @method preceding\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @param {Object} [options]\n * @param {Object} [options.root] If set, `root` must be an inclusive ancestor\n * of the return value (or else null is returned). This check _assumes_\n * that `root` is also an inclusive ancestor of the given `object`\n * @return {?Object}\n */\n preceding(object, options) {\n const treeRoot = options && options.root;\n\n if (object === treeRoot) {\n return null;\n }\n\n const previousSibling = this._node(object).previousSibling;\n\n if (previousSibling) {\n return this.lastInclusiveDescendant(previousSibling);\n }\n\n // if there is no previous sibling return the parent (might be null)\n return this._node(object).parent;\n }\n\n /**\n * Find the following object (A) of the given object (B).\n * An object A is following an object B if A and B are in the same tree\n * and A comes after B in tree order.\n *\n * * `O(n)` (worst case) where `n` is the amount of objects in the entire tree\n * * `O(1)` (amortized when walking the entire tree)\n *\n * @method following\n * @memberOf module:symbol-tree#\n * @param {!Object} object\n * @param {Object} [options]\n * @param {Object} [options.root] If set, `root` must be an inclusive ancestor\n * of the return value (or else null is returned). This check _assumes_\n * that `root` is also an inclusive ancestor of the given `object`\n * @param {Boolean} [options.skipChildren=false] If set, ignore the children of `object`\n * @return {?Object}\n */\n following(object, options) {\n const treeRoot = options && options.root;\n const skipChildren = options && options.skipChildren;\n\n const firstChild = !skipChildren && this._node(object).firstChild;\n\n if (firstChild) {\n return firstChild;\n }\n\n let current = object;\n\n do {\n if (current === treeRoot) {\n return null;\n }\n\n const nextSibling = this._node(current).nextSibling;\n\n if (nextSibling) {\n return nextSibling;\n }\n\n current = this._node(current).parent;\n } while (current);\n\n return null;\n }\n\n /**\n * Append all children of the given object to an array.\n *\n * * `O(n)` where `n` is the amount of children of the given `parent`\n *\n * @method childrenToArray\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n childrenToArray(parent, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n const parentNode = this._node(parent);\n let object = parentNode.firstChild;\n let index = 0;\n\n while (object) {\n const node = this._node(object);\n node.setCachedIndex(parentNode, index);\n\n if (filter.call(thisArg, object)) {\n array.push(object);\n }\n\n object = node.nextSibling;\n ++index;\n }\n\n return array;\n }\n\n /**\n * Append all inclusive ancestors of the given object to an array.\n *\n * * `O(n)` where `n` is the amount of ancestors of the given `object`\n *\n * @method ancestorsToArray\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n ancestorsToArray(object, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n let ancestor = object;\n\n while (ancestor) {\n if (filter.call(thisArg, ancestor)) {\n array.push(ancestor);\n }\n ancestor = this._node(ancestor).parent;\n }\n\n return array;\n }\n\n /**\n * Append all descendants of the given object to an array (in tree order).\n *\n * * `O(n)` where `n` is the amount of objects in the sub-tree of the given `object`\n *\n * @method treeToArray\n * @memberOf module:symbol-tree#\n * @param {Object} root\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n treeToArray(root, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n let object = root;\n\n while (object) {\n if (filter.call(thisArg, object)) {\n array.push(object);\n }\n object = this.following(object, {root: root});\n }\n\n return array;\n }\n\n /**\n * Iterate over all children of the given object\n *\n * * `O(1)` for a single iteration\n *\n * @method childrenIterator\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @param {Object} [options]\n * @param {Boolean} [options.reverse=false]\n * @return {Object} An iterable iterator (ES6)\n */\n childrenIterator(parent, options) {\n const reverse = options && options.reverse;\n const parentNode = this._node(parent);\n\n return new TreeIterator(\n this,\n parent,\n reverse ? parentNode.lastChild : parentNode.firstChild,\n reverse ? TreeIterator.PREV : TreeIterator.NEXT\n );\n }\n\n /**\n * Iterate over all the previous siblings of the given object. (in reverse tree order)\n *\n * * `O(1)` for a single iteration\n *\n * @method previousSiblingsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n previousSiblingsIterator(object) {\n return new TreeIterator(\n this,\n object,\n this._node(object).previousSibling,\n TreeIterator.PREV\n );\n }\n\n /**\n * Iterate over all the next siblings of the given object. (in tree order)\n *\n * * `O(1)` for a single iteration\n *\n * @method nextSiblingsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n nextSiblingsIterator(object) {\n return new TreeIterator(\n this,\n object,\n this._node(object).nextSibling,\n TreeIterator.NEXT\n );\n }\n\n /**\n * Iterate over all inclusive ancestors of the given object\n *\n * * `O(1)` for a single iteration\n *\n * @method ancestorsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n ancestorsIterator(object) {\n return new TreeIterator(\n this,\n object,\n object,\n TreeIterator.PARENT\n );\n }\n\n /**\n * Iterate over all descendants of the given object (in tree order).\n *\n * Where `n` is the amount of objects in the sub-tree of the given `root`:\n *\n * * `O(n)` (worst case for a single iteration)\n * * `O(n)` (amortized, when completing the iterator)\n *\n * @method treeIterator\n * @memberOf module:symbol-tree#\n * @param {Object} root\n * @param {Object} options\n * @param {Boolean} [options.reverse=false]\n * @return {Object} An iterable iterator (ES6)\n */\n treeIterator(root, options) {\n const reverse = options && options.reverse;\n\n return new TreeIterator(\n this,\n root,\n reverse ? this.lastInclusiveDescendant(root) : root,\n reverse ? TreeIterator.PRECEDING : TreeIterator.FOLLOWING\n );\n }\n\n /**\n * Find the index of the given object (the number of preceding siblings).\n *\n * * `O(n)` where `n` is the amount of preceding siblings\n * * `O(1)` (amortized, if the tree is not modified)\n *\n * @method index\n * @memberOf module:symbol-tree#\n * @param {Object} child\n * @return {Number} The number of preceding siblings, or -1 if the object has no parent\n */\n index(child) {\n const childNode = this._node(child);\n const parentNode = this._node(childNode.parent);\n\n if (!parentNode) {\n // In principal, you could also find out the number of preceding siblings\n // for objects that do not have a parent. This method limits itself only to\n // objects that have a parent because that lets us optimize more.\n return -1;\n }\n\n let currentIndex = childNode.getCachedIndex(parentNode);\n\n if (currentIndex >= 0) {\n return currentIndex;\n }\n\n currentIndex = 0;\n let object = parentNode.firstChild;\n\n if (parentNode.childIndexCachedUpTo) {\n const cachedUpToNode = this._node(parentNode.childIndexCachedUpTo);\n object = cachedUpToNode.nextSibling;\n currentIndex = cachedUpToNode.getCachedIndex(parentNode) + 1;\n }\n\n while (object) {\n const node = this._node(object);\n node.setCachedIndex(parentNode, currentIndex);\n\n if (object === child) {\n break;\n }\n\n ++currentIndex;\n object = node.nextSibling;\n }\n\n parentNode.childIndexCachedUpTo = child;\n\n return currentIndex;\n }\n\n /**\n * Calculate the number of children.\n *\n * * `O(n)` where `n` is the amount of children\n * * `O(1)` (amortized, if the tree is not modified)\n *\n * @method childrenCount\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @return {Number}\n */\n childrenCount(parent) {\n const parentNode = this._node(parent);\n\n if (!parentNode.lastChild) {\n return 0;\n }\n\n return this.index(parentNode.lastChild) + 1;\n }\n\n /**\n * Compare the position of an object relative to another object. A bit set is returned:\n *\n * <ul>\n * <li>DISCONNECTED : 1</li>\n * <li>PRECEDING : 2</li>\n * <li>FOLLOWING : 4</li>\n * <li>CONTAINS : 8</li>\n * <li>CONTAINED_BY : 16</li>\n * </ul>\n *\n * The semantics are the same as compareDocumentPosition in DOM, with the exception that\n * DISCONNECTED never occurs with any other bit.\n *\n * where `n` and `m` are the amount of ancestors of `left` and `right`;\n * where `o` is the amount of children of the lowest common ancestor of `left` and `right`:\n *\n * * `O(n + m + o)` (worst case)\n * * `O(n + m)` (amortized, if the tree is not modified)\n *\n * @method compareTreePosition\n * @memberOf module:symbol-tree#\n * @param {Object} left\n * @param {Object} right\n * @return {Number}\n */\n compareTreePosition(left, right) {\n // In DOM terms:\n // left = reference / context object\n // right = other\n\n if (left === right) {\n return 0;\n }\n\n /* jshint -W016 */\n\n const leftAncestors = []; { // inclusive\n let leftAncestor = left;\n\n while (leftAncestor) {\n if (leftAncestor === right) {\n return TreePosition.CONTAINS | TreePosition.PRECEDING;\n // other is ancestor of reference\n }\n\n leftAncestors.push(leftAncestor);\n leftAncestor = this.parent(leftAncestor);\n }\n }\n\n\n const rightAncestors = []; {\n let rightAncestor = right;\n\n while (rightAncestor) {\n if (rightAncestor === left) {\n return TreePosition.CONTAINED_BY | TreePosition.FOLLOWING;\n }\n\n rightAncestors.push(rightAncestor);\n rightAncestor = this.parent(rightAncestor);\n }\n }\n\n\n const root = reverseArrayIndex(leftAncestors, 0);\n\n if (!root || root !== reverseArrayIndex(rightAncestors, 0)) {\n // note: unlike DOM, preceding / following is not set here\n return TreePosition.DISCONNECTED;\n }\n\n // find the lowest common ancestor\n let commonAncestorIndex = 0;\n const ancestorsMinLength = Math.min(leftAncestors.length, rightAncestors.length);\n\n for (let i = 0; i < ancestorsMinLength; ++i) {\n const leftAncestor = reverseArrayIndex(leftAncestors, i);\n const rightAncestor = reverseArrayIndex(rightAncestors, i);\n\n if (leftAncestor !== rightAncestor) {\n break;\n }\n\n commonAncestorIndex = i;\n }\n\n // indexes within the common ancestor\n const leftIndex = this.index(reverseArrayIndex(leftAncestors, commonAncestorIndex + 1));\n const rightIndex = this.index(reverseArrayIndex(rightAncestors, commonAncestorIndex + 1));\n\n return rightIndex < leftIndex\n ? TreePosition.PRECEDING\n : TreePosition.FOLLOWING;\n }\n\n /**\n * Remove the object from this tree.\n * Has no effect if already removed.\n *\n * * `O(1)`\n *\n * @method remove\n * @memberOf module:symbol-tree#\n * @param {Object} removeObject\n * @return {Object} removeObject\n */\n remove(removeObject) {\n const removeNode = this._node(removeObject);\n const parentNode = this._node(removeNode.parent);\n const prevNode = this._node(removeNode.previousSibling);\n const nextNode = this._node(removeNode.nextSibling);\n\n if (parentNode) {\n if (parentNode.firstChild === removeObject) {\n parentNode.firstChild = removeNode.nextSibling;\n }\n\n if (parentNode.lastChild === removeObject) {\n parentNode.lastChild = removeNode.previousSibling;\n }\n }\n\n if (prevNode) {\n prevNode.nextSibling = removeNode.nextSibling;\n }\n\n if (nextNode) {\n nextNode.previousSibling = removeNode.previousSibling;\n }\n\n removeNode.parent = null;\n removeNode.previousSibling = null;\n removeNode.nextSibling = null;\n removeNode.cachedIndex = -1;\n removeNode.cachedIndexVersion = NaN;\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return removeObject;\n }\n\n /**\n * Insert the given object before the reference object.\n * `newObject` is now the previous sibling of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method insertBefore\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n insertBefore(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const prevNode = this._node(referenceNode.previousSibling);\n const newNode = this._node(newObject);\n const parentNode = this._node(referenceNode.parent);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n newNode.parent = referenceNode.parent;\n newNode.previousSibling = referenceNode.previousSibling;\n newNode.nextSibling = referenceObject;\n referenceNode.previousSibling = newObject;\n\n if (prevNode) {\n prevNode.nextSibling = newObject;\n }\n\n if (parentNode && parentNode.firstChild === referenceObject) {\n parentNode.firstChild = newObject;\n }\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object after the reference object.\n * `newObject` is now the next sibling of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method insertAfter\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n insertAfter(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const nextNode = this._node(referenceNode.nextSibling);\n const newNode = this._node(newObject);\n const parentNode = this._node(referenceNode.parent);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n newNode.parent = referenceNode.parent;\n newNode.previousSibling = referenceObject;\n newNode.nextSibling = referenceNode.nextSibling;\n referenceNode.nextSibling = newObject;\n\n if (nextNode) {\n nextNode.previousSibling = newObject;\n }\n\n if (parentNode && parentNode.lastChild === referenceObject) {\n parentNode.lastChild = newObject;\n }\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object as the first child of the given reference object.\n * `newObject` is now the first child of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method prependChild\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n prependChild(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const newNode = this._node(newObject);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n if (referenceNode.hasChildren) {\n this.insertBefore(referenceNode.firstChild, newObject);\n }\n else {\n newNode.parent = referenceObject;\n referenceNode.firstChild = newObject;\n referenceNode.lastChild = newObject;\n referenceNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object as the last child of the given reference object.\n * `newObject` is now the last child of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method appendChild\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n appendChild(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const newNode = this._node(newObject);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n if (referenceNode.hasChildren) {\n this.insertAfter(referenceNode.lastChild, newObject);\n }\n else {\n newNode.parent = referenceObject;\n referenceNode.firstChild = newObject;\n referenceNode.lastChild = newObject;\n referenceNode.childrenChanged();\n }\n\n return newObject;\n }\n}\n\nmodule.exports = SymbolTree;\nSymbolTree.TreePosition = TreePosition;\n", "import * as isounique from '@push.rocks/isounique';\nimport * as lik from '@push.rocks/lik';\nimport * as smartlog from '@push.rocks/smartlog';\nimport * as smartpromise from '@push.rocks/smartpromise';\nimport * as smartdelay from '@push.rocks/smartdelay';\nimport * as smartrx from '@push.rocks/smartrx';\nimport * as smarttime from '@push.rocks/smarttime';\n\nexport { isounique, lik, smartlog, smartpromise, smartdelay, smartrx, smarttime };\n", null, null, null, null, null, null, "import escapeStringRegexp from 'escape-string-regexp';\n\nconst regexpCache = new Map();\n\nconst sanitizeArray = (input, inputName) => {\n\tif (!Array.isArray(input)) {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\t\tinput = [input];\n\t\t\t\tbreak;\n\t\t\tcase 'undefined':\n\t\t\t\tinput = [];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Expected '${inputName}' to be a string or an array, but got a type of '${typeof input}'`);\n\t\t}\n\t}\n\n\treturn input.filter(string => {\n\t\tif (typeof string !== 'string') {\n\t\t\tif (typeof string === 'undefined') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow new TypeError(`Expected '${inputName}' to be an array of strings, but found a type of '${typeof string}' in the array`);\n\t\t}\n\n\t\treturn true;\n\t});\n};\n\nconst makeRegexp = (pattern, options) => {\n\toptions = {\n\t\tcaseSensitive: false,\n\t\t...options,\n\t};\n\n\tconst cacheKey = pattern + JSON.stringify(options);\n\n\tif (regexpCache.has(cacheKey)) {\n\t\treturn regexpCache.get(cacheKey);\n\t}\n\n\tconst negated = pattern[0] === '!';\n\n\tif (negated) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tpattern = escapeStringRegexp(pattern).replace(/\\\\\\*/g, '[\\\\s\\\\S]*');\n\n\tconst regexp = new RegExp(`^${pattern}$`, options.caseSensitive ? '' : 'i');\n\tregexp.negated = negated;\n\tregexpCache.set(cacheKey, regexp);\n\n\treturn regexp;\n};\n\nconst baseMatcher = (inputs, patterns, options, firstMatchOnly) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn [];\n\t}\n\n\tpatterns = patterns.map(pattern => makeRegexp(pattern, options));\n\n\tconst {allPatterns} = options || {};\n\tconst result = [];\n\n\tfor (const input of inputs) {\n\t\t// String is included only if it matches at least one non-negated pattern supplied.\n\t\t// Note: the `allPatterns` option requires every non-negated pattern to be matched once.\n\t\t// Matching a negated pattern excludes the string.\n\t\tlet matches;\n\t\tconst didFit = [...patterns].fill(false);\n\n\t\tfor (const [index, pattern] of patterns.entries()) {\n\t\t\tif (pattern.test(input)) {\n\t\t\t\tdidFit[index] = true;\n\t\t\t\tmatches = !pattern.negated;\n\n\t\t\t\tif (!matches) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t!(\n\t\t\t\tmatches === false\n\t\t\t\t|| (matches === undefined && patterns.some(pattern => !pattern.negated))\n\t\t\t\t|| (allPatterns && didFit.some((yes, index) => !yes && !patterns[index].negated))\n\t\t\t)\n\t\t) {\n\t\t\tresult.push(input);\n\n\t\t\tif (firstMatchOnly) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n};\n\nexport function matcher(inputs, patterns, options) {\n\treturn baseMatcher(inputs, patterns, options, false);\n}\n\nexport function isMatch(inputs, patterns, options) {\n\treturn baseMatcher(inputs, patterns, options, true).length > 0;\n}\n", "export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it\u2019s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns\u2019 stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n", null, null, "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass<T>(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove<T>(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude<TeardownLogic, void>[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude<TeardownLogic, void>): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification<any>, subscriber: Subscriber<any>) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification<T>(value: T) {\n return createNotification('N', value, undefined) as NextNotification<T>;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport class Subscriber<T> extends Subscription implements Observer<T> {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T> {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber<any> | Observer<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber<any> | Observer<any>) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind<Fn extends (...args: any[]) => any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver<T> implements Observer<T> {\n constructor(private partialObserver: Partial<Observer<T>>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber<T> extends Subscriber<T> {\n constructor(\n observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial<Observer<T>>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification<any>, subscriber: Subscriber<any>) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly<Observer<any>> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `<T>(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity<T>(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport function pipe<T, A, B, C, D>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>\n): UnaryFunction<T, D>;\nexport function pipe<T, A, B, C, D, E>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>\n): UnaryFunction<T, E>;\nexport function pipe<T, A, B, C, D, E, F>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>\n): UnaryFunction<T, F>;\nexport function pipe<T, A, B, C, D, E, F, G>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>\n): UnaryFunction<T, G>;\nexport function pipe<T, A, B, C, D, E, F, G, H>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>\n): UnaryFunction<T, H>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>,\n fn9: UnaryFunction<H, I>\n): UnaryFunction<T, I>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>,\n fn9: UnaryFunction<H, I>,\n ...fns: UnaryFunction<any, any>[]\n): UnaryFunction<T, unknown>;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {\n if (fns.length === 0) {\n return identity as UnaryFunction<any, any>;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport class Observable<T> implements Subscribable<T> {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable<any> | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator<any, T> | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {\n return new Observable<T>(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift<R>(operator?: Operator<T, R>): Observable<R> {\n const observable = new Observable<R>();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber<T>): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise<void>;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise<void>;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor<void>((resolve, reject) => {\n const subscriber = new SafeSubscriber<T>({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise<void>;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<any>): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n pipe<A, B, C, D, E, F>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>\n ): Observable<F>;\n pipe<A, B, C, D, E, F, G>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>\n ): Observable<G>;\n pipe<A, B, C, D, E, F, G, H>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>\n ): Observable<H>;\n pipe<A, B, C, D, E, F, G, H, I>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>,\n op9: OperatorFunction<H, I>\n ): Observable<I>;\n pipe<A, B, C, D, E, F, G, H, I>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>,\n op9: OperatorFunction<H, I>,\n ...operations: OperatorFunction<any, any>[]\n ): Observable<unknown>;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise<T | undefined>;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise<T | undefined>;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise<T | undefined>;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise<T | undefined> {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise<T | undefined>;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver<T>(value: any): value is Observer<T> {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber<T>(value: any): value is Subscriber<T> {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate<T, R>(\n init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber<T>(\n destination: Subscriber<any>,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber<T> {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber<T> extends Subscriber<T> {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber<any>,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber<T>, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber<T>, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber<T>) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject<T> extends Observable<T> implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer<T>[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer<T>[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {\n return new AnonymousSubject<T>(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift<R>(operator: Operator<T, R>): Observable<R> {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber<any>) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber<any>) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable<T> {\n const observable: any = new Observable<T>();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject<T>\n */\nexport class AnonymousSubject<T> extends Subject<T> {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer<T>,\n source?: Observable<T>\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject<T> extends Subject<T> {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport class Action<T> extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction<T> extends Action<T> {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction<T>, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor<T>(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array<AsyncAction<any>> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction<any>): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last<T>(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike<any> {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable<any> {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable<T>(obj: any): obj is AsyncIterable<T> {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable<any> {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator<T>(readableStream: ReadableStreamLike<T>): AsyncGenerator<T> {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike<T>(obj: any): obj is ReadableStreamLike<T> {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an <iframe>.\n return isFunction(obj?.getReader);\n}\n", "import { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { ObservableInput, ObservedValueOf, ReadableStreamLike } from '../types';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { Subscriber } from '../Subscriber';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\nexport function innerFrom<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\nexport function innerFrom<T>(input: ObservableInput<T>): Observable<T> {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n\n throw createInvalidObservableTypeError(input);\n}\n\n/**\n * Creates an RxJS Observable from an object that implements `Symbol.observable`.\n * @param obj An object that properly implements `Symbol.observable`.\n */\nexport function fromInteropObservable<T>(obj: any) {\n return new Observable((subscriber: Subscriber<T>) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\n\n/**\n * Synchronously emits the values of an array like and completes.\n * This is exported because there are creation functions and operators that need to\n * make direct use of the same logic, and there's no reason to make them run through\n * `from` conditionals because we *know* they're dealing with an array.\n * @param array The array to emit values from\n */\nexport function fromArrayLike<T>(array: ArrayLike<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n // Loop over the array and emit each value. Note two things here:\n // 1. We're making sure that the subscriber is not closed on each loop.\n // This is so we don't continue looping over a very large array after\n // something like a `take`, `takeWhile`, or other synchronous unsubscription\n // has already unsubscribed.\n // 2. In this form, reentrant code can alter that array we're looping over.\n // This is a known issue, but considered an edge case. The alternative would\n // be to copy the array before executing the loop, but this has\n // performance implications.\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\n\nexport function fromPromise<T>(promise: PromiseLike<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n promise\n .then(\n (value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n },\n (err: any) => subscriber.error(err)\n )\n .then(null, reportUnhandledError);\n });\n}\n\nexport function fromIterable<T>(iterable: Iterable<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\n\nexport function fromAsyncIterable<T>(asyncIterable: AsyncIterable<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\n\nexport function fromReadableStreamLike<T>(readableStream: ReadableStreamLike<T>) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\n\nasync function process<T>(asyncIterable: AsyncIterable<T>, subscriber: Subscriber<T>) {\n for await (const value of asyncIterable) {\n subscriber.next(value);\n // A side-effect may have closed our subscriber,\n // check before the next iteration.\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n}\n", "import { Subscription } from '../Subscription';\nimport { SchedulerAction, SchedulerLike } from '../types';\n\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay: number,\n repeat: true\n): void;\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay?: number,\n repeat?: false\n): Subscription;\n\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay = 0,\n repeat = false\n): Subscription | void {\n const scheduleSubscription = scheduler.schedule(function (this: SchedulerAction<any>) {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n } else {\n this.unsubscribe();\n }\n }, delay);\n\n parentSubscription.add(scheduleSubscription);\n\n if (!repeat) {\n // Because user-land scheduler implementations are unlikely to properly reuse\n // Actions for repeat scheduling, we can't trust that the returned subscription\n // will control repeat subscription scenarios. So we're trying to avoid using them\n // incorrectly within this library.\n return scheduleSubscription;\n }\n}\n", "/** @prettier */\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n *\n * Ensure values in subscribe are called just before browser repaint\n *\n * ```ts\n * import { interval, observeOn, animationFrameScheduler } from 'rxjs';\n *\n * const someDiv = document.createElement('div');\n * someDiv.style.cssText = 'width: 200px;background: #09c';\n * document.body.appendChild(someDiv);\n * const intervals = interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n * intervals.pipe(\n * observeOn(animationFrameScheduler) // ...but we will observe on animationFrame\n * ) // scheduler to ensure smooth animation.\n * .subscribe(val => {\n * someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param delay Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return A function that returns an Observable that emits the same\n * notifications as the source Observable, but with provided scheduler.\n */\nexport function observeOn<T>(scheduler: SchedulerLike, delay = 0): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay),\n () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay),\n (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)\n )\n );\n });\n}\n", "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * \n *\n * ## Example\n *\n * Given the following code:\n *\n * ```ts\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3);\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 1\n * // 2\n * // 3\n * // 4\n * // 5\n * // 6\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n *\n * If we instead use the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emitted by Observable `a`:\n *\n * ```ts\n * import { of, subscribeOn, asyncScheduler, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler));\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 4\n * // 5\n * // 6\n * // 1\n * // 2\n * // 3\n * ```\n *\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param scheduler The {@link SchedulerLike} to perform subscription actions on.\n * @param delay A delay to pass to the scheduler to delay subscriptions\n * @return A function that returns an Observable modified so that its\n * subscriptions happen on the specified {@link SchedulerLike}.\n */\nexport function subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { InteropObservable, SchedulerLike } from '../types';\n\nexport function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { SchedulerLike } from '../types';\n\nexport function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\nexport function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {\n return new Observable<T>((subscriber) => {\n // The current array index.\n let i = 0;\n // Start iterating over the array like on a schedule.\n return scheduler.schedule(function () {\n if (i === input.length) {\n // If we have hit the end of the array like in the\n // previous job, we can complete.\n subscriber.complete();\n } else {\n // Otherwise let's next the value at the current index,\n // then increment our index.\n subscriber.next(input[i++]);\n // If the last emission didn't cause us to close the subscriber\n // (via take or some side effect), reschedule the job and we'll\n // make another pass.\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\n\n/**\n * Used in {@link scheduled} to create an observable from an Iterable.\n * @param input The iterable to create an observable from\n * @param scheduler The scheduler to use\n */\nexport function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {\n return new Observable<T>((subscriber) => {\n let iterator: Iterator<T, T>;\n\n // Schedule the initial creation of the iterator from\n // the iterable. This is so the code in the iterable is\n // not called until the scheduled job fires.\n executeSchedule(subscriber, scheduler, () => {\n // Create the iterator.\n iterator = (input as any)[Symbol_iterator]();\n\n executeSchedule(\n subscriber,\n scheduler,\n () => {\n let value: T;\n let done: boolean | undefined;\n try {\n // Pull the value out of the iterator\n ({ value, done } = iterator.next());\n } catch (err) {\n // We got an error while pulling from the iterator\n subscriber.error(err);\n return;\n }\n\n if (done) {\n // If it is \"done\" we just complete. This mimics the\n // behavior of JavaScript's `for..of` consumption of\n // iterables, which will not emit the value from an iterator\n // result of `{ done: true: value: 'here' }`.\n subscriber.complete();\n } else {\n // The iterable is not done, emit the value.\n subscriber.next(value);\n }\n },\n 0,\n true\n );\n });\n\n // During finalization, if we see this iterator has a `return` method,\n // then we know it is a Generator, and not just an Iterator. So we call\n // the `return()` function. This will ensure that any `finally { }` blocks\n // inside of the generator we can hit will be hit properly.\n return () => isFunction(iterator?.return) && iterator.return();\n });\n}\n", "import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\n\nexport function scheduleAsyncIterable<T>(input: AsyncIterable<T>, scheduler: SchedulerLike) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable<T>((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(\n subscriber,\n scheduler,\n () => {\n iterator.next().then((result) => {\n if (result.done) {\n // This will remove the subscriptions from\n // the parent subscription.\n subscriber.complete();\n } else {\n subscriber.next(result.value);\n }\n });\n },\n 0,\n true\n );\n });\n });\n}\n", "import { SchedulerLike, ReadableStreamLike } from '../types';\nimport { Observable } from '../Observable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\n\nexport function scheduleReadableStreamLike<T>(input: ReadableStreamLike<T>, scheduler: SchedulerLike): Observable<T> {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n", "import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see {@link from}\n * @see {@link of}\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\n\nexport function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike | undefined): Observable<ObservedValueOf<O>>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * \n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable\" target=\"_blank\">iterable</a>\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from, take } from 'rxjs';\n *\n * function* generateDoubles(seed) {\n * let i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * With `asyncScheduler`\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // 'start'\n * // 'end'\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable<T>}\n */\nexport function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n", "/**\n * Checks to see if a value is not only a `Date` object,\n * but a *valid* `Date` object that can be converted to a\n * number. For example, `new Date('blah')` is indeed an\n * `instanceof Date`, however it cannot be converted to a\n * number.\n */\nexport function isValidDate(value: any): value is Date {\n return value instanceof Date && !isNaN(value as any);\n}\n", "import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * \n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n *\n * Map every click to the `clientX` position of that click\n *\n * ```ts\n * import { fromEvent, map } from 'rxjs';\n *\n * const clicks = fromEvent<PointerEvent>(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n *\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return A function that returns an Observable that emits the values from the\n * source Observable transformed by the given `project` function.\n */\nexport function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {\n return operate((source, subscriber) => {\n // The index of the value from the source. Used with projection.\n let index = 0;\n // Subscribe to the source, all errors and completions are sent along\n // to the consumer.\n source.subscribe(\n createOperatorSubscriber(subscriber, (value: T) => {\n // Call the projection function with the appropriate this context,\n // and send the resulting value to the consumer.\n subscriber.next(project.call(thisArg, value, index++));\n })\n );\n });\n}\n", "import { OperatorFunction } from \"../types\";\nimport { map } from \"../operators/map\";\n\nconst { isArray } = Array;\n\nfunction callOrApply<T, R>(fn: ((...values: T[]) => R), args: T|T[]): R {\n return isArray(args) ? fn(...args) : fn(args);\n}\n\n/**\n * Used in several -- mostly deprecated -- situations where we need to \n * apply a list of arguments or a single argument to a result selector.\n */\nexport function mapOneOrManyArgs<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> {\n return map(args => callOrApply(fn, args))\n}", "import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subscriber } from '../Subscriber';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * A process embodying the general \"merge\" strategy. This is used in\n * `mergeMap` and `mergeScan` because the logic is otherwise nearly identical.\n * @param source The original source observable\n * @param subscriber The consumer subscriber\n * @param project The projection function to get our inner sources\n * @param concurrent The number of concurrent inner subscriptions\n * @param onBeforeNext Additional logic to apply before nexting to our consumer\n * @param expand If `true` this will perform an \"expand\" strategy, which differs only\n * in that it recurses, and the inner subscription must be schedule-able.\n * @param innerSubScheduler A scheduler to use to schedule inner subscriptions,\n * this is to support the expand strategy, mostly, and should be deprecated\n */\nexport function mergeInternals<T, R>(\n source: Observable<T>,\n subscriber: Subscriber<R>,\n project: (value: T, index: number) => ObservableInput<R>,\n concurrent: number,\n onBeforeNext?: (innerValue: R) => void,\n expand?: boolean,\n innerSubScheduler?: SchedulerLike,\n additionalFinalizer?: () => void\n) {\n // Buffered values, in the event of going over our concurrency limit\n const buffer: T[] = [];\n // The number of active inner subscriptions.\n let active = 0;\n // An index to pass to our accumulator function\n let index = 0;\n // Whether or not the outer source has completed.\n let isComplete = false;\n\n /**\n * Checks to see if we can complete our result or not.\n */\n const checkComplete = () => {\n // If the outer has completed, and nothing is left in the buffer,\n // and we don't have any active inner subscriptions, then we can\n // Emit the state and complete.\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n\n // If we're under our concurrency limit, just start the inner subscription, otherwise buffer and wait.\n const outerNext = (value: T) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n\n const doInnerSub = (value: T) => {\n // If we're expanding, we need to emit the outer values and the inner values\n // as the inners will \"become outers\" in a way as they are recursively fed\n // back to the projection mechanism.\n expand && subscriber.next(value as any);\n\n // Increment the number of active subscriptions so we can track it\n // against our concurrency limit later.\n active++;\n\n // A flag used to show that the inner observable completed.\n // This is checked during finalization to see if we should\n // move to the next item in the buffer, if there is on.\n let innerComplete = false;\n\n // Start our inner subscription.\n innerFrom(project(value, index++)).subscribe(\n createOperatorSubscriber(\n subscriber,\n (innerValue) => {\n // `mergeScan` has additional handling here. For example\n // taking the inner value and updating state.\n onBeforeNext?.(innerValue);\n\n if (expand) {\n // If we're expanding, then just recurse back to our outer\n // handler. It will emit the value first thing.\n outerNext(innerValue as any);\n } else {\n // Otherwise, emit the inner value.\n subscriber.next(innerValue);\n }\n },\n () => {\n // Flag that we have completed, so we know to check the buffer\n // during finalization.\n innerComplete = true;\n },\n // Errors are passed to the destination.\n undefined,\n () => {\n // During finalization, if the inner completed (it wasn't errored or\n // cancelled), then we want to try the next item in the buffer if\n // there is one.\n if (innerComplete) {\n // We have to wrap this in a try/catch because it happens during\n // finalization, possibly asynchronously, and we want to pass\n // any errors that happen (like in a projection function) to\n // the outer Subscriber.\n try {\n // INNER SOURCE COMPLETE\n // Decrement the active count to ensure that the next time\n // we try to call `doInnerSub`, the number is accurate.\n active--;\n // If we have more values in the buffer, try to process those\n // Note that this call will increment `active` ahead of the\n // next conditional, if there were any more inner subscriptions\n // to start.\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift()!;\n // Particularly for `expand`, we need to check to see if a scheduler was provided\n // for when we want to start our inner subscription. Otherwise, we just start\n // are next inner subscription.\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n } else {\n doInnerSub(bufferedValue);\n }\n }\n // Check to see if we can complete, and complete if so.\n checkComplete();\n } catch (err) {\n subscriber.error(err);\n }\n }\n }\n )\n );\n };\n\n // Subscribe to our source observable.\n source.subscribe(\n createOperatorSubscriber(subscriber, outerNext, () => {\n // Outer completed, make a note of it, and check to see if we can complete everything.\n isComplete = true;\n checkComplete();\n })\n );\n\n // Additional finalization (for when the destination is torn down).\n // Other finalization is added implicitly via subscription above.\n return () => {\n additionalFinalizer?.();\n };\n}\n", "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector: undefined,\n concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,\n concurrent?: number\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * \n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n *\n * Map and flatten each letter to an Observable ticking every 1 second\n *\n * ```ts\n * import { of, mergeMap, interval, map } from 'rxjs';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n * mergeMap(x => interval(1000).pipe(map(i => x + i)))\n * );\n *\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a, b, c every second with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Infinity] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and merging\n * the results of the Observables obtained from this transformation.\n */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Infinity\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n if (isFunction(resultSelector)) {\n // DEPRECATED PATH\n return mergeMap((a, i) => map((b: any, ii: number) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n", "import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * \n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n *\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n *\n * ```ts\n * import { fromEvent, map, interval, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map(() => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n *\n * ```ts\n * import { fromEvent, map, interval, take, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(() => interval(1000).pipe(take(10)))\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concatAll}\n * @see {@link exhaustAll}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Infinity] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits values coming from\n * all the inner Observables emitted by the source Observable.\n */\nexport function mergeAll<O extends ObservableInput<any>>(concurrent: number = Infinity): OperatorFunction<O, ObservedValueOf<O>> {\n return mergeMap(identity, concurrent);\n}\n", "import { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * \n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, map, interval, take, concatAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(() => interval(1000).pipe(take(4)))\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaustAll}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return A function that returns an Observable emitting values from all the\n * inner Observables concatenated.\n */\nexport function concatAll<O extends ObservableInput<any>>(): OperatorFunction<O, ObservedValueOf<O>> {\n return mergeAll(1);\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInputTuple, SchedulerLike } from '../types';\nimport { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\nexport function concat<T extends readonly unknown[]>(...inputs: [...ObservableInputTuple<T>]): Observable<T[number]>;\nexport function concat<T extends readonly unknown[]>(\n ...inputsAndScheduler: [...ObservableInputTuple<T>, SchedulerLike]\n): Observable<T[number]>;\n\n/**\n * Creates an output Observable which sequentially emits all values from the first given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * \n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n *\n * Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n *\n * ```ts\n * import { interval, take, range, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * Concatenate 3 Observables\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * Concatenate the same Observable to repeat it\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('...and it is done!')\n * });\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // '...and it is done!' also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param args Input Observables to concatenate.\n */\nexport function concat(...args: any[]): Observable<unknown> {\n return concatAll()(from(args, popScheduler(args)));\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\n\n// These constants are used to create handler registry functions using array mapping below.\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'] as const;\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'] as const;\nconst jqueryMethods = ['on', 'off'] as const;\n\nexport interface NodeStyleEventEmitter {\n addListener(eventName: string | symbol, handler: NodeEventHandler): this;\n removeListener(eventName: string | symbol, handler: NodeEventHandler): this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n addListener(eventName: string, handler: NodeEventHandler): void | {};\n removeListener(eventName: string, handler: NodeEventHandler): void | {};\n}\n\n// Use handler types like those in @types/jquery. See:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/847731ba1d7fa6db6b911c0e43aa0afe596e7723/types/jquery/misc.d.ts#L6395\nexport interface JQueryStyleEventEmitter<TContext, T> {\n on(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void;\n off(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void;\n}\n\nexport interface EventListenerObject<E> {\n handleEvent(evt: E): void;\n}\n\nexport interface HasEventTargetAddRemove<E> {\n addEventListener(\n type: string,\n listener: ((evt: E) => void) | EventListenerObject<E> | null,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: ((evt: E) => void) | EventListenerObject<E> | null,\n options?: EventListenerOptions | boolean\n ): void;\n}\n\nexport interface EventListenerOptions {\n capture?: boolean;\n passive?: boolean;\n once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n}\n\nexport function fromEvent<T>(target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>, eventName: string): Observable<T>;\nexport function fromEvent<T, R>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n resultSelector: (event: T) => R\n): Observable<R>;\nexport function fromEvent<T>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n options: EventListenerOptions\n): Observable<T>;\nexport function fromEvent<T, R>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n options: EventListenerOptions,\n resultSelector: (event: T) => R\n): Observable<R>;\n\nexport function fromEvent(target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>, eventName: string): Observable<unknown>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function fromEvent<T>(target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>, eventName: string): Observable<T>;\nexport function fromEvent<R>(\n target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>,\n eventName: string,\n resultSelector: (...args: any[]) => R\n): Observable<R>;\n\nexport function fromEvent(\n target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>,\n eventName: string\n): Observable<unknown>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function fromEvent<T>(target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>, eventName: string): Observable<T>;\nexport function fromEvent<R>(\n target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>,\n eventName: string,\n resultSelector: (...args: any[]) => R\n): Observable<R>;\n\nexport function fromEvent<T>(\n target: JQueryStyleEventEmitter<any, T> | ArrayLike<JQueryStyleEventEmitter<any, T>>,\n eventName: string\n): Observable<T>;\nexport function fromEvent<T, R>(\n target: JQueryStyleEventEmitter<any, T> | ArrayLike<JQueryStyleEventEmitter<any, T>>,\n eventName: string,\n resultSelector: (value: T, ...args: any[]) => R\n): Observable<R>;\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * <span class=\"informal\">Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.</span>\n *\n * \n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n *\n * Emit clicks happening on the DOM document\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * Use `addEventListener` with capture option\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * // note optional configuration parameter which will be passed to addEventListener\n * const clicksInDocument = fromEvent(document, 'click', { capture: true });\n * const clicksInDiv = fromEvent(div, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget<T>} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable<T>}\n */\nexport function fromEvent<T>(\n target: any,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: (...args: any[]) => T\n): Observable<T> {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent<T>(target, eventName, options as EventListenerOptions).pipe(mapOneOrManyArgs(resultSelector));\n }\n\n // Figure out our add and remove methods. In order to do this,\n // we are going to analyze the target in a preferred order, if\n // the target matches a given signature, we take the two \"add\" and \"remove\"\n // method names and apply them to a map to create opposite versions of the\n // same function. This is because they all operate in duplicate pairs,\n // `addListener(name, handler)`, `removeListener(name, handler)`, for example.\n // The call only differs by method name, as to whether or not you're adding or removing.\n const [add, remove] =\n // If it is an EventTarget, we need to use a slightly different method than the other two patterns.\n isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler: any) => target[methodName](eventName, handler, options as EventListenerOptions))\n : // In all other cases, the call pattern is identical with the exception of the method names.\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n\n // If add is falsy, it's because we didn't match a pattern above.\n // Check to see if it is an ArrayLike, because if it is, we want to\n // try to apply fromEvent to all of it's items. We do this check last,\n // because there are may be some types that are both ArrayLike *and* implement\n // event registry points, and we'd rather delegate to that when possible.\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget: any) => fromEvent(subTarget, eventName, options as EventListenerOptions))(\n innerFrom(target)\n ) as Observable<T>;\n }\n }\n\n // If add is falsy and we made it here, it's because we didn't\n // match any valid target objects above.\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n\n return new Observable<T>((subscriber) => {\n // The handler we are going to register. Forwards the event object, by itself, or\n // an array of arguments to the event handler, if there is more than one argument,\n // to the consumer.\n const handler = (...args: any[]) => subscriber.next(1 < args.length ? args : args[0]);\n // Do the work of adding the handler to the target.\n add(handler);\n // When we finalize, we want to remove the handler and free up memory.\n return () => remove!(handler);\n });\n}\n\n/**\n * Used to create `add` and `remove` functions to register and unregister event handlers\n * from a target in the most common handler pattern, where there are only two arguments.\n * (e.g. `on(name, fn)`, `off(name, fn)`, `addListener(name, fn)`, or `removeListener(name, fn)`)\n * @param target The target we're calling methods on\n * @param eventName The event name for the event we're creating register or unregister functions for\n */\nfunction toCommonHandlerRegistry(target: any, eventName: string) {\n return (methodName: string) => (handler: any) => target[methodName](eventName, handler);\n}\n\n/**\n * Checks to see if the target implements the required node-style EventEmitter methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isNodeStyleEventEmitter(target: any): target is NodeStyleEventEmitter {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\n\n/**\n * Checks to see if the target implements the required jQuery-style EventEmitter methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isJQueryStyleEventEmitter(target: any): target is JQueryStyleEventEmitter<any, any> {\n return isFunction(target.on) && isFunction(target.off);\n}\n\n/**\n * Checks to see if the target implements the required EventTarget methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isEventTarget(target: any): target is HasEventTargetAddRemove<any> {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\n\n/**\n * Creates an observable that will wait for a specified time period, or exact date, before\n * emitting the number 0.\n *\n * <span class=\"informal\">Used to emit a notification after a delay.</span>\n *\n * This observable is useful for creating delays in code, or racing against other values\n * for ad-hoc timeouts.\n *\n * The `delay` is specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Examples\n *\n * Wait 3 seconds and start another observable\n *\n * You might want to use `timer` to delay subscription to an\n * observable by a set amount of time. Here we use a timer with\n * {@link concatMapTo} or {@link concatMap} in order to wait\n * a few seconds and start a subscription to a source.\n *\n * ```ts\n * import { of, timer, concatMap } from 'rxjs';\n *\n * // This could be any observable\n * const source = of(1, 2, 3);\n *\n * timer(3000)\n * .pipe(concatMap(() => source))\n * .subscribe(console.log);\n * ```\n *\n * Take all values until the start of the next minute\n *\n * Using a `Date` as the trigger for the first emission, you can\n * do things like wait until midnight to fire an event, or in this case,\n * wait until a new minute starts (chosen so the example wouldn't take\n * too long to run) in order to stop watching a stream. Leveraging\n * {@link takeUntil}.\n *\n * ```ts\n * import { interval, takeUntil, timer } from 'rxjs';\n *\n * // Build a Date object that marks the\n * // next minute.\n * const currentDate = new Date();\n * const startOfNextMinute = new Date(\n * currentDate.getFullYear(),\n * currentDate.getMonth(),\n * currentDate.getDate(),\n * currentDate.getHours(),\n * currentDate.getMinutes() + 1\n * );\n *\n * // This could be any observable stream\n * const source = interval(1000);\n *\n * const result = source.pipe(\n * takeUntil(timer(startOfNextMinute))\n * );\n *\n * result.subscribe(console.log);\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `dueTime`.\n *\n * @param due If a `number`, the amount of time in milliseconds to wait before emitting.\n * If a `Date`, the exact time at which to emit.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>;\n\n/**\n * Creates an observable that starts an interval after a specified delay, emitting incrementing numbers -- starting at `0` --\n * on each interval after words.\n *\n * The `delay` and `intervalDuration` are specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Example\n *\n * ### Start an interval that starts right away\n *\n * Since {@link interval} waits for the passed delay before starting,\n * sometimes that's not ideal. You may want to start an interval immediately.\n * `timer` works well for this. Here we have both side-by-side so you can\n * see them in comparison.\n *\n * Note that this observable will never complete.\n *\n * ```ts\n * import { timer, interval } from 'rxjs';\n *\n * timer(0, 1000).subscribe(n => console.log('timer', n));\n * interval(1000).subscribe(n => console.log('interval', n));\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `startDue`.\n * @param startDue If a `number`, is the time to wait before starting the interval.\n * If a `Date`, is the exact time at which to start the interval.\n * @param intervalDuration The delay between each value emitted in the interval. Passing a\n * negative number here will result in immediate completion after the first value is emitted, as though\n * no `intervalDuration` was passed at all.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable<number>;\n\n/**\n * @deprecated The signature allowing `undefined` to be passed for `intervalDuration` will be removed in v8. Use the `timer(dueTime, scheduler?)` signature instead.\n */\nexport function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>;\n\nexport function timer(\n dueTime: number | Date = 0,\n intervalOrScheduler?: number | SchedulerLike,\n scheduler: SchedulerLike = asyncScheduler\n): Observable<number> {\n // Since negative intervalDuration is treated as though no\n // interval was specified at all, we start with a negative number.\n let intervalDuration = -1;\n\n if (intervalOrScheduler != null) {\n // If we have a second argument, and it's a scheduler,\n // override the scheduler we had defaulted. Otherwise,\n // it must be an interval.\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n } else {\n // Note that this *could* be negative, in which case\n // it's like not passing an intervalDuration at all.\n intervalDuration = intervalOrScheduler;\n }\n }\n\n return new Observable((subscriber) => {\n // If a valid date is passed, calculate how long to wait before\n // executing the first value... otherwise, if it's a number just schedule\n // that many milliseconds (or scheduler-specified unit size) in the future.\n let due = isValidDate(dueTime) ? +dueTime - scheduler!.now() : dueTime;\n\n if (due < 0) {\n // Ensure we don't schedule in the future.\n due = 0;\n }\n\n // The incrementing value we emit.\n let n = 0;\n\n // Start the timer.\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n // Emit the next value and increment.\n subscriber.next(n++);\n\n if (0 <= intervalDuration) {\n // If we have a interval after the initial timer,\n // reschedule with the period.\n this.schedule(undefined, intervalDuration);\n } else {\n // We didn't have an interval. So just complete.\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n", "import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, S extends T, A>(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction<T, S>;\nexport function filter<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;\nexport function filter<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, A>(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction<T>;\nexport function filter<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * \n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n *\n * Emit only click events whose target was a DIV element\n *\n * ```ts\n * import { fromEvent, filter } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param thisArg An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return A function that returns an Observable that emits items from the\n * source Observable that satisfy the specified `predicate`.\n */\nexport function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n // An index passed to our predicate function on each call.\n let index = 0;\n\n // Subscribe to the source, all errors and completions are\n // forwarded to the consumer.\n source.subscribe(\n // Call the predicate with the appropriate `this` context,\n // if the predicate returns `true`, then send the value\n // to the consumer.\n createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value))\n );\n });\n}\n", "import { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\n\n/**\n * Emits a notification from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.</span>\n *\n * \n *\n * `debounce` delays notifications emitted by the source Observable, but drops previous\n * pending delayed emissions if a new notification arrives on the source Observable.\n * This operator keeps track of the most recent notification from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The notification is emitted only when the duration\n * Observable emits a next notification, and if no other notification was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * notification appears before the duration Observable emits, the previous notification will\n * not be emitted and a new duration is scheduled from `durationSelector` is scheduled.\n * If the completing event happens during the scheduled duration the last cached notification\n * is emitted before the completion event is forwarded to the output observable.\n * If the error event happens during the scheduled duration or after it only the error event is\n * forwarded to the output observable. The cache notification is not emitted in this case.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * ## Example\n *\n * Emit the most recent click after a burst of clicks\n *\n * ```ts\n * import { fromEvent, scan, debounce, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * scan(i => ++i, 1),\n * debounce(i => interval(200 * i))\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link throttle}\n * @see {@link throttleTime}\n *\n * @param durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n */\nexport function debounce<T>(durationSelector: (value: T) => ObservableInput<any>): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue: T | null = null;\n // The subscriber/subscription for the current debounce, if there is one.\n let durationSubscriber: Subscriber<any> | null = null;\n\n const emit = () => {\n // Unsubscribe any current debounce subscription we have,\n // we only cared about the first notification from it, and we\n // want to clean that subscription up as soon as possible.\n durationSubscriber?.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n // We have a value! Free up memory first, then emit the value.\n hasValue = false;\n const value = lastValue!;\n lastValue = null;\n subscriber.next(value);\n }\n };\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value: T) => {\n // Cancel any pending debounce duration. We don't\n // need to null it out here yet tho, because we're just going\n // to create another one in a few lines.\n durationSubscriber?.unsubscribe();\n hasValue = true;\n lastValue = value;\n // Capture our duration subscriber, so we can unsubscribe it when we're notified\n // and we're going to emit the value.\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n // Subscribe to the duration.\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n },\n () => {\n // Source completed.\n // Emit any pending debounced values then complete\n emit();\n subscriber.complete();\n },\n // Pass all errors through to consumer\n undefined,\n () => {\n // Finalization.\n lastValue = durationSubscriber = null;\n }\n )\n );\n });\n}\n", "import { asyncScheduler } from '../scheduler/async';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits a notification from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link delay}, but passes only the most\n * recent notification from each burst of emissions.</span>\n *\n * \n *\n * `debounceTime` delays notifications emitted by the source Observable, but drops\n * previous pending delayed emissions if a new notification arrives on the source\n * Observable. This operator keeps track of the most recent notification from the\n * source Observable, and emits that only when `dueTime` has passed\n * without any other notification appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous notification will be dropped\n * and will not be emitted and a new `dueTime` is scheduled.\n * If the completing event happens during `dueTime` the last cached notification\n * is emitted before the completion event is forwarded to the output observable.\n * If the error event happens during `dueTime` or after it only the error event is\n * forwarded to the output observable. The cache notification is not emitted in this case.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * notification to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link SchedulerLike} for\n * managing timers.\n *\n * ## Example\n *\n * Emit the most recent click after a burst of clicks\n *\n * ```ts\n * import { fromEvent, debounceTime } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounceTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link throttle}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the timeout for each value.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by the specified `dueTime`, and may drop some values\n * if they occur too frequently.\n */\nexport function debounceTime<T>(dueTime: number, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n let activeTask: Subscription | null = null;\n let lastValue: T | null = null;\n let lastTime: number | null = null;\n\n const emit = () => {\n if (activeTask) {\n // We have a value! Free up memory first, then emit the value.\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue!;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle(this: SchedulerAction<unknown>) {\n // This is called `dueTime` after the first value\n // but we might have received new values during this window!\n\n const targetTime = lastTime! + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n // On that case, re-schedule to the new target\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n\n emit();\n }\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value: T) => {\n lastValue = value;\n lastTime = scheduler.now();\n\n // Only set up a task if it's not already up\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n },\n () => {\n // Source completed.\n // Emit any pending debounced values then complete\n emit();\n subscriber.complete();\n },\n // Pass all errors through to consumer.\n undefined,\n () => {\n // Finalization.\n lastValue = activeTask = null;\n }\n )\n );\n });\n}\n", "import { concat } from '../observable/concat';\nimport { OperatorFunction, SchedulerLike, ValueFromArray } from '../types';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\n\n// Devs are more likely to pass null or undefined than they are a scheduler\n// without accompanying values. To make things easier for (naughty) devs who\n// use the `strictNullChecks: false` TypeScript compiler option, these\n// overloads with explicit null and undefined values are included.\n\nexport function startWith<T>(value: null): OperatorFunction<T, T | null>;\nexport function startWith<T>(value: undefined): OperatorFunction<T, T | undefined>;\n\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function startWith<T, A extends readonly unknown[] = T[]>(\n ...valuesAndScheduler: [...A, SchedulerLike]\n): OperatorFunction<T, T | ValueFromArray<A>>;\nexport function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>>;\n\n/**\n * Returns an observable that, at the moment of subscription, will synchronously emit all\n * values provided to this operator, then subscribe to the source and mirror all of its emissions\n * to subscribers.\n *\n * This is a useful way to know when subscription has occurred on an existing observable.\n *\n * <span class=\"informal\">First emits its arguments in order, and then any\n * emissions from the source.</span>\n *\n * \n *\n * ## Examples\n *\n * Emit a value when a timer starts.\n *\n * ```ts\n * import { timer, map, startWith } from 'rxjs';\n *\n * timer(1000)\n * .pipe(\n * map(() => 'timer emit'),\n * startWith('timer start')\n * )\n * .subscribe(x => console.log(x));\n *\n * // results:\n * // 'timer start'\n * // 'timer emit'\n * ```\n *\n * @param values Items you want the modified Observable to emit first.\n * @return A function that returns an Observable that synchronously emits\n * provided values before subscribing to the source Observable.\n *\n * @see {@link endWith}\n * @see {@link finalize}\n * @see {@link concat}\n */\nexport function startWith<T, D>(...values: D[]): OperatorFunction<T, T | D> {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n // Here we can't pass `undefined` as a scheduler, because if we did, the\n // code inside of `concat` would be confused by the `undefined`, and treat it\n // like an invalid observable. So we have to split it two different ways.\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n", "import { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\n\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * <span class=\"informal\">Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.</span>\n *\n * \n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value, the output Observable stops mirroring the source Observable\n * and completes. If the `notifier` doesn't emit any value and completes\n * then `takeUntil` will pass all values.\n *\n * ## Example\n *\n * Tick every second until the first click happens\n *\n * ```ts\n * import { interval, fromEvent, takeUntil } from 'rxjs';\n *\n * const source = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = source.pipe(takeUntil(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return A function that returns an Observable that emits the values from the\n * source Observable until `notifier` emits its first value.\n */\nexport function takeUntil<T>(notifier: ObservableInput<any>): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n", "import { Subscription } from '../Subscription';\n\nimport { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\n\n/**\n * An object interface used by {@link throttle} or {@link throttleTime} that ensure\n * configuration options of these operators.\n *\n * @see {@link throttle}\n * @see {@link throttleTime}\n */\nexport interface ThrottleConfig {\n /**\n * If `true`, the resulting Observable will emit the first value from the source\n * Observable at the **start** of the \"throttling\" process (when starting an\n * internal timer that prevents other emissions from the source to pass through).\n * If `false`, it will not emit the first value from the source Observable at the\n * start of the \"throttling\" process.\n *\n * If not provided, defaults to: `true`.\n */\n leading?: boolean;\n /**\n * If `true`, the resulting Observable will emit the last value from the source\n * Observable at the **end** of the \"throttling\" process (when ending an internal\n * timer that prevents other emissions from the source to pass through).\n * If `false`, it will not emit the last value from the source Observable at the\n * end of the \"throttling\" process.\n *\n * If not provided, defaults to: `false`.\n */\n trailing?: boolean;\n}\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * \n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n *\n * ```ts\n * import { fromEvent, throttle, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(() => interval(1000)));\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param durationSelector A function that receives a value from the source\n * Observable, for computing the silencing duration for each source value,\n * returned as an `ObservableInput`.\n * @param config A configuration object to define `leading` and `trailing`\n * behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return A function that returns an Observable that performs the throttle\n * operation to limit the rate of emissions from the source.\n */\nexport function throttle<T>(durationSelector: (value: T) => ObservableInput<any>, config?: ThrottleConfig): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n const { leading = true, trailing = false } = config ?? {};\n let hasValue = false;\n let sendValue: T | null = null;\n let throttled: Subscription | null = null;\n let isComplete = false;\n\n const endThrottling = () => {\n throttled?.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n\n const startThrottle = (value: T) =>\n (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n\n const send = () => {\n if (hasValue) {\n // Ensure we clear out our value and hasValue flag\n // before we emit, otherwise reentrant code can cause\n // issues here.\n hasValue = false;\n const value = sendValue!;\n sendValue = null;\n // Emit the value.\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n // Regarding the presence of throttled.closed in the following\n // conditions, if a synchronous duration selector is specified - weird,\n // but legal - an already-closed subscription will be assigned to\n // throttled, so the subscription's closed property needs to be checked,\n // too.\n (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n },\n () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }\n )\n );\n });\n}\n", "import { asyncScheduler } from '../scheduler/async';\nimport { throttle, ThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { timer } from '../observable/timer';\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * <span class=\"informal\">Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.</span>\n *\n * \n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link SchedulerLike} for managing timers.\n *\n * ## Examples\n *\n * ### Limit click rate\n *\n * Emit clicks at a rate of at most one click per second\n *\n * ```ts\n * import { fromEvent, throttleTime } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param scheduler The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling. Defaults to {@link asyncScheduler}.\n * @param config A configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return A function that returns an Observable that performs the throttle\n * operation to limit the rate of emissions from the source.\n */\nexport function throttleTime<T>(\n duration: number,\n scheduler: SchedulerLike = asyncScheduler,\n config?: ThrottleConfig\n): MonoTypeOperatorFunction<T> {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n", null, null, null, "function minitz(y,m,d,h,i,s,tz,throwOnInvalid){return minitz.fromTZ(minitz.tp(y,m,d,h,i,s,tz),throwOnInvalid)}minitz.fromTZISO=(localTimeStr,tz,throwOnInvalid)=>{return minitz.fromTZ(parseISOLocal(localTimeStr,tz),throwOnInvalid)};minitz.fromTZ=function(tp,throwOnInvalid){const inDate=new Date(Date.UTC(tp.y,tp.m-1,tp.d,tp.h,tp.i,tp.s)),offset=getTimezoneOffset(tp.tz,inDate),dateGuess=new Date(inDate.getTime()-offset),dateOffsGuess=getTimezoneOffset(tp.tz,dateGuess);if(dateOffsGuess-offset===0){return dateGuess}else{const dateGuess2=new Date(inDate.getTime()-dateOffsGuess),dateOffsGuess2=getTimezoneOffset(tp.tz,dateGuess2);if(dateOffsGuess2-dateOffsGuess===0){return dateGuess2}else if(!throwOnInvalid&&dateOffsGuess2-dateOffsGuess>0){return dateGuess2}else if(!throwOnInvalid){return dateGuess}else{throw new Error(\"Invalid date passed to fromTZ()\")}}};minitz.toTZ=function(d,tzStr){const td=new Date(d.toLocaleString(\"sv-SE\",{timeZone:tzStr}));return{y:td.getFullYear(),m:td.getMonth()+1,d:td.getDate(),h:td.getHours(),i:td.getMinutes(),s:td.getSeconds(),tz:tzStr}};minitz.tp=(y,m,d,h,i,s,tz)=>{return{y:y,m:m,d:d,h:h,i:i,s:s,tz:tz}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString(\"en\",{timeZone:timeZone,timeStyle:\"long\"}).split(\" \").slice(-1)[0];const dateString=date.toLocaleString(\"en-US\").replace(/[\\u202f]/,\" \");return Date.parse(`${dateString} GMT`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dtStr,tz){const pd=new Date(Date.parse(dtStr));if(isNaN(pd)){throw new Error(\"minitz: Invalid ISO8601 passed to parser.\")}const stringEnd=dtStr.substring(9);if(dtStr.includes(\"Z\")||stringEnd.includes(\"-\")||stringEnd.includes(\"+\")){return minitz.tp(pd.getUTCFullYear(),pd.getUTCMonth()+1,pd.getUTCDate(),pd.getUTCHours(),pd.getUTCMinutes(),pd.getUTCSeconds(),\"Etc/UTC\")}else{return minitz.tp(pd.getFullYear(),pd.getMonth()+1,pd.getDate(),pd.getHours(),pd.getMinutes(),pd.getSeconds(),tz)}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}delete options.name;options.legacyMode=options.legacyMode===void 0?true:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.utcOffset=options.utcOffset===void 0?void 0:parseInt(options.utcOffset,10);options.unref=options.unref===void 0?false:options.unref;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error(\"CronOptions: Supplied value for interval is not a number\")}else if(options.interval<0){throw new Error(\"CronOptions: Supplied value for interval can not be negative\")}}if(options.utcOffset!==void 0){if(isNaN(options.utcOffset)){throw new Error(\"CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.\")}else if(options.utcOffset<-870||options.utcOffset>870){throw new Error(\"CronOptions: utcOffset out of bounds.\")}if(options.utcOffset!==void 0&&options.timezone){throw new Error(\"CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.\")}}if(options.unref!==true&&options.unref!==false){throw new Error(\"CronOptions: Unref should be either true, false or undefined(false).\")}return options}const DaysOfMonth=[31,28,31,30,31,30,31,31,30,31,30,31];const RecursionSteps=[[\"month\",\"year\",0],[\"day\",\"month\",-1],[\"hour\",\"day\",0],[\"minute\",\"hour\",0],[\"second\",\"minute\",0]];function CronDate(d,tz){this.tz=tz;if(d&&d instanceof Date){if(!isNaN(d)){this.fromDate(d)}else{throw new TypeError(\"CronDate: Invalid date passed to CronDate constructor\")}}else if(d===void 0){this.fromDate(new Date)}else if(d&&typeof d===\"string\"){this.fromString(d)}else if(d instanceof CronDate){this.fromCronDate(d)}else{throw new TypeError(\"CronDate: Invalid type (\"+typeof d+\") passed to CronDate constructor\")}}CronDate.prototype.fromDate=function(inDate){if(this.tz!==void 0){if(typeof this.tz===\"number\"){this.ms=inDate.getUTCMilliseconds();this.second=inDate.getUTCSeconds();this.minute=inDate.getUTCMinutes()+this.tz;this.hour=inDate.getUTCHours();this.day=inDate.getUTCDate();this.month=inDate.getUTCMonth();this.year=inDate.getUTCFullYear();this.apply()}else{const d=minitz.toTZ(inDate,this.tz);this.ms=inDate.getMilliseconds();this.second=d.s;this.minute=d.i;this.hour=d.h;this.day=d.d;this.month=d.m-1;this.year=d.y}}else{this.ms=inDate.getMilliseconds();this.second=inDate.getSeconds();this.minute=inDate.getMinutes();this.hour=inDate.getHours();this.day=inDate.getDate();this.month=inDate.getMonth();this.year=inDate.getFullYear()}};CronDate.prototype.fromCronDate=function(d){this.tz=d.tz;this.year=d.year;this.month=d.month;this.day=d.day;this.hour=d.hour;this.minute=d.minute;this.second=d.second;this.ms=d.ms};CronDate.prototype.apply=function(){if(this.month>11||this.day>DaysOfMonth[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){const d=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));this.ms=d.getUTCMilliseconds();this.second=d.getUTCSeconds();this.minute=d.getUTCMinutes();this.hour=d.getUTCHours();this.day=d.getUTCDate();this.month=d.getUTCMonth();this.year=d.getUTCFullYear();return true}else{return false}};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.tz))};CronDate.prototype.findNext=function(options,target,pattern,offset){const originalTarget=this[target];let lastDayOfMonth;if(pattern.lastDayOfMonth){if(this.month!==1){lastDayOfMonth=DaysOfMonth[this.month]}else{lastDayOfMonth=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate()}}const fDomWeekDay=!pattern.starDOW&&target==\"day\"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():undefined;for(let i=this[target]+offset;i<pattern[target].length;i++){let match=pattern[target][i];if(target===\"day\"&&pattern.lastDayOfMonth&&i-offset==lastDayOfMonth){match=true}if(target===\"day\"&&!pattern.starDOW){const dowMatch=pattern.dow[(fDomWeekDay+(i-offset-1))%7];if(options.legacyMode&&!pattern.starDOM){match=match||dowMatch}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return originalTarget!==this[target]?2:1}}return 3};CronDate.prototype.recurse=function(pattern,options,doing){const res=this.findNext(options,RecursionSteps[doing][0],pattern,RecursionSteps[doing][2]);if(res>1){let resetLevel=doing+1;while(resetLevel<RecursionSteps.length){this[RecursionSteps[resetLevel][0]]=-RecursionSteps[resetLevel][2];resetLevel++}if(res===3){this[RecursionSteps[doing][1]]++;this[RecursionSteps[doing][0]]=-RecursionSteps[doing][2];this.apply();return this.recurse(pattern,options,0)}else if(this.apply()){return this.recurse(pattern,options,doing-1)}}doing+=1;if(doing>=RecursionSteps.length){return this}else if(this.year>=3e3){return null}else{return this.recurse(pattern,options,doing)}};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.second+=options.interval}else{this.second+=1}this.ms=0;this.apply();return this.recurse(pattern,options,0)};CronDate.prototype.getDate=function(internal){if(internal||this.tz===void 0&&this.utcOffset===void 0){return new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms)}else{if(typeof this.tz===\"number\"){return new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms))}else{return minitz(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz)}}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.second=Array(60).fill(0);this.minute=Array(60).fill(0);this.hour=Array(24).fill(0);this.day=Array(31).fill(0);this.month=Array(12).fill(0);this.dow=Array(8).fill(0);this.lastDayOfMonth=false;this.starDOM=false;this.starDOW=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern===\"string\"||this.pattern.constructor===String)){throw new TypeError(\"CronPattern: Pattern has to be of type string.\")}if(this.pattern.indexOf(\"@\")>=0)this.pattern=this.handleNicknames(this.pattern).trim();const parts=this.pattern.replace(/\\s+/g,\" \").split(\" \");if(parts.length<5||parts.length>6){throw new TypeError(\"CronPattern: invalid configuration format ('\"+this.pattern+\"'), exacly five or six space separated parts required.\")}if(parts.length===5){parts.unshift(\"0\")}if(parts[3].indexOf(\"L\")>=0){parts[3]=parts[3].replace(\"L\",\"\");this.lastDayOfMonth=true}if(parts[3]==\"*\"){this.starDOM=true}if(parts[4].length>=3)parts[4]=this.replaceAlphaMonths(parts[4]);if(parts[5].length>=3)parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5]==\"*\"){this.starDOW=true}if(this.pattern.indexOf(\"?\")>=0){const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace(\"?\",initDate.getSeconds());parts[1]=parts[1].replace(\"?\",initDate.getMinutes());parts[2]=parts[2].replace(\"?\",initDate.getHours());if(!this.starDOM)parts[3]=parts[3].replace(\"?\",initDate.getDate());parts[4]=parts[4].replace(\"?\",initDate.getMonth()+1);if(!this.starDOW)parts[5]=parts[5].replace(\"?\",initDate.getDay())}this.throwAtIllegalCharacters(parts);this.partToArray(\"second\",parts[0],0);this.partToArray(\"minute\",parts[1],0);this.partToArray(\"hour\",parts[2],0);this.partToArray(\"day\",parts[3],-1);this.partToArray(\"month\",parts[4],-1);this.partToArray(\"dow\",parts[5],0);if(this.dow[7]){this.dow[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf===\"*\")return arr.fill(1);const split=conf.split(\",\");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf(\"-\")!==-1&&conf.indexOf(\"/\")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf(\"-\")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf(\"/\")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==\"\"){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError(\"CronPattern: configuration entry \"+i+\" (\"+parts[i]+\") contains illegal characters.\")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError(\"CronPattern: \"+type+\" is not a number: '\"+conf+\"'\")}if(i<0||i>=this[type].length){throw new TypeError(\"CronPattern: \"+type+\" value out of range: '\"+conf+\"'\")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\\d+)-(\\d+)\\/(\\d+)$/);if(matches===null)throw new TypeError(\"CronPattern: Syntax error, illegal range with stepping: '\"+conf+\"'\");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\");if(isNaN(upper))throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\");if(isNaN(steps))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(steps===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(steps>this[type].length)throw new TypeError(\"CronPattern: Syntax error, steps cannot be greater than maximum value of part (\"+this[type].length+\")\");if(lower<0||upper>=this[type].length)throw new TypeError(\"CronPattern: Value out of range: '\"+conf+\"'\");if(lower>upper)throw new TypeError(\"CronPattern: From value is larger than to value: '\"+conf+\"'\");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split(\"-\");if(split.length!==2){throw new TypeError(\"CronPattern: Syntax error, illegal range: '\"+conf+\"'\")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\")}else if(isNaN(upper)){throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\")}if(lower<0||upper>=this[type].length){throw new TypeError(\"CronPattern: Value out of range: '\"+conf+\"'\")}if(lower>upper){throw new TypeError(\"CronPattern: From value is larger than to value: '\"+conf+\"'\")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split(\"/\");if(split.length!==2){throw new TypeError(\"CronPattern: Syntax error, illegal stepping: '\"+conf+\"'\")}let start=0;if(split[0]!==\"*\"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(steps===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(steps>this[type].length)throw new TypeError(\"CronPattern: Syntax error, max steps for part is (\"+this[type].length+\")\");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,\"-7\").replace(/sun/gi,\"0\").replace(/mon/gi,\"1\").replace(/tue/gi,\"2\").replace(/wed/gi,\"3\").replace(/thu/gi,\"4\").replace(/fri/gi,\"5\").replace(/sat/gi,\"6\")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,\"1\").replace(/feb/gi,\"2\").replace(/mar/gi,\"3\").replace(/apr/gi,\"4\").replace(/may/gi,\"5\").replace(/jun/gi,\"6\").replace(/jul/gi,\"7\").replace(/aug/gi,\"8\").replace(/sep/gi,\"9\").replace(/oct/gi,\"10\").replace(/nov/gi,\"11\").replace(/dec/gi,\"12\")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern===\"@yearly\"||cleanPattern===\"@annually\"){return\"0 0 1 1 *\"}else if(cleanPattern===\"@monthly\"){return\"0 0 1 * *\"}else if(cleanPattern===\"@weekly\"){return\"0 0 * * 0\"}else if(cleanPattern===\"@daily\"){return\"0 0 * * *\"}else if(cleanPattern===\"@hourly\"){return\"0 * * * *\"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;const scheduledJobs=[];function isFn(v){return Object.prototype.toString.call(v)===\"[object Function]\"||\"function\"===typeof v||v instanceof Function}function unref(timer){if(typeof Deno!==\"undefined\"&&typeof Deno.unrefTimer!==\"undefined\"){Deno.unrefTimer(timer)}else if(timer&&typeof timer.unref!==\"undefined\"){timer.unref()}}function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1===\"function\"){func=fnOrOptions1}else if(typeof fnOrOptions1===\"object\"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error(\"Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).\")}if(typeof fnOrOptions2===\"function\"){func=fnOrOptions2}else if(typeof fnOrOptions2===\"object\"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error(\"Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).\")}this.name=options?options.name:void 0;this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;this.blocking=false;this.previousrun=void 0;this.runstarted=void 0;if(pattern&&(pattern instanceof Date||typeof pattern===\"string\"&&pattern.indexOf(\":\")>0)){this.once=new CronDate(pattern,this.options.timezone||this.options.utcOffset)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}if(this.name){const existing=scheduledJobs.find(j=>j.name===this.name);if(existing){throw new Error(\"Cron: Tried to initialize new named job '\"+this.name+\"', but name already taken.\")}else{scheduledJobs.push(this)}}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){if(n>this.options.maxRuns){n=this.options.maxRuns}const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.busy=function(){return this.blocking};Cron.prototype.started=function(){return this.runstarted?this.runstarted.getDate():null};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev);prev=new CronDate(prev,this.options.timezone||this.options.utcOffset);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error(\"Cron: It is not allowed to schedule two functions using the same Croner instance.\")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null||target===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>this._checkTrigger(target),waitMs);if(this.currentTimeout&&this.options.unref){unref(this.currentTimeout)}return this};Cron.prototype._trigger=async function(initiationDate){this.blocking=true;this.runstarted=new CronDate(initiationDate,this.options.timezone||this.options.utcOffset);if(this.options.catch){try{await this.fn(this,this.options.context)}catch(_e){if(isFn(this.options.catch)){(inst=>inst.options.catch(_e,inst))(this)}}finally{this.blocking=false}}else{await this.fn(this,this.options.context);this.blocking=false}};Cron.prototype._checkTrigger=function(target){const now=new Date,shouldRun=!this.options.paused&&now.getTime()>=target,isBlocked=this.blocking&&this.options.protect;if(shouldRun&&!isBlocked){this.options.maxRuns--;this._trigger();this.previousrun=new CronDate(void 0,this.options.timezone||this.options.utcOffset);this.schedule()}else{if(shouldRun&&isBlocked&&isFn(this.options.protect)){(async inst=>inst.options.protect(inst))(this)}this.schedule(undefined,now)}};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone||this.options.utcOffset);if(this.options.startAt&&prev&&prev.getTime()<this.options.startAt.getTime()){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone||this.options.utcOffset).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){return null}else{return nextRun}};Cron.Cron=Cron;Cron.scheduledJobs=scheduledJobs;export{Cron,Cron as default,scheduledJobs};", null, "export default function parseMilliseconds(milliseconds) {\n\tif (typeof milliseconds !== 'number') {\n\t\tthrow new TypeError('Expected a number');\n\t}\n\n\tconst roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n\n\treturn {\n\t\tdays: roundTowardsZero(milliseconds / 86400000),\n\t\thours: roundTowardsZero(milliseconds / 3600000) % 24,\n\t\tminutes: roundTowardsZero(milliseconds / 60000) % 60,\n\t\tseconds: roundTowardsZero(milliseconds / 1000) % 60,\n\t\tmilliseconds: roundTowardsZero(milliseconds) % 1000,\n\t\tmicroseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n\t\tnanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n\t};\n}\n", "import parseMilliseconds from 'parse-ms';\n\nconst pluralize = (word, count) => count === 1 ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\n\nexport default function prettyMilliseconds(milliseconds, options = {}) {\n\tif (!Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number');\n\t}\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tconst result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif ((result.length === 0 || !options.colonNotation) && value === 0 && !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString = (valueString || value || '0').toString();\n\t\tlet prefix;\n\t\tlet suffix;\n\t\tif (options.colonNotation) {\n\t\t\tprefix = result.length > 0 ? ':' : '';\n\t\t\tsuffix = '';\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tprefix = '';\n\t\t\tsuffix = options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(prefix + valueString + suffix);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\n\tadd(Math.trunc(parsed.days / 365), 'year', 'y');\n\tadd(parsed.days % 365, 'day', 'd');\n\tadd(parsed.hours, 'hour', 'h');\n\tadd(parsed.minutes, 'minute', 'm');\n\n\tif (\n\t\toptions.separateMilliseconds\n\t\t|| options.formatSubMilliseconds\n\t\t|| (!options.colonNotation && milliseconds < 1000)\n\t) {\n\t\tadd(parsed.seconds, 'second', 's');\n\t\tif (options.formatSubMilliseconds) {\n\t\t\tadd(parsed.milliseconds, 'millisecond', 'ms');\n\t\t\tadd(parsed.microseconds, 'microsecond', '\u00B5s');\n\t\t\tadd(parsed.nanoseconds, 'nanosecond', 'ns');\n\t\t} else {\n\t\t\tconst millisecondsAndBelow\n\t\t\t\t= parsed.milliseconds\n\t\t\t\t+ (parsed.microseconds / 1000)\n\t\t\t\t+ (parsed.nanoseconds / 1e6);\n\n\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t: 0;\n\n\t\t\tconst roundedMiliseconds = millisecondsAndBelow >= 1\n\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t: roundedMiliseconds;\n\n\t\t\tadd(\n\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t'millisecond',\n\t\t\t\t'ms',\n\t\t\t\tmillisecondsString,\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst seconds = (milliseconds / 1000) % 60;\n\t\tconst secondsDecimalDigits\n\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t: 1;\n\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t? secondsFixed\n\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t}\n\n\tif (result.length === 0) {\n\t\treturn '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tif (options.compact) {\n\t\treturn result[0];\n\t}\n\n\tif (typeof options.unitCount === 'number') {\n\t\tconst separator = options.colonNotation ? '' : ' ';\n\t\treturn result.slice(0, Math.max(options.unitCount, 1)).join(separator);\n\t}\n\n\treturn options.colonNotation ? result.join('') : result.join(' ');\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import { Task } from './taskbuffer.classes.task.js';\n\nexport class BufferRunner {\n public task: Task;\n // initialize by default\n public bufferCounter: number = 0;\n\n constructor(taskArg: Task<any>) {\n this.task = taskArg;\n }\n\n public trigger(x: any): Promise<any> {\n if (!(this.bufferCounter >= this.task.bufferMax)) {\n this.bufferCounter++;\n }\n const returnPromise: Promise<any> = this.task.cycleCounter.getPromiseForCycle(\n this.bufferCounter\n );\n if (!this.task.running) {\n this._run(x);\n }\n return returnPromise;\n }\n\n private async _run(x: any) {\n this.task.running = true;\n while (this.bufferCounter > 0) {\n const result = await Task.runTask(this.task, { x: x });\n this.bufferCounter--;\n this.task.cycleCounter.informOfCycle(result);\n }\n this.task.running = false;\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport interface ICycleObject {\n cycleCounter: number;\n deferred: plugins.smartpromise.Deferred<any>;\n}\n\nexport class CycleCounter {\n public task: Task;\n public cycleObjectArray: ICycleObject[] = [];\n constructor(taskArg: Task<any>) {\n this.task = taskArg;\n }\n public getPromiseForCycle(cycleCountArg: number) {\n const done = plugins.smartpromise.defer();\n const cycleObject: ICycleObject = {\n cycleCounter: cycleCountArg,\n deferred: done,\n };\n this.cycleObjectArray.push(cycleObject);\n return done.promise;\n }\n public informOfCycle(x: any) {\n const newCycleObjectArray: ICycleObject[] = [];\n this.cycleObjectArray.forEach((cycleObjectArg) => {\n cycleObjectArg.cycleCounter--;\n if (cycleObjectArg.cycleCounter <= 0) {\n cycleObjectArg.deferred.resolve(x);\n } else {\n newCycleObjectArray.push(cycleObjectArg);\n }\n });\n this.cycleObjectArray = newCycleObjectArray;\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nexport const logger = new plugins.smartlog.ConsoleLog();\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { BufferRunner } from './taskbuffer.classes.bufferrunner.js';\nimport { CycleCounter } from './taskbuffer.classes.cyclecounter.js';\n\nimport { logger } from './taskbuffer.logging.js';\n\nexport interface ITaskFunction<T = undefined> {\n (x?: any, setupValue?: T): PromiseLike<any>;\n}\n\nexport interface ITaskSetupFunction<T = undefined> {\n (): Promise<T>;\n}\n\nexport type TPreOrAfterTaskFunction = () => Task<any>;\n\nexport class Task<T = undefined> {\n public static extractTask<T = undefined>(\n preOrAfterTaskArg: Task<T> | TPreOrAfterTaskFunction\n ): Task<T> {\n switch (true) {\n case !preOrAfterTaskArg:\n return null;\n case preOrAfterTaskArg instanceof Task:\n return preOrAfterTaskArg as Task<T>;\n case typeof preOrAfterTaskArg === 'function':\n const taskFunction = preOrAfterTaskArg as TPreOrAfterTaskFunction;\n return taskFunction();\n default:\n return null;\n }\n }\n\n public static emptyTaskFunction: ITaskFunction = function (x) {\n const done = plugins.smartpromise.defer();\n done.resolve();\n return done.promise;\n };\n\n public static isTask = (taskArg: Task<any>): boolean => {\n if (taskArg instanceof Task && typeof taskArg.taskFunction === 'function') {\n return true;\n } else {\n return false;\n }\n };\n\n public static isTaskTouched<T = undefined>(\n taskArg: Task<T> | TPreOrAfterTaskFunction,\n touchedTasksArray: Task<T>[]\n ): boolean {\n const taskToCheck = Task.extractTask(taskArg);\n let result = false;\n for (const keyArg in touchedTasksArray) {\n if (taskToCheck === touchedTasksArray[keyArg]) {\n result = true;\n }\n }\n return result;\n }\n\n public static runTask = async <T>(\n taskArg: Task<T> | TPreOrAfterTaskFunction,\n optionsArg: { x?: any; touchedTasksArray?: Task<T>[] }\n ) => {\n const taskToRun = Task.extractTask(taskArg);\n const done = plugins.smartpromise.defer();\n\n // Wait for all blocking tasks to finish\n for (const task of taskToRun.blockingTasks) {\n await task.finished;\n }\n\n if (!taskToRun.setupValue && taskToRun.taskSetup) {\n taskToRun.setupValue = await taskToRun.taskSetup();\n }\n\n if (taskToRun.execDelay) {\n await plugins.smartdelay.delayFor(taskToRun.execDelay);\n }\n\n taskToRun.running = true;\n\n done.promise.then(async () => {\n taskToRun.running = false;\n\n // When the task has finished running, resolve the finished promise\n taskToRun.resolveFinished();\n\n // Create a new finished promise for the next run\n taskToRun.finished = new Promise((resolve) => {\n taskToRun.resolveFinished = resolve;\n });\n });\n\n const options = {\n ...{ x: undefined, touchedTasksArray: [] },\n ...optionsArg,\n };\n const x = options.x;\n const touchedTasksArray: Task<T>[] = options.touchedTasksArray;\n\n touchedTasksArray.push(taskToRun);\n\n const localDeferred = plugins.smartpromise.defer();\n localDeferred.promise\n .then(() => {\n if (taskToRun.preTask && !Task.isTaskTouched(taskToRun.preTask, touchedTasksArray)) {\n return Task.runTask(taskToRun.preTask, { x, touchedTasksArray });\n } else {\n const done2 = plugins.smartpromise.defer();\n done2.resolve(x);\n return done2.promise;\n }\n })\n .then(async (x) => {\n try {\n return await taskToRun.taskFunction(x, taskToRun.setupValue);\n } catch (e) {\n console.log(e);\n }\n })\n .then((x) => {\n if (taskToRun.afterTask && !Task.isTaskTouched(taskToRun.afterTask, touchedTasksArray)) {\n return Task.runTask(taskToRun.afterTask, { x: x, touchedTasksArray: touchedTasksArray });\n } else {\n const done2 = plugins.smartpromise.defer();\n done2.resolve(x);\n return done2.promise;\n }\n })\n .then((x) => {\n done.resolve(x);\n })\n .catch((err) => {\n console.log(err);\n });\n localDeferred.resolve();\n return await done.promise;\n };\n\n public name: string;\n public version: string;\n public taskFunction: ITaskFunction<T>;\n public buffered: boolean;\n public cronJob: plugins.smarttime.CronJob;\n\n public bufferMax: number;\n public execDelay: number;\n public timeout: number;\n\n public preTask: Task<T> | TPreOrAfterTaskFunction;\n public afterTask: Task<T> | TPreOrAfterTaskFunction;\n\n // Add a list to store the blocking tasks\n public blockingTasks: Task[] = [];\n\n // Add a promise that will resolve when the task has finished\n private finished: Promise<void>;\n private resolveFinished: () => void;\n\n public running: boolean = false;\n public bufferRunner = new BufferRunner(this);\n public cycleCounter = new CycleCounter(this);\n\n public get idle() {\n return !this.running;\n }\n\n public taskSetup: ITaskSetupFunction<T>;\n public setupValue: T;\n\n constructor(optionsArg: {\n taskFunction: ITaskFunction<T>;\n preTask?: Task<T> | TPreOrAfterTaskFunction;\n afterTask?: Task<T> | TPreOrAfterTaskFunction;\n buffered?: boolean;\n bufferMax?: number;\n execDelay?: number;\n name?: string;\n taskSetup?: ITaskSetupFunction<T>;\n }) {\n this.taskFunction = optionsArg.taskFunction;\n this.preTask = optionsArg.preTask;\n this.afterTask = optionsArg.afterTask;\n this.buffered = optionsArg.buffered;\n this.bufferMax = optionsArg.bufferMax;\n this.execDelay = optionsArg.execDelay;\n this.name = optionsArg.name;\n this.taskSetup = optionsArg.taskSetup;\n\n // Create the finished promise\n this.finished = new Promise((resolve) => {\n this.resolveFinished = resolve;\n });\n }\n\n public trigger(x?: any): Promise<any> {\n if (this.buffered) {\n return this.triggerBuffered(x);\n } else {\n return this.triggerUnBuffered(x);\n }\n }\n\n public triggerUnBuffered(x?: any): Promise<any> {\n return Task.runTask<T>(this, { x: x });\n }\n\n public triggerBuffered(x?: any): Promise<any> {\n return this.bufferRunner.trigger(x);\n }\n}\n", "// TaskChain chains tasks\n// and extends Task\n\nimport * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\nimport { logger } from './taskbuffer.logging.js';\n\nexport class Taskchain extends Task {\n taskArray: Task[];\n constructor(optionsArg: {\n taskArray: Task[];\n name?: string;\n log?: boolean;\n buffered?: boolean;\n bufferMax?: number;\n }) {\n const options = {\n ...{\n name: 'unnamed Taskchain',\n log: false,\n },\n ...optionsArg,\n ...{\n taskFunction: (x: any) => {\n // this is the function that gets executed when TaskChain is triggered\n const done = plugins.smartpromise.defer(); // this is the starting Deferred object\n let taskCounter = 0; // counter for iterating async over the taskArray\n const iterateTasks = (x: any) => {\n if (typeof this.taskArray[taskCounter] !== 'undefined') {\n console.log(this.name + ' running: Task' + this.taskArray[taskCounter].name);\n this.taskArray[taskCounter].trigger(x).then((x) => {\n logger.log('info', this.taskArray[taskCounter].name);\n taskCounter++;\n iterateTasks(x);\n });\n } else {\n console.log('Taskchain \"' + this.name + '\" completed successfully');\n done.resolve(x);\n }\n };\n iterateTasks(x);\n return done.promise;\n },\n },\n };\n super(options);\n this.taskArray = optionsArg.taskArray;\n }\n addTask(taskArg: Task) {\n this.taskArray.push(taskArg);\n }\n removeTask(taskArg: Task) {\n // TODO:\n }\n shiftTask() {\n // TODO:\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport class Taskparallel extends Task {\n public taskArray: Task[];\n constructor(optionsArg: { taskArray: Task[] }) {\n const options = {\n ...optionsArg,\n ...{\n taskFunction: () => {\n const done = plugins.smartpromise.defer();\n const promiseArray: Promise<any>[] = []; // stores promises of all tasks, since they run in parallel\n this.taskArray.forEach(function (taskArg) {\n promiseArray.push(taskArg.trigger());\n });\n Promise.all(promiseArray).then(done.resolve);\n return done.promise;\n },\n },\n };\n super(options);\n this.taskArray = optionsArg.taskArray;\n }\n}\n", "import { Task } from './taskbuffer.classes.task.js';\nimport * as plugins from './taskbuffer.plugins.js';\n\n/**\n * Contains all data for the final coordinator to make an informed decision.\n */\nexport interface IDistributedTaskRequest {\n submitterId: string;\n taskName: string;\n taskVersion: string;\n taskExecutionTime: number;\n taskExecutionTimeout: number;\n taskExecutionParallel: number;\n status: 'requesting' | 'gotRejected' | 'failed' | 'succeeded';\n}\n\nexport interface IDistributedTaskRequestResult {\n submitterId: string;\n considered: boolean;\n rank: number;\n reason: string;\n shouldTrigger: boolean;\n}\n\nexport abstract class AbstractDistributedCoordinator {\n public abstract fireDistributedTaskRequest(\n infoBasis: IDistributedTaskRequest\n ): Promise<IDistributedTaskRequestResult>;\n\n public abstract updateDistributedTaskRequest(\n infoBasis: IDistributedTaskRequest\n ): Promise<void>;\n\n public abstract start(): Promise<void>;\n public abstract stop(): Promise<void>;\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\nimport { AbstractDistributedCoordinator, type IDistributedTaskRequestResult } from './taskbuffer.classes.distributedcoordinator.js';\n\nexport interface ICronJob {\n cronString: string;\n taskName: string;\n job: any;\n}\n\nexport interface ITaskManagerConstructorOptions {\n distributedCoordinator?: AbstractDistributedCoordinator;\n}\n\nexport class TaskManager {\n public randomId = plugins.isounique.uni();\n public taskMap = new plugins.lik.ObjectMap<Task>();\n private cronJobManager = new plugins.smarttime.CronManager();\n public options: ITaskManagerConstructorOptions = {\n distributedCoordinator: null,\n };\n\n constructor(options: ITaskManagerConstructorOptions = {}) {\n this.options = Object.assign(this.options, options);\n }\n\n public getTaskByName(taskName: string): Task {\n return this.taskMap.findSync((task) => task.name === taskName);\n }\n\n public addTask(task: Task): void {\n if (!task.name) {\n throw new Error('Task must have a name to be added to taskManager');\n }\n this.taskMap.add(task);\n }\n\n public addAndScheduleTask(task: Task, cronString: string) {\n this.addTask(task);\n this.scheduleTaskByName(task.name, cronString);\n }\n\n public async triggerTaskByName(taskName: string): Promise<any> {\n const taskToTrigger = this.getTaskByName(taskName);\n if (!taskToTrigger) {\n throw new Error(`No task with the name ${taskName} found.`);\n }\n return taskToTrigger.trigger();\n }\n\n public async triggerTask(task: Task) {\n return task.trigger();\n }\n\n public scheduleTaskByName(taskName: string, cronString: string) {\n const taskToSchedule = this.getTaskByName(taskName);\n if (!taskToSchedule) {\n throw new Error(`No task with the name ${taskName} found.`);\n }\n this.handleTaskScheduling(taskToSchedule, cronString);\n }\n\n private handleTaskScheduling(task: Task, cronString: string) {\n const cronJob = this.cronJobManager.addCronjob(\n cronString,\n async (triggerTime: number) => {\n this.logTaskState(task);\n if (this.options.distributedCoordinator) {\n const announcementResult = await this.performDistributedConsultation(task, triggerTime);\n if (!announcementResult.shouldTrigger) {\n console.log('Distributed coordinator result: NOT EXECUTING');\n return;\n } else {\n console.log('Distributed coordinator result: CHOSEN AND EXECUTING');\n }\n }\n await task.trigger();\n }\n );\n task.cronJob = cronJob;\n }\n\n private logTaskState(task: Task) {\n console.log(`Taskbuffer schedule triggered task >>${task.name}<<`);\n const bufferState = task.buffered\n ? `buffered with max ${task.bufferMax} buffered calls`\n : `unbuffered`;\n console.log(`Task >>${task.name}<< is ${bufferState}`);\n }\n\n private async performDistributedConsultation(task: Task, triggerTime: number): Promise<IDistributedTaskRequestResult> {\n console.log('Found a distributed coordinator, performing consultation.');\n return this.options.distributedCoordinator.fireDistributedTaskRequest({\n submitterId: this.randomId,\n status: 'requesting',\n taskExecutionParallel: 1,\n taskExecutionTime: triggerTime,\n taskExecutionTimeout: task.timeout,\n taskName: task.name,\n taskVersion: task.version,\n });\n }\n\n public descheduleTaskByName(taskName: string) {\n const task = this.getTaskByName(taskName);\n if (task && task.cronJob) {\n this.cronJobManager.removeCronjob(task.cronJob);\n task.cronJob = null;\n }\n if (this.cronJobManager.cronjobs.isEmpty) {\n this.cronJobManager.stop();\n }\n }\n\n public async descheduleTask(task: Task) {\n await this.descheduleTaskByName(task.name);\n }\n\n public getScheduleForTaskName(taskName: string): string | null {\n const task = this.getTaskByName(taskName);\n return task && task.cronJob ? task.cronJob.cronExpression : null;\n }\n\n public async start() {\n if (this.options.distributedCoordinator) {\n await this.options.distributedCoordinator.start();\n }\n this.cronJobManager.start();\n }\n\n public async stop() {\n this.cronJobManager.stop();\n if (this.options.distributedCoordinator) {\n await this.options.distributedCoordinator.stop();\n }\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task, type ITaskFunction } from './taskbuffer.classes.task.js';\n\n/**\n * TaskOnce is run exactly once, no matter how often it is triggered\n */\nexport class TaskOnce extends Task {\n hasTriggered: boolean = false;\n constructor(optionsArg: { name?: string; taskFunction: ITaskFunction }) {\n super({\n name: optionsArg.name,\n taskFunction: async () => {\n if (!this.hasTriggered) {\n this.hasTriggered = true;\n await optionsArg.taskFunction();\n }\n },\n });\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport class TaskRunner {\n public maxParrallelJobs: number = 1;\n public status: 'stopped' | 'running' = 'stopped';\n public runningTasks: plugins.lik.ObjectMap<Task> = new plugins.lik.ObjectMap<Task>();\n public qeuedTasks: Task[] = [];\n\n constructor() {\n this.runningTasks.eventSubject.subscribe(async (eventArg) => {\n this.checkExecution();\n });\n }\n\n /**\n * adds a task to the qeue\n */\n public addTask(taskArg: Task) {\n this.qeuedTasks.push(taskArg);\n this.checkExecution();\n }\n\n /**\n * set amount of parallel tasks\n * be careful, you might loose dependability of tasks\n */\n public setMaxParallelJobs(maxParrallelJobsArg: number) {\n this.maxParrallelJobs = maxParrallelJobsArg;\n }\n\n /**\n * starts the task queue\n */\n public async start() {\n this.status = 'running';\n }\n\n /**\n * checks wether execution is on point\n */\n public async checkExecution() {\n if (\n this.runningTasks.getArray().length < this.maxParrallelJobs &&\n this.status === 'running' &&\n this.qeuedTasks.length > 0\n ) {\n const nextJob = this.qeuedTasks.shift();\n this.runningTasks.add(nextJob);\n await nextJob.trigger();\n this.runningTasks.remove(nextJob);\n this.checkExecution();\n }\n }\n\n /**\n * stops the task queue\n */\n public async stop() {\n this.status = 'stopped';\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task, type ITaskFunction } from './taskbuffer.classes.task.js';\n\nexport class TaskDebounced<T = unknown> extends Task {\n private _debouncedTaskFunction: ITaskFunction;\n private _observableIntake = new plugins.smartrx.ObservableIntake<T>();\n\n constructor(optionsArg: {\n name: string;\n taskFunction: ITaskFunction;\n debounceTimeInMillis: number;\n }) {\n super({\n name: optionsArg.name,\n taskFunction: async (x: T) => {\n this._observableIntake.push(x);\n },\n });\n this.taskFunction = optionsArg.taskFunction;\n this._observableIntake.observable\n .pipe(plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis))\n .subscribe((x) => {\n this.taskFunction(x);\n });\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,QAAMA,OAAM,CAAC,SAAiB,UAAS;AAC5C,aAAO,GAAG,UAAU,2BAA2B,QAAQ,SAAS,CAAC,MAAK;AACpE,cAAM,IAAK,KAAK,OAAM,IAAK,KAAM;AACjC,cAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC,eAAO,EAAE,SAAS,EAAE;MACtB,CAAC;IACH;AANa,YAAA,MAAGA;;;;;ACAhB;AAAA;AAAA,KAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,QAAM,EAAE;AAAA,IAAC,EAAE,SAAM,WAAU;AAAC;AAAa,UAAI,IAAE,KAAI,IAAE,KAAI,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,UAAS,IAAE,QAAO,IAAE,OAAM,IAAE,QAAO,IAAE,SAAQ,IAAE,WAAU,IAAE,QAAO,IAAE,QAAO,IAAE,gBAAe,IAAE,8FAA6F,IAAE,uFAAsF,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASC,IAAE;AAAC,YAAIC,KAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,KAAEF,KAAE;AAAI,eAAM,MAAIA,MAAGC,IAAGC,KAAE,MAAI,EAAE,KAAGD,GAAEC,EAAC,KAAGD,GAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAE,IAAE,SAASD,IAAEC,IAAEC,IAAE;AAAC,YAAIC,KAAE,OAAOH,EAAC;AAAE,eAAM,CAACG,MAAGA,GAAE,UAAQF,KAAED,KAAE,KAAG,MAAMC,KAAE,IAAEE,GAAE,MAAM,EAAE,KAAKD,EAAC,IAAEF;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,GAAE,GAAE,SAASA,IAAE;AAAC,YAAIC,KAAE,CAACD,GAAE,UAAU,GAAEE,KAAE,KAAK,IAAID,EAAC,GAAEE,KAAE,KAAK,MAAMD,KAAE,EAAE,GAAEE,KAAEF,KAAE;AAAG,gBAAOD,MAAG,IAAE,MAAI,OAAK,EAAEE,IAAE,GAAE,GAAG,IAAE,MAAI,EAAEC,IAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASJ,GAAEC,IAAEC,IAAE;AAAC,YAAGD,GAAE,KAAK,IAAEC,GAAE,KAAK;AAAE,iBAAM,CAACF,GAAEE,IAAED,EAAC;AAAE,YAAIE,KAAE,MAAID,GAAE,KAAK,IAAED,GAAE,KAAK,MAAIC,GAAE,MAAM,IAAED,GAAE,MAAM,IAAGG,KAAEH,GAAE,MAAM,EAAE,IAAIE,IAAE,CAAC,GAAEE,KAAEH,KAAEE,KAAE,GAAEE,KAAEL,GAAE,MAAM,EAAE,IAAIE,MAAGE,KAAE,KAAG,IAAG,CAAC;AAAE,eAAM,EAAE,EAAEF,MAAGD,KAAEE,OAAIC,KAAED,KAAEE,KAAEA,KAAEF,QAAK;AAAA,MAAE,GAAE,GAAE,SAASJ,IAAE;AAAC,eAAOA,KAAE,IAAE,KAAK,KAAKA,EAAC,KAAG,IAAE,KAAK,MAAMA,EAAC;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAM,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,EAAC,EAAEA,EAAC,KAAG,OAAOA,MAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAO,WAASA;AAAA,MAAC,EAAC,GAAE,IAAE,MAAK,IAAE,CAAC;AAAE,QAAE,CAAC,IAAE;AAAE,UAAI,IAAE,SAASA,IAAE;AAAC,eAAOA,cAAa;AAAA,MAAC,GAAE,IAAE,SAASA,GAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAIC;AAAE,YAAG,CAACH;AAAE,iBAAO;AAAE,YAAG,YAAU,OAAOA,IAAE;AAAC,cAAII,KAAEJ,GAAE,YAAY;AAAE,YAAEI,EAAC,MAAID,KAAEC,KAAGH,OAAI,EAAEG,EAAC,IAAEH,IAAEE,KAAEC;AAAG,cAAIC,KAAEL,GAAE,MAAM,GAAG;AAAE,cAAG,CAACG,MAAGE,GAAE,SAAO;AAAE,mBAAON,GAAEM,GAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAIC,KAAEN,GAAE;AAAK,YAAEM,EAAC,IAAEN,IAAEG,KAAEG;AAAA,QAAC;AAAC,eAAM,CAACJ,MAAGC,OAAI,IAAEA,KAAGA,MAAG,CAACD,MAAG;AAAA,MAAC,GAAE,IAAE,SAASH,IAAEC,IAAE;AAAC,YAAG,EAAED,EAAC;AAAE,iBAAOA,GAAE,MAAM;AAAE,YAAIE,KAAE,YAAU,OAAOD,KAAEA,KAAE,CAAC;AAAE,eAAOC,GAAE,OAAKF,IAAEE,GAAE,OAAK,WAAU,IAAI,EAAEA,EAAC;AAAA,MAAC,GAAE,IAAE;AAAE,QAAE,IAAE,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,SAASF,IAAEC,IAAE;AAAC,eAAO,EAAED,IAAE,EAAC,QAAOC,GAAE,IAAG,KAAIA,GAAE,IAAG,GAAEA,GAAE,IAAG,SAAQA,GAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI,IAAE,WAAU;AAAC,iBAASO,GAAER,IAAE;AAAC,eAAK,KAAG,EAAEA,GAAE,QAAO,MAAK,IAAE,GAAE,KAAK,MAAMA,EAAC;AAAA,QAAC;AAAC,YAAIS,KAAED,GAAE;AAAU,eAAOC,GAAE,QAAM,SAAST,IAAE;AAAC,eAAK,KAAG,SAASA,IAAE;AAAC,gBAAIC,KAAED,GAAE,MAAKE,KAAEF,GAAE;AAAI,gBAAG,SAAOC;AAAE,qBAAO,oBAAI,KAAK,GAAG;AAAE,gBAAG,EAAE,EAAEA,EAAC;AAAE,qBAAO,oBAAI;AAAK,gBAAGA,cAAa;AAAK,qBAAO,IAAI,KAAKA,EAAC;AAAE,gBAAG,YAAU,OAAOA,MAAG,CAAC,MAAM,KAAKA,EAAC,GAAE;AAAC,kBAAIE,KAAEF,GAAE,MAAM,CAAC;AAAE,kBAAGE,IAAE;AAAC,oBAAIC,KAAED,GAAE,CAAC,IAAE,KAAG,GAAEE,MAAGF,GAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAOD,KAAE,IAAI,KAAK,KAAK,IAAIC,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC,CAAC,IAAE,IAAI,KAAKF,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKJ,EAAC;AAAA,UAAC,EAAED,EAAC,GAAE,KAAK,KAAGA,GAAE,KAAG,CAAC,GAAE,KAAK,KAAK;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,cAAIT,KAAE,KAAK;AAAG,eAAK,KAAGA,GAAE,YAAY,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,QAAQ,GAAE,KAAK,KAAGA,GAAE,OAAO,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,MAAIA,GAAE,gBAAgB;AAAA,QAAC,GAAES,GAAE,SAAO,WAAU;AAAC,iBAAO;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAM,EAAE,KAAK,GAAG,SAAS,MAAI;AAAA,QAAE,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,EAAEF,EAAC;AAAE,iBAAO,KAAK,QAAQC,EAAC,KAAGC,MAAGA,MAAG,KAAK,MAAMD,EAAC;AAAA,QAAC,GAAEQ,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,iBAAO,EAAED,EAAC,IAAE,KAAK,QAAQC,EAAC;AAAA,QAAC,GAAEQ,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAMA,EAAC,IAAE,EAAED,EAAC;AAAA,QAAC,GAAES,GAAE,KAAG,SAAST,IAAEC,IAAEC,IAAE;AAAC,iBAAO,EAAE,EAAEF,EAAC,IAAE,KAAKC,EAAC,IAAE,KAAK,IAAIC,IAAEF,EAAC;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAQ,IAAE,GAAG;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAQ;AAAA,QAAC,GAAEA,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,CAAC,CAAC,EAAE,EAAEF,EAAC,KAAGA,IAAES,KAAE,EAAE,EAAEV,EAAC,GAAEW,KAAE,SAASX,IAAEC,IAAE;AAAC,gBAAIG,KAAE,EAAE,EAAEF,GAAE,KAAG,KAAK,IAAIA,GAAE,IAAGD,IAAED,EAAC,IAAE,IAAI,KAAKE,GAAE,IAAGD,IAAED,EAAC,GAAEE,EAAC;AAAE,mBAAOC,KAAEC,KAAEA,GAAE,MAAM,CAAC;AAAA,UAAC,GAAEQ,KAAE,SAASZ,IAAEC,IAAE;AAAC,mBAAO,EAAE,EAAEC,GAAE,OAAO,EAAEF,EAAC,EAAE,MAAME,GAAE,OAAO,GAAG,IAAGC,KAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMF,EAAC,CAAC,GAAEC,EAAC;AAAA,UAAC,GAAEW,KAAE,KAAK,IAAGL,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGK,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAOJ,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAOP,KAAEQ,GAAE,GAAE,CAAC,IAAEA,GAAE,IAAG,EAAE;AAAA,YAAE,KAAK;AAAE,qBAAOR,KAAEQ,GAAE,GAAEH,EAAC,IAAEG,GAAE,GAAEH,KAAE,CAAC;AAAA,YAAE,KAAK;AAAE,kBAAIO,KAAE,KAAK,QAAQ,EAAE,aAAW,GAAEC,MAAGH,KAAEE,KAAEF,KAAE,IAAEA,MAAGE;AAAE,qBAAOJ,GAAER,KAAEM,KAAEO,KAAEP,MAAG,IAAEO,KAAGR,EAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOI,GAAEE,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK,MAAM;AAAA,UAAC;AAAA,QAAC,GAAEL,GAAE,QAAM,SAAST,IAAE;AAAC,iBAAO,KAAK,QAAQA,IAAE,KAAE;AAAA,QAAC,GAAES,GAAE,OAAK,SAAST,IAAEC,IAAE;AAAC,cAAIC,IAAEe,KAAE,EAAE,EAAEjB,EAAC,GAAEU,KAAE,SAAO,KAAK,KAAG,QAAM,KAAIC,MAAGT,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,YAAWR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,gBAAeR,IAAGe,EAAC,GAAEL,KAAEK,OAAI,IAAE,KAAK,MAAIhB,KAAE,KAAK,MAAIA;AAAE,cAAGgB,OAAI,KAAGA,OAAI,GAAE;AAAC,gBAAIJ,KAAE,KAAK,MAAM,EAAE,IAAI,GAAE,CAAC;AAAE,YAAAA,GAAE,GAAGF,EAAC,EAAEC,EAAC,GAAEC,GAAE,KAAK,GAAE,KAAK,KAAGA,GAAE,IAAI,GAAE,KAAK,IAAI,KAAK,IAAGA,GAAE,YAAY,CAAC,CAAC,EAAE;AAAA,UAAE;AAAM,YAAAF,MAAG,KAAK,GAAGA,EAAC,EAAEC,EAAC;AAAE,iBAAO,KAAK,KAAK,GAAE;AAAA,QAAI,GAAEH,GAAE,MAAI,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAM,EAAE,KAAKD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,MAAI,SAAST,IAAE;AAAC,iBAAO,KAAK,EAAE,EAAEA,EAAC,CAAC,EAAE;AAAA,QAAC,GAAES,GAAE,MAAI,SAASN,IAAEO,IAAE;AAAC,cAAIQ,IAAEP,KAAE;AAAK,UAAAR,KAAE,OAAOA,EAAC;AAAE,cAAIS,KAAE,EAAE,EAAEF,EAAC,GAAEG,KAAE,SAASb,IAAE;AAAC,gBAAIC,KAAE,EAAEU,EAAC;AAAE,mBAAO,EAAE,EAAEV,GAAE,KAAKA,GAAE,KAAK,IAAE,KAAK,MAAMD,KAAEG,EAAC,CAAC,GAAEQ,EAAC;AAAA,UAAC;AAAE,cAAGC,OAAI;AAAE,mBAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI;AAAE,mBAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI;AAAE,mBAAOC,GAAE,CAAC;AAAE,cAAGD,OAAI;AAAE,mBAAOC,GAAE,CAAC;AAAE,cAAIL,MAAGU,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,IAAGN,EAAC,KAAG,GAAEH,KAAE,KAAK,GAAG,QAAQ,IAAEN,KAAEK;AAAE,iBAAO,EAAE,EAAEC,IAAE,IAAI;AAAA,QAAC,GAAEA,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,IAAI,KAAGD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,SAAO,SAAST,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,KAAK,QAAQ;AAAE,cAAG,CAAC,KAAK,QAAQ;AAAE,mBAAOA,GAAE,eAAa;AAAE,cAAIC,KAAEH,MAAG,wBAAuBI,KAAE,EAAE,EAAE,IAAI,GAAEC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGU,KAAEf,GAAE,UAASiB,KAAEjB,GAAE,QAAOQ,KAAER,GAAE,UAASkB,KAAE,SAASpB,IAAEE,IAAEE,IAAEC,IAAE;AAAC,mBAAOL,OAAIA,GAAEE,EAAC,KAAGF,GAAEC,IAAEE,EAAC,MAAIC,GAAEF,EAAC,EAAE,MAAM,GAAEG,EAAC;AAAA,UAAC,GAAEa,KAAE,SAASlB,IAAE;AAAC,mBAAO,EAAE,EAAEK,KAAE,MAAI,IAAGL,IAAE,GAAG;AAAA,UAAC,GAAEY,KAAEF,MAAG,SAASV,IAAEC,IAAEC,IAAE;AAAC,gBAAIC,KAAEH,KAAE,KAAG,OAAK;AAAK,mBAAOE,KAAEC,GAAE,YAAY,IAAEA;AAAA,UAAC;AAAE,iBAAOA,GAAE,QAAQ,GAAG,SAASH,IAAEG,IAAE;AAAC,mBAAOA,MAAG,SAASH,IAAE;AAAC,sBAAOA,IAAE;AAAA,gBAAC,KAAI;AAAK,yBAAO,OAAOC,GAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOM,KAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,KAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOa,GAAElB,GAAE,aAAYK,IAAEY,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOC,GAAED,IAAEZ,EAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAE;AAAA,gBAAG,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmB,GAAElB,GAAE,aAAYD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOG,GAAElB,GAAE,eAAcD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,GAAEhB,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOI,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOa,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAEP,IAAEC,IAAE,IAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOM,GAAEP,IAAEC,IAAE,KAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOL,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAO,EAAE,EAAEA,GAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,EAAEJ,EAAC,KAAGI,GAAE,QAAQ,KAAI,EAAE;AAAA,UAAC,CAAE;AAAA,QAAC,GAAEK,GAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAkB,IAAE,EAAE;AAAA,QAAC,GAAEA,GAAE,OAAK,SAASN,IAAEe,IAAEP,IAAE;AAAC,cAAIC,IAAEC,KAAE,MAAKL,KAAE,EAAE,EAAEU,EAAC,GAAET,KAAE,EAAEN,EAAC,GAAEW,MAAGL,GAAE,UAAU,IAAE,KAAK,UAAU,KAAG,GAAEM,KAAE,OAAKN,IAAEO,KAAE,WAAU;AAAC,mBAAO,EAAE,EAAEH,IAAEJ,EAAC;AAAA,UAAC;AAAE,kBAAOD,IAAE;AAAA,YAAC,KAAK;AAAE,cAAAI,KAAEI,GAAE,IAAE;AAAG;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE,IAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,MAAGG,KAAED,MAAG;AAAO;AAAA,YAAM,KAAK;AAAE,cAAAF,MAAGG,KAAED,MAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAF,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM;AAAQ,cAAAH,KAAEG;AAAA,UAAC;AAAC,iBAAOJ,KAAEC,KAAE,EAAE,EAAEA,EAAC;AAAA,QAAC,GAAEH,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAM,CAAC,EAAE;AAAA,QAAE,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,EAAE,KAAK,EAAE;AAAA,QAAC,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAG,CAACD;AAAE,mBAAO,KAAK;AAAG,cAAIE,KAAE,KAAK,MAAM,GAAEC,KAAE,EAAEH,IAAEC,IAAE,IAAE;AAAE,iBAAOE,OAAID,GAAE,KAAGC,KAAGD;AAAA,QAAC,GAAEO,GAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAQ,IAAE,KAAK,YAAY,IAAE;AAAA,QAAI,GAAEA,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAEA,GAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAED;AAAA,MAAC,EAAE,GAAE,IAAE,EAAE;AAAU,aAAO,EAAE,YAAU,GAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,CAAC,EAAE,QAAS,SAASR,IAAE;AAAC,UAAEA,GAAE,CAAC,CAAC,IAAE,SAASC,IAAE;AAAC,iBAAO,KAAK,GAAGA,IAAED,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,CAAE,GAAE,EAAE,SAAO,SAASA,IAAEC,IAAE;AAAC,eAAOD,GAAE,OAAKA,GAAEC,IAAE,GAAE,CAAC,GAAED,GAAE,KAAG,OAAI;AAAA,MAAC,GAAE,EAAE,SAAO,GAAE,EAAE,UAAQ,GAAE,EAAE,OAAK,SAASA,IAAE;AAAC,eAAO,EAAE,MAAIA,EAAC;AAAA,MAAC,GAAE,EAAE,KAAG,EAAE,CAAC,GAAE,EAAE,KAAG,GAAE,EAAE,IAAE,CAAC,GAAE;AAAA,IAAC,CAAE;AAAA;AAAA;;;ACAj8N;AAAA;AAAA,KAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,uBAAqB,EAAE;AAAA,IAAC,EAAE,SAAM,WAAU;AAAC;AAAa,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,UAAE,UAAU,UAAQ,WAAU;AAAC,cAAIqB,KAAE,cAAaC,KAAE,EAAE;AAAE,iBAAO,KAAK,OAAOD,EAAC,MAAIC,GAAE,OAAOD,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAE;AAAA;AAAA;;;ACA3W;AAAA;AAAA;AAEA,WAAO,UAAU,MAAM,eAAe;AAAA,MAC9B,cAAc;AACN,aAAK,SAAS;AACd,aAAK,kBAAkB;AACvB,aAAK,cAAc;AAEnB,aAAK,aAAa;AAClB,aAAK,YAAY;AAGjB,aAAK,kBAAkB;AAEvB,aAAK,uBAAuB;AAI5B,aAAK,cAAc;AACnB,aAAK,qBAAqB;AAAA,MAClC;AAAA,MAEA,IAAI,aAAa;AACT,eAAO,QAAQ,KAAK,UAAU,KAAK,mBAAmB,KAAK,WAAW;AAAA,MAC9E;AAAA,MAEA,IAAI,cAAc;AACV,eAAO,QAAQ,KAAK,UAAU;AAAA,MACtC;AAAA,MAEA,kBAAkB;AAGV,aAAK,kBAAmB,KAAK,kBAAkB,IAAK;AACpD,aAAK,uBAAuB;AAAA,MACpC;AAAA,MAEA,eAAe,YAAY;AAEnB,YAAI,KAAK,uBAAuB,WAAW,iBAAiB;AACpD,eAAK,qBAAqB;AAE1B,iBAAO;AAAA,QACf;AAEA,eAAO,KAAK;AAAA,MACpB;AAAA,MAEA,eAAe,YAAY,OAAO;AAE1B,aAAK,qBAAqB,WAAW;AACrC,aAAK,cAAc;AAAA,MAC3B;AAAA,IACR;AAAA;AAAA;;;ACrDA;AAAA;AAAA;AAGA,WAAO,UAAU,OAAO,OAAO;AAAA;AAAA,MAEvB,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,UAAU;AAAA,MACV,cAAc;AAAA,IACtB,CAAC;AAAA;AAAA;;;ACVD;AAAA;AAAA;AAEA,QAAM,OAAO,OAAO;AACpB,QAAM,OAAO,OAAO;AACpB,QAAM,OAAO,OAAO;AACpB,QAAM,eAAe,OAAO;AAE5B,QAAM,eAAN,MAAmB;AAAA,MACX,YAAY,MAAM,MAAM,aAAa,iBAAiB;AAC9C,aAAK,IAAI,IAAI;AACb,aAAK,IAAI,IAAI;AACb,aAAK,IAAI,IAAI;AACb,aAAK,YAAY,IAAI;AAAA,MAC7B;AAAA,MAEA,OAAO;AACC,cAAM,OAAO,KAAK,IAAI;AACtB,cAAM,cAAc,KAAK,YAAY;AACrC,cAAM,OAAO,KAAK,IAAI;AAEtB,YAAI,CAAC,KAAK,IAAI,GAAG;AACT,iBAAO;AAAA,YACC,MAAM;AAAA,YACN,OAAO;AAAA,UACf;AAAA,QACR;AAEA,cAAM,QAAQ,KAAK,IAAI;AAEvB,YAAI,gBAAgB,GAAG;AACf,eAAK,IAAI,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,UAAU,OAAO,EAAC,KAAU,CAAC;AAAA,QACvD,OACiC;AACzB,eAAK,IAAI,IAAI,KAAK,UAAU,OAAO,EAAC,KAAU,CAAC;AAAA,QACvD;AAEA,eAAO;AAAA,UACC,MAAM;AAAA,UACN;AAAA,QACR;AAAA,MACR;AAAA,IACR;AAEA,WAAO,eAAe,aAAa,WAAW,OAAO,UAAU;AAAA,MACvD,OAAO,WAAW;AACV,eAAO;AAAA,MACf;AAAA,MACA,UAAU;AAAA,IAClB,CAAC;AAED,iBAAa,OAAO;AACpB,iBAAa,OAAO;AACpB,iBAAa,SAAS;AACtB,iBAAa,YAAY;AACzB,iBAAa,YAAY;AAEzB,WAAO,OAAO,YAAY;AAC1B,WAAO,OAAO,aAAa,SAAS;AAEpC,WAAO,UAAU;AAAA;AAAA;;;ACpEjB;AAAA;AAAA;AAOA,QAAM,iBAAiB;AACvB,QAAM,eAAe;AACrB,QAAM,eAAe;AAErB,aAAS,aAAa;AACd,aAAO;AAAA,IACf;AAEA,aAAS,kBAAkB,OAAO,cAAc;AACxC,aAAO,MAAM,MAAM,SAAS,IAAI,YAAY;AAAA,IACpD;AAEA,QAAM,aAAN,MAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOT,YAAY,aAAa;AACjB,aAAK,SAAS,OAAO,eAAe,iBAAiB;AAAA,MAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,WAAW,QAAQ;AACX,aAAK,MAAM,MAAM;AAEjB,eAAO;AAAA,MACf;AAAA,MAEA,MAAM,QAAQ;AACN,YAAI,CAAC,QAAQ;AACL,iBAAO;AAAA,QACf;AAEA,cAAM,OAAO,OAAO,KAAK,MAAM;AAE/B,YAAI,MAAM;AACF,iBAAO;AAAA,QACf;AAEA,eAAQ,OAAO,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,MACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,YAAY,QAAQ;AACZ,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,WAAW,QAAQ;AACX,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,UAAU,QAAQ;AACV,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,gBAAgB,QAAQ;AAChB,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,YAAY,QAAQ;AACZ,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,OAAO,QAAQ;AACP,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,wBAAwB,QAAQ;AACxB,YAAI;AACJ,YAAI,UAAU;AAEd,eAAQ,YAAY,KAAK,MAAM,OAAO,EAAE,WAAY;AAC5C,oBAAU;AAAA,QAClB;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAmBA,UAAU,QAAQ,SAAS;AACnB,cAAM,WAAW,WAAW,QAAQ;AAEpC,YAAI,WAAW,UAAU;AACjB,iBAAO;AAAA,QACf;AAEA,cAAM,kBAAkB,KAAK,MAAM,MAAM,EAAE;AAE3C,YAAI,iBAAiB;AACb,iBAAO,KAAK,wBAAwB,eAAe;AAAA,QAC3D;AAGA,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBA,UAAU,QAAQ,SAAS;AACnB,cAAM,WAAW,WAAW,QAAQ;AACpC,cAAM,eAAe,WAAW,QAAQ;AAExC,cAAM,aAAa,CAAC,gBAAgB,KAAK,MAAM,MAAM,EAAE;AAEvD,YAAI,YAAY;AACR,iBAAO;AAAA,QACf;AAEA,YAAI,UAAU;AAEd,WAAG;AACK,cAAI,YAAY,UAAU;AAClB,mBAAO;AAAA,UACf;AAEA,gBAAM,cAAc,KAAK,MAAM,OAAO,EAAE;AAExC,cAAI,aAAa;AACT,mBAAO;AAAA,UACf;AAEA,oBAAU,KAAK,MAAM,OAAO,EAAE;AAAA,QACtC,SAAS;AAET,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,gBAAgB,QAAQ,SAAS;AACzB,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAME,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,cAAM,aAAa,KAAK,MAAM,MAAM;AACpC,YAAI,SAAS,WAAW;AACxB,YAAI,QAAQ;AAEZ,eAAO,QAAQ;AACP,gBAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,eAAK,eAAe,YAAY,KAAK;AAErC,cAAIA,QAAO,KAAK,SAAS,MAAM,GAAG;AAC1B,kBAAM,KAAK,MAAM;AAAA,UACzB;AAEA,mBAAS,KAAK;AACd,YAAE;AAAA,QACV;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,iBAAiB,QAAQ,SAAS;AAC1B,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAMA,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,YAAI,WAAW;AAEf,eAAO,UAAU;AACT,cAAIA,QAAO,KAAK,SAAS,QAAQ,GAAG;AAC5B,kBAAM,KAAK,QAAQ;AAAA,UAC3B;AACA,qBAAW,KAAK,MAAM,QAAQ,EAAE;AAAA,QACxC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,YAAY,MAAM,SAAS;AACnB,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAMA,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,YAAI,SAAS;AAEb,eAAO,QAAQ;AACP,cAAIA,QAAO,KAAK,SAAS,MAAM,GAAG;AAC1B,kBAAM,KAAK,MAAM;AAAA,UACzB;AACA,mBAAS,KAAK,UAAU,QAAQ,EAAC,KAAU,CAAC;AAAA,QACpD;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,iBAAiB,QAAQ,SAAS;AAC1B,cAAM,UAAU,WAAW,QAAQ;AACnC,cAAM,aAAa,KAAK,MAAM,MAAM;AAEpC,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,UAAU,WAAW,YAAY,WAAW;AAAA,UAC5C,UAAU,aAAa,OAAO,aAAa;AAAA,QACnD;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,yBAAyB,QAAQ;AACzB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,KAAK,MAAM,MAAM,EAAE;AAAA,UACnB,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,qBAAqB,QAAQ;AACrB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,KAAK,MAAM,MAAM,EAAE;AAAA,UACnB,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,kBAAkB,QAAQ;AAClB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAiBA,aAAa,MAAM,SAAS;AACpB,cAAM,UAAU,WAAW,QAAQ;AAEnC,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,UAAU,KAAK,wBAAwB,IAAI,IAAI;AAAA,UAC/C,UAAU,aAAa,YAAY,aAAa;AAAA,QACxD;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,MAAM,OAAO;AACL,cAAM,YAAY,KAAK,MAAM,KAAK;AAClC,cAAM,aAAa,KAAK,MAAM,UAAU,MAAM;AAE9C,YAAI,CAAC,YAAY;AAIT,iBAAO;AAAA,QACf;AAEA,YAAI,eAAe,UAAU,eAAe,UAAU;AAEtD,YAAI,gBAAgB,GAAG;AACf,iBAAO;AAAA,QACf;AAEA,uBAAe;AACf,YAAI,SAAS,WAAW;AAExB,YAAI,WAAW,sBAAsB;AAC7B,gBAAM,iBAAiB,KAAK,MAAM,WAAW,oBAAoB;AACjE,mBAAS,eAAe;AACxB,yBAAe,eAAe,eAAe,UAAU,IAAI;AAAA,QACnE;AAEA,eAAO,QAAQ;AACP,gBAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,eAAK,eAAe,YAAY,YAAY;AAE5C,cAAI,WAAW,OAAO;AACd;AAAA,UACR;AAEA,YAAE;AACF,mBAAS,KAAK;AAAA,QACtB;AAEA,mBAAW,uBAAuB;AAElC,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,cAAc,QAAQ;AACd,cAAM,aAAa,KAAK,MAAM,MAAM;AAEpC,YAAI,CAAC,WAAW,WAAW;AACnB,iBAAO;AAAA,QACf;AAEA,eAAO,KAAK,MAAM,WAAW,SAAS,IAAI;AAAA,MAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA4BA,oBAAoB,MAAM,OAAO;AAKzB,YAAI,SAAS,OAAO;AACZ,iBAAO;AAAA,QACf;AAIA,cAAM,gBAAgB,CAAC;AAAG;AAClB,cAAI,eAAe;AAEnB,iBAAO,cAAc;AACb,gBAAI,iBAAiB,OAAO;AACpB,qBAAO,aAAa,WAAW,aAAa;AAAA,YAEpD;AAEA,0BAAc,KAAK,YAAY;AAC/B,2BAAe,KAAK,OAAO,YAAY;AAAA,UAC/C;AAAA,QACR;AAGA,cAAM,iBAAiB,CAAC;AAAG;AACnB,cAAI,gBAAgB;AAEpB,iBAAO,eAAe;AACd,gBAAI,kBAAkB,MAAM;AACpB,qBAAO,aAAa,eAAe,aAAa;AAAA,YACxD;AAEA,2BAAe,KAAK,aAAa;AACjC,4BAAgB,KAAK,OAAO,aAAa;AAAA,UACjD;AAAA,QACR;AAGA,cAAM,OAAO,kBAAkB,eAAe,CAAC;AAE/C,YAAI,CAAC,QAAQ,SAAS,kBAAkB,gBAAgB,CAAC,GAAG;AAEpD,iBAAO,aAAa;AAAA,QAC5B;AAGA,YAAI,sBAAsB;AAC1B,cAAM,qBAAqB,KAAK,IAAI,cAAc,QAAQ,eAAe,MAAM;AAE/E,iBAAS,IAAI,GAAG,IAAI,oBAAoB,EAAE,GAAG;AACrC,gBAAM,eAAgB,kBAAkB,eAAe,CAAC;AACxD,gBAAM,gBAAgB,kBAAkB,gBAAgB,CAAC;AAEzD,cAAI,iBAAiB,eAAe;AAC5B;AAAA,UACR;AAEA,gCAAsB;AAAA,QAC9B;AAGA,cAAM,YAAa,KAAK,MAAM,kBAAkB,eAAe,sBAAsB,CAAC,CAAC;AACvF,cAAM,aAAa,KAAK,MAAM,kBAAkB,gBAAgB,sBAAsB,CAAC,CAAC;AAExF,eAAO,aAAa,YACV,aAAa,YACb,aAAa;AAAA,MAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,OAAO,cAAc;AACb,cAAM,aAAa,KAAK,MAAM,YAAY;AAC1C,cAAM,aAAa,KAAK,MAAM,WAAW,MAAM;AAC/C,cAAM,WAAW,KAAK,MAAM,WAAW,eAAe;AACtD,cAAM,WAAW,KAAK,MAAM,WAAW,WAAW;AAElD,YAAI,YAAY;AACR,cAAI,WAAW,eAAe,cAAc;AACpC,uBAAW,aAAa,WAAW;AAAA,UAC3C;AAEA,cAAI,WAAW,cAAc,cAAc;AACnC,uBAAW,YAAY,WAAW;AAAA,UAC1C;AAAA,QACR;AAEA,YAAI,UAAU;AACN,mBAAS,cAAc,WAAW;AAAA,QAC1C;AAEA,YAAI,UAAU;AACN,mBAAS,kBAAkB,WAAW;AAAA,QAC9C;AAEA,mBAAW,SAAS;AACpB,mBAAW,kBAAkB;AAC7B,mBAAW,cAAc;AACzB,mBAAW,cAAc;AACzB,mBAAW,qBAAqB;AAEhC,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,aAAa,iBAAiB,WAAW;AACjC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,WAAW,KAAK,MAAM,cAAc,eAAe;AACzD,cAAM,UAAU,KAAK,MAAM,SAAS;AACpC,cAAM,aAAa,KAAK,MAAM,cAAc,MAAM;AAElD,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,gBAAQ,SAAS,cAAc;AAC/B,gBAAQ,kBAAkB,cAAc;AACxC,gBAAQ,cAAc;AACtB,sBAAc,kBAAkB;AAEhC,YAAI,UAAU;AACN,mBAAS,cAAc;AAAA,QAC/B;AAEA,YAAI,cAAc,WAAW,eAAe,iBAAiB;AACrD,qBAAW,aAAa;AAAA,QAChC;AAEA,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,YAAY,iBAAiB,WAAW;AAChC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,WAAW,KAAK,MAAM,cAAc,WAAW;AACrD,cAAM,UAAU,KAAK,MAAM,SAAS;AACpC,cAAM,aAAa,KAAK,MAAM,cAAc,MAAM;AAElD,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,gBAAQ,SAAS,cAAc;AAC/B,gBAAQ,kBAAkB;AAC1B,gBAAQ,cAAc,cAAc;AACpC,sBAAc,cAAc;AAE5B,YAAI,UAAU;AACN,mBAAS,kBAAkB;AAAA,QACnC;AAEA,YAAI,cAAc,WAAW,cAAc,iBAAiB;AACpD,qBAAW,YAAY;AAAA,QAC/B;AAEA,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,aAAa,iBAAiB,WAAW;AACjC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,UAAU,KAAK,MAAM,SAAS;AAEpC,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,YAAI,cAAc,aAAa;AACvB,eAAK,aAAa,cAAc,YAAY,SAAS;AAAA,QAC7D,OACK;AACG,kBAAQ,SAAS;AACjB,wBAAc,aAAa;AAC3B,wBAAc,YAAY;AAC1B,wBAAc,gBAAgB;AAAA,QACtC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,YAAY,iBAAiB,WAAW;AAChC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,UAAU,KAAK,MAAM,SAAS;AAEpC,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,YAAI,cAAc,aAAa;AACvB,eAAK,YAAY,cAAc,WAAW,SAAS;AAAA,QAC3D,OACK;AACG,kBAAQ,SAAS;AACjB,wBAAc,aAAa;AAC3B,wBAAc,YAAY;AAC1B,wBAAc,gBAAgB;AAAA,QACtC;AAEA,eAAO;AAAA,MACf;AAAA,IACR;AAEA,WAAO,UAAU;AACjB,eAAW,eAAe;AAAA;AAAA;;;ACr0B1B,IAAAC,aAA2B;;;ACA3B,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;;;;;;;;;ACAA,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;ACAA;;;;;;;;;;;;;;;ACUM,IAAO,WAAP,MAAe;EAMZ,QAAK;AACV,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI,MAAM,0BAA0B;;AAE5C,SAAK,UAAU;EACjB;EAIA,IAAW,WAAQ;AACjB,QAAI,KAAK,WAAW;AAClB,aAAO,KAAK,YAAY,KAAK;WACxB;AACL,aAAO,KAAK,IAAG,IAAK,KAAK;;EAE7B;EAEA,cAAA;AAlBO,SAAA,UAAU;AAmBf,SAAK,UAAU,IAAI,QAAW,CAAC,SAAS,WAAU;AAChD,WAAK,UAAU,CAAC,aAAgC;AAC9C,aAAK,SAAS;AACd,aAAK,YAAY,KAAK,IAAG;AACzB,gBAAQ,QAAQ;MAClB;AACA,WAAK,SAAS,CAAC,WAAe;AAC5B,aAAK,SAAS;AACd,aAAK,YAAY,KAAK,IAAG;AACzB,eAAO,MAAM;MACf;AACA,WAAK,YAAY,KAAK,IAAG;AACzB,WAAK,SAAS;IAChB,CAAC;EACH;;AAGK,IAAM,QAAQ,MAAQ;AAC3B,SAAO,IAAI,SAAQ;AACrB;;;ACnDM,IAAO,qBAAP,MAAyB;EAK7B,cAAA;AAJQ,SAAA,sBAAsC,CAAA;AACtC,SAAA,WAAW,MAAK;AACjB,SAAA,UAAU,KAAK,SAAS;AAG7B,eAAW,YAAW;AACpB,aAAO,KAAK,oBAAoB,SAAS,GAAG;AAC1C,cAAM,gBAAgB,KAAK,oBAAoB,MAAK;AACpD,cAAM;;AAER,WAAK,SAAS,QAAO;IACvB,GAAG,CAAC;EACN;EAEO,WAAW,YAAwB;AACxC,SAAK,oBAAoB,KAAK,UAAU;EAC1C;;AAIK,IAAM,kBAAkB,MAAK;AAClC,SAAO,IAAI,mBAAkB;AAC/B;;;AFhBO,IAAM,kBAAkB,CAAI,UAAyB;AAC1D,SAAO,QAAQ,QAAQ,KAAK;AAC9B;AAKO,IAAM,kBAAkB,CAAC,QAAO;AACrC,SAAO,QAAQ,OAAO,GAAG;AAC3B;AAYO,IAAM,MAAM,OAAU,UAAe,gBAAkC;AAC5E,QAAM,eAA+B,CAAA;AACrC,QAAM,cAAc,CAAA;AACpB,aAAW,QAAQ,UAAU;AAC3B,UAAM,UAAwB,YAAY,IAAI;AAC9C,iBAAa,KAAK,OAAO;AACzB,YAAQ,KAAK,CAAC,MAAK;AACjB,kBAAY,KAAK,CAAC;IACpB,CAAC;;AAEH,QAAM,QAAQ,IAAI,YAAY;AAC9B,SAAO;AACT;AAEO,IAAM,cAAc,OACzB,YACA,gBACA,YAAY,SACV;AACF,SAAO,IAAI,QAAW,CAAC,SAAS,WAAU;AACxC,eAAW,MAAK;AACd,UAAI,WAAW;AACb,eAAO,IAAI,MAAM,SAAS,CAAC;aACtB;AACL,gBAAQ,IAAI;;IAEhB,GAAG,cAAc;AACjB,eAAW,KAAK,SAAS,MAAM;EACjC,CAAC;AACH;AAEO,IAAM,qBAAqB,OAChC,YACA,iBAAiB,QACf;AACF,SAAO,YAAY,YAAY,gBAAgB,KAAK;AACtD;AAEO,IAAM,sBAAsB,OAAO,gBAAmC;AAC3E,QAAM,OAAO,MAAK;AAClB,aAAW,cAAc,aAAa;AACpC,eAAW,KAAK,CAAC,cAAa;AAC5B,UAAI,cAAc,MAAM;AACtB,aAAK,QAAQ,IAAI;;IAErB,CAAC;;AAEH,UAAQ,IAAI,WAAW,EAAE,KAAK,MAAK;AACjC,SAAK,QAAQ,KAAK;EACpB,CAAC;AACD,SAAO,KAAK;AACd;;;AD1EO,IAAI,WAAW,OACpB,sBACA,WACA,aAAa,UACX;AACF,QAAM,UAAU,IAAI,QAAQ,sBAAsB,MAAM,UAAU;AAClE,QAAM,QAAQ;AACd,SAAO;AACT;AAKO,IAAI,iBAAiB,OAC1B,yBACA,yBACA,WACA,aAAa,UACX;AACF,QAAM,SACJ,KAAK,OAAM,KAAM,0BAA0B,2BAA2B,yBACtE,MACA,UAAU;AAEZ,SAAO;AACT;AAEM,IAAO,UAAP,MAAc;EASlB,YAAY,sBAAsB,QAAY,aAAa,OAAK;AALxD,SAAA,aAAsB;AAM5B,SAAK,kBAAkB;AACvB,SAAK,YAAyB,MAAK;AACnC,SAAK,UAAU,KAAK,UAAU;AAC9B,SAAK,WAAW,WAAW,MAAK;AAC9B,UAAI,CAAC,KAAK,YAAY;AACpB,aAAK,UAAU,QAAQ,MAAM;;IAEjC,GAAG,oBAAoB;AACvB,SAAK,UAAU,KAAK,IAAG;AACvB,QAAI,YAAY;AACd,WAAK,YAAW;;EAEpB;;;;EAKO,cAAW;AAChB,SAAK,SAAS,MAAK;EACrB;;;;EAKO,SAAM;AACX,SAAK,aAAa;AAClB,iBAAa,KAAK,QAAQ;EAC5B;EAEO,cAAW;AAChB,UAAM,SAAS,KAAK,UAAU,KAAK,kBAAkB,KAAK,IAAG;AAC7D,WAAO,SAAS,IAAI,SAAS;EAC/B;;;;AI5EF,IAAAC,mBAAA;SAAAA,kBAAA;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;ACAe,SAAR,mBAAoC,QAAQ;AAClD,MAAI,OAAO,WAAW,UAAU;AAC/B,UAAM,IAAI,UAAU,mBAAmB;AAAA,EACxC;AAIA,SAAO,OACL,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,MAAM,OAAO;AACxB;;;ADRA,IAAM,cAAc,oBAAI,IAAI;AAE5B,IAAM,gBAAgB,CAAC,OAAO,cAAc;AAC3C,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAC1B,YAAQ,OAAO,OAAO;AAAA,MACrB,KAAK;AACJ,gBAAQ,CAAC,KAAK;AACd;AAAA,MACD,KAAK;AACJ,gBAAQ,CAAC;AACT;AAAA,MACD;AACC,cAAM,IAAI,UAAU,aAAa,6DAA6D,OAAO,QAAQ;AAAA,IAC/G;AAAA,EACD;AAEA,SAAO,MAAM,OAAO,YAAU;AAC7B,QAAI,OAAO,WAAW,UAAU;AAC/B,UAAI,OAAO,WAAW,aAAa;AAClC,eAAO;AAAA,MACR;AAEA,YAAM,IAAI,UAAU,aAAa,8DAA8D,OAAO,sBAAsB;AAAA,IAC7H;AAEA,WAAO;AAAA,EACR,CAAC;AACF;AAEA,IAAM,aAAa,CAAC,SAAS,YAAY;AACxC,YAAU;AAAA,IACT,eAAe;AAAA,IACf,GAAG;AAAA,EACJ;AAEA,QAAM,WAAW,UAAU,KAAK,UAAU,OAAO;AAEjD,MAAI,YAAY,IAAI,QAAQ,GAAG;AAC9B,WAAO,YAAY,IAAI,QAAQ;AAAA,EAChC;AAEA,QAAM,UAAU,QAAQ,CAAC,MAAM;AAE/B,MAAI,SAAS;AACZ,cAAU,QAAQ,MAAM,CAAC;AAAA,EAC1B;AAEA,YAAU,mBAAmB,OAAO,EAAE,QAAQ,SAAS,WAAW;AAElE,QAAM,SAAS,IAAI,OAAO,IAAI,YAAY,QAAQ,gBAAgB,KAAK,GAAG;AAC1E,SAAO,UAAU;AACjB,cAAY,IAAI,UAAU,MAAM;AAEhC,SAAO;AACR;AAEA,IAAM,cAAc,CAAC,QAAQ,UAAU,SAAS,mBAAmB;AAClE,WAAS,cAAc,QAAQ,QAAQ;AACvC,aAAW,cAAc,UAAU,UAAU;AAE7C,MAAI,SAAS,WAAW,GAAG;AAC1B,WAAO,CAAC;AAAA,EACT;AAEA,aAAW,SAAS,IAAI,aAAW,WAAW,SAAS,OAAO,CAAC;AAE/D,QAAM,EAAC,YAAW,IAAI,WAAW,CAAC;AAClC,QAAM,SAAS,CAAC;AAEhB,aAAW,SAAS,QAAQ;AAI3B,QAAI;AACJ,UAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,KAAK,KAAK;AAEvC,eAAW,CAAC,OAAO,OAAO,KAAK,SAAS,QAAQ,GAAG;AAClD,UAAI,QAAQ,KAAK,KAAK,GAAG;AACxB,eAAO,KAAK,IAAI;AAChB,kBAAU,CAAC,QAAQ;AAEnB,YAAI,CAAC,SAAS;AACb;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,QACC,EACC,YAAY,SACR,YAAY,UAAa,SAAS,KAAK,aAAW,CAAC,QAAQ,OAAO,KAClE,eAAe,OAAO,KAAK,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE,OAAO,IAE/E;AACD,aAAO,KAAK,KAAK;AAEjB,UAAI,gBAAgB;AACnB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,QAAQ,QAAQ,UAAU,SAAS;AAClD,SAAO,YAAY,QAAQ,UAAU,SAAS,KAAK;AACpD;AAEO,SAAS,QAAQ,QAAQ,UAAU,SAAS;AAClD,SAAO,YAAY,QAAQ,UAAU,SAAS,IAAI,EAAE,SAAS;AAC9D;;;AD/GM,IAAO,aAAP,MAAiB;EAErB,YAAY,aAAmB;AAC7B,SAAK,WAAW;EAClB;EAEO,MAAM,gBAAsB;AACjC,WAAe,gBAAQ,QAAQ,gBAAgB,KAAK,QAAQ;EAC9D;;;;AGVF,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;ACAA;;;;;;;;;;;;ACgBA,IAAI,gBAAgB,SAAS,GAAG,GAAG;AACjC,kBAAgB,OAAO,kBAClB,EAAE,WAAW,CAAC,EAAE,aAAa,SAAS,SAAUC,IAAGC,IAAG;AAAE,IAAAD,GAAE,YAAYC;AAAA,EAAG,KAC1E,SAAUD,IAAGC,IAAG;AAAE,aAAS,KAAKA;AAAG,UAAI,OAAO,UAAU,eAAe,KAAKA,IAAG,CAAC;AAAG,QAAAD,GAAE,CAAC,IAAIC,GAAE,CAAC;AAAA,EAAG;AACpG,SAAO,cAAc,GAAG,CAAC;AAC3B;AAEO,SAAS,UAAU,GAAG,GAAG;AAC9B,MAAI,OAAO,MAAM,cAAc,MAAM;AACjC,UAAM,IAAI,UAAU,yBAAyB,OAAO,CAAC,IAAI,+BAA+B;AAC5F,gBAAc,GAAG,CAAC;AAClB,WAAS,KAAK;AAAE,SAAK,cAAc;AAAA,EAAG;AACtC,IAAE,YAAY,MAAM,OAAO,OAAO,OAAO,CAAC,KAAK,GAAG,YAAY,EAAE,WAAW,IAAI,GAAG;AACpF;AAqFO,SAAS,UAAU,SAAS,YAAY,GAAG,WAAW;AAC3D,WAAS,MAAM,OAAO;AAAE,WAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,cAAQ,KAAK;AAAA,IAAG,CAAC;AAAA,EAAG;AAC3G,SAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,aAAS,UAAU,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAK,KAAK,CAAC;AAAA,MAAG,SAAS,GAAP;AAAY,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAC1F,aAAS,SAAS,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,MAAG,SAAS,GAAP;AAAY,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAC7F,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAG;AAC7G,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACxE,CAAC;AACH;AAEO,SAAS,YAAY,SAAS,MAAM;AACzC,MAAI,IAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAAE,QAAI,EAAE,CAAC,IAAI;AAAG,YAAM,EAAE,CAAC;AAAG,WAAO,EAAE,CAAC;AAAA,EAAG,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG;AAC/G,SAAO,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,UAAU,KAAK,CAAC,EAAE,GAAG,OAAO,WAAW,eAAe,EAAE,OAAO,QAAQ,IAAI,WAAW;AAAE,WAAO;AAAA,EAAM,IAAI;AACvJ,WAAS,KAAK,GAAG;AAAE,WAAO,SAAU,GAAG;AAAE,aAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AAAA,IAAG;AAAA,EAAG;AACjE,WAAS,KAAK,IAAI;AACd,QAAI;AAAG,YAAM,IAAI,UAAU,iCAAiC;AAC5D,WAAO,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK;AAAG,UAAI;AAC1C,YAAI,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,OAAO,IAAI,EAAE,QAAQ,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG;AAAM,iBAAO;AAC3J,YAAI,IAAI,GAAG;AAAG,eAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACtC,gBAAQ,GAAG,CAAC,GAAG;AAAA,UACX,KAAK;AAAA,UAAG,KAAK;AAAG,gBAAI;AAAI;AAAA,UACxB,KAAK;AAAG,cAAE;AAAS,mBAAO,EAAE,OAAO,GAAG,CAAC,GAAG,MAAM,MAAM;AAAA,UACtD,KAAK;AAAG,cAAE;AAAS,gBAAI,GAAG,CAAC;AAAG,iBAAK,CAAC,CAAC;AAAG;AAAA,UACxC,KAAK;AAAG,iBAAK,EAAE,IAAI,IAAI;AAAG,cAAE,KAAK,IAAI;AAAG;AAAA,UACxC;AACI,gBAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI;AAAE,kBAAI;AAAG;AAAA,YAAU;AAC3G,gBAAI,GAAG,CAAC,MAAM,MAAM,CAAC,KAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,IAAK;AAAE,gBAAE,QAAQ,GAAG,CAAC;AAAG;AAAA,YAAO;AACrF,gBAAI,GAAG,CAAC,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG;AAAE,gBAAE,QAAQ,EAAE,CAAC;AAAG,kBAAI;AAAI;AAAA,YAAO;AACpE,gBAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG;AAAE,gBAAE,QAAQ,EAAE,CAAC;AAAG,gBAAE,IAAI,KAAK,EAAE;AAAG;AAAA,YAAO;AAClE,gBAAI,EAAE,CAAC;AAAG,gBAAE,IAAI,IAAI;AACpB,cAAE,KAAK,IAAI;AAAG;AAAA,QACtB;AACA,aAAK,KAAK,KAAK,SAAS,CAAC;AAAA,MAC7B,SAAS,GAAP;AAAY,aAAK,CAAC,GAAG,CAAC;AAAG,YAAI;AAAA,MAAG,UAAE;AAAU,YAAI,IAAI;AAAA,MAAG;AACzD,QAAI,GAAG,CAAC,IAAI;AAAG,YAAM,GAAG,CAAC;AAAG,WAAO,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,MAAM,KAAK;AAAA,EACnF;AACF;AAkBO,SAAS,SAAS,GAAG;AAC1B,MAAI,IAAI,OAAO,WAAW,cAAc,OAAO,UAAU,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI;AAC5E,MAAI;AAAG,WAAO,EAAE,KAAK,CAAC;AACtB,MAAI,KAAK,OAAO,EAAE,WAAW;AAAU,WAAO;AAAA,MAC1C,MAAM,WAAY;AACd,YAAI,KAAK,KAAK,EAAE;AAAQ,cAAI;AAC5B,eAAO,EAAE,OAAO,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE;AAAA,MAC1C;AAAA,IACJ;AACA,QAAM,IAAI,UAAU,IAAI,4BAA4B,iCAAiC;AACvF;AAEO,SAAS,OAAO,GAAG,GAAG;AAC3B,MAAI,IAAI,OAAO,WAAW,cAAc,EAAE,OAAO,QAAQ;AACzD,MAAI,CAAC;AAAG,WAAO;AACf,MAAI,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AAC/B,MAAI;AACA,YAAQ,MAAM,UAAU,MAAM,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG;AAAM,SAAG,KAAK,EAAE,KAAK;AAAA,EAC7E,SACO,OAAP;AAAgB,QAAI,EAAE,MAAa;AAAA,EAAG,UACtC;AACI,QAAI;AACA,UAAI,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,QAAQ;AAAI,UAAE,KAAK,CAAC;AAAA,IACnD,UACA;AAAU,UAAI;AAAG,cAAM,EAAE;AAAA,IAAO;AAAA,EACpC;AACA,SAAO;AACT;AAkBO,SAAS,cAAc,IAAIC,OAAM,MAAM;AAC5C,MAAI,QAAQ,UAAU,WAAW;AAAG,aAAS,IAAI,GAAG,IAAIA,MAAK,QAAQ,IAAI,IAAI,GAAG,KAAK;AACjF,UAAI,MAAM,EAAE,KAAKA,QAAO;AACpB,YAAI,CAAC;AAAI,eAAK,MAAM,UAAU,MAAM,KAAKA,OAAM,GAAG,CAAC;AACnD,WAAG,CAAC,IAAIA,MAAK,CAAC;AAAA,MAClB;AAAA,IACJ;AACA,SAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAKA,KAAI,CAAC;AACzD;AAEO,SAAS,QAAQ,GAAG;AACzB,SAAO,gBAAgB,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC;AACrE;AAEO,SAAS,iBAAiB,SAAS,YAAY,WAAW;AAC/D,MAAI,CAAC,OAAO;AAAe,UAAM,IAAI,UAAU,sCAAsC;AACrF,MAAI,IAAI,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAC5D,SAAO,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAG,EAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAM,GAAG;AACpH,WAAS,KAAK,GAAG;AAAE,QAAI,EAAE,CAAC;AAAG,QAAE,CAAC,IAAI,SAAU,GAAG;AAAE,eAAO,IAAI,QAAQ,SAAU,GAAG,GAAG;AAAE,YAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC;AAAA,QAAG,CAAC;AAAA,MAAG;AAAA,EAAG;AACzI,WAAS,OAAO,GAAG,GAAG;AAAE,QAAI;AAAE,WAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,IAAG,SAAS,GAAP;AAAY,aAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;AAAA,IAAG;AAAA,EAAE;AACjF,WAAS,KAAK,GAAG;AAAE,MAAE,iBAAiB,UAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;AAAA,EAAG;AACvH,WAAS,QAAQ,OAAO;AAAE,WAAO,QAAQ,KAAK;AAAA,EAAG;AACjD,WAAS,OAAO,OAAO;AAAE,WAAO,SAAS,KAAK;AAAA,EAAG;AACjD,WAAS,OAAO,GAAG,GAAG;AAAE,QAAI,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;AAAQ,aAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,EAAG;AACnF;AAQO,SAAS,cAAc,GAAG;AAC/B,MAAI,CAAC,OAAO;AAAe,UAAM,IAAI,UAAU,sCAAsC;AACrF,MAAI,IAAI,EAAE,OAAO,aAAa,GAAG;AACjC,SAAO,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,aAAa,aAAa,SAAS,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAG,EAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAM,GAAG;AAC9M,WAAS,KAAK,GAAG;AAAE,MAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAU,GAAG;AAAE,aAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAAE,YAAI,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,SAAS,QAAQ,EAAE,MAAM,EAAE,KAAK;AAAA,MAAG,CAAC;AAAA,IAAG;AAAA,EAAG;AAC/J,WAAS,OAAO,SAAS,QAAQ,GAAG,GAAG;AAAE,YAAQ,QAAQ,CAAC,EAAE,KAAK,SAASC,IAAG;AAAE,cAAQ,EAAE,OAAOA,IAAG,MAAM,EAAE,CAAC;AAAA,IAAG,GAAG,MAAM;AAAA,EAAG;AAC7H;;;ACvPM,SAAU,WAAW,OAAU;AACnC,SAAO,OAAO,UAAU;AAC1B;;;ACGM,SAAU,iBAAoB,YAAgC;AAClE,MAAM,SAAS,SAAC,UAAa;AAC3B,UAAM,KAAK,QAAQ;AACnB,aAAS,QAAQ,IAAI,MAAK,EAAG;EAC/B;AAEA,MAAM,WAAW,WAAW,MAAM;AAClC,WAAS,YAAY,OAAO,OAAO,MAAM,SAAS;AAClD,WAAS,UAAU,cAAc;AACjC,SAAO;AACT;;;ACDO,IAAM,sBAA+C,iBAC1D,SAAC,QAAM;AACL,SAAA,SAAS,wBAAmC,QAA0B;AACpE,WAAO,IAAI;AACX,SAAK,UAAU,SACR,OAAO,SAAM,8CACxB,OAAO,IAAI,SAAC,KAAK,GAAC;AAAK,aAAG,IAAI,IAAC,OAAK,IAAI,SAAQ;IAAzB,CAA6B,EAAE,KAAK,MAAM,IACzD;AACJ,SAAK,OAAO;AACZ,SAAK,SAAS;EAChB;AARA,CAQC;;;ACvBC,SAAU,UAAa,KAA6B,MAAO;AAC/D,MAAI,KAAK;AACP,QAAM,QAAQ,IAAI,QAAQ,IAAI;AAC9B,SAAK,SAAS,IAAI,OAAO,OAAO,CAAC;;AAErC;;;ACOA,IAAA,eAAA,WAAA;AAyBE,WAAAC,cAAoB,iBAA4B;AAA5B,SAAA,kBAAA;AAdb,SAAA,SAAS;AAER,SAAA,aAAmD;AAMnD,SAAA,cAAqD;EAMV;AAQnD,EAAAA,cAAA,UAAA,cAAA,WAAA;;AACE,QAAI;AAEJ,QAAI,CAAC,KAAK,QAAQ;AAChB,WAAK,SAAS;AAGN,UAAA,aAAe,KAAI;AAC3B,UAAI,YAAY;AACd,aAAK,aAAa;AAClB,YAAI,MAAM,QAAQ,UAAU,GAAG;;AAC7B,qBAAqB,eAAA,SAAA,UAAU,GAAA,iBAAA,aAAA,KAAA,GAAA,CAAA,eAAA,MAAA,iBAAA,aAAA,KAAA,GAAE;AAA5B,kBAAM,WAAM,eAAA;AACf,uBAAO,OAAO,IAAI;;;;;;;;;;;;;eAEf;AACL,qBAAW,OAAO,IAAI;;;AAIlB,UAAiB,mBAAqB,KAAI;AAClD,UAAI,WAAW,gBAAgB,GAAG;AAChC,YAAI;AACF,2BAAgB;iBACT,GAAP;AACA,mBAAS,aAAa,sBAAsB,EAAE,SAAS,CAAC,CAAC;;;AAIrD,UAAA,cAAgB,KAAI;AAC5B,UAAI,aAAa;AACf,aAAK,cAAc;;AACnB,mBAAwB,gBAAA,SAAA,WAAW,GAAA,kBAAA,cAAA,KAAA,GAAA,CAAA,gBAAA,MAAA,kBAAA,cAAA,KAAA,GAAE;AAAhC,gBAAM,YAAS,gBAAA;AAClB,gBAAI;AACF,4BAAc,SAAS;qBAChB,KAAP;AACA,uBAAS,WAAM,QAAN,WAAM,SAAN,SAAU,CAAA;AACnB,kBAAI,eAAe,qBAAqB;AACtC,yBAAM,cAAA,cAAA,CAAA,GAAA,OAAO,MAAM,CAAA,GAAA,OAAK,IAAI,MAAM,CAAA;qBAC7B;AACL,uBAAO,KAAK,GAAG;;;;;;;;;;;;;;;;AAMvB,UAAI,QAAQ;AACV,cAAM,IAAI,oBAAoB,MAAM;;;EAG1C;AAoBA,EAAAA,cAAA,UAAA,MAAA,SAAI,UAAuB;;AAGzB,QAAI,YAAY,aAAa,MAAM;AACjC,UAAI,KAAK,QAAQ;AAGf,sBAAc,QAAQ;aACjB;AACL,YAAI,oBAAoBA,eAAc;AAGpC,cAAI,SAAS,UAAU,SAAS,WAAW,IAAI,GAAG;AAChD;;AAEF,mBAAS,WAAW,IAAI;;AAE1B,SAAC,KAAK,eAAc,KAAA,KAAK,iBAAW,QAAA,OAAA,SAAA,KAAI,CAAA,GAAI,KAAK,QAAQ;;;EAG/D;AAOQ,EAAAA,cAAA,UAAA,aAAR,SAAmB,QAAoB;AAC7B,QAAA,aAAe,KAAI;AAC3B,WAAO,eAAe,UAAW,MAAM,QAAQ,UAAU,KAAK,WAAW,SAAS,MAAM;EAC1F;AASQ,EAAAA,cAAA,UAAA,aAAR,SAAmB,QAAoB;AAC7B,QAAA,aAAe,KAAI;AAC3B,SAAK,aAAa,MAAM,QAAQ,UAAU,KAAK,WAAW,KAAK,MAAM,GAAG,cAAc,aAAa,CAAC,YAAY,MAAM,IAAI;EAC5H;AAMQ,EAAAA,cAAA,UAAA,gBAAR,SAAsB,QAAoB;AAChC,QAAA,aAAe,KAAI;AAC3B,QAAI,eAAe,QAAQ;AACzB,WAAK,aAAa;eACT,MAAM,QAAQ,UAAU,GAAG;AACpC,gBAAU,YAAY,MAAM;;EAEhC;AAgBA,EAAAA,cAAA,UAAA,SAAA,SAAO,UAAsC;AACnC,QAAA,cAAgB,KAAI;AAC5B,mBAAe,UAAU,aAAa,QAAQ;AAE9C,QAAI,oBAAoBA,eAAc;AACpC,eAAS,cAAc,IAAI;;EAE/B;AAlLc,EAAAA,cAAA,QAAS,WAAA;AACrB,QAAM,QAAQ,IAAIA,cAAY;AAC9B,UAAM,SAAS;AACf,WAAO;EACT,EAAE;AA+KJ,SAAAA;EArLA;AAuLO,IAAM,qBAAqB,aAAa;AAEzC,SAAU,eAAe,OAAU;AACvC,SACE,iBAAiB,gBAChB,SAAS,YAAY,SAAS,WAAW,MAAM,MAAM,KAAK,WAAW,MAAM,GAAG,KAAK,WAAW,MAAM,WAAW;AAEpH;AAEA,SAAS,cAAc,WAAwC;AAC7D,MAAI,WAAW,SAAS,GAAG;AACzB,cAAS;SACJ;AACL,cAAU,YAAW;;AAEzB;;;AChNO,IAAM,SAAuB;EAClC,kBAAkB;EAClB,uBAAuB;EACvB,SAAS;EACT,uCAAuC;EACvC,0BAA0B;;;;ACGrB,IAAM,kBAAmC;EAG9C,YAAA,SAAW,SAAqB,SAAgB;AAAE,QAAA,OAAA,CAAA;aAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,WAAA,KAAA,CAAA,IAAA,UAAA,EAAA;;AACxC,QAAA,WAAa,gBAAe;AACpC,QAAI,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,YAAY;AACxB,aAAO,SAAS,WAAU,MAAnB,UAAQ,cAAA,CAAY,SAAS,OAAO,GAAA,OAAK,IAAI,CAAA,CAAA;;AAEtD,WAAO,WAAU,MAAA,QAAA,cAAA,CAAC,SAAS,OAAO,GAAA,OAAK,IAAI,CAAA,CAAA;EAC7C;EACA,cAAA,SAAa,QAAM;AACT,QAAA,WAAa,gBAAe;AACpC,aAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,iBAAgB,cAAc,MAAa;EAC/D;EACA,UAAU;;;;ACjBN,SAAU,qBAAqB,KAAQ;AAC3C,kBAAgB,WAAW,WAAA;AACjB,QAAA,mBAAqB,OAAM;AACnC,QAAI,kBAAkB;AAEpB,uBAAiB,GAAG;WACf;AAEL,YAAM;;EAEV,CAAC;AACH;;;ACtBM,SAAU,OAAI;AAAK;;;ACMlB,IAAM,wBAAyB,WAAA;AAAM,SAAA,mBAAmB,KAAK,QAAW,MAAS;AAA5C,EAAsE;AAO5G,SAAU,kBAAkB,OAAU;AAC1C,SAAO,mBAAmB,KAAK,QAAW,KAAK;AACjD;AAOM,SAAU,iBAAoB,OAAQ;AAC1C,SAAO,mBAAmB,KAAK,OAAO,MAAS;AACjD;AAQM,SAAU,mBAAmB,MAAuB,OAAY,OAAU;AAC9E,SAAO;IACL;IACA;IACA;;AAEJ;;;ACrCA,IAAI,UAAuD;AASrD,SAAU,aAAa,IAAc;AACzC,MAAI,OAAO,uCAAuC;AAChD,QAAM,SAAS,CAAC;AAChB,QAAI,QAAQ;AACV,gBAAU,EAAE,aAAa,OAAO,OAAO,KAAI;;AAE7C,OAAE;AACF,QAAI,QAAQ;AACJ,UAAA,KAAyB,SAAvB,cAAW,GAAA,aAAE,QAAK,GAAA;AAC1B,gBAAU;AACV,UAAI,aAAa;AACf,cAAM;;;SAGL;AAGL,OAAE;;AAEN;AAMM,SAAU,aAAa,KAAQ;AACnC,MAAI,OAAO,yCAAyC,SAAS;AAC3D,YAAQ,cAAc;AACtB,YAAQ,QAAQ;;AAEpB;;;ACrBA,IAAA,aAAA,SAAA,QAAA;AAAmC,YAAAC,aAAA,MAAA;AA6BjC,WAAAA,YAAY,aAA6C;AAAzD,QAAA,QACE,OAAA,KAAA,IAAA,KAAO;AATC,UAAA,YAAqB;AAU7B,QAAI,aAAa;AACf,YAAK,cAAc;AAGnB,UAAI,eAAe,WAAW,GAAG;AAC/B,oBAAY,IAAI,KAAI;;WAEjB;AACL,YAAK,cAAc;;;EAEvB;AAzBO,EAAAA,YAAA,SAAP,SAAiB,MAAwB,OAA2B,UAAqB;AACvF,WAAO,IAAI,eAAe,MAAM,OAAO,QAAQ;EACjD;AAgCA,EAAAA,YAAA,UAAA,OAAA,SAAK,OAAS;AACZ,QAAI,KAAK,WAAW;AAClB,gCAA0B,iBAAiB,KAAK,GAAG,IAAI;WAClD;AACL,WAAK,MAAM,KAAM;;EAErB;AASA,EAAAA,YAAA,UAAA,QAAA,SAAM,KAAS;AACb,QAAI,KAAK,WAAW;AAClB,gCAA0B,kBAAkB,GAAG,GAAG,IAAI;WACjD;AACL,WAAK,YAAY;AACjB,WAAK,OAAO,GAAG;;EAEnB;AAQA,EAAAA,YAAA,UAAA,WAAA,WAAA;AACE,QAAI,KAAK,WAAW;AAClB,gCAA0B,uBAAuB,IAAI;WAChD;AACL,WAAK,YAAY;AACjB,WAAK,UAAS;;EAElB;AAEA,EAAAA,YAAA,UAAA,cAAA,WAAA;AACE,QAAI,CAAC,KAAK,QAAQ;AAChB,WAAK,YAAY;AACjB,aAAA,UAAM,YAAW,KAAA,IAAA;AACjB,WAAK,cAAc;;EAEvB;AAEU,EAAAA,YAAA,UAAA,QAAV,SAAgB,OAAQ;AACtB,SAAK,YAAY,KAAK,KAAK;EAC7B;AAEU,EAAAA,YAAA,UAAA,SAAV,SAAiB,KAAQ;AACvB,QAAI;AACF,WAAK,YAAY,MAAM,GAAG;;AAE1B,WAAK,YAAW;;EAEpB;AAEU,EAAAA,YAAA,UAAA,YAAV,WAAA;AACE,QAAI;AACF,WAAK,YAAY,SAAQ;;AAEzB,WAAK,YAAW;;EAEpB;AACF,SAAAA;AAAA,EApHmC,YAAY;AA2H/C,IAAM,QAAQ,SAAS,UAAU;AAEjC,SAAS,KAAyC,IAAQ,SAAY;AACpE,SAAO,MAAM,KAAK,IAAI,OAAO;AAC/B;AAMA,IAAA,mBAAA,WAAA;AACE,WAAAC,kBAAoB,iBAAqC;AAArC,SAAA,kBAAA;EAAwC;AAE5D,EAAAA,kBAAA,UAAA,OAAA,SAAK,OAAQ;AACH,QAAA,kBAAoB,KAAI;AAChC,QAAI,gBAAgB,MAAM;AACxB,UAAI;AACF,wBAAgB,KAAK,KAAK;eACnB,OAAP;AACA,6BAAqB,KAAK;;;EAGhC;AAEA,EAAAA,kBAAA,UAAA,QAAA,SAAM,KAAQ;AACJ,QAAA,kBAAoB,KAAI;AAChC,QAAI,gBAAgB,OAAO;AACzB,UAAI;AACF,wBAAgB,MAAM,GAAG;eAClB,OAAP;AACA,6BAAqB,KAAK;;WAEvB;AACL,2BAAqB,GAAG;;EAE5B;AAEA,EAAAA,kBAAA,UAAA,WAAA,WAAA;AACU,QAAA,kBAAoB,KAAI;AAChC,QAAI,gBAAgB,UAAU;AAC5B,UAAI;AACF,wBAAgB,SAAQ;eACjB,OAAP;AACA,6BAAqB,KAAK;;;EAGhC;AACF,SAAAA;AAAA,EArCA;AAuCA,IAAA,iBAAA,SAAA,QAAA;AAAuC,YAAAC,iBAAA,MAAA;AACrC,WAAAA,gBACE,gBACA,OACA,UAA8B;AAHhC,QAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAEP,QAAI;AACJ,QAAI,WAAW,cAAc,KAAK,CAAC,gBAAgB;AAGjD,wBAAkB;QAChB,MAAO,mBAAc,QAAd,mBAAc,SAAd,iBAAkB;QACzB,OAAO,UAAK,QAAL,UAAK,SAAL,QAAS;QAChB,UAAU,aAAQ,QAAR,aAAQ,SAAR,WAAY;;WAEnB;AAEL,UAAI;AACJ,UAAI,SAAQ,OAAO,0BAA0B;AAI3C,oBAAU,OAAO,OAAO,cAAc;AACtC,kBAAQ,cAAc,WAAA;AAAM,iBAAA,MAAK,YAAW;QAAhB;AAC5B,0BAAkB;UAChB,MAAM,eAAe,QAAQ,KAAK,eAAe,MAAM,SAAO;UAC9D,OAAO,eAAe,SAAS,KAAK,eAAe,OAAO,SAAO;UACjE,UAAU,eAAe,YAAY,KAAK,eAAe,UAAU,SAAO;;aAEvE;AAEL,0BAAkB;;;AAMtB,UAAK,cAAc,IAAI,iBAAiB,eAAe;;EACzD;AACF,SAAAA;AAAA,EAzCuC,UAAU;AA2CjD,SAAS,qBAAqB,OAAU;AACtC,MAAI,OAAO,uCAAuC;AAChD,iBAAa,KAAK;SACb;AAGL,yBAAqB,KAAK;;AAE9B;AAQA,SAAS,oBAAoB,KAAQ;AACnC,QAAM;AACR;AAOA,SAAS,0BAA0B,cAA2C,YAA2B;AAC/F,MAAA,wBAA0B,OAAM;AACxC,2BAAyB,gBAAgB,WAAW,WAAA;AAAM,WAAA,sBAAsB,cAAc,UAAU;EAA9C,CAA+C;AAC3G;AAOO,IAAM,iBAA6D;EACxE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,UAAU;;;;AC5QL,IAAM,aAA+B,WAAA;AAAM,SAAC,OAAO,WAAW,cAAc,OAAO,cAAe;AAAvD,EAAsE;;;ACoClH,SAAU,SAAY,GAAI;AAC9B,SAAO;AACT;;;ACsCM,SAAU,cAAoB,KAA+B;AACjE,MAAI,IAAI,WAAW,GAAG;AACpB,WAAO;;AAGT,MAAI,IAAI,WAAW,GAAG;AACpB,WAAO,IAAI,CAAC;;AAGd,SAAO,SAAS,MAAM,OAAQ;AAC5B,WAAO,IAAI,OAAO,SAAC,MAAW,IAAuB;AAAK,aAAA,GAAG,IAAI;IAAP,GAAU,KAAY;EAClF;AACF;;;AC9EA,IAAA,aAAA,WAAA;AAkBE,WAAAC,YAAY,WAA6E;AACvF,QAAI,WAAW;AACb,WAAK,aAAa;;EAEtB;AA4BA,EAAAA,YAAA,UAAA,OAAA,SAAQ,UAAyB;AAC/B,QAAMC,cAAa,IAAID,YAAU;AACjC,IAAAC,YAAW,SAAS;AACpB,IAAAA,YAAW,WAAW;AACtB,WAAOA;EACT;AA6IA,EAAAD,YAAA,UAAA,YAAA,SACE,gBACA,OACA,UAA8B;AAHhC,QAAA,QAAA;AAKE,QAAM,aAAa,aAAa,cAAc,IAAI,iBAAiB,IAAI,eAAe,gBAAgB,OAAO,QAAQ;AAErH,iBAAa,WAAA;AACL,UAAA,KAAuB,OAArB,WAAQ,GAAA,UAAE,SAAM,GAAA;AACxB,iBAAW,IACT,WAGI,SAAS,KAAK,YAAY,MAAM,IAChC,SAIA,MAAK,WAAW,UAAU,IAG1B,MAAK,cAAc,UAAU,CAAC;IAEtC,CAAC;AAED,WAAO;EACT;AAGU,EAAAA,YAAA,UAAA,gBAAV,SAAwB,MAAmB;AACzC,QAAI;AACF,aAAO,KAAK,WAAW,IAAI;aACpB,KAAP;AAIA,WAAK,MAAM,GAAG;;EAElB;AA6DA,EAAAA,YAAA,UAAA,UAAA,SAAQ,MAA0B,aAAoC;AAAtE,QAAA,QAAA;AACE,kBAAc,eAAe,WAAW;AAExC,WAAO,IAAI,YAAkB,SAAC,SAAS,QAAM;AAC3C,UAAM,aAAa,IAAI,eAAkB;QACvC,MAAM,SAAC,OAAK;AACV,cAAI;AACF,iBAAK,KAAK;mBACH,KAAP;AACA,mBAAO,GAAG;AACV,uBAAW,YAAW;;QAE1B;QACA,OAAO;QACP,UAAU;OACX;AACD,YAAK,UAAU,UAAU;IAC3B,CAAC;EACH;AAGU,EAAAA,YAAA,UAAA,aAAV,SAAqB,YAA2B;;AAC9C,YAAO,KAAA,KAAK,YAAM,QAAA,OAAA,SAAA,SAAA,GAAE,UAAU,UAAU;EAC1C;AAOA,EAAAA,YAAA,UAAC,UAAiB,IAAlB,WAAA;AACE,WAAO;EACT;AA4FA,EAAAA,YAAA,UAAA,OAAA,WAAA;AAAK,QAAA,aAAA,CAAA;aAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAA2C;AAA3C,iBAAA,EAAA,IAAA,UAAA,EAAA;;AACH,WAAO,cAAc,UAAU,EAAE,IAAI;EACvC;AA6BA,EAAAA,YAAA,UAAA,YAAA,SAAU,aAAoC;AAA9C,QAAA,QAAA;AACE,kBAAc,eAAe,WAAW;AAExC,WAAO,IAAI,YAAY,SAAC,SAAS,QAAM;AACrC,UAAI;AACJ,YAAK,UACH,SAAC,GAAI;AAAK,eAAC,QAAQ;MAAT,GACV,SAAC,KAAQ;AAAK,eAAA,OAAO,GAAG;MAAV,GACd,WAAA;AAAM,eAAA,QAAQ,KAAK;MAAb,CAAc;IAExB,CAAC;EACH;AA1aO,EAAAA,YAAA,SAAkC,SAAI,WAAwD;AACnG,WAAO,IAAIA,YAAc,SAAS;EACpC;AAyaF,SAAAA;EA9cA;AAudA,SAAS,eAAe,aAA+C;;AACrE,UAAO,KAAA,gBAAW,QAAX,gBAAW,SAAX,cAAe,OAAO,aAAO,QAAA,OAAA,SAAA,KAAI;AAC1C;AAEA,SAAS,WAAc,OAAU;AAC/B,SAAO,SAAS,WAAW,MAAM,IAAI,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW,MAAM,QAAQ;AAChG;AAEA,SAAS,aAAgB,OAAU;AACjC,SAAQ,SAAS,iBAAiB,cAAgB,WAAW,KAAK,KAAK,eAAe,KAAK;AAC7F;;;ACzeM,SAAU,QAAQ,QAAW;AACjC,SAAO,WAAW,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,IAAI;AAChC;AAMM,SAAU,QACd,MAAqF;AAErF,SAAO,SAAC,QAAqB;AAC3B,QAAI,QAAQ,MAAM,GAAG;AACnB,aAAO,OAAO,KAAK,SAA+B,cAA2B;AAC3E,YAAI;AACF,iBAAO,KAAK,cAAc,IAAI;iBACvB,KAAP;AACA,eAAK,MAAM,GAAG;;MAElB,CAAC;;AAEH,UAAM,IAAI,UAAU,wCAAwC;EAC9D;AACF;;;ACjBM,SAAU,yBACd,aACA,QACA,YACA,SACA,YAAuB;AAEvB,SAAO,IAAI,mBAAmB,aAAa,QAAQ,YAAY,SAAS,UAAU;AACpF;AAMA,IAAA,qBAAA,SAAA,QAAA;AAA2C,YAAAE,qBAAA,MAAA;AAiBzC,WAAAA,oBACE,aACA,QACA,YACA,SACQ,YACA,mBAAiC;AAN3C,QAAA,QAoBE,OAAA,KAAA,MAAM,WAAW,KAAC;AAfV,UAAA,aAAA;AACA,UAAA,oBAAA;AAeR,UAAK,QAAQ,SACT,SAAuC,OAAQ;AAC7C,UAAI;AACF,eAAO,KAAK;eACL,KAAP;AACA,oBAAY,MAAM,GAAG;;IAEzB,IACA,OAAA,UAAM;AACV,UAAK,SAAS,UACV,SAAuC,KAAQ;AAC7C,UAAI;AACF,gBAAQ,GAAG;eACJC,MAAP;AAEA,oBAAY,MAAMA,IAAG;;AAGrB,aAAK,YAAW;;IAEpB,IACA,OAAA,UAAM;AACV,UAAK,YAAY,aACb,WAAA;AACE,UAAI;AACF,mBAAU;eACH,KAAP;AAEA,oBAAY,MAAM,GAAG;;AAGrB,aAAK,YAAW;;IAEpB,IACA,OAAA,UAAM;;EACZ;AAEA,EAAAD,oBAAA,UAAA,cAAA,WAAA;;AACE,QAAI,CAAC,KAAK,qBAAqB,KAAK,kBAAiB,GAAI;AAC/C,UAAA,WAAW,KAAI;AACvB,aAAA,UAAM,YAAW,KAAA,IAAA;AAEjB,OAAC,cAAU,KAAA,KAAK,gBAAU,QAAA,OAAA,SAAA,SAAA,GAAA,KAAf,IAAI;;EAEnB;AACF,SAAAA;AAAA,EAnF2C,UAAU;;;ACP9C,IAAM,0BAAuD,iBAClE,SAAC,QAAM;AACL,SAAA,SAAS,8BAA2B;AAClC,WAAO,IAAI;AACX,SAAK,OAAO;AACZ,SAAK,UAAU;EACjB;AAJA,CAIC;;;ACXL,IAAA,UAAA,SAAA,QAAA;AAAgC,YAAAE,UAAA,MAAA;AAwB9B,WAAAA,WAAA;AAAA,QAAA,QAEE,OAAA,KAAA,IAAA,KAAO;AAzBT,UAAA,SAAS;AAED,UAAA,mBAAyC;AAGjD,UAAA,YAA2B,CAAA;AAE3B,UAAA,YAAY;AAEZ,UAAA,WAAW;AAEX,UAAA,cAAmB;;EAenB;AAGA,EAAAA,SAAA,UAAA,OAAA,SAAQ,UAAwB;AAC9B,QAAM,UAAU,IAAI,iBAAiB,MAAM,IAAI;AAC/C,YAAQ,WAAW;AACnB,WAAO;EACT;AAGU,EAAAA,SAAA,UAAA,iBAAV,WAAA;AACE,QAAI,KAAK,QAAQ;AACf,YAAM,IAAI,wBAAuB;;EAErC;AAEA,EAAAA,SAAA,UAAA,OAAA,SAAK,OAAQ;AAAb,QAAA,QAAA;AACE,iBAAa,WAAA;;AACX,YAAK,eAAc;AACnB,UAAI,CAAC,MAAK,WAAW;AACnB,YAAI,CAAC,MAAK,kBAAkB;AAC1B,gBAAK,mBAAmB,MAAM,KAAK,MAAK,SAAS;;;AAEnD,mBAAuB,KAAA,SAAA,MAAK,gBAAgB,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,GAAA,MAAA,KAAA,GAAA,KAAA,GAAE;AAAzC,gBAAM,WAAQ,GAAA;AACjB,qBAAS,KAAK,KAAK;;;;;;;;;;;;;;IAGzB,CAAC;EACH;AAEA,EAAAA,SAAA,UAAA,QAAA,SAAM,KAAQ;AAAd,QAAA,QAAA;AACE,iBAAa,WAAA;AACX,YAAK,eAAc;AACnB,UAAI,CAAC,MAAK,WAAW;AACnB,cAAK,WAAW,MAAK,YAAY;AACjC,cAAK,cAAc;AACX,YAAA,YAAc,MAAI;AAC1B,eAAO,UAAU,QAAQ;AACvB,oBAAU,MAAK,EAAI,MAAM,GAAG;;;IAGlC,CAAC;EACH;AAEA,EAAAA,SAAA,UAAA,WAAA,WAAA;AAAA,QAAA,QAAA;AACE,iBAAa,WAAA;AACX,YAAK,eAAc;AACnB,UAAI,CAAC,MAAK,WAAW;AACnB,cAAK,YAAY;AACT,YAAA,YAAc,MAAI;AAC1B,eAAO,UAAU,QAAQ;AACvB,oBAAU,MAAK,EAAI,SAAQ;;;IAGjC,CAAC;EACH;AAEA,EAAAA,SAAA,UAAA,cAAA,WAAA;AACE,SAAK,YAAY,KAAK,SAAS;AAC/B,SAAK,YAAY,KAAK,mBAAmB;EAC3C;AAEA,SAAA,eAAIA,SAAA,WAAA,YAAQ;SAAZ,WAAA;;AACE,eAAO,KAAA,KAAK,eAAS,QAAA,OAAA,SAAA,SAAA,GAAE,UAAS;IAClC;;;;AAGU,EAAAA,SAAA,UAAA,gBAAV,SAAwB,YAAyB;AAC/C,SAAK,eAAc;AACnB,WAAO,OAAA,UAAM,cAAa,KAAA,MAAC,UAAU;EACvC;AAGU,EAAAA,SAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,SAAK,eAAc;AACnB,SAAK,wBAAwB,UAAU;AACvC,WAAO,KAAK,gBAAgB,UAAU;EACxC;AAGU,EAAAA,SAAA,UAAA,kBAAV,SAA0B,YAA2B;AAArD,QAAA,QAAA;AACQ,QAAA,KAAqC,MAAnC,WAAQ,GAAA,UAAE,YAAS,GAAA,WAAE,YAAS,GAAA;AACtC,QAAI,YAAY,WAAW;AACzB,aAAO;;AAET,SAAK,mBAAmB;AACxB,cAAU,KAAK,UAAU;AACzB,WAAO,IAAI,aAAa,WAAA;AACtB,YAAK,mBAAmB;AACxB,gBAAU,WAAW,UAAU;IACjC,CAAC;EACH;AAGU,EAAAA,SAAA,UAAA,0BAAV,SAAkC,YAA2B;AACrD,QAAA,KAAuC,MAArC,WAAQ,GAAA,UAAE,cAAW,GAAA,aAAE,YAAS,GAAA;AACxC,QAAI,UAAU;AACZ,iBAAW,MAAM,WAAW;eACnB,WAAW;AACpB,iBAAW,SAAQ;;EAEvB;AAQA,EAAAA,SAAA,UAAA,eAAA,WAAA;AACE,QAAMC,cAAkB,IAAI,WAAU;AACtC,IAAAA,YAAW,SAAS;AACpB,WAAOA;EACT;AAxHO,EAAAD,SAAA,SAAkC,SAAI,aAA0B,QAAqB;AAC1F,WAAO,IAAI,iBAAoB,aAAa,MAAM;EACpD;AAuHF,SAAAA;EA7IgC,UAAU;AAkJ1C,IAAA,mBAAA,SAAA,QAAA;AAAyC,YAAAE,mBAAA,MAAA;AACvC,WAAAA,kBAES,aACP,QAAsB;AAHxB,QAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAHA,UAAA,cAAA;AAIP,UAAK,SAAS;;EAChB;AAEA,EAAAA,kBAAA,UAAA,OAAA,SAAK,OAAQ;;AACX,KAAA,MAAA,KAAA,KAAK,iBAAW,QAAA,OAAA,SAAA,SAAA,GAAE,UAAI,QAAA,OAAA,SAAA,SAAA,GAAA,KAAA,IAAG,KAAK;EAChC;AAEA,EAAAA,kBAAA,UAAA,QAAA,SAAM,KAAQ;;AACZ,KAAA,MAAA,KAAA,KAAK,iBAAW,QAAA,OAAA,SAAA,SAAA,GAAE,WAAK,QAAA,OAAA,SAAA,SAAA,GAAA,KAAA,IAAG,GAAG;EAC/B;AAEA,EAAAA,kBAAA,UAAA,WAAA,WAAA;;AACE,KAAA,MAAA,KAAA,KAAK,iBAAW,QAAA,OAAA,SAAA,SAAA,GAAE,cAAQ,QAAA,OAAA,SAAA,SAAA,GAAA,KAAA,EAAA;EAC5B;AAGU,EAAAA,kBAAA,UAAA,aAAV,SAAqB,YAAyB;;AAC5C,YAAO,MAAA,KAAA,KAAK,YAAM,QAAA,OAAA,SAAA,SAAA,GAAE,UAAU,UAAU,OAAC,QAAA,OAAA,SAAA,KAAI;EAC/C;AACF,SAAAA;AAAA,EA1ByC,OAAO;;;AC5JzC,IAAM,wBAA+C;EAC1D,KAAG,WAAA;AAGD,YAAQ,sBAAsB,YAAY,MAAM,IAAG;EACrD;EACA,UAAU;;;;ACwBZ,IAAA,gBAAA,SAAA,QAAA;AAAsC,YAAAC,gBAAA,MAAA;AAUpC,WAAAA,eACU,aACA,aACA,oBAA6D;AAF7D,QAAA,gBAAA,QAAA;AAAA,oBAAA;IAAsB;AACtB,QAAA,gBAAA,QAAA;AAAA,oBAAA;IAAsB;AACtB,QAAA,uBAAA,QAAA;AAAA,2BAAA;IAA6D;AAHvE,QAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAJC,UAAA,cAAA;AACA,UAAA,cAAA;AACA,UAAA,qBAAA;AAZF,UAAA,UAA0B,CAAA;AAC1B,UAAA,sBAAsB;AAc5B,UAAK,sBAAsB,gBAAgB;AAC3C,UAAK,cAAc,KAAK,IAAI,GAAG,WAAW;AAC1C,UAAK,cAAc,KAAK,IAAI,GAAG,WAAW;;EAC5C;AAEA,EAAAA,eAAA,UAAA,OAAA,SAAK,OAAQ;AACL,QAAA,KAA+E,MAA7E,YAAS,GAAA,WAAE,UAAO,GAAA,SAAE,sBAAmB,GAAA,qBAAE,qBAAkB,GAAA,oBAAE,cAAW,GAAA;AAChF,QAAI,CAAC,WAAW;AACd,cAAQ,KAAK,KAAK;AAClB,OAAC,uBAAuB,QAAQ,KAAK,mBAAmB,IAAG,IAAK,WAAW;;AAE7E,SAAK,YAAW;AAChB,WAAA,UAAM,KAAI,KAAA,MAAC,KAAK;EAClB;AAGU,EAAAA,eAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,SAAK,eAAc;AACnB,SAAK,YAAW;AAEhB,QAAM,eAAe,KAAK,gBAAgB,UAAU;AAE9C,QAAA,KAAmC,MAAjC,sBAAmB,GAAA,qBAAE,UAAO,GAAA;AAGpC,QAAM,OAAO,QAAQ,MAAK;AAC1B,aAAS,IAAI,GAAG,IAAI,KAAK,UAAU,CAAC,WAAW,QAAQ,KAAK,sBAAsB,IAAI,GAAG;AACvF,iBAAW,KAAK,KAAK,CAAC,CAAM;;AAG9B,SAAK,wBAAwB,UAAU;AAEvC,WAAO;EACT;AAEQ,EAAAA,eAAA,UAAA,cAAR,WAAA;AACQ,QAAA,KAAoE,MAAlE,cAAW,GAAA,aAAE,qBAAkB,GAAA,oBAAE,UAAO,GAAA,SAAE,sBAAmB,GAAA;AAKrE,QAAM,sBAAsB,sBAAsB,IAAI,KAAK;AAC3D,kBAAc,YAAY,qBAAqB,QAAQ,UAAU,QAAQ,OAAO,GAAG,QAAQ,SAAS,kBAAkB;AAItH,QAAI,CAAC,qBAAqB;AACxB,UAAM,MAAM,mBAAmB,IAAG;AAClC,UAAIC,QAAO;AAGX,eAAS,IAAI,GAAG,IAAI,QAAQ,UAAW,QAAQ,CAAC,KAAgB,KAAK,KAAK,GAAG;AAC3E,QAAAA,QAAO;;AAET,MAAAA,SAAQ,QAAQ,OAAO,GAAGA,QAAO,CAAC;;EAEtC;AACF,SAAAD;AAAA,EAzEsC,OAAO;;;AClB7C,IAAA,SAAA,SAAA,QAAA;AAA+B,YAAAE,SAAA,MAAA;AAC7B,WAAAA,QAAY,WAAsB,MAAmD;WACnF,OAAA,KAAA,IAAA,KAAO;EACT;AAWO,EAAAA,QAAA,UAAA,WAAP,SAAgB,OAAW,OAAiB;AAAjB,QAAA,UAAA,QAAA;AAAA,cAAA;IAAiB;AAC1C,WAAO;EACT;AACF,SAAAA;AAAA,EAjB+B,YAAY;;;ACHpC,IAAM,mBAAqC;EAGhD,aAAA,SAAY,SAAqB,SAAgB;AAAE,QAAA,OAAA,CAAA;aAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,WAAA,KAAA,CAAA,IAAA,UAAA,EAAA;;AACzC,QAAA,WAAa,iBAAgB;AACrC,QAAI,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,aAAa;AACzB,aAAO,SAAS,YAAW,MAApB,UAAQ,cAAA,CAAa,SAAS,OAAO,GAAA,OAAK,IAAI,CAAA,CAAA;;AAEvD,WAAO,YAAW,MAAA,QAAA,cAAA,CAAC,SAAS,OAAO,GAAA,OAAK,IAAI,CAAA,CAAA;EAC9C;EACA,eAAA,SAAc,QAAM;AACV,QAAA,WAAa,iBAAgB;AACrC,aAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,kBAAiB,eAAe,MAAa;EACjE;EACA,UAAU;;;;ACrBZ,IAAA,cAAA,SAAA,QAAA;AAAoC,YAAAC,cAAA,MAAA;AAOlC,WAAAA,aAAsB,WAAqC,MAAmD;AAA9G,QAAA,QACE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AADF,UAAA,YAAA;AAAqC,UAAA,OAAA;AAFjD,UAAA,UAAmB;;EAI7B;AAEO,EAAAA,aAAA,UAAA,WAAP,SAAgB,OAAW,OAAiB;;AAAjB,QAAA,UAAA,QAAA;AAAA,cAAA;IAAiB;AAC1C,QAAI,KAAK,QAAQ;AACf,aAAO;;AAIT,SAAK,QAAQ;AAEb,QAAM,KAAK,KAAK;AAChB,QAAM,YAAY,KAAK;AAuBvB,QAAI,MAAM,MAAM;AACd,WAAK,KAAK,KAAK,eAAe,WAAW,IAAI,KAAK;;AAKpD,SAAK,UAAU;AAEf,SAAK,QAAQ;AAEb,SAAK,MAAK,KAAA,KAAK,QAAE,QAAA,OAAA,SAAA,KAAI,KAAK,eAAe,WAAW,KAAK,IAAI,KAAK;AAElE,WAAO;EACT;AAEU,EAAAA,aAAA,UAAA,iBAAV,SAAyB,WAA2B,KAAmB,OAAiB;AAAjB,QAAA,UAAA,QAAA;AAAA,cAAA;IAAiB;AACtF,WAAO,iBAAiB,YAAY,UAAU,MAAM,KAAK,WAAW,IAAI,GAAG,KAAK;EAClF;AAEU,EAAAA,aAAA,UAAA,iBAAV,SAAyB,YAA4B,IAAkB,OAAwB;AAAxB,QAAA,UAAA,QAAA;AAAA,cAAA;IAAwB;AAE7F,QAAI,SAAS,QAAQ,KAAK,UAAU,SAAS,KAAK,YAAY,OAAO;AACnE,aAAO;;AAIT,QAAI,MAAM,MAAM;AACd,uBAAiB,cAAc,EAAE;;AAGnC,WAAO;EACT;AAMO,EAAAA,aAAA,UAAA,UAAP,SAAe,OAAU,OAAa;AACpC,QAAI,KAAK,QAAQ;AACf,aAAO,IAAI,MAAM,8BAA8B;;AAGjD,SAAK,UAAU;AACf,QAAM,QAAQ,KAAK,SAAS,OAAO,KAAK;AACxC,QAAI,OAAO;AACT,aAAO;eACE,KAAK,YAAY,SAAS,KAAK,MAAM,MAAM;AAcpD,WAAK,KAAK,KAAK,eAAe,KAAK,WAAW,KAAK,IAAI,IAAI;;EAE/D;AAEU,EAAAA,aAAA,UAAA,WAAV,SAAmB,OAAU,QAAc;AACzC,QAAI,UAAmB;AACvB,QAAI;AACJ,QAAI;AACF,WAAK,KAAK,KAAK;aACR,GAAP;AACA,gBAAU;AAIV,mBAAa,IAAI,IAAI,IAAI,MAAM,oCAAoC;;AAErE,QAAI,SAAS;AACX,WAAK,YAAW;AAChB,aAAO;;EAEX;AAEA,EAAAA,aAAA,UAAA,cAAA,WAAA;AACE,QAAI,CAAC,KAAK,QAAQ;AACV,UAAA,KAAoB,MAAlB,KAAE,GAAA,IAAE,YAAS,GAAA;AACb,UAAA,UAAY,UAAS;AAE7B,WAAK,OAAO,KAAK,QAAQ,KAAK,YAAY;AAC1C,WAAK,UAAU;AAEf,gBAAU,SAAS,IAAI;AACvB,UAAI,MAAM,MAAM;AACd,aAAK,KAAK,KAAK,eAAe,WAAW,IAAI,IAAI;;AAGnD,WAAK,QAAQ;AACb,aAAA,UAAM,YAAW,KAAA,IAAA;;EAErB;AACF,SAAAA;AAAA,EA9IoC,MAAM;;;ACgB1C,IAAA,YAAA,WAAA;AAGE,WAAAC,WAAoB,qBAAoC,KAAiC;AAAjC,QAAA,QAAA,QAAA;AAAA,YAAoBA,WAAU;IAAG;AAArE,SAAA,sBAAA;AAClB,SAAK,MAAM;EACb;AA6BO,EAAAA,WAAA,UAAA,WAAP,SAAmB,MAAqD,OAAmB,OAAS;AAA5B,QAAA,UAAA,QAAA;AAAA,cAAA;IAAiB;AACvF,WAAO,IAAI,KAAK,oBAAuB,MAAM,IAAI,EAAE,SAAS,OAAO,KAAK;EAC1E;AAnCc,EAAAA,WAAA,MAAoB,sBAAsB;AAoC1D,SAAAA;EArCA;;;ACnBA,IAAA,iBAAA,SAAA,QAAA;AAAoC,YAAAC,iBAAA,MAAA;AAkBlC,WAAAA,gBAAY,iBAAgC,KAAiC;AAAjC,QAAA,QAAA,QAAA;AAAA,YAAoB,UAAU;IAAG;AAA7E,QAAA,QACE,OAAA,KAAA,MAAM,iBAAiB,GAAG,KAAC;AAlBtB,UAAA,UAAmC,CAAA;AAOnC,UAAA,UAAmB;;EAY1B;AAEO,EAAAA,gBAAA,UAAA,QAAP,SAAa,QAAwB;AAC3B,QAAA,UAAY,KAAI;AAExB,QAAI,KAAK,SAAS;AAChB,cAAQ,KAAK,MAAM;AACnB;;AAGF,QAAI;AACJ,SAAK,UAAU;AAEf,OAAG;AACD,UAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AACxD;;aAEM,SAAS,QAAQ,MAAK;AAEhC,SAAK,UAAU;AAEf,QAAI,OAAO;AACT,aAAQ,SAAS,QAAQ,MAAK,GAAM;AAClC,eAAO,YAAW;;AAEpB,YAAM;;EAEV;AACF,SAAAA;AAAA,EAhDoC,SAAS;;;AC6CtC,IAAM,iBAAiB,IAAI,eAAe,WAAW;AAKrD,IAAM,QAAQ;;;ACpDf,SAAU,YAAY,OAAU;AACpC,SAAO,SAAS,WAAW,MAAM,QAAQ;AAC3C;;;ACDA,SAAS,KAAQ,KAAQ;AACvB,SAAO,IAAI,IAAI,SAAS,CAAC;AAC3B;AAMM,SAAU,aAAa,MAAW;AACtC,SAAO,YAAY,KAAK,IAAI,CAAC,IAAI,KAAK,IAAG,IAAK;AAChD;;;ACdO,IAAM,cAAe,SAAI,GAAM;AAAwB,SAAA,KAAK,OAAO,EAAE,WAAW,YAAY,OAAO,MAAM;AAAlD;;;ACMxD,SAAU,UAAU,OAAU;AAClC,SAAO,WAAW,UAAK,QAAL,UAAK,SAAA,SAAL,MAAO,IAAI;AAC/B;;;ACHM,SAAU,oBAAoB,OAAU;AAC5C,SAAO,WAAW,MAAM,UAAiB,CAAC;AAC5C;;;ACLM,SAAU,gBAAmB,KAAQ;AACzC,SAAO,OAAO,iBAAiB,WAAW,QAAG,QAAH,QAAG,SAAA,SAAH,IAAM,OAAO,aAAa,CAAC;AACvE;;;ACAM,SAAU,iCAAiC,OAAU;AAEzD,SAAO,IAAI,UACT,mBACE,UAAU,QAAQ,OAAO,UAAU,WAAW,sBAAsB,MAAI,QAAK,OAAG,0HACwC;AAE9H;;;ACXM,SAAU,oBAAiB;AAC/B,MAAI,OAAO,WAAW,cAAc,CAAC,OAAO,UAAU;AACpD,WAAO;;AAGT,SAAO,OAAO;AAChB;AAEO,IAAM,WAAW,kBAAiB;;;ACJnC,SAAU,WAAW,OAAU;AACnC,SAAO,WAAW,UAAK,QAAL,UAAK,SAAA,SAAL,MAAQ,QAAe,CAAC;AAC5C;;;ACHM,SAAiB,mCAAsC,gBAAqC;;;;;;AAC1F,mBAAS,eAAe,UAAS;;;;;;;AAE1B,mBAAA,CAAA,GAAA,CAAA;AACe,iBAAA,CAAA,GAAA,QAAM,OAAO,KAAI,CAAE,CAAA;;AAArC,eAAkB,GAAA,KAAA,GAAhB,QAAK,GAAA,OAAE,OAAI,GAAA;eACf;AAAA,mBAAA,CAAA,GAAA,CAAA;;;AACF,iBAAA,CAAA,GAAA,GAAA,KAAA,CAAA;;6BAEI,KAAM,CAAA;;AAAZ,iBAAA,CAAA,GAAA,GAAA,KAAA,CAAA;;AAAA,aAAA,KAAA;;;;;AAGF,iBAAO,YAAW;;;;;;;;AAIhB,SAAU,qBAAwB,KAAQ;AAG9C,SAAO,WAAW,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,SAAS;AAClC;;;ACPM,SAAU,UAAa,OAAyB;AACpD,MAAI,iBAAiB,YAAY;AAC/B,WAAO;;AAET,MAAI,SAAS,MAAM;AACjB,QAAI,oBAAoB,KAAK,GAAG;AAC9B,aAAO,sBAAsB,KAAK;;AAEpC,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO,cAAc,KAAK;;AAE5B,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO,YAAY,KAAK;;AAE1B,QAAI,gBAAgB,KAAK,GAAG;AAC1B,aAAO,kBAAkB,KAAK;;AAEhC,QAAI,WAAW,KAAK,GAAG;AACrB,aAAO,aAAa,KAAK;;AAE3B,QAAI,qBAAqB,KAAK,GAAG;AAC/B,aAAO,uBAAuB,KAAK;;;AAIvC,QAAM,iCAAiC,KAAK;AAC9C;AAMM,SAAU,sBAAyB,KAAQ;AAC/C,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,QAAM,MAAM,IAAI,UAAiB,EAAC;AAClC,QAAI,WAAW,IAAI,SAAS,GAAG;AAC7B,aAAO,IAAI,UAAU,UAAU;;AAGjC,UAAM,IAAI,UAAU,gEAAgE;EACtF,CAAC;AACH;AASM,SAAU,cAAiB,OAAmB;AAClD,SAAO,IAAI,WAAW,SAAC,YAAyB;AAU9C,aAAS,IAAI,GAAG,IAAI,MAAM,UAAU,CAAC,WAAW,QAAQ,KAAK;AAC3D,iBAAW,KAAK,MAAM,CAAC,CAAC;;AAE1B,eAAW,SAAQ;EACrB,CAAC;AACH;AAEM,SAAU,YAAe,SAAuB;AACpD,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,YACG,KACC,SAAC,OAAK;AACJ,UAAI,CAAC,WAAW,QAAQ;AACtB,mBAAW,KAAK,KAAK;AACrB,mBAAW,SAAQ;;IAEvB,GACA,SAAC,KAAQ;AAAK,aAAA,WAAW,MAAM,GAAG;IAApB,CAAqB,EAEpC,KAAK,MAAM,oBAAoB;EACpC,CAAC;AACH;AAEM,SAAU,aAAgB,UAAqB;AACnD,SAAO,IAAI,WAAW,SAAC,YAAyB;;;AAC9C,eAAoB,aAAA,SAAA,QAAQ,GAAA,eAAA,WAAA,KAAA,GAAA,CAAA,aAAA,MAAA,eAAA,WAAA,KAAA,GAAE;AAAzB,YAAM,QAAK,aAAA;AACd,mBAAW,KAAK,KAAK;AACrB,YAAI,WAAW,QAAQ;AACrB;;;;;;;;;;;;;;AAGJ,eAAW,SAAQ;EACrB,CAAC;AACH;AAEM,SAAU,kBAAqB,eAA+B;AAClE,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,YAAQ,eAAe,UAAU,EAAE,MAAM,SAAC,KAAG;AAAK,aAAA,WAAW,MAAM,GAAG;IAApB,CAAqB;EACzE,CAAC;AACH;AAEM,SAAU,uBAA0B,gBAAqC;AAC7E,SAAO,kBAAkB,mCAAmC,cAAc,CAAC;AAC7E;AAEA,SAAe,QAAW,eAAiC,YAAyB;;;;;;;;;AACxD,4BAAA,cAAA,aAAa;;;;;;;AAAtB,kBAAK,kBAAA;AACpB,qBAAW,KAAK,KAAK;AAGrB,cAAI,WAAW,QAAQ;AACrB,mBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGJ,qBAAW,SAAQ;;;;;;;;AChHf,SAAU,gBACd,oBACA,WACA,MACA,OACA,QAAc;AADd,MAAA,UAAA,QAAA;AAAA,YAAA;EAAS;AACT,MAAA,WAAA,QAAA;AAAA,aAAA;EAAc;AAEd,MAAM,uBAAuB,UAAU,SAAS,WAAA;AAC9C,SAAI;AACJ,QAAI,QAAQ;AACV,yBAAmB,IAAI,KAAK,SAAS,MAAM,KAAK,CAAC;WAC5C;AACL,WAAK,YAAW;;EAEpB,GAAG,KAAK;AAER,qBAAmB,IAAI,oBAAoB;AAE3C,MAAI,CAAC,QAAQ;AAKX,WAAO;;AAEX;;;ACeM,SAAU,UAAa,WAA0B,OAAS;AAAT,MAAA,UAAA,QAAA;AAAA,YAAA;EAAS;AAC9D,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,WAAO,UACL,yBACE,YACA,SAAC,OAAK;AAAK,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,KAAK,KAAK;MAArB,GAAwB,KAAK;IAA1E,GACX,WAAA;AAAM,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,SAAQ;MAAnB,GAAuB,KAAK;IAAzE,GACN,SAAC,KAAG;AAAK,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,MAAM,GAAG;MAApB,GAAuB,KAAK;IAAzE,CAA0E,CACpF;EAEL,CAAC;AACH;;;ACPM,SAAU,YAAe,WAA0B,OAAiB;AAAjB,MAAA,UAAA,QAAA;AAAA,YAAA;EAAiB;AACxE,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,eAAW,IAAI,UAAU,SAAS,WAAA;AAAM,aAAA,OAAO,UAAU,UAAU;IAA3B,GAA8B,KAAK,CAAC;EAC9E,CAAC;AACH;;;AC7DM,SAAU,mBAAsB,OAA6B,WAAwB;AACzF,SAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAC3E;;;ACFM,SAAU,gBAAmB,OAAuB,WAAwB;AAChF,SAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAC3E;;;ACJM,SAAU,cAAiB,OAAqB,WAAwB;AAC5E,SAAO,IAAI,WAAc,SAAC,YAAU;AAElC,QAAI,IAAI;AAER,WAAO,UAAU,SAAS,WAAA;AACxB,UAAI,MAAM,MAAM,QAAQ;AAGtB,mBAAW,SAAQ;aACd;AAGL,mBAAW,KAAK,MAAM,GAAG,CAAC;AAI1B,YAAI,CAAC,WAAW,QAAQ;AACtB,eAAK,SAAQ;;;IAGnB,CAAC;EACH,CAAC;AACH;;;ACfM,SAAU,iBAAoB,OAAoB,WAAwB;AAC9E,SAAO,IAAI,WAAc,SAAC,YAAU;AAClC,QAAIC;AAKJ,oBAAgB,YAAY,WAAW,WAAA;AAErC,MAAAA,YAAY,MAAc,QAAe,EAAC;AAE1C,sBACE,YACA,WACA,WAAA;;AACE,YAAI;AACJ,YAAI;AACJ,YAAI;AAEF,UAAC,KAAkBA,UAAS,KAAI,GAA7B,QAAK,GAAA,OAAE,OAAI,GAAA;iBACP,KAAP;AAEA,qBAAW,MAAM,GAAG;AACpB;;AAGF,YAAI,MAAM;AAKR,qBAAW,SAAQ;eACd;AAEL,qBAAW,KAAK,KAAK;;MAEzB,GACA,GACA,IAAI;IAER,CAAC;AAMD,WAAO,WAAA;AAAM,aAAA,WAAWA,cAAQ,QAARA,cAAQ,SAAA,SAARA,UAAU,MAAM,KAAKA,UAAS,OAAM;IAA/C;EACf,CAAC;AACH;;;ACvDM,SAAU,sBAAyB,OAAyB,WAAwB;AACxF,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB;;AAE3C,SAAO,IAAI,WAAc,SAAC,YAAU;AAClC,oBAAgB,YAAY,WAAW,WAAA;AACrC,UAAMC,YAAW,MAAM,OAAO,aAAa,EAAC;AAC5C,sBACE,YACA,WACA,WAAA;AACE,QAAAA,UAAS,KAAI,EAAG,KAAK,SAAC,QAAM;AAC1B,cAAI,OAAO,MAAM;AAGf,uBAAW,SAAQ;iBACd;AACL,uBAAW,KAAK,OAAO,KAAK;;QAEhC,CAAC;MACH,GACA,GACA,IAAI;IAER,CAAC;EACH,CAAC;AACH;;;ACzBM,SAAU,2BAA8B,OAA8B,WAAwB;AAClG,SAAO,sBAAsB,mCAAmC,KAAK,GAAG,SAAS;AACnF;;;ACoBM,SAAU,UAAa,OAA2B,WAAwB;AAC9E,MAAI,SAAS,MAAM;AACjB,QAAI,oBAAoB,KAAK,GAAG;AAC9B,aAAO,mBAAmB,OAAO,SAAS;;AAE5C,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO,cAAc,OAAO,SAAS;;AAEvC,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO,gBAAgB,OAAO,SAAS;;AAEzC,QAAI,gBAAgB,KAAK,GAAG;AAC1B,aAAO,sBAAsB,OAAO,SAAS;;AAE/C,QAAI,WAAW,KAAK,GAAG;AACrB,aAAO,iBAAiB,OAAO,SAAS;;AAE1C,QAAI,qBAAqB,KAAK,GAAG;AAC/B,aAAO,2BAA2B,OAAO,SAAS;;;AAGtD,QAAM,iCAAiC,KAAK;AAC9C;;;ACoDM,SAAU,KAAQ,OAA2B,WAAyB;AAC1E,SAAO,YAAY,UAAU,OAAO,SAAS,IAAI,UAAU,KAAK;AAClE;;;AChGM,SAAU,YAAY,OAAU;AACpC,SAAO,iBAAiB,QAAQ,CAAC,MAAM,KAAY;AACrD;;;ACsCM,SAAUC,KAAU,SAAyC,SAAa;AAC9E,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAI,QAAQ;AAGZ,WAAO,UACL,yBAAyB,YAAY,SAAC,OAAQ;AAG5C,iBAAW,KAAK,QAAQ,KAAK,SAAS,OAAO,OAAO,CAAC;IACvD,CAAC,CAAC;EAEN,CAAC;AACH;;;AC1DQ,IAAA,UAAY,MAAK;AAEzB,SAAS,YAAkB,IAA6B,MAAW;AAC/D,SAAO,QAAQ,IAAI,IAAI,GAAE,MAAA,QAAA,cAAA,CAAA,GAAA,OAAI,IAAI,CAAA,CAAA,IAAI,GAAG,IAAI;AAChD;AAMM,SAAU,iBAAuB,IAA2B;AAC9D,SAAOC,KAAI,SAAA,MAAI;AAAI,WAAA,YAAY,IAAI,IAAI;EAApB,CAAqB;AAC5C;;;ACKM,SAAU,eACd,QACA,YACA,SACA,YACA,cACA,QACA,mBACA,qBAAgC;AAGhC,MAAM,SAAc,CAAA;AAEpB,MAAI,SAAS;AAEb,MAAI,QAAQ;AAEZ,MAAI,aAAa;AAKjB,MAAM,gBAAgB,WAAA;AAIpB,QAAI,cAAc,CAAC,OAAO,UAAU,CAAC,QAAQ;AAC3C,iBAAW,SAAQ;;EAEvB;AAGA,MAAM,YAAY,SAAC,OAAQ;AAAK,WAAC,SAAS,aAAa,WAAW,KAAK,IAAI,OAAO,KAAK,KAAK;EAA5D;AAEhC,MAAM,aAAa,SAAC,OAAQ;AAI1B,cAAU,WAAW,KAAK,KAAY;AAItC;AAKA,QAAI,gBAAgB;AAGpB,cAAU,QAAQ,OAAO,OAAO,CAAC,EAAE,UACjC,yBACE,YACA,SAAC,YAAU;AAGT,uBAAY,QAAZ,iBAAY,SAAA,SAAZ,aAAe,UAAU;AAEzB,UAAI,QAAQ;AAGV,kBAAU,UAAiB;aACtB;AAEL,mBAAW,KAAK,UAAU;;IAE9B,GACA,WAAA;AAGE,sBAAgB;IAClB,GAEA,QACA,WAAA;AAIE,UAAI,eAAe;AAKjB,YAAI;AAIF;;AAME,gBAAM,gBAAgB,OAAO,MAAK;AAIlC,gBAAI,mBAAmB;AACrB,8BAAgB,YAAY,mBAAmB,WAAA;AAAM,uBAAA,WAAW,aAAa;cAAxB,CAAyB;mBACzE;AACL,yBAAW,aAAa;;;AAR5B,iBAAO,OAAO,UAAU,SAAS,YAAU;;;AAY3C,wBAAa;iBACN,KAAP;AACA,qBAAW,MAAM,GAAG;;;IAG1B,CAAC,CACF;EAEL;AAGA,SAAO,UACL,yBAAyB,YAAY,WAAW,WAAA;AAE9C,iBAAa;AACb,kBAAa;EACf,CAAC,CAAC;AAKJ,SAAO,WAAA;AACL,4BAAmB,QAAnB,wBAAmB,SAAA,SAAnB,oBAAmB;EACrB;AACF;;;AClEM,SAAU,SACd,SACA,gBACA,YAA6B;AAA7B,MAAA,eAAA,QAAA;AAAA,iBAAA;EAA6B;AAE7B,MAAI,WAAW,cAAc,GAAG;AAE9B,WAAO,SAAS,SAAC,GAAG,GAAC;AAAK,aAAAC,KAAI,SAAC,GAAQ,IAAU;AAAK,eAAA,eAAe,GAAG,GAAG,GAAG,EAAE;MAA1B,CAA2B,EAAE,UAAU,QAAQ,GAAG,CAAC,CAAC,CAAC;IAAjF,GAAoF,UAAU;aAC/G,OAAO,mBAAmB,UAAU;AAC7C,iBAAa;;AAGf,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAAK,WAAA,eAAe,QAAQ,YAAY,SAAS,UAAU;EAAtD,CAAuD;AAChG;;;AChCM,SAAU,SAAyC,YAA6B;AAA7B,MAAA,eAAA,QAAA;AAAA,iBAAA;EAA6B;AACpF,SAAO,SAAS,UAAU,UAAU;AACtC;;;ACNM,SAAU,YAAS;AACvB,SAAO,SAAS,CAAC;AACnB;;;ACmDM,SAAU,SAAM;AAAC,MAAA,OAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,SAAA,EAAA,IAAA,UAAA,EAAA;;AACrB,SAAO,UAAS,EAAG,KAAK,MAAM,aAAa,IAAI,CAAC,CAAC;AACnD;;;AC1GA,IAAM,0BAA0B,CAAC,eAAe,gBAAgB;AAChE,IAAM,qBAAqB,CAAC,oBAAoB,qBAAqB;AACrE,IAAM,gBAAgB,CAAC,MAAM,KAAK;AAkO5B,SAAU,UACd,QACA,WACA,SACA,gBAAsC;AAEtC,MAAI,WAAW,OAAO,GAAG;AACvB,qBAAiB;AACjB,cAAU;;AAEZ,MAAI,gBAAgB;AAClB,WAAO,UAAa,QAAQ,WAAW,OAA+B,EAAE,KAAK,iBAAiB,cAAc,CAAC;;AAUzG,MAAA,KAAA,OAEJ,cAAc,MAAM,IAChB,mBAAmB,IAAI,SAAC,YAAU;AAAK,WAAA,SAAC,SAAY;AAAK,aAAA,OAAO,UAAU,EAAE,WAAW,SAAS,OAA+B;IAAtE;EAAlB,CAAyF,IAElI,wBAAwB,MAAM,IAC5B,wBAAwB,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IACtE,0BAA0B,MAAM,IAChC,cAAc,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IAC5D,CAAA,GAAE,CAAA,GATD,MAAG,GAAA,CAAA,GAAE,SAAM,GAAA,CAAA;AAgBlB,MAAI,CAAC,KAAK;AACR,QAAI,YAAY,MAAM,GAAG;AACvB,aAAO,SAAS,SAAC,WAAc;AAAK,eAAA,UAAU,WAAW,WAAW,OAA+B;MAA/D,CAAgE,EAClG,UAAU,MAAM,CAAC;;;AAOvB,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,UAAU,sBAAsB;;AAG5C,SAAO,IAAI,WAAc,SAAC,YAAU;AAIlC,QAAM,UAAU,WAAA;AAAC,UAAA,OAAA,CAAA;eAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,aAAA,EAAA,IAAA,UAAA,EAAA;;AAAmB,aAAA,WAAW,KAAK,IAAI,KAAK,SAAS,OAAO,KAAK,CAAC,CAAC;IAAhD;AAEpC,QAAI,OAAO;AAEX,WAAO,WAAA;AAAM,aAAA,OAAQ,OAAO;IAAf;EACf,CAAC;AACH;AASA,SAAS,wBAAwB,QAAa,WAAiB;AAC7D,SAAO,SAAC,YAAkB;AAAK,WAAA,SAAC,SAAY;AAAK,aAAA,OAAO,UAAU,EAAE,WAAW,OAAO;IAArC;EAAlB;AACjC;AAOA,SAAS,wBAAwB,QAAW;AAC1C,SAAO,WAAW,OAAO,WAAW,KAAK,WAAW,OAAO,cAAc;AAC3E;AAOA,SAAS,0BAA0B,QAAW;AAC5C,SAAO,WAAW,OAAO,EAAE,KAAK,WAAW,OAAO,GAAG;AACvD;AAOA,SAAS,cAAc,QAAW;AAChC,SAAO,WAAW,OAAO,gBAAgB,KAAK,WAAW,OAAO,mBAAmB;AACrF;;;AC3MM,SAAU,MACd,SACA,qBACA,WAAyC;AAFzC,MAAA,YAAA,QAAA;AAAA,cAAA;EAA0B;AAE1B,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AAIzC,MAAI,mBAAmB;AAEvB,MAAI,uBAAuB,MAAM;AAI/B,QAAI,YAAY,mBAAmB,GAAG;AACpC,kBAAY;WACP;AAGL,yBAAmB;;;AAIvB,SAAO,IAAI,WAAW,SAAC,YAAU;AAI/B,QAAI,MAAM,YAAY,OAAO,IAAI,CAAC,UAAU,UAAW,IAAG,IAAK;AAE/D,QAAI,MAAM,GAAG;AAEX,YAAM;;AAIR,QAAI,IAAI;AAGR,WAAO,UAAU,SAAS,WAAA;AACxB,UAAI,CAAC,WAAW,QAAQ;AAEtB,mBAAW,KAAK,GAAG;AAEnB,YAAI,KAAK,kBAAkB;AAGzB,eAAK,SAAS,QAAW,gBAAgB;eACpC;AAEL,qBAAW,SAAQ;;;IAGzB,GAAG,GAAG;EACR,CAAC;AACH;;;AC7HM,SAAU,OAAU,WAAiD,SAAa;AACtF,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAI,QAAQ;AAIZ,WAAO,UAIL,yBAAyB,YAAY,SAAC,OAAK;AAAK,aAAA,UAAU,KAAK,SAAS,OAAO,OAAO,KAAK,WAAW,KAAK,KAAK;IAAhE,CAAiE,CAAC;EAEtH,CAAC;AACH;;;ACTM,SAAU,SAAY,kBAAoD;AAC9E,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,WAAW;AACf,QAAI,YAAsB;AAE1B,QAAI,qBAA6C;AAEjD,QAAM,OAAO,WAAA;AAIX,6BAAkB,QAAlB,uBAAkB,SAAA,SAAlB,mBAAoB,YAAW;AAC/B,2BAAqB;AACrB,UAAI,UAAU;AAEZ,mBAAW;AACX,YAAM,QAAQ;AACd,oBAAY;AACZ,mBAAW,KAAK,KAAK;;IAEzB;AAEA,WAAO,UACL,yBACE,YACA,SAAC,OAAQ;AAIP,6BAAkB,QAAlB,uBAAkB,SAAA,SAAlB,mBAAoB,YAAW;AAC/B,iBAAW;AACX,kBAAY;AAGZ,2BAAqB,yBAAyB,YAAY,MAAM,IAAI;AAEpE,gBAAU,iBAAiB,KAAK,CAAC,EAAE,UAAU,kBAAkB;IACjE,GACA,WAAA;AAGE,WAAI;AACJ,iBAAW,SAAQ;IACrB,GAEA,QACA,WAAA;AAEE,kBAAY,qBAAqB;IACnC,CAAC,CACF;EAEL,CAAC;AACH;;;ACvDM,SAAU,aAAgB,SAAiB,WAAyC;AAAzC,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AACxF,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,aAAkC;AACtC,QAAI,YAAsB;AAC1B,QAAI,WAA0B;AAE9B,QAAM,OAAO,WAAA;AACX,UAAI,YAAY;AAEd,mBAAW,YAAW;AACtB,qBAAa;AACb,YAAM,QAAQ;AACd,oBAAY;AACZ,mBAAW,KAAK,KAAK;;IAEzB;AACA,aAAS,eAAY;AAInB,UAAM,aAAa,WAAY;AAC/B,UAAM,MAAM,UAAU,IAAG;AACzB,UAAI,MAAM,YAAY;AAEpB,qBAAa,KAAK,SAAS,QAAW,aAAa,GAAG;AACtD,mBAAW,IAAI,UAAU;AACzB;;AAGF,WAAI;IACN;AAEA,WAAO,UACL,yBACE,YACA,SAAC,OAAQ;AACP,kBAAY;AACZ,iBAAW,UAAU,IAAG;AAGxB,UAAI,CAAC,YAAY;AACf,qBAAa,UAAU,SAAS,cAAc,OAAO;AACrD,mBAAW,IAAI,UAAU;;IAE7B,GACA,WAAA;AAGE,WAAI;AACJ,iBAAW,SAAQ;IACrB,GAEA,QACA,WAAA;AAEE,kBAAY,aAAa;IAC3B,CAAC,CACF;EAEL,CAAC;AACH;;;ACjEM,SAAU,YAAS;AAAO,MAAA,SAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,WAAA,EAAA,IAAA,UAAA,EAAA;;AAC9B,MAAM,YAAY,aAAa,MAAM;AACrC,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAIhC,KAAC,YAAY,OAAO,QAAQ,QAAQ,SAAS,IAAI,OAAO,QAAQ,MAAM,GAAG,UAAU,UAAU;EAC/F,CAAC;AACH;;;ACrBM,SAAU,UAAa,UAA8B;AACzD,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,cAAU,QAAQ,EAAE,UAAU,yBAAyB,YAAY,WAAA;AAAM,aAAA,WAAW,SAAQ;IAAnB,GAAuB,IAAI,CAAC;AACrG,KAAC,WAAW,UAAU,OAAO,UAAU,UAAU;EACnD,CAAC;AACH;;;ACiCM,SAAU,SAAY,kBAAsDC,SAAuB;AACvG,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAC1B,QAAA,KAAuCA,YAAM,QAANA,YAAM,SAANA,UAAU,CAAA,GAA/C,KAAA,GAAA,SAAA,UAAO,OAAA,SAAG,OAAI,IAAE,KAAA,GAAA,UAAA,WAAQ,OAAA,SAAG,QAAK;AACxC,QAAI,WAAW;AACf,QAAI,YAAsB;AAC1B,QAAI,YAAiC;AACrC,QAAI,aAAa;AAEjB,QAAM,gBAAgB,WAAA;AACpB,oBAAS,QAAT,cAAS,SAAA,SAAT,UAAW,YAAW;AACtB,kBAAY;AACZ,UAAI,UAAU;AACZ,aAAI;AACJ,sBAAc,WAAW,SAAQ;;IAErC;AAEA,QAAM,oBAAoB,WAAA;AACxB,kBAAY;AACZ,oBAAc,WAAW,SAAQ;IACnC;AAEA,QAAM,gBAAgB,SAAC,OAAQ;AAC7B,aAAC,YAAY,UAAU,iBAAiB,KAAK,CAAC,EAAE,UAAU,yBAAyB,YAAY,eAAe,iBAAiB,CAAC;IAAhI;AAEF,QAAM,OAAO,WAAA;AACX,UAAI,UAAU;AAIZ,mBAAW;AACX,YAAM,QAAQ;AACd,oBAAY;AAEZ,mBAAW,KAAK,KAAK;AACrB,SAAC,cAAc,cAAc,KAAK;;IAEtC;AAEA,WAAO,UACL,yBACE,YAMA,SAAC,OAAK;AACJ,iBAAW;AACX,kBAAY;AACZ,QAAE,aAAa,CAAC,UAAU,YAAY,UAAU,KAAI,IAAK,cAAc,KAAK;IAC9E,GACA,WAAA;AACE,mBAAa;AACb,QAAE,YAAY,YAAY,aAAa,CAAC,UAAU,WAAW,WAAW,SAAQ;IAClF,CAAC,CACF;EAEL,CAAC;AACH;;;ACxFM,SAAU,aACd,UACA,WACAC,SAAuB;AADvB,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AAGzC,MAAM,YAAY,MAAM,UAAU,SAAS;AAC3C,SAAO,SAAS,WAAA;AAAM,WAAA;EAAA,GAAWA,OAAM;AACzC;;;ApErDO,IAAM,MAAM;EACjB;EACA;EACA,KAAAC;EACA;EACA;EACA;EACA;;;;AqEII,IAAO,gBAAP,MAAoB;EAA1B,cAAA;AACS,SAAA,oCAAoC,IAAI,MAAK;AAG7C,SAAA,mCAAmC,IAAI,MAAK;EAiDrD;;;;;EA3CS,0BACL,YACA,UAAgB;AAEhB,UAAM,iBAAiB,KAAK,kCAAkC,KAAK,CAAC,cAAa;AAC/E,aAAO,UAAU,aAAa,cAAc,UAAU,UAAU;IAClE,CAAC;AACD,QAAI,gBAAgB;AAClB,aAAO,eAAe;WACjB;AACL,YAAM,oBAAyB,UAAa,YAAmB,QAAQ;AACvE,YAAM,iBAAiB,IAAS,QAAO;AACvC,wBAAkB,UAAU,cAAc;AAC1C,YAAM,YAAmD;QACvD,SAAS;QACT,UAAU;QACV,OAAO;;AAET,WAAK,kCAAkC,KAAK,SAAS;AACrD,aAAO,UAAU;;EAErB;EAEO,yBACL,gBACA,cAAoB;AAEpB,UAAM,iBAAiB,KAAK,iCAAiC,KAAK,CAAC,cAAa;AAC9E,aAAO,UAAU,aAAa,kBAAkB,UAAU,UAAU;IACtE,CAAC;AACD,QAAI,gBAAgB;AAClB,aAAO,eAAe;WACjB;AACL,YAAM,iBAAiB,IAAS,QAAO;AACvC,YAAM,YAAiD;QACrD,SAAS;QACT,UAAU;QACV,OAAO;;AAET,WAAK,iCAAiC,KAAK,SAAS;AACpD,aAAO,UAAU;;EAErB;;;;AChEI,IAAO,mBAAP,MAAuB;EAgB3B,cAAA;AAZQ,SAAA,sBAA2B;MACjC,MAAM,CAAC,eAAiB;MAExB;MACA,UAAU,CAAC,eAAiB;MAE5B;;AAEM,SAAA,YAA0B;AAC1B,SAAA,WAAW;AACX,SAAA,gBAAuB,CAAA;AAG7B,SAAK,aAAa,IAAS,WAAW,CAAC,gBAAmC;AACxE,WAAK,oBAAoB,OAAO,IAAI,SAAa;AAC/C,eAAO,YAAY,KAAK,IAAI;MAC9B;AACA,WAAK,oBAAoB,WAAW,MAAK;AACvC,aAAK,kBAAkB,QAAO;AAC9B,eAAO,YAAY,SAAQ;MAC7B;IACF,CAAC;AACD,SAAK,oBAA4B,gBAAa,MAAK;AACnD,SAAK,YAAY,KAAK,kBAAkB;EAC1C;EAEO,cAAc,gBAAoC;AACvD,SAAK,aAAa;EACpB;EAEO,KAAK,YAAa;AACvB,QAAI,KAAK,UAAU;AACjB,WAAK,cAAc,KAAK,UAAU;WAC7B;AACL,WAAK,aAAa,UAAU;;EAEhC;;;;;EAMO,SAAS,iBAAoB;AAClC,eAAW,QAAQ,iBAAiB;AAClC,WAAK,KAAK,IAAI;;EAElB;;;;;EAMO,aAAa,cAA0B;AAC5C,SAAK,YAAY;EACnB;EAEO,eAAY;AACjB,SAAK,WAAW;EAClB;EAEO,aAAa,MAAS;AAC3B,WAAO,KAAK,WAAW,UAAU,GAAG,IAAI;EAC1C;;;;;EAMO,QAAQ,YAAkB;AAC/B,QAAI,eAAe,GAAG;AACpB;WACK;AACL,eAAS,IAAI,GAAG,MAAM,YAAY,KAAK;AACrC,YAAI,KAAK,cAAc,SAAS,GAAG;AACjC,eAAK,aAAa,KAAK,cAAc,MAAK,CAAE;eACvC;AACL,gBAAM,cAAc,KAAK,UAAU,KAAI;AACvC,eAAK,aAAa,YAAY,KAAK;;;;EAI3C;;;;EAKO,iBAAc;AACnB,SAAK,oBAAoB,SAAQ;EACnC;EAEQ,aAAa,YAAa;AAChC,SAAK,oBAAoB,KAAK,UAAU;EAC1C;;;;ACvGF,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;;;;;;;;ACAA,SAAS,OAAO,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,gBAAe;AAAC,SAAO,OAAO,OAAO,OAAO,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,GAAE,cAAc;AAAC;AAAC,OAAO,YAAU,CAAC,cAAa,IAAG,mBAAiB;AAAC,SAAO,OAAO,OAAO,cAAc,cAAa,EAAE,GAAE,cAAc;AAAC;AAAE,OAAO,SAAO,SAAS,IAAG,gBAAe;AAAC,QAAM,SAAO,IAAI,KAAK,KAAK,IAAI,GAAG,GAAE,GAAG,IAAE,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC,CAAC,GAAE,SAAO,kBAAkB,GAAG,IAAG,MAAM,GAAE,YAAU,IAAI,KAAK,OAAO,QAAQ,IAAE,MAAM,GAAE,gBAAc,kBAAkB,GAAG,IAAG,SAAS;AAAE,MAAG,gBAAc,WAAS,GAAE;AAAC,WAAO;AAAA,EAAS,OAAK;AAAC,UAAM,aAAW,IAAI,KAAK,OAAO,QAAQ,IAAE,aAAa,GAAE,iBAAe,kBAAkB,GAAG,IAAG,UAAU;AAAE,QAAG,iBAAe,kBAAgB,GAAE;AAAC,aAAO;AAAA,IAAU,WAAS,CAAC,kBAAgB,iBAAe,gBAAc,GAAE;AAAC,aAAO;AAAA,IAAU,WAAS,CAAC,gBAAe;AAAC,aAAO;AAAA,IAAS,OAAK;AAAC,YAAM,IAAI,MAAM,iCAAiC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAE,OAAO,OAAK,SAAS,GAAE,OAAM;AAAC,QAAM,KAAG,IAAI,KAAK,EAAE,eAAe,SAAQ,EAAC,UAAS,MAAK,CAAC,CAAC;AAAE,SAAM,EAAC,GAAE,GAAG,YAAY,GAAE,GAAE,GAAG,SAAS,IAAE,GAAE,GAAE,GAAG,QAAQ,GAAE,GAAE,GAAG,SAAS,GAAE,GAAE,GAAG,WAAW,GAAE,GAAE,GAAG,WAAW,GAAE,IAAG,MAAK;AAAC;AAAE,OAAO,KAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,OAAK;AAAC,SAAM,EAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAK;AAAC;AAAE,SAAS,kBAAkB,UAAS,OAAK,oBAAI,QAAK;AAAC,QAAM,KAAG,KAAK,eAAe,MAAK,EAAC,UAAkB,WAAU,OAAM,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;AAAE,QAAM,aAAW,KAAK,eAAe,OAAO,EAAE,QAAQ,YAAW,GAAG;AAAE,SAAO,KAAK,MAAM,GAAG,gBAAgB,IAAE,KAAK,MAAM,GAAG,cAAc,IAAI;AAAC;AAAC,SAAS,cAAc,OAAM,IAAG;AAAC,QAAM,KAAG,IAAI,KAAK,KAAK,MAAM,KAAK,CAAC;AAAE,MAAG,MAAM,EAAE,GAAE;AAAC,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAAC;AAAC,QAAM,YAAU,MAAM,UAAU,CAAC;AAAE,MAAG,MAAM,SAAS,GAAG,KAAG,UAAU,SAAS,GAAG,KAAG,UAAU,SAAS,GAAG,GAAE;AAAC,WAAO,OAAO,GAAG,GAAG,eAAe,GAAE,GAAG,YAAY,IAAE,GAAE,GAAG,WAAW,GAAE,GAAG,YAAY,GAAE,GAAG,cAAc,GAAE,GAAG,cAAc,GAAE,SAAS;AAAA,EAAC,OAAK;AAAC,WAAO,OAAO,GAAG,GAAG,YAAY,GAAE,GAAG,SAAS,IAAE,GAAE,GAAG,QAAQ,GAAE,GAAG,SAAS,GAAE,GAAG,WAAW,GAAE,GAAG,WAAW,GAAE,EAAE;AAAA,EAAC;AAAC;AAAC,OAAO,SAAO;AAAO,SAAS,YAAY,SAAQ;AAAC,MAAG,YAAU,QAAO;AAAC,cAAQ,CAAC;AAAA,EAAC;AAAC,SAAO,QAAQ;AAAK,UAAQ,aAAW,QAAQ,eAAa,SAAO,OAAK,QAAQ;AAAW,UAAQ,SAAO,QAAQ,WAAS,SAAO,QAAM,QAAQ;AAAO,UAAQ,UAAQ,QAAQ,YAAU,SAAO,WAAS,QAAQ;AAAQ,UAAQ,QAAM,QAAQ,UAAQ,SAAO,QAAM,QAAQ;AAAM,UAAQ,WAAS,QAAQ,aAAW,SAAO,IAAE,SAAS,QAAQ,UAAS,EAAE;AAAE,UAAQ,YAAU,QAAQ,cAAY,SAAO,SAAO,SAAS,QAAQ,WAAU,EAAE;AAAE,UAAQ,QAAM,QAAQ,UAAQ,SAAO,QAAM,QAAQ;AAAM,UAAQ,OAAK;AAAM,MAAG,QAAQ,SAAQ;AAAC,YAAQ,UAAQ,IAAI,SAAS,QAAQ,SAAQ,QAAQ,QAAQ;AAAA,EAAC;AAAC,MAAG,QAAQ,QAAO;AAAC,YAAQ,SAAO,IAAI,SAAS,QAAQ,QAAO,QAAQ,QAAQ;AAAA,EAAC;AAAC,MAAG,QAAQ,aAAW,MAAK;AAAC,QAAG,MAAM,QAAQ,QAAQ,GAAE;AAAC,YAAM,IAAI,MAAM,0DAA0D;AAAA,IAAC,WAAS,QAAQ,WAAS,GAAE;AAAC,YAAM,IAAI,MAAM,8DAA8D;AAAA,IAAC;AAAA,EAAC;AAAC,MAAG,QAAQ,cAAY,QAAO;AAAC,QAAG,MAAM,QAAQ,SAAS,GAAE;AAAC,YAAM,IAAI,MAAM,yGAAyG;AAAA,IAAC,WAAS,QAAQ,YAAU,QAAM,QAAQ,YAAU,KAAI;AAAC,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAAC;AAAC,QAAG,QAAQ,cAAY,UAAQ,QAAQ,UAAS;AAAC,YAAM,IAAI,MAAM,oEAAoE;AAAA,IAAC;AAAA,EAAC;AAAC,MAAG,QAAQ,UAAQ,QAAM,QAAQ,UAAQ,OAAM;AAAC,UAAM,IAAI,MAAM,sEAAsE;AAAA,EAAC;AAAC,SAAO;AAAO;AAAC,IAAM,cAAY,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE;AAAE,IAAM,iBAAe,CAAC,CAAC,SAAQ,QAAO,CAAC,GAAE,CAAC,OAAM,SAAQ,EAAE,GAAE,CAAC,QAAO,OAAM,CAAC,GAAE,CAAC,UAAS,QAAO,CAAC,GAAE,CAAC,UAAS,UAAS,CAAC,CAAC;AAAE,SAAS,SAAS,GAAE,IAAG;AAAC,OAAK,KAAG;AAAG,MAAG,KAAG,aAAa,MAAK;AAAC,QAAG,CAAC,MAAM,CAAC,GAAE;AAAC,WAAK,SAAS,CAAC;AAAA,IAAC,OAAK;AAAC,YAAM,IAAI,UAAU,uDAAuD;AAAA,IAAC;AAAA,EAAC,WAAS,MAAI,QAAO;AAAC,SAAK,SAAS,oBAAI,MAAI;AAAA,EAAC,WAAS,KAAG,OAAO,MAAI,UAAS;AAAC,SAAK,WAAW,CAAC;AAAA,EAAC,WAAS,aAAa,UAAS;AAAC,SAAK,aAAa,CAAC;AAAA,EAAC,OAAK;AAAC,UAAM,IAAI,UAAU,6BAA2B,OAAO,IAAE,kCAAkC;AAAA,EAAC;AAAC;AAAC,SAAS,UAAU,WAAS,SAAS,QAAO;AAAC,MAAG,KAAK,OAAK,QAAO;AAAC,QAAG,OAAO,KAAK,OAAK,UAAS;AAAC,WAAK,KAAG,OAAO,mBAAmB;AAAE,WAAK,SAAO,OAAO,cAAc;AAAE,WAAK,SAAO,OAAO,cAAc,IAAE,KAAK;AAAG,WAAK,OAAK,OAAO,YAAY;AAAE,WAAK,MAAI,OAAO,WAAW;AAAE,WAAK,QAAM,OAAO,YAAY;AAAE,WAAK,OAAK,OAAO,eAAe;AAAE,WAAK,MAAM;AAAA,IAAC,OAAK;AAAC,YAAM,IAAE,OAAO,KAAK,QAAO,KAAK,EAAE;AAAE,WAAK,KAAG,OAAO,gBAAgB;AAAE,WAAK,SAAO,EAAE;AAAE,WAAK,SAAO,EAAE;AAAE,WAAK,OAAK,EAAE;AAAE,WAAK,MAAI,EAAE;AAAE,WAAK,QAAM,EAAE,IAAE;AAAE,WAAK,OAAK,EAAE;AAAA,IAAC;AAAA,EAAC,OAAK;AAAC,SAAK,KAAG,OAAO,gBAAgB;AAAE,SAAK,SAAO,OAAO,WAAW;AAAE,SAAK,SAAO,OAAO,WAAW;AAAE,SAAK,OAAK,OAAO,SAAS;AAAE,SAAK,MAAI,OAAO,QAAQ;AAAE,SAAK,QAAM,OAAO,SAAS;AAAE,SAAK,OAAK,OAAO,YAAY;AAAA,EAAC;AAAC;AAAE,SAAS,UAAU,eAAa,SAAS,GAAE;AAAC,OAAK,KAAG,EAAE;AAAG,OAAK,OAAK,EAAE;AAAK,OAAK,QAAM,EAAE;AAAM,OAAK,MAAI,EAAE;AAAI,OAAK,OAAK,EAAE;AAAK,OAAK,SAAO,EAAE;AAAO,OAAK,SAAO,EAAE;AAAO,OAAK,KAAG,EAAE;AAAE;AAAE,SAAS,UAAU,QAAM,WAAU;AAAC,MAAG,KAAK,QAAM,MAAI,KAAK,MAAI,YAAY,KAAK,KAAK,KAAG,KAAK,OAAK,MAAI,KAAK,SAAO,MAAI,KAAK,SAAO,MAAI,KAAK,OAAK,KAAG,KAAK,SAAO,KAAG,KAAK,SAAO,GAAE;AAAC,UAAM,IAAE,IAAI,KAAK,KAAK,IAAI,KAAK,MAAK,KAAK,OAAM,KAAK,KAAI,KAAK,MAAK,KAAK,QAAO,KAAK,QAAO,KAAK,EAAE,CAAC;AAAE,SAAK,KAAG,EAAE,mBAAmB;AAAE,SAAK,SAAO,EAAE,cAAc;AAAE,SAAK,SAAO,EAAE,cAAc;AAAE,SAAK,OAAK,EAAE,YAAY;AAAE,SAAK,MAAI,EAAE,WAAW;AAAE,SAAK,QAAM,EAAE,YAAY;AAAE,SAAK,OAAK,EAAE,eAAe;AAAE,WAAO;AAAA,EAAI,OAAK;AAAC,WAAO;AAAA,EAAK;AAAC;AAAE,SAAS,UAAU,aAAW,SAAS,KAAI;AAAC,SAAO,KAAK,SAAS,OAAO,UAAU,KAAI,KAAK,EAAE,CAAC;AAAC;AAAE,SAAS,UAAU,WAAS,SAAS,SAAQ,QAAO,SAAQ,QAAO;AAAC,QAAM,iBAAe,KAAK,MAAM;AAAE,MAAI;AAAe,MAAG,QAAQ,gBAAe;AAAC,QAAG,KAAK,UAAQ,GAAE;AAAC,uBAAe,YAAY,KAAK,KAAK;AAAA,IAAC,OAAK;AAAC,uBAAe,IAAI,KAAK,KAAK,IAAI,KAAK,MAAK,KAAK,QAAM,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,EAAE,WAAW;AAAA,IAAC;AAAA,EAAC;AAAC,QAAM,cAAY,CAAC,QAAQ,WAAS,UAAQ,QAAM,IAAI,KAAK,KAAK,IAAI,KAAK,MAAK,KAAK,OAAM,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,EAAE,UAAU,IAAE;AAAU,WAAQ,IAAE,KAAK,MAAM,IAAE,QAAO,IAAE,QAAQ,MAAM,EAAE,QAAO,KAAI;AAAC,QAAI,QAAM,QAAQ,MAAM,EAAE,CAAC;AAAE,QAAG,WAAS,SAAO,QAAQ,kBAAgB,IAAE,UAAQ,gBAAe;AAAC,cAAM;AAAA,IAAI;AAAC,QAAG,WAAS,SAAO,CAAC,QAAQ,SAAQ;AAAC,YAAM,WAAS,QAAQ,KAAK,eAAa,IAAE,SAAO,MAAI,CAAC;AAAE,UAAG,QAAQ,cAAY,CAAC,QAAQ,SAAQ;AAAC,gBAAM,SAAO;AAAA,MAAQ,OAAK;AAAC,gBAAM,SAAO;AAAA,MAAQ;AAAA,IAAC;AAAC,QAAG,OAAM;AAAC,WAAK,MAAM,IAAE,IAAE;AAAO,aAAO,mBAAiB,KAAK,MAAM,IAAE,IAAE;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO;AAAC;AAAE,SAAS,UAAU,UAAQ,SAAS,SAAQ,SAAQ,OAAM;AAAC,QAAM,MAAI,KAAK,SAAS,SAAQ,eAAe,KAAK,EAAE,CAAC,GAAE,SAAQ,eAAe,KAAK,EAAE,CAAC,CAAC;AAAE,MAAG,MAAI,GAAE;AAAC,QAAI,aAAW,QAAM;AAAE,WAAM,aAAW,eAAe,QAAO;AAAC,WAAK,eAAe,UAAU,EAAE,CAAC,CAAC,IAAE,CAAC,eAAe,UAAU,EAAE,CAAC;AAAE;AAAA,IAAY;AAAC,QAAG,QAAM,GAAE;AAAC,WAAK,eAAe,KAAK,EAAE,CAAC,CAAC;AAAI,WAAK,eAAe,KAAK,EAAE,CAAC,CAAC,IAAE,CAAC,eAAe,KAAK,EAAE,CAAC;AAAE,WAAK,MAAM;AAAE,aAAO,KAAK,QAAQ,SAAQ,SAAQ,CAAC;AAAA,IAAC,WAAS,KAAK,MAAM,GAAE;AAAC,aAAO,KAAK,QAAQ,SAAQ,SAAQ,QAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAAO;AAAE,MAAG,SAAO,eAAe,QAAO;AAAC,WAAO;AAAA,EAAI,WAAS,KAAK,QAAM,KAAI;AAAC,WAAO;AAAA,EAAI,OAAK;AAAC,WAAO,KAAK,QAAQ,SAAQ,SAAQ,KAAK;AAAA,EAAC;AAAC;AAAE,SAAS,UAAU,YAAU,SAAS,SAAQ,SAAQ,gBAAe;AAAC,MAAG,QAAQ,WAAS,KAAG,gBAAe;AAAC,SAAK,UAAQ,QAAQ;AAAA,EAAQ,OAAK;AAAC,SAAK,UAAQ;AAAA,EAAC;AAAC,OAAK,KAAG;AAAE,OAAK,MAAM;AAAE,SAAO,KAAK,QAAQ,SAAQ,SAAQ,CAAC;AAAC;AAAE,SAAS,UAAU,UAAQ,SAAS,UAAS;AAAC,MAAG,YAAU,KAAK,OAAK,UAAQ,KAAK,cAAY,QAAO;AAAC,WAAO,IAAI,KAAK,KAAK,MAAK,KAAK,OAAM,KAAK,KAAI,KAAK,MAAK,KAAK,QAAO,KAAK,QAAO,KAAK,EAAE;AAAA,EAAC,OAAK;AAAC,QAAG,OAAO,KAAK,OAAK,UAAS;AAAC,aAAO,IAAI,KAAK,KAAK,IAAI,KAAK,MAAK,KAAK,OAAM,KAAK,KAAI,KAAK,MAAK,KAAK,SAAO,KAAK,IAAG,KAAK,QAAO,KAAK,EAAE,CAAC;AAAA,IAAC,OAAK;AAAC,aAAO,OAAO,KAAK,MAAK,KAAK,QAAM,GAAE,KAAK,KAAI,KAAK,MAAK,KAAK,QAAO,KAAK,QAAO,KAAK,EAAE;AAAA,IAAC;AAAA,EAAC;AAAC;AAAE,SAAS,UAAU,UAAQ,WAAU;AAAC,SAAO,KAAK,QAAQ,EAAE,QAAQ;AAAC;AAAE,SAAS,YAAY,SAAQ,UAAS;AAAC,OAAK,UAAQ;AAAQ,OAAK,WAAS;AAAS,OAAK,SAAO,MAAM,EAAE,EAAE,KAAK,CAAC;AAAE,OAAK,SAAO,MAAM,EAAE,EAAE,KAAK,CAAC;AAAE,OAAK,OAAK,MAAM,EAAE,EAAE,KAAK,CAAC;AAAE,OAAK,MAAI,MAAM,EAAE,EAAE,KAAK,CAAC;AAAE,OAAK,QAAM,MAAM,EAAE,EAAE,KAAK,CAAC;AAAE,OAAK,MAAI,MAAM,CAAC,EAAE,KAAK,CAAC;AAAE,OAAK,iBAAe;AAAM,OAAK,UAAQ;AAAM,OAAK,UAAQ;AAAM,OAAK,MAAM;AAAC;AAAC,YAAY,UAAU,QAAM,WAAU;AAAC,MAAG,EAAE,OAAO,KAAK,YAAU,YAAU,KAAK,QAAQ,gBAAc,SAAQ;AAAC,UAAM,IAAI,UAAU,gDAAgD;AAAA,EAAC;AAAC,MAAG,KAAK,QAAQ,QAAQ,GAAG,KAAG;AAAE,SAAK,UAAQ,KAAK,gBAAgB,KAAK,OAAO,EAAE,KAAK;AAAE,QAAM,QAAM,KAAK,QAAQ,QAAQ,QAAO,GAAG,EAAE,MAAM,GAAG;AAAE,MAAG,MAAM,SAAO,KAAG,MAAM,SAAO,GAAE;AAAC,UAAM,IAAI,UAAU,iDAA+C,KAAK,UAAQ,wDAAwD;AAAA,EAAC;AAAC,MAAG,MAAM,WAAS,GAAE;AAAC,UAAM,QAAQ,GAAG;AAAA,EAAC;AAAC,MAAG,MAAM,CAAC,EAAE,QAAQ,GAAG,KAAG,GAAE;AAAC,UAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,EAAE;AAAE,SAAK,iBAAe;AAAA,EAAI;AAAC,MAAG,MAAM,CAAC,KAAG,KAAI;AAAC,SAAK,UAAQ;AAAA,EAAI;AAAC,MAAG,MAAM,CAAC,EAAE,UAAQ;AAAE,UAAM,CAAC,IAAE,KAAK,mBAAmB,MAAM,CAAC,CAAC;AAAE,MAAG,MAAM,CAAC,EAAE,UAAQ;AAAE,UAAM,CAAC,IAAE,KAAK,iBAAiB,MAAM,CAAC,CAAC;AAAE,MAAG,MAAM,CAAC,KAAG,KAAI;AAAC,SAAK,UAAQ;AAAA,EAAI;AAAC,MAAG,KAAK,QAAQ,QAAQ,GAAG,KAAG,GAAE;AAAC,UAAM,WAAS,IAAI,SAAS,oBAAI,QAAK,KAAK,QAAQ,EAAE,QAAQ,IAAI;AAAE,UAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,WAAW,CAAC;AAAE,UAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,WAAW,CAAC;AAAE,UAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,SAAS,CAAC;AAAE,QAAG,CAAC,KAAK;AAAQ,YAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,QAAQ,CAAC;AAAE,UAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,SAAS,IAAE,CAAC;AAAE,QAAG,CAAC,KAAK;AAAQ,YAAM,CAAC,IAAE,MAAM,CAAC,EAAE,QAAQ,KAAI,SAAS,OAAO,CAAC;AAAA,EAAC;AAAC,OAAK,yBAAyB,KAAK;AAAE,OAAK,YAAY,UAAS,MAAM,CAAC,GAAE,CAAC;AAAE,OAAK,YAAY,UAAS,MAAM,CAAC,GAAE,CAAC;AAAE,OAAK,YAAY,QAAO,MAAM,CAAC,GAAE,CAAC;AAAE,OAAK,YAAY,OAAM,MAAM,CAAC,GAAE,EAAE;AAAE,OAAK,YAAY,SAAQ,MAAM,CAAC,GAAE,EAAE;AAAE,OAAK,YAAY,OAAM,MAAM,CAAC,GAAE,CAAC;AAAE,MAAG,KAAK,IAAI,CAAC,GAAE;AAAC,SAAK,IAAI,CAAC,IAAE;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,cAAY,SAAS,MAAK,MAAK,kBAAiB;AAAC,QAAM,MAAI,KAAK,IAAI;AAAE,MAAG,SAAO;AAAI,WAAO,IAAI,KAAK,CAAC;AAAE,QAAM,QAAM,KAAK,MAAM,GAAG;AAAE,MAAG,MAAM,SAAO,GAAE;AAAC,aAAQ,IAAE,GAAE,IAAE,MAAM,QAAO,KAAI;AAAC,WAAK,YAAY,MAAK,MAAM,CAAC,GAAE,gBAAgB;AAAA,IAAC;AAAA,EAAC,WAAS,KAAK,QAAQ,GAAG,MAAI,MAAI,KAAK,QAAQ,GAAG,MAAI,IAAG;AAAC,SAAK,wBAAwB,MAAK,MAAK,gBAAgB;AAAA,EAAC,WAAS,KAAK,QAAQ,GAAG,MAAI,IAAG;AAAC,SAAK,YAAY,MAAK,MAAK,gBAAgB;AAAA,EAAC,WAAS,KAAK,QAAQ,GAAG,MAAI,IAAG;AAAC,SAAK,eAAe,MAAK,MAAK,gBAAgB;AAAA,EAAC,WAAS,SAAO,IAAG;AAAC,SAAK,aAAa,MAAK,MAAK,gBAAgB;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,2BAAyB,SAAS,OAAM;AAAC,QAAM,cAAY;AAAc,WAAQ,IAAE,GAAE,IAAE,MAAM,QAAO,KAAI;AAAC,QAAG,YAAY,KAAK,MAAM,CAAC,CAAC,GAAE;AAAC,YAAM,IAAI,UAAU,sCAAoC,IAAE,OAAK,MAAM,CAAC,IAAE,gCAAgC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,eAAa,SAAS,MAAK,MAAK,kBAAiB;AAAC,QAAM,IAAE,SAAS,MAAK,EAAE,IAAE;AAAiB,MAAG,MAAM,CAAC,GAAE;AAAC,UAAM,IAAI,UAAU,kBAAgB,OAAK,wBAAsB,OAAK,GAAG;AAAA,EAAC;AAAC,MAAG,IAAE,KAAG,KAAG,KAAK,IAAI,EAAE,QAAO;AAAC,UAAM,IAAI,UAAU,kBAAgB,OAAK,2BAAyB,OAAK,GAAG;AAAA,EAAC;AAAC,OAAK,IAAI,EAAE,CAAC,IAAE;AAAC;AAAE,YAAY,UAAU,0BAAwB,SAAS,MAAK,MAAK,kBAAiB;AAAC,QAAM,UAAQ,KAAK,MAAM,sBAAsB;AAAE,MAAG,YAAU;AAAK,UAAM,IAAI,UAAU,8DAA4D,OAAK,GAAG;AAAE,MAAG,CAAC,EAAC,OAAM,OAAM,KAAK,IAAE;AAAQ,UAAM,SAAS,OAAM,EAAE,IAAE;AAAiB,UAAM,SAAS,OAAM,EAAE,IAAE;AAAiB,UAAM,SAAS,OAAM,EAAE;AAAE,MAAG,MAAM,KAAK;AAAE,UAAM,IAAI,UAAU,sDAAsD;AAAE,MAAG,MAAM,KAAK;AAAE,UAAM,IAAI,UAAU,sDAAsD;AAAE,MAAG,MAAM,KAAK;AAAE,UAAM,IAAI,UAAU,oDAAoD;AAAE,MAAG,UAAQ;AAAE,UAAM,IAAI,UAAU,gDAAgD;AAAE,MAAG,QAAM,KAAK,IAAI,EAAE;AAAO,UAAM,IAAI,UAAU,oFAAkF,KAAK,IAAI,EAAE,SAAO,GAAG;AAAE,MAAG,QAAM,KAAG,SAAO,KAAK,IAAI,EAAE;AAAO,UAAM,IAAI,UAAU,uCAAqC,OAAK,GAAG;AAAE,MAAG,QAAM;AAAM,UAAM,IAAI,UAAU,uDAAqD,OAAK,GAAG;AAAE,WAAQ,IAAE,OAAM,KAAG,OAAM,KAAG,OAAM;AAAC,SAAK,IAAI,EAAE,CAAC,IAAE;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,cAAY,SAAS,MAAK,MAAK,kBAAiB;AAAC,QAAM,QAAM,KAAK,MAAM,GAAG;AAAE,MAAG,MAAM,WAAS,GAAE;AAAC,UAAM,IAAI,UAAU,gDAA8C,OAAK,GAAG;AAAA,EAAC;AAAC,QAAM,QAAM,SAAS,MAAM,CAAC,GAAE,EAAE,IAAE,kBAAiB,QAAM,SAAS,MAAM,CAAC,GAAE,EAAE,IAAE;AAAiB,MAAG,MAAM,KAAK,GAAE;AAAC,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAAC,WAAS,MAAM,KAAK,GAAE;AAAC,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAAC;AAAC,MAAG,QAAM,KAAG,SAAO,KAAK,IAAI,EAAE,QAAO;AAAC,UAAM,IAAI,UAAU,uCAAqC,OAAK,GAAG;AAAA,EAAC;AAAC,MAAG,QAAM,OAAM;AAAC,UAAM,IAAI,UAAU,uDAAqD,OAAK,GAAG;AAAA,EAAC;AAAC,WAAQ,IAAE,OAAM,KAAG,OAAM,KAAI;AAAC,SAAK,IAAI,EAAE,CAAC,IAAE;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,iBAAe,SAAS,MAAK,MAAK;AAAC,QAAM,QAAM,KAAK,MAAM,GAAG;AAAE,MAAG,MAAM,WAAS,GAAE;AAAC,UAAM,IAAI,UAAU,mDAAiD,OAAK,GAAG;AAAA,EAAC;AAAC,MAAI,QAAM;AAAE,MAAG,MAAM,CAAC,MAAI,KAAI;AAAC,YAAM,SAAS,MAAM,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC,QAAM,QAAM,SAAS,MAAM,CAAC,GAAE,EAAE;AAAE,MAAG,MAAM,KAAK;AAAE,UAAM,IAAI,UAAU,oDAAoD;AAAE,MAAG,UAAQ;AAAE,UAAM,IAAI,UAAU,gDAAgD;AAAE,MAAG,QAAM,KAAK,IAAI,EAAE;AAAO,UAAM,IAAI,UAAU,uDAAqD,KAAK,IAAI,EAAE,SAAO,GAAG;AAAE,WAAQ,IAAE,OAAM,IAAE,KAAK,IAAI,EAAE,QAAO,KAAG,OAAM;AAAC,SAAK,IAAI,EAAE,CAAC,IAAE;AAAA,EAAC;AAAC;AAAE,YAAY,UAAU,mBAAiB,SAAS,MAAK;AAAC,SAAO,KAAK,QAAQ,UAAS,IAAI,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG;AAAC;AAAE,YAAY,UAAU,qBAAmB,SAAS,MAAK;AAAC,SAAO,KAAK,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,GAAG,EAAE,QAAQ,SAAQ,IAAI,EAAE,QAAQ,SAAQ,IAAI,EAAE,QAAQ,SAAQ,IAAI;AAAC;AAAE,YAAY,UAAU,kBAAgB,SAAS,SAAQ;AAAC,QAAM,eAAa,QAAQ,KAAK,EAAE,YAAY;AAAE,MAAG,iBAAe,aAAW,iBAAe,aAAY;AAAC,WAAM;AAAA,EAAW,WAAS,iBAAe,YAAW;AAAC,WAAM;AAAA,EAAW,WAAS,iBAAe,WAAU;AAAC,WAAM;AAAA,EAAW,WAAS,iBAAe,UAAS;AAAC,WAAM;AAAA,EAAW,WAAS,iBAAe,WAAU;AAAC,WAAM;AAAA,EAAW,OAAK;AAAC,WAAO;AAAA,EAAO;AAAC;AAAE,IAAM,WAAS,KAAK,IAAI,GAAE,KAAG,CAAC,IAAE;AAAE,IAAM,gBAAc,CAAC;AAAE,SAAS,KAAK,GAAE;AAAC,SAAO,OAAO,UAAU,SAAS,KAAK,CAAC,MAAI,uBAAqB,eAAa,OAAO,KAAG,aAAa;AAAQ;AAAC,SAAS,MAAMC,QAAM;AAAC,MAAG,OAAO,SAAO,eAAa,OAAO,KAAK,eAAa,aAAY;AAAC,SAAK,WAAWA,MAAK;AAAA,EAAC,WAASA,UAAO,OAAOA,OAAM,UAAQ,aAAY;AAAC,IAAAA,OAAM,MAAM;AAAA,EAAC;AAAC;AAAC,SAAS,KAAK,SAAQ,cAAa,cAAa;AAAC,MAAG,EAAE,gBAAgB,OAAM;AAAC,WAAO,IAAI,KAAK,SAAQ,cAAa,YAAY;AAAA,EAAC;AAAC,MAAI,SAAQ;AAAK,MAAG,OAAO,iBAAe,YAAW;AAAC,WAAK;AAAA,EAAY,WAAS,OAAO,iBAAe,UAAS;AAAC,cAAQ;AAAA,EAAY,WAAS,iBAAe,QAAO;AAAC,UAAM,IAAI,MAAM,8FAA8F;AAAA,EAAC;AAAC,MAAG,OAAO,iBAAe,YAAW;AAAC,WAAK;AAAA,EAAY,WAAS,OAAO,iBAAe,UAAS;AAAC,cAAQ;AAAA,EAAY,WAAS,iBAAe,QAAO;AAAC,UAAM,IAAI,MAAM,2FAA2F;AAAA,EAAC;AAAC,OAAK,OAAK,UAAQ,QAAQ,OAAK;AAAO,OAAK,UAAQ,YAAY,OAAO;AAAE,OAAK,OAAK;AAAO,OAAK,UAAQ;AAAO,OAAK,WAAS;AAAM,OAAK,cAAY;AAAO,OAAK,aAAW;AAAO,MAAG,YAAU,mBAAmB,QAAM,OAAO,YAAU,YAAU,QAAQ,QAAQ,GAAG,IAAE,IAAG;AAAC,SAAK,OAAK,IAAI,SAAS,SAAQ,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS;AAAA,EAAC,OAAK;AAAC,SAAK,UAAQ,IAAI,YAAY,SAAQ,KAAK,QAAQ,QAAQ;AAAA,EAAC;AAAC,MAAG,SAAO,QAAO;AAAC,SAAK,KAAG;AAAK,SAAK,SAAS;AAAA,EAAC;AAAC,MAAG,KAAK,MAAK;AAAC,UAAM,WAAS,cAAc,KAAK,OAAG,EAAE,SAAO,KAAK,IAAI;AAAE,QAAG,UAAS;AAAC,YAAM,IAAI,MAAM,8CAA4C,KAAK,OAAK,4BAA4B;AAAA,IAAC,OAAK;AAAC,oBAAc,KAAK,IAAI;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,KAAK,UAAU,OAAK,SAAS,MAAK;AAAC,QAAM,OAAK,KAAK,MAAM,IAAI;AAAE,SAAO,OAAK,KAAK,QAAQ,IAAE;AAAI;AAAE,KAAK,UAAU,YAAU,SAAS,GAAE,UAAS;AAAC,MAAG,IAAE,KAAK,QAAQ,SAAQ;AAAC,QAAE,KAAK,QAAQ;AAAA,EAAO;AAAC,QAAM,cAAY,CAAC;AAAE,MAAI,OAAK,YAAU,KAAK;AAAY,SAAM,QAAM,OAAK,KAAK,KAAK,IAAI,IAAG;AAAC,gBAAY,KAAK,IAAI;AAAA,EAAC;AAAC,SAAO;AAAW;AAAE,KAAK,UAAU,UAAQ,WAAU;AAAC,QAAM,SAAO,KAAK,SAAS,KAAK,WAAW;AAAE,QAAM,UAAQ,CAAC,KAAK,QAAQ,UAAQ,KAAK,OAAK;AAAO,SAAO,WAAS,QAAM;AAAO;AAAE,KAAK,UAAU,OAAK,WAAU;AAAC,SAAO,KAAK;AAAQ;AAAE,KAAK,UAAU,UAAQ,WAAU;AAAC,SAAO,KAAK,aAAW,KAAK,WAAW,QAAQ,IAAE;AAAI;AAAE,KAAK,UAAU,WAAS,WAAU;AAAC,SAAO,KAAK,cAAY,KAAK,YAAY,QAAQ,IAAE;AAAI;AAAE,KAAK,UAAU,WAAS,SAAS,MAAK;AAAC,QAAM,OAAK,KAAK,MAAM,IAAI;AAAE,SAAK,IAAI,SAAS,MAAK,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS;AAAE,MAAG,MAAK;AAAC,WAAO,KAAK,QAAQ,IAAI,IAAE,KAAK,QAAQ,IAAI;AAAA,EAAC,OAAK;AAAC,WAAO;AAAA,EAAI;AAAC;AAAE,KAAK,UAAU,OAAK,WAAU;AAAC,OAAK,QAAQ,OAAK;AAAK,MAAG,KAAK,gBAAe;AAAC,iBAAa,KAAK,cAAc;AAAA,EAAC;AAAC;AAAE,KAAK,UAAU,QAAM,WAAU;AAAC,UAAO,KAAK,QAAQ,SAAO,SAAO,CAAC,KAAK,QAAQ;AAAI;AAAE,KAAK,UAAU,SAAO,WAAU;AAAC,SAAM,EAAE,KAAK,QAAQ,SAAO,UAAQ,CAAC,KAAK,QAAQ;AAAI;AAAE,KAAK,UAAU,WAAS,SAAS,MAAK,SAAQ;AAAC,MAAG,QAAM,KAAK,IAAG;AAAC,UAAM,IAAI,MAAM,mFAAmF;AAAA,EAAC,WAAS,MAAK;AAAC,SAAK,KAAG;AAAA,EAAI;AAAC,MAAI,SAAO,KAAK,SAAS,UAAQ,UAAQ,KAAK,WAAW;AAAE,QAAM,SAAO,KAAK,KAAK,UAAQ,UAAQ,KAAK,WAAW;AAAE,MAAG,WAAS,QAAM,WAAS;AAAK,WAAO;AAAK,MAAG,SAAO,UAAS;AAAC,aAAO;AAAA,EAAQ;AAAC,OAAK,iBAAe,WAAW,MAAI,KAAK,cAAc,MAAM,GAAE,MAAM;AAAE,MAAG,KAAK,kBAAgB,KAAK,QAAQ,OAAM;AAAC,UAAM,KAAK,cAAc;AAAA,EAAC;AAAC,SAAO;AAAI;AAAE,KAAK,UAAU,WAAS,eAAe,gBAAe;AAAC,OAAK,WAAS;AAAK,OAAK,aAAW,IAAI,SAAS,gBAAe,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS;AAAE,MAAG,KAAK,QAAQ,OAAM;AAAC,QAAG;AAAC,YAAM,KAAK,GAAG,MAAK,KAAK,QAAQ,OAAO;AAAA,IAAC,SAAO,IAAN;AAAU,UAAG,KAAK,KAAK,QAAQ,KAAK,GAAE;AAAC,SAAC,UAAM,KAAK,QAAQ,MAAM,IAAG,IAAI,GAAG,IAAI;AAAA,MAAC;AAAA,IAAC,UAAC;AAAQ,WAAK,WAAS;AAAA,IAAK;AAAA,EAAC,OAAK;AAAC,UAAM,KAAK,GAAG,MAAK,KAAK,QAAQ,OAAO;AAAE,SAAK,WAAS;AAAA,EAAK;AAAC;AAAE,KAAK,UAAU,gBAAc,SAAS,QAAO;AAAC,QAAM,MAAI,oBAAI,QAAK,YAAU,CAAC,KAAK,QAAQ,UAAQ,IAAI,QAAQ,KAAG,QAAO,YAAU,KAAK,YAAU,KAAK,QAAQ;AAAQ,MAAG,aAAW,CAAC,WAAU;AAAC,SAAK,QAAQ;AAAU,SAAK,SAAS;AAAE,SAAK,cAAY,IAAI,SAAS,QAAO,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS;AAAE,SAAK,SAAS;AAAA,EAAC,OAAK;AAAC,QAAG,aAAW,aAAW,KAAK,KAAK,QAAQ,OAAO,GAAE;AAAC,OAAC,OAAM,SAAM,KAAK,QAAQ,QAAQ,IAAI,GAAG,IAAI;AAAA,IAAC;AAAC,SAAK,SAAS,QAAU,GAAG;AAAA,EAAC;AAAC;AAAE,KAAK,UAAU,QAAM,SAAS,MAAK;AAAC,QAAM,iBAAe,QAAM,KAAK,cAAY,OAAK;AAAM,SAAK,IAAI,SAAS,MAAK,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS;AAAE,MAAG,KAAK,QAAQ,WAAS,QAAM,KAAK,QAAQ,IAAE,KAAK,QAAQ,QAAQ,QAAQ,GAAE;AAAC,WAAK,KAAK,QAAQ;AAAA,EAAO;AAAC,QAAM,UAAQ,KAAK,QAAM,IAAI,SAAS,MAAK,KAAK,QAAQ,YAAU,KAAK,QAAQ,SAAS,EAAE,UAAU,KAAK,SAAQ,KAAK,SAAQ,cAAc;AAAE,MAAG,KAAK,QAAM,KAAK,KAAK,QAAQ,KAAG,KAAK,QAAQ,GAAE;AAAC,WAAO;AAAA,EAAI,WAAS,YAAU,QAAM,KAAK,QAAQ,WAAS,KAAG,KAAK,QAAQ,QAAM,KAAK,QAAQ,UAAQ,QAAQ,QAAQ,KAAG,KAAK,QAAQ,OAAO,QAAQ,GAAE;AAAC,WAAO;AAAA,EAAI,OAAK;AAAC,WAAO;AAAA,EAAO;AAAC;AAAE,KAAK,OAAK;AAAK,KAAK,gBAAc;;;ACShgmB,mBAAkB;AAClB,qBAAoB;;;ACVL,SAAR,kBAAmC,cAAc;AACvD,MAAI,OAAO,iBAAiB,UAAU;AACrC,UAAM,IAAI,UAAU,mBAAmB;AAAA,EACxC;AAEA,QAAM,mBAAmB,eAAe,IAAI,KAAK,QAAQ,KAAK;AAE9D,SAAO;AAAA,IACN,MAAM,iBAAiB,eAAe,KAAQ;AAAA,IAC9C,OAAO,iBAAiB,eAAe,IAAO,IAAI;AAAA,IAClD,SAAS,iBAAiB,eAAe,GAAK,IAAI;AAAA,IAClD,SAAS,iBAAiB,eAAe,GAAI,IAAI;AAAA,IACjD,cAAc,iBAAiB,YAAY,IAAI;AAAA,IAC/C,cAAc,iBAAiB,eAAe,GAAI,IAAI;AAAA,IACtD,aAAa,iBAAiB,eAAe,GAAG,IAAI;AAAA,EACrD;AACD;;;ACdA,IAAM,YAAY,CAAC,MAAM,UAAU,UAAU,IAAI,OAAO,GAAG;AAE3D,IAAM,0BAA0B;AAEjB,SAAR,mBAAoC,cAAc,UAAU,CAAC,GAAG;AACtE,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AACnC,UAAM,IAAI,UAAU,0BAA0B;AAAA,EAC/C;AAEA,MAAI,QAAQ,eAAe;AAC1B,YAAQ,UAAU;AAClB,YAAQ,wBAAwB;AAChC,YAAQ,uBAAuB;AAC/B,YAAQ,UAAU;AAAA,EACnB;AAEA,MAAI,QAAQ,SAAS;AACpB,YAAQ,uBAAuB;AAC/B,YAAQ,4BAA4B;AAAA,EACrC;AAEA,QAAM,SAAS,CAAC;AAEhB,QAAM,gBAAgB,CAAC,OAAO,kBAAkB;AAC/C,UAAM,sBAAsB,KAAK,MAAO,QAAS,MAAM,gBAAkB,uBAAuB;AAChG,UAAM,eAAe,KAAK,MAAM,mBAAmB,IAAK,MAAM;AAC9D,WAAO,aAAa,QAAQ,aAAa;AAAA,EAC1C;AAEA,QAAM,MAAM,CAAC,OAAO,MAAM,OAAO,gBAAgB;AAChD,SAAK,OAAO,WAAW,KAAK,CAAC,QAAQ,kBAAkB,UAAU,KAAK,EAAE,QAAQ,iBAAiB,UAAU,MAAM;AAChH;AAAA,IACD;AAEA,mBAAe,eAAe,SAAS,KAAK,SAAS;AACrD,QAAI;AACJ,QAAI;AACJ,QAAI,QAAQ,eAAe;AAC1B,eAAS,OAAO,SAAS,IAAI,MAAM;AACnC,eAAS;AACT,YAAM,cAAc,YAAY,SAAS,GAAG,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,YAAY;AAC/F,YAAM,YAAY,OAAO,SAAS,IAAI,IAAI;AAC1C,oBAAc,IAAI,OAAO,KAAK,IAAI,GAAG,YAAY,WAAW,CAAC,IAAI;AAAA,IAClE,OAAO;AACN,eAAS;AACT,eAAS,QAAQ,UAAU,MAAM,UAAU,MAAM,KAAK,IAAI;AAAA,IAC3D;AAEA,WAAO,KAAK,SAAS,cAAc,MAAM;AAAA,EAC1C;AAEA,QAAM,SAAS,kBAAkB,YAAY;AAE7C,MAAI,KAAK,MAAM,OAAO,OAAO,GAAG,GAAG,QAAQ,GAAG;AAC9C,MAAI,OAAO,OAAO,KAAK,OAAO,GAAG;AACjC,MAAI,OAAO,OAAO,QAAQ,GAAG;AAC7B,MAAI,OAAO,SAAS,UAAU,GAAG;AAEjC,MACC,QAAQ,wBACL,QAAQ,yBACP,CAAC,QAAQ,iBAAiB,eAAe,KAC5C;AACD,QAAI,OAAO,SAAS,UAAU,GAAG;AACjC,QAAI,QAAQ,uBAAuB;AAClC,UAAI,OAAO,cAAc,eAAe,IAAI;AAC5C,UAAI,OAAO,cAAc,eAAe,OAAI;AAC5C,UAAI,OAAO,aAAa,cAAc,IAAI;AAAA,IAC3C,OAAO;AACN,YAAM,uBACH,OAAO,eACN,OAAO,eAAe,MACtB,OAAO,cAAc;AAEzB,YAAM,4BACH,OAAO,QAAQ,8BAA8B,WAC5C,QAAQ,4BACR;AAEJ,YAAM,qBAAqB,wBAAwB,IAChD,KAAK,MAAM,oBAAoB,IAC/B,KAAK,KAAK,oBAAoB;AAEjC,YAAM,qBAAqB,4BACxB,qBAAqB,QAAQ,yBAAyB,IACtD;AAEH;AAAA,QACC,OAAO,WAAW,kBAAkB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,OAAO;AACN,UAAM,UAAW,eAAe,MAAQ;AACxC,UAAM,uBACH,OAAO,QAAQ,yBAAyB,WACvC,QAAQ,uBACR;AACJ,UAAM,eAAe,cAAc,SAAS,oBAAoB;AAChE,UAAM,gBAAgB,QAAQ,6BAC3B,eACA,aAAa,QAAQ,SAAS,EAAE;AACnC,QAAI,OAAO,WAAW,aAAa,GAAG,UAAU,KAAK,aAAa;AAAA,EACnE;AAEA,MAAI,OAAO,WAAW,GAAG;AACxB,WAAO,OAAO,QAAQ,UAAU,kBAAkB;AAAA,EACnD;AAEA,MAAI,QAAQ,SAAS;AACpB,WAAO,OAAO,CAAC;AAAA,EAChB;AAEA,MAAI,OAAO,QAAQ,cAAc,UAAU;AAC1C,UAAM,YAAY,QAAQ,gBAAgB,KAAK;AAC/C,WAAO,OAAO,MAAM,GAAG,KAAK,IAAI,QAAQ,WAAW,CAAC,CAAC,EAAE,KAAK,SAAS;AAAA,EACtE;AAEA,SAAO,QAAQ,gBAAgB,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG;AACjE;;;AF9GA,aAAAC,QAAM,OAAO,eAAAC,OAAO;;;AGJd,IAAO,UAAP,MAAc;EAOlB,YAAY,aAA0B,mBAA2B,aAAyB;AALnF,SAAA,SAA4C;AAG3C,SAAA,oBAA4B;AAGlC,SAAK,iBAAiB;AACtB,SAAK,cAAc;AACnB,SAAK,aAAqB,KAAO,iBAAiB;EACpD;;;;EAKO,iBAAc;AACnB,QAAI,KAAK,sBAAsB,GAAG;AAChC,WAAK,qBAAoB;;AAE3B,QAAI,KAAK,IAAG,IAAK,KAAK,mBAAmB;AACvC,YAAM,eAAe,KAAK,YAAY,KAAK,iBAAiB;AAC5D,UAAI,wBAAwB,SAAS;AACnC,qBAAa,MAAM,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;;AAE1C,WAAK,oBAAoB,KAAK,qBAAoB;;AAEpD,WAAO,KAAK;EACd;EAEO,uBAAoB;AACzB,WAAQ,KAAK,oBAAoB,KAAK,IAAG,IAAK,KAAK,uBAAsB;EAC3E;;;;EAKO,yBAAsB;AAC3B,WAAO,KAAK,WAAW,SAAQ;EACjC;EAEO,QAAK;AACV,SAAK,SAAS;EAChB;EAEO,OAAI;AACT,SAAK,SAAS;EAChB;;;;ACtDK,IAAI,QAAQ;EACjB,OAAO,CAAC,WAAW,MAAa;AAC9B,WAAO,WAAW;EACpB;EACA,QAAQ,CAAC,WAAW,MAAa;AAC/B,WAAO,WAAW;EACpB;EACA,OAAO,CAAC,WAAW,MAAK;AACtB,WAAO,WAAW;EACpB;EACA,MAAM,CAAC,WAAW,MAAK;AACrB,WAAO,WAAW;EACpB;EACA,OAAO,CAAC,WAAW,MAAK;AACtB,WAAO,WAAW;EACpB;EACA,SAAS,CAAC,WAAW,MAAK;AACxB,WAAO,WAAW;EACpB;;AAYK,IAAI,2BAA2B,CAAC,mBAAuC;AAC5E,MAAI,qBAAqB;AACzB,MAAI,kBAAkB,CAAC,oBAA2B;AAChD,yBAAqB,qBAAqB;EAC5C;AACA,MAAI,eAAe,OAAO;AACxB,oBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;;AAEnD,MAAI,eAAe,QAAQ;AACzB,oBAAgB,MAAM,OAAO,eAAe,MAAM,CAAC;;AAErD,MAAI,eAAe,OAAO;AACxB,oBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;;AAEnD,MAAI,eAAe,MAAM;AACvB,oBAAgB,MAAM,KAAK,eAAe,IAAI,CAAC;;AAEjD,MAAI,eAAe,OAAO;AACxB,oBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;;AAEnD,MAAI,eAAe,SAAS;AAC1B,oBAAgB,MAAM,QAAQ,eAAe,OAAO,CAAC;;AAGvD,SAAO;AACT;AAEO,IAAM,uCAAuC,CAAC,oBAAmC;AACtF,SAAe,mBAAS,eAAe;AACzC;;;ACzDM,IAAO,cAAP,MAAkB;EAMtB,cAAA;AAHO,SAAA,SAAgC;AAChC,SAAA,WAAW,IAAYC,iBAAI,UAAS;EAE5B;EAER,WAAW,mBAA2B,iBAA6B;AACxE,UAAM,aAAa,IAAI,QAAQ,MAAM,mBAAmB,eAAe;AACvE,SAAK,SAAS,IAAI,UAAU;AAC5B,QAAI,KAAK,WAAW,WAAW;AAC7B,iBAAW,MAAK;;AAGlB,WAAO;EACT;EAEO,cAAc,YAAmB;AACtC,eAAW,KAAI;AACf,SAAK,SAAS,OAAO,UAAU;EACjC;;;;EAKO,QAAK;AACV,QAAI,KAAK,WAAW,WAAW;AAC7B,WAAK,SAAS;AACd,iBAAW,WAAW,KAAK,SAAS,SAAQ,GAAI;AAC9C,gBAAQ,MAAK;;AAEf,YAAM,eAAe,YAAW;AAC9B,aAAK,mBAAmB,IAAYA,iBAAW,QAAQ,CAAC;AACxD,WAAG;AACD,cAAI;AACJ,qBAAW,WAAW,KAAK,SAAS,SAAQ,GAAI;AAC9C,oBAAQ,eAAc;AACtB,gBACE,CAAC,sBACD,QAAQ,uBAAsB,IAAK,mBAAmB,uBAAsB,GAC5E;AACA,mCAAqB;;;AAGzB,cAAI,oBAAoB;AACtB,iBAAK,mBAAmB,IAAYA,iBAAW,QAC7C,mBAAmB,uBAAsB,CAAE;AAE7C,oBAAQ,IACN,6BAA6B,qCAC3B,KAAK,iBAAiB,YAAW,CAAE,GAClC;iBAEA;AACL,iBAAK,mBAAmB,IAAYA,iBAAW,QAAQ,GAAI;AAC3D,oBAAQ,IAAI,mDAAmD;;AAGjE,gBAAM,KAAK,iBAAiB;iBACrB,KAAK,WAAW;MAC3B;AACA,mBAAY;;EAEhB;;;;EAKO,OAAI;AACT,QAAI,KAAK,WAAW,WAAW;AAC7B,WAAK,SAAS;AACd,WAAK,iBAAiB,OAAM;WACvB;AACL,cAAQ,IAAI,gEAAgE;;AAE9E,eAAW,QAAQ,KAAK,SAAS,SAAQ,GAAI;AAC3C,WAAK,KAAI;;EAEb;;;;AClEI,IAAO,eAAP,cAA4B,KAAI;;EAE7B,OAAO,WAAW,cAAoB;AAC3C,WAAO,IAAI,aAAa,YAAY;EACtC;EAEO,OAAO,SAAS,SAAa;AAClC,WAAO,IAAI,aAAa,QAAQ,QAAO,CAAE;EAC3C;EAEO,OAAO,iBAAiB,cAAoB;AACjD,UAAM,YAAY,mBAAmB,KAAK,YAAY;AACtD,UAAM,OAAO,IAAI;MACf,WAAW,UAAU,CAAC,CAAC;;MACvB,WAAW,UAAU,CAAC,CAAC,IAAI;;MAC3B,WAAW,UAAU,CAAC,CAAC;;;AAEzB,UAAM,YAAY,KAAK,QAAO;AAC9B,WAAO,IAAI,aAAa,SAAS;EACnC;;;;;EAMO,OAAO,eAAe,YAAkB;AAG7C,UAAM,aAAa,IAAI,KAAK,UAAU,EAAE,QAAO;AAC/C,WAAO,IAAI,aAAa,UAAU;EACpC;;;;EAKO,OAAO,wBACZ,iBACA,UAAkB,YAClB,UAA0B,iBAAe;AAKzC,UAAM,YAAY,mBAAmB,KAAK,eAAe;AACzD,UAAM,YAAY,CAAC,eAAsB;AACvC,aAAO,IAAI,aAAa,MAAM,EAAE;IAClC;AACA,UAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,UAAU,UAAU,CAAC,CAAC,KAAK,UACnE,UAAU,CAAC,CAAC,KACT;AACL,UAAM,OAAe,aAAAC,QAAM,cAAc;AACzC,UAAM,YAAY,KAAK,OAAM,EAAG,QAAO;AACvC,WAAO,IAAI,aAAa,SAAS;EACnC;EAKA,YAAY,YAAoB,KAAK,IAAG,GAAE;AACxC,UAAM,SAAS;EACjB;;EAGO,uBAAoB;AACzB,UAAMC,SAAQ,KAAK,cAAa;AAChC,WAAO,GAAGA,OAAM,aAAaA,OAAM,eAAeA,OAAM;EAC1D;EAEO,6BAA0B;AAC/B,UAAMA,SAAQ,KAAK,cAAa;AAChC,WAAO,GAAGA,OAAM,cAAcA,OAAM,eAAeA,OAAM;EAC3D;;;;EAKO,gBAAa;AAClB,UAAM,cAAc;MAClB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;AAEF,UAAM,YAAY;MAChB;MACA;MACA;MACA;MACA;MACA;MACA;;AAEF,WAAO;MACL,MAAM,KAAK,YAAW;MACtB,YAAY,GAAG,KAAK,YAAW;MAC/B,OAAO,KAAK,SAAQ,IAAK;MACzB,cAAc,OAAO,KAAK,SAAQ,IAAK,IAAI,MAAM,EAAE;MACnD,WAAW,YAAY,KAAK,SAAQ,CAAE;MACtC,KAAK,KAAK,QAAO;MACjB,YAAY,MAAM,KAAK,QAAO,GAAI,MAAM,EAAE;MAC1C,cAAc,KAAK,OAAM;MACzB,kBAAkB,UAAU,KAAK,OAAM,CAAE;;EAE7C;EAEO,OAAO,WAAiB;AAC7B,WAAe,aAAAD,QAAM,KAAK,QAAO,CAAE,EAAE,OAAO,SAAS;EACvD;;;;EAKO,UAAO;AACZ,WAAe,aAAAA,QAAM,KAAK,QAAO,CAAE,EAAE,QAAO;EAC9C;EAEO,oBAAoB,UAAmC;AAC5D,UAAM,oBAA0B,yBAAyB,QAAQ;AACjE,UAAM,uBAAuB,KAAK,IAAG,IAAK,KAAK,QAAO;AACtD,WAAO,uBAAuB;EAChC;EAEO,oBAAoB,UAAmC;AAC5D,WAAO,CAAC,KAAK,oBAAoB,QAAQ;EAC3C;;;;AClJI,IAAO,iBAAP,MAAqB;EAA3B,cAAA;AACS,SAAA,cAAsB;AACtB,SAAA,eAAuB;AACtB,SAAA,cAAsB;AACtB,SAAA,aAAqB;AACrB,SAAA,WAAoB;EAkC9B;;;;EA7BS,QAAK;AACV,SAAK,WAAW;AAChB,SAAK,cAAc,KAAK,IAAG;EAC7B;;;;EAKO,OAAI;AACT,QAAI,KAAK,aAAa,OAAO;AAC3B,cAAQ,IAAI,oBAAoB;AAChC;;AAEF,SAAK,aAAa,KAAK,IAAG,IAAK,KAAK;AACpC,SAAK,cAAc,KAAK,aAAa;AACrC,SAAK,eAAe,KAAK;AACzB,WAAO;EACT;;;;EAKO,QAAK;AACV,SAAK,cAAc;AACnB,SAAK,eAAe;AACpB,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,WAAW;EAClB;;;;ACvCI,IAAO,WAAP,MAAe;EASnB,YAAY,0BAAgC;AARrC,SAAA,SAA4C;AAC3C,SAAA,sBAA2B;AAM5B,SAAA,eAAiC,CAAA;AAEtC,SAAK,uBAAuB;EAC9B;EAEO,QAAK;AACV,SAAK,SAAS;AACd,UAAM,aAAa,oBAAI,KAAI;AAC3B,SAAK,sBAAsB;AAC3B,UAAM,cAAc,YAAW;AAC7B,aAAO,KAAK,WAAW,aAAa,KAAK,wBAAwB,YAAY;AAC3E,cAAcE,iBAAW,SAAS,KAAK,oBAAoB;AAC3D,aAAK,oBAAmB;;IAE5B;AACA,gBAAW;EACb;EAEO,OAAI;AACT,SAAK,SAAS;AACd,SAAK,sBAAsB;EAC7B;EAEO,eAAe,SAAkB;AACtC,SAAK,aAAa,KAAK,OAAO;EAChC;EAEQ,sBAAmB;AACzB,eAAW,WAAW,KAAK,cAAc;AACvC,cAAO;;EAEX;;;;ACnCI,IAAO,YAAP,MAAgB;;;;EAIb,OAAO,iBAAiB,iBAAuB;AACpD,WAAO,IAAI,UAAU,eAAe;EACtC;;;;;EAMO,OAAO,cAAc,cAAuB;AACjD,UAAM,iBAAiB,IAAI,UAAS;AACpC,mBAAe,SAAS,eAAe,eAAe,aAAa;AACnE,WAAO;EACT;EAuBA,YAAY,YAAmB;AAFxB,SAAA,SAAiB;AAGtB,QAAI,CAAC,YAAY;AACf,WAAK,OAAO,oBAAI,KAAI;eACX,OAAO,eAAe,UAAU;AACzC,WAAK,OAAO,IAAI,KAAK,UAAU;;AAEjC,SAAK,eAAe,KAAK,KAAK,QAAO;AACrC,SAAK,YAAY,KAAK,MAAM,KAAK,eAAe,GAAI;EACtD;;;;;;EAOO,0BAA0B,cAAyB,kBAA0B,GAAC;AACnF,QAAI,KAAK,eAAe,aAAa,eAAe,iBAAiB;AACnE,aAAO;WACF;AACL,aAAO;;EAEX;;;;;EAMO,YAAY,cAAyB,kBAA0B,GAAC;AACrE,QAAI,KAAK,eAAe,kBAAkB,aAAa,cAAc;AACnE,aAAO;WACF;AACL,aAAO;;EAEX;;;;;;EAOO,4BAA4B,cAAyB,kBAA0B,GAAC;AACrF,QAAI,KAAK,eAAe,aAAa,eAAe,iBAAiB;AACnE,aAAO;WACF;AACL,aAAO;;EAEX;EAEO,0BAA0B,gBAAsB;AACrD,UAAM,eAAe,IAAI,UAAS;AAClC,UAAM,mBAAmB,aAAa,YAAY;AAClD,UAAM,mBAAmB,IAAI,UAAU,gBAAgB;AACvD,WAAO,KAAK,4BAA4B,gBAAgB;EAC1D;;;;AC5FI,IAAO,QAAP,MAAY;EA0BhB,IAAI,WAAQ;AACV,WAAO,KAAK,qBAAqB,KAAK,SAAS;EACjD;EASA,YAAY,uBAA6B;AA5BlC,SAAA,QAAoB;AA0BnB,SAAA,oBAA4B,gBAAa,MAAK;AAGpD,SAAK,qBAAqB;AAC1B,SAAK,YAAY,KAAK,kBAAkB;EAC1C;;;;EAKO,QAAK;AACV,QAAI,CAAC,KAAK,WAAW;AACnB,WAAK,iBAAiB,WAAW,MAAK;AACpC,aAAK,kBAAkB,QAAO;MAChC,GAAG,KAAK,kBAAkB;AAC1B,WAAK,YAAY,IAAI,UAAS;WACzB;AACL,YAAM,IAAI,MAAM,0DAA0D;;EAE9E;EAEO,QAAK;AACV,QAAI,KAAK,WAAW;AAClB,mBAAa,KAAK,cAAc;AAChC,WAAK,iBAAiB;AACtB,WAAK,WAAW,UAAU,cAAc,KAAK,SAAS;;EAE1D;EAEO,SAAM;AACX,QAAI,KAAK,WAAW;AAClB,WAAK,iBAAiB,WAAW,MAAK;AACpC,aAAK,kBAAkB,QAAO;MAChC,GAAG,KAAK,QAAQ;WACX;AACL,YAAM,IAAI,MAAM,gEAAgE;;EAEpF;EAEO,QAAK;AACV,SAAK,MAAK;AACV,SAAK,YAAY;AACjB,SAAK,WAAW;EAClB;;;;ACtEF,yBAAuB;;;ACFjB,IAAO,sBAAP,MAA0B;EAAhC,cAAA;AACU,SAAA,iBAAwC,CAAA;EAoElD;EAnES,MAAM,0BAAmC,SAA2B,YAAmB;AAC5F,UAAM,oBAA4B,gBAAa,MAAK;AACpD,UAAM,gBAAmC;MACvC,eAAe;MACf;MACA,SAAS;MACT,MAAM;;AAER,SAAK,eAAe,KAAK,aAAa;AACtC,SAAK,sBAAqB;AAC1B,WAAO,kBAAkB;EAC3B;EACO,MAAM,6BACX,SACA,YAAmB;AAEnB,UAAM,oBAA4B,gBAAa,MAAK;AACpD,UAAM,gBAAmC;MACvC,eAAe;MACf;MACA,SAAS;MACT,MAAM;;AAER,SAAK,eAAe,KAAK,aAAa;AACtC,SAAK,sBAAqB;AAC1B,WAAO,kBAAkB;EAC3B;EAGQ,MAAM,wBAAqB;AACjC,QAAI,KAAK,4BAA4B;AACnC;;AAEF,SAAK,6BAAqC,gBAAa,MAAK;AAC5D,QAAI,2BAAkD,CAAA;AACtD,UAAM,gCAAgC,OAAO,WAAW,UAAS;AAC/D,UAAI,yBAAyB,SAAS,OAAO,UAAU;AACrD,cAAM,QAAQ,IAAI,yBAAyB,IAAI,gCAA8B,2BAA2B,kBAAkB,OAAO,CAAC;AAClI,mCAA2B,CAAA;;IAE/B;AACA,WAAO,KAAK,eAAe,SAAS,GAAG;AACrC,YAAM,oBAAoB,KAAK,eAAe,MAAK;AACnD,YAAM,mBAAmB,YAAW;AAClC,YAAI,kBAAkB,SAAS;AAC7B,gBAAM,SAAS,MAAM,QAAQ,KAAK;YAChC,kBAAkB,cAAa;YACvBC,iBAAW,SAAS,kBAAkB,OAAO;WACtD;AACD,4BAAkB,kBAAkB,QAAQ,MAAM;eAC7C;AACL,4BAAkB,kBAAkB,QAAQ,MAAM,kBAAkB,cAAa,CAAE;;MAEvF;AACA,UAAI,kBAAkB,SAAS,aAAa;AAC1C,cAAM,8BAA8B,IAAI;AACxC,cAAM,iBAAgB;aACjB;AACL,iCAAyB,KAAK,iBAAiB;AAC/C,cAAM,8BAA8B,KAAK;AACzC,yBAAgB;;;AAGpB,SAAK,2BAA2B,QAAO;AACvC,SAAK,6BAA6B;EAEpC;;;;ACtEI,IAAO,UAAP,MAAc;EAApB,cAAA;AACU,SAAA,YAAkC,CAAA;EAqF5C;EAnFS,YAAY,QAAc;AAC/B,WAAO,KAAK,UAAU,MAAM,IAAI,QAAQ;EAC1C;EAEO,SACL,QACA,WACA,YAEC;AAED,QAAI,KAAK,YAAY,MAAM,KAAM,cAAc,WAAW,OAAQ;AAChE,WAAK,UAAU,MAAM,IAAI;AACzB,aAAO;WACF;AACL,aAAO;;EAEX;EAEO,SAAS,QAAc;AAC5B,WAAO,KAAK,UAAU,MAAM;EAC9B;EAEO,cAAc,QAAc;AACjC,UAAM,cAAc,KAAK,SAAS,MAAM;AACxC,WAAO,KAAK,UAAU,MAAM;AAC5B,WAAO;EACT;EAEO,UAAO;AACZ,UAAM,OAAiB,CAAA;AACvB,eAAW,UAAU,KAAK,WAAW;AACnC,UAAI,KAAK,UAAU,MAAM,GAAG;AAC1B,aAAK,KAAK,MAAM;;;AAGpB,WAAO;EACT;EAEO,QAAK;AACV,SAAK,YAAY,CAAA;EACnB;;;;EAKO,OAAO,YAAsB;AAClC,UAAM,kBAAkB,IAAI,QAAO;AACnC,eAAW,OAAO,KAAK,QAAO,GAAI;AAChC,sBAAgB,SAAS,KAAK,KAAK,SAAS,GAAG,CAAC;;AAGlD,eAAW,OAAO,WAAW,QAAO,GAAI;AACtC,sBAAgB,SAAS,KAAK,WAAW,SAAS,GAAG,GAAG;QACtD,OAAO;OACR;;AAGH,WAAO;EACT;;;;;;EAOO,gBAAgB,YAAsB;AAC3C,eAAW,OAAO,WAAW,QAAO,GAAI;AACtC,WAAK,SAAS,KAAK,WAAW,SAAS,GAAG,GAAG;QAC3C,OAAO;OACR;;EAEL;EAEO,MAAM,KAAK,iBAAoD;AACpE,eAAW,OAAO,KAAK,QAAO,GAAI;AAChC,YAAM,OAAO,KAAK,SAAS,GAAG;AAC9B,YAAM,qBAAqB,MAAM,gBAAgB,IAAI;AACrD,UAAI,oBAAoB;AACtB,eAAO;;;EAGb;;;;AC5FK,IAAM,MAAM,CAAC,SAAiB,UAAS;AAC5C,SAAO,GAAG,oBAAoB,QAAQ,SAAS,CAAC,MAAK;AACnD,UAAM,IAAK,KAAK,OAAM,IAAK,KAAM;AACjC,UAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC,WAAO,EAAE,SAAS,EAAE;EACtB,CAAC;AACH;AAsBM,IAAO,YAAP,MAAgB;;;;EASpB,cAAA;AARQ,SAAA,UAAU,IAAI,QAAO;AAGtB,SAAA,eAAe,IAAYC,iBAAQ,KAAK,QAAO;EAOtD;;;;;EAMA,gBAAgB,cAAsB,WAAY;AAChD,SAAK,QAAQ,SAAS,cAAc,SAAS;EAC/C;;;;;EAMO,gBAAgB,cAAoB;AACzC,WAAO,KAAK,QAAQ,SAAS,YAAY;EAC3C;;;;;EAMO,mBAAmB,WAAiB;AACzC,UAAM,SAAS,KAAK,gBAAgB,SAAS;EAC/C;;;;;;EAOO,IAAI,WAAY;AAErB,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,YAAM,SAAS,KAAK,QAAQ,SAAS,MAAM;AAC3C,UAAI,WAAW,WAAW;AACxB,eAAO;;;AAKX,UAAM,YAAY,IAAI,KAAK;AAC3B,SAAK,gBAAgB,WAAW,SAAS;AACzC,SAAK,aAAa,KAAK;MACrB,WAAW;MACX,SAAS;KACV;AACD,WAAO;EACT;;;;EAKO,SAAS,gBAAmB;AACjC,eAAW,QAAQ,gBAAgB;AACjC,WAAK,IAAI,IAAI;;EAEjB;;;;EAKO,eAAe,WAAY;AAChC,WAAO,CAAC,CAAC,KAAK,gBAAgB,SAAS;EACzC;;;;;EAMO,gBAAgB,WAAY;AACjC,QAAI,WAAmB;AACvB,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,UAAI,CAAC,YAAY,KAAK,QAAQ,SAAS,MAAM,MAAM,WAAW;AAC5D,mBAAW;aACN;AACL;;;AAGJ,WAAO;EACT;;;;EAKO,MAAM,KAAK,cAAuC;AACvD,WAAO,KAAK,QAAQ,KAAK,YAAY;EACvC;EAEO,SAAS,cAA2C;AACzD,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,UAAI,aAAa,KAAK,QAAQ,SAAS,MAAM,CAAC,GAAG;AAC/C,eAAO,KAAK,gBAAgB,MAAM;;;EAGxC;;;;EAKO,MAAM,iBAAiB,cAAuC;AACnE,UAAM,eAAe,MAAM,KAAK,KAAK,YAAY;AACjD,QAAI,cAAc;AAChB,WAAK,OAAO,YAAY;;AAE1B,WAAO;EACT;EACO,qBAAqB,cAA2C;AACrE,UAAM,eAAe,KAAK,SAAS,YAAY;AAC/C,QAAI,cAAc;AAChB,WAAK,OAAO,YAAY;;AAE1B,WAAO;EACT;;;;EAKO,MAAM,QAAQ,aAAyC;AAC5D,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,YAAM,YAAY,KAAK,QAAQ,SAAS,MAAM,CAAC;;EAEnD;;;;EAKO,kBAAe;AACpB,UAAM,OAAO,KAAK,QAAQ,QAAO;AACjC,QAAI,KAAK,WAAW,GAAG;AACrB,aAAO;WACF;AACL,YAAM,WAAW,KAAK,CAAC;AACvB,YAAM,cAAc,KAAK,QAAQ,cAAc,QAAQ;AACvD,WAAK,aAAa,KAAK;QACrB,WAAW;QACX,SAAS;OACV;AACD,aAAO;;EAEX;;;;EAKO,WAAQ;AACb,UAAM,cAAqB,CAAA;AAC3B,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,kBAAY,KAAK,KAAK,QAAQ,SAAS,MAAM,CAAC;;AAEhD,WAAO;EACT;;;;EAKO,UAAO;AACZ,WAAO,KAAK,QAAQ,QAAO,EAAG,WAAW;EAC3C;;;;EAKO,OAAO,WAAY;AACxB,QAAI,KAAK,eAAe,SAAS,GAAG;AAClC,YAAM,SAAS,KAAK,gBAAgB,SAAS;AAC7C,YAAM,gBAAgB,KAAK,QAAQ,cAAc,MAAM;AACvD,WAAK,aAAa,KAAK;QACrB,WAAW;QACX,SAAS;OACV;AACD,aAAO;;AAET,WAAO;EACT;;;;EAKO,OAAI;AACT,eAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,WAAK,QAAQ,cAAc,MAAM;;EAErC;;;;EAKO,OAAO,cAA0B;AACtC,UAAM,qBAAqB,IAAI,UAAS;AACxC,uBAAmB,QAAQ,gBAAgB,KAAK,OAAO;AACvD,uBAAmB,QAAQ,gBAAgB,aAAa,OAAO;AAC/D,WAAO;EACT;;;;;;EAOO,gBAAgB,cAA0B;AAC/C,SAAK,QAAQ,gBAAgB,aAAa,OAAO;EACnD;;;;AC3OI,IAAO,WAAP,MAAe;;;;EAiBnB,IAAW,mBAAgB;AACzB,WAAO,KAAK,eAAe,KAAK,gBAAgB;EAClD;;;;EASO,iBAAiB,WAAiC;AACvD,SAAK,eAAe;AACpB,SAAK,oBAAoB,CAAA;AACzB,SAAK,iBAAiB,QAAQ,SAAS;EACzC;;;;EAKA,YACE,gBACA,aACA,mBACA,YAAqD;AAnChD,SAAA,mBAAmB,IAAYC,iBAAU,MAAM,GAAK;AACpD,SAAA,eAAe;AAKf,SAAA,oBAA2B,CAAA;AAS1B,SAAA,mBACN,IAAY,gBAAa,SAAQ;AAC5B,SAAA,qBAAqB,KAAK,iBAAiB;AAoBhD,SAAK,iBAAiB;AACtB,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,UAAU;AAEf,SAAK,iBAAiB,UAAU,KAAK,MAAK;AACxC,WAAK,QAAO;IACd,CAAC;AACD,QAAI,KAAK,SAAS,sBAAsB;AACtC,MAAQA,iBAAW,SAAS,KAAK,QAAQ,oBAAoB,EAAE,KAAK,KAAK,QAAQ;;EAErF;;;;;;;EASO,UAAO;AACZ,SAAK,eAAe,eAAe,IAAI;AACvC,QAAI,CAAC,KAAK,gBAAgB,KAAK,QAAQ,qBAAqB;AAC1D,WAAK,iBAAiB,KAAK,QAAQ,mBAAmB;;EAE1D;;;;EAKO,WAAQ;AACb,SAAK,iBAAiB,MAAK;EAC7B;;;;EAKO,QAAK;AACV,SAAK,iBAAiB,MAAK;EAC7B;;;;ACvEI,IAAO,cAAP,MAAkB;EAatB,YACE,mBACA,aAAkC,CAAA,GAAE;AAT9B,SAAA,oBAAoB,IAAI,UAAS;AAmDlC,SAAA,qBAAqB,IAAYC,iBAAQ,iBAAgB;AAxC9D,SAAK,iBAAiB;AACtB,SAAK,UAAU;EACjB;;;;;EAMO,MAAM,YACX,YACA,wBAA+C;AAE/C,UAAM,mBAAmB,KAAK,eAAe,UAAU;AACvD,QAAI;AACJ,UAAM,cAAc,IAAI,SACtB,MACA,YACA,KAAK,gBACL;MACE,sBAAsB,KAAK,QAAQ;MACnC,qBAAqB;KACtB;AAEH,QAAI,iBAAiB;AACrB,UAAM,KAAK,kBAAkB,QAAQ,CAAC,gBAAe;AACnD,UAAI,CAAC,kBAAkB,YAAY,qBAAqB,YAAY,kBAAkB;AACpF,gBAAQ,IAAI,QAAQ,+BAA+B,YAAY,kBAAkB;AACjF,yBAAiB;AACjB,yBAAiB;AACjB,uBAAe,MAAK;;IAExB,CAAC;AACD,QAAI,CAAC,gBAAgB;AACnB,uBAAiB;AACjB,WAAK,kBAAkB,IAAI,cAAc;;AAE3C,SAAK,mBAAmB,KAAK,cAAc;AAC3C,WAAO;EACT;;;;EAOO,eAAe,aAA2D;AAC/E,UAAM,mBAAmB,KAAK,kBAAkB,qBAAqB,CAAC,iBAAgB;AACpF,aAAO,YAAY,qBAAqB,aAAa;IACvD,CAAC;EACH;;;;EAKO,cAAc,WAAuB;AAC1C,UAAM,mBAAmB,KAAK,eAAe,SAAS;AACtD,WAAO,KAAK,sBAAsB,gBAAgB;EACpD;;;;;EAMO,sBAAsB,qBAA2B;AACtD,UAAM,gBAAgB,KAAK,kBAAkB,SAAS,CAAC,aAAY;AACjE,aAAO,SAAS,qBAAqB;IACvC,CAAC;AACD,QAAI,eAAe;AACjB,aAAO;WACF;AACL,aAAO;;EAEX;;;;;EAMO,mBAAmB,YAAwB;AAChD,UAAM,iBAAiB,KAAK,aAAa,UAAU;AACnD,QAAI,gBAAgB;AAClB,qBAAe,SAAQ;;EAE3B;;;;;EAMO,aAAa,YAAwB;AAC1C,UAAM,mBAAmB,KAAK,eAAe,UAAU;AACvD,UAAM,WAAW,KAAK,kBAAkB,SAAS,CAAC,gBAAe;AAC/D,aAAO,YAAY,qBAAqB;IAC1C,CAAC;AACD,WAAO;EACT;;;;AClII,IAAO,eAAP,MAAmB;EAGvB,YAAY,UAAgB;AAF5B,SAAA,QAAa,CAAA;AAGX,SAAK,aAAa;EACpB;EAEA,OAAO,WAAY;AACjB,SAAK,MAAM,QAAQ,SAAS;AAC5B,QAAI,KAAK,MAAM,SAAS,KAAK,YAAY;AACvC,WAAK,MAAM,SAAS,KAAK;;EAE7B;EAEA,QAAQ,gBAAmB;AACzB,aAAS,aAAa,gBAAgB;AACpC,WAAK,OAAO,SAAS;;EAEzB;EAEA,SAAS,UAAgB;AACvB,SAAK,aAAa;AAClB,QAAI,KAAK,MAAM,SAAS,KAAK,YAAY;AACvC,WAAK,MAAM,SAAS,KAAK;;EAE7B;EAEA,aAAU;AACR,QAAI,OAAO,KAAK,MAAM,CAAC,MAAM,UAAU;AACrC,UAAI,MAAM;AACV,eAAS,eAAe,KAAK,OAAO;AAClC,YAAI,iBAAsB;AAC1B,cAAM,MAAM;;AAEd,aAAO,MAAM,KAAK,MAAM;WACnB;AACL,aAAO;;EAEX;;;;ACpCI,IAAO,cAAP,MAAkB;EAEtB,cAAA;AADA,SAAA,qBAAqB,IAAI,UAAS;EAGlC;;;;;EAMA,cAAc,WAAY;AACxB,QAAI,CAAC,KAAK,mBAAmB,eAAe,SAAS,GAAG;AACtD,WAAK,mBAAmB,IAAI,SAAS;AACrC,aAAO;WACF;AACL,aAAO;;EAEX;;;;ACbI,IAAO,YAAP,MAAgB;EAGpB,cAAA;AAFQ,SAAA,eAAyB,CAAA;AACzB,SAAA,iCAAqD,CAAA;EAC9C;;;;EAIf,UAAU,WAAiB;AACzB,SAAK,aAAa,KAAK,SAAS;AAChC,SAAK,cAAa;EACpB;;;;EAKA,eAAe,gBAAwB;AACrC,eAAW,cAAc,gBAAgB;AACvC,WAAK,UAAU,UAAU;;EAE7B;;;;EAKA,aAAa,WAAiB;AAC5B,eAAW,UAAU,KAAK,cAAc;AACtC,UAAI,KAAK,aAAa,MAAM,MAAM,WAAW;AAC3C,aAAK,aAAa,OAAO,SAAS,MAAM,GAAG,CAAC;;;AAGhD,SAAK,cAAa;EACpB;;;;EAKA,OAAI;AACF,SAAK,eAAe,CAAA;AACpB,SAAK,cAAa;EACpB;;;;EAKO,YAAY,WAAiB;AAClC,WAAO,KAAK,aAAa,QAAQ,SAAS,MAAM;EAClD;;;;EAKO,eAAe,oBAA0B;AAC9C,UAAM,qBAAqB,IAAYC,iBAAW,WAAW,kBAAkB;AAC/E,QAAI,aAAsB;AAC1B,eAAW,cAAc,KAAK,cAAc;AAC1C,UAAI,mBAAmB,MAAM,UAAU,GAAG;AACxC,qBAAa;;;AAGjB,WAAO;EACT;;;;EAKO,eAAY;AACjB,WAAO,KAAK,aAAa,WAAW;EACtC;;;;EAKO,iBAAc;AACnB,UAAM,cAAwB,CAAA;AAC9B,eAAW,cAAc,KAAK,cAAc;AAC1C,kBAAY,KAAK,UAAU;;AAE7B,WAAO;EACT;;;;;EAOO,kBAAkB,aAA+B,aAAuB;AAC7E,UAAM,eAAuB,gBAAa,MAAK;AAC/C,SAAK,+BAA+B,KAAK,MAAK;AAC5C,YAAM,SAAS,YAAY,KAAK,eAAc,CAAE;AAChD,UAAI,WAAW,MAAM;AACnB,YAAI,aAAa;AACf,sBAAW;;AAEb,qBAAa,QAAO;;AAEtB,aAAO;IACT,CAAC;AACD,SAAK,cAAa;AAClB,WAAO,aAAa;EACtB;;;;EAKQ,gBAAa;AACnB,UAAM,gBAAgB,KAAK,+BAA+B,OAAO,CAAC,gBAAe;AAC/E,aAAO,CAAC,YAAW;IACrB,CAAC;AACD,SAAK,iCAAiC;EACxC;;;;AC9GI,IAAO,iBAAP,MAAqB;EAIzB,YAAY,YAAsC;AAF1C,SAAA,eAAoB,CAAA;AAG1B,SAAK,UAAU;EACjB;EAGQ,yBAAsB;AAC5B,UAAM,sBAAsB,MAAK;AAC/B,WAAK,mBAAmB,IAAYC,iBAAU,MAAM,KAAK,QAAQ,2BAA2B;AAC5F,WAAK,iBAAiB,UAAU,KAAK,MAAK;AACxC,cAAM,yBAAyB,KAAK;AACpC,YAAI,uBAAuB,WAAW,GAAG;AACvC,eAAK,mBAAmB;AACxB;;AAEF,aAAK,eAAe,CAAA;AACpB,4BAAmB;AACnB,aAAK,QAAQ,uBAAuB,sBAAsB;MAC5D,CAAC;AACD,WAAK,iBAAiB,MAAK;IAC7B;AACA,QAAI,CAAC,KAAK,kBAAkB;AAC1B,0BAAmB;;EAEvB;EAEO,IAAI,gBAAiB;AAC1B,SAAK,aAAa,KAAK,cAAc;AACrC,SAAK,uBAAsB;EAC7B;;;;ACrCI,IAAO,OAAP,MAAW;EAEf,cAAA;AACE,SAAK,aAAa,IAAY,mBAAAC,QAAU;EAC1C;;;;;;;;EAUA,WAAW,WAAY;AACrB,WAAO,KAAK,WAAW,WAAW,SAAS;EAC7C;EAEA,YAAY,WAAY;AACtB,WAAO,KAAK,WAAW,YAAY,SAAS;EAC9C;EAEA,WAAW,WAAY;AACrB,WAAO,KAAK,WAAW,WAAW,SAAS;EAC7C;EAEA,UAAU,WAAY;AACpB,WAAO,KAAK,WAAW,UAAU,SAAS;EAC5C;EAEA,gBAAgB,WAAY;AAC1B,WAAO,KAAK,WAAW,gBAAgB,SAAS;EAClD;EAEA,YAAY,WAAY;AACtB,WAAO,KAAK,WAAW,YAAY,SAAS;EAC9C;EAEA,OAAO,WAAY;AACjB,WAAO,KAAK,WAAW,OAAO,SAAS;EACzC;EAEA,wBAAwB,WAAY;AAClC,WAAO,KAAK,WAAW,wBAAwB,SAAS;EAC1D;EAEA,UAAU,WAAc,YAAgB;AACtC,WAAO,KAAK,WAAW,UAAU,WAAW,UAAU;EACxD;EAEA,UAAU,QAAW,YAAe;AAClC,WAAO,KAAK,WAAW,UAAU,QAAQ,UAAU;EACrD;EAEA,gBAAgB,WAAc,YAAe;AAC3C,WAAO,KAAK,WAAW,gBAAgB,WAAW,UAAU;EAC9D;EAEA,iBAAiB,WAAc,YAAe;AAC5C,WAAO,KAAK,WAAW,iBAAiB,WAAW,UAAU;EAC/D;EAEA,YAAY,SAAY,YAAe;AACrC,WAAO,KAAK,WAAW,YAAY,SAAS,UAAU;EACxD;EAEA,iBAAiB,WAAc,YAAe;AAC5C,WAAO,KAAK,WAAW,iBAAiB,WAAW,UAAU;EAC/D;EAEA,yBAAyB,WAAY;AACnC,WAAO,KAAK,WAAW,yBAAyB,SAAS;EAC3D;EAEA,qBAAqB,WAAY;AAC/B,WAAO,KAAK,WAAW,qBAAoB;EAC7C;EAEA,kBAAkB,WAAY;AAC5B,SAAK,WAAW,kBAAiB;EACnC;EAEA,aAAa,SAAY,YAAe;AACtC,WAAO,KAAK,WAAW,aAAa,OAAO;EAC7C;EAEA,MAAM,UAAW;AACf,WAAO,KAAK,WAAW,MAAM,QAAQ;EACvC;EAEA,cAAc,WAAY;AACxB,WAAO,KAAK,WAAW,cAAc,SAAS;EAChD;EAEA,oBAAoB,SAAY,UAAW;AACzC,WAAO,KAAK,oBAAoB,SAAS,QAAQ;EACnD;EAEA,OAAO,iBAAkB;AACvB,WAAO,KAAK,WAAW,OAAO,eAAe;EAC/C;EAEA,aAAa,oBAAuB,cAAe;AACjD,WAAO,KAAK,WAAW,aAAa,oBAAoB,YAAY;EACtE;EAEA,YAAY,iBAAoB,cAAe;AAC7C,WAAO,KAAK,WAAW,YAAY,iBAAiB,YAAY;EAClE;EAEA,aAAa,oBAAuB,cAAe;AACjD,WAAO,KAAK,WAAW,aAAa,oBAAoB,YAAY;EACtE;EAEA,YAAY,oBAAuB,cAAe;AAChD,WAAO,KAAK,WAAW,YAAY,oBAAoB,YAAY;EACrE;;;;;;;;EAUA,mBAAmB,aAAc;AAC/B,UAAM,eAAe,KAAK,aAAa,aAAa,CAAA,CAAE;AACtD,eAAW,YAAY,cAAc;AACnC,cAAQ,IAAI,QAAQ;;EAExB;;;;;EAMA,qBAAqB,aAAc;EAAG;;;;AC3IxC,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;ACAA,gBAA2B;;;ACKrB,IAAO,aAAP,MAAiB;EACd,IACL,aACA,eACA,SACA,gBAA2D;AAE3D,YAAQ,IAAI,OAAO,gBAAgB,eAAe;EACpD;;;;ACXI,IAAO,YAAP,MAAgB;EAMpB,cAAA;AAFQ,SAAA,kBAAgE,CAAA;EAEzD;EAER,kBAAkB,gBAA0D;AACjF,SAAK,gBAAgB,KAAK,cAAc;EAC1C;;EAGO,MAAM,SAAS,eAAqD;AACzE,eAAW,kBAAkB,KAAK,iBAAiB;AACjD,YAAM,eAAe,UAAU,aAAa;;EAEhD;;;;ACTI,IAAO,WAAP,MAAe;EAcnB,YAAY,YAAsC;AAV3C,SAAA,gBAAgC,UAAU,IAAG;AAI5C,SAAA,YAAY,IAAI,UAAS;AAO/B,SAAK,aAAa,WAAW;AAC7B,SAAK,kBAAkB,WAAW,mBAAmB;EACvD;EAPO,kBAAkB,mBAA6D;AACpF,SAAK,UAAU,kBAAkB,iBAAiB;EACpD;;;;;;;EAcO,cAAc,YAAoC;AACvD,QAAI,WAAW,WAAW,cAAc,WAAW,YAAY;AAC7D,YAAMC,WAAU,WAAW;AAC3B,YAAM,QAAQA,SAAQ,OAAO;AAC7B,MAAAA,SAAQ,OAAO,QAAQ,IAAI,SAAa;AACtC,cAAM,YAAoB,KAAK,CAAC;AAChC,YAAI,CAAC,aAAa,OAAO,UAAU,eAAe,YAAY;mBAEnD,CAAC,UAAU,WAAW,KAAK,KAAK,OAAO,cAAc,UAAU;AACxE,kBAAQ,MAAM;YACZ,KAAK,UAAU,OAAO,GAAG,EAAE,EAAE,SAAS,QAAQ;AAC5C,mBAAK,IAAI,SAAS,SAAS;AAC3B;YACF;AACE,mBAAK,IAAI,QAAQ,SAAS;;AAE9B,iBAAO;;AAGT,cAAM,MAAMA,SAAQ,QAAQ,IAAI;AAChC,eAAO;MACT;AAEA,MAAAA,SAAQ,OAAO,QAAQ,IAAI,SAAa;AACtC,YAAI,CAAC,KAAK,CAAC,EAAE,WAAW,KAAK,GAAG;AAC9B,eAAK,IAAI,SAAS,KAAK,CAAC,CAAC;AACzB,iBAAO;;AAGT,cAAM,MAAMA,SAAQ,QAAQ,IAAI;AAChC,eAAO;MACT;;AAEF,SAAK,iBAAiB;EACxB;;;;;;;;;;;EAYO,MAAM,IACX,aACA,eACA,YACA,gBAA2D;AAE3D,qBAAiB;MACf,GAAG;QACD,IAAY,UAAU,IAAG;QACzB,MAAM;QACN,UAAU,KAAK;;MAEjB,GAAG;;AAGL,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,GAAG,gBAAgB,eAAe;;AAGxD,UAAM,aAAqD;MACzD,WAAW,KAAK,IAAG;MACnB,MAAM;MACN,SAAS,KAAK;MACd,OAAO;MACP,aAAa;MACb,SAAS;;AAEX,QAAI,YAAY;AACd,iBAAW,OAAO;;AAEpB,UAAM,KAAK,UAAU,SAAS,UAAU;EAC1C;EAEO,UACL,aACA,eACA,YACA,iBAA6D;IAC3D,IAAY,UAAU,IAAG;IACzB,MAAM;KACP;AAED,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,cAAc,gBAAgB,eAAe;;AAEnE,SAAK,UAAU,SAAS;MACtB,WAAW,KAAK,IAAG;MACnB,MAAM;MACN,SAAS,KAAK;MACd,OAAO;MACP,SAAS;MACT,aAAa;KACd;EACH;EAEO,MAAM,UAAU,eAAqD;AAC1E,UAAM,KAAK,UAAU,SAAS,aAAa;EAC7C;EAEQ,eAAe,SAAe;AACpC,YAAQ,IACN,WAAU,oBAAI,KAAI,GAAG,SAAQ,MAAM,oBAAI,KAAI,GAAG,WAAU,MAAM,oBAAI,KAAI,GAAG,WAAU,QAAS,SAAS;EAEzG;EAEO,eAAe,gBAAwB,QAAM;AAClD,WAAO,IAAI,SAAS,MAAM,aAAa;EACzC;;;;AClJI,IAAO,WAAP,MAAe;EAKnB,YAAY,kBAA4B,kBAAwB;AAFzD,SAAA,UAAkB,UAAU,IAAG;AAGpC,SAAK,cAAc;AACnB,SAAK,gBAAgB;EACvB;EAEO,IACL,aACA,eACA,YAAgB;AAEhB,SAAK,YAAY,IAAI,aAAa,eAAe,YAAY;MAC3D,IAAY,UAAU,IAAG;MACzB,MAAM;MACN,OAAO,KAAK;MACZ,UAAU,KAAK,YAAY;MAC3B,aAAa,KAAK;KACnB;EACH;;;;ACvBK,IAAM,eAAN,MAAmB;AAAA,EAKxB,YAAY,SAAoB;AAFhC;AAAA,SAAO,gBAAwB;AAG7B,SAAK,OAAO;AAAA,EACd;AAAA,EAEO,QAAQ,GAAsB;AACnC,QAAI,EAAE,KAAK,iBAAiB,KAAK,KAAK,YAAY;AAChD,WAAK;AAAA,IACP;AACA,UAAM,gBAA8B,KAAK,KAAK,aAAa;AAAA,MACzD,KAAK;AAAA,IACP;AACA,QAAI,CAAC,KAAK,KAAK,SAAS;AACtB,WAAK,KAAK,CAAC;AAAA,IACb;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,KAAK,GAAQ;AACzB,SAAK,KAAK,UAAU;AACpB,WAAO,KAAK,gBAAgB,GAAG;AAC7B,YAAM,SAAS,MAAM,KAAK,QAAQ,KAAK,MAAM,EAAE,EAAK,CAAC;AACrD,WAAK;AACL,WAAK,KAAK,aAAa,cAAc,MAAM;AAAA,IAC7C;AACA,SAAK,KAAK,UAAU;AAAA,EACtB;AACF;;;ACzBO,IAAM,eAAN,MAAmB;AAAA,EAGxB,YAAY,SAAoB;AADhC,SAAO,mBAAmC,CAAC;AAEzC,SAAK,OAAO;AAAA,EACd;AAAA,EACO,mBAAmB,eAAuB;AAC/C,UAAM,OAAe,gBAAa,MAAM;AACxC,UAAM,cAA4B;AAAA,MAChC,cAAc;AAAA,MACd,UAAU;AAAA,IACZ;AACA,SAAK,iBAAiB,KAAK,WAAW;AACtC,WAAO,KAAK;AAAA,EACd;AAAA,EACO,cAAc,GAAQ;AAC3B,UAAM,sBAAsC,CAAC;AAC7C,SAAK,iBAAiB,QAAQ,CAAC,mBAAmB;AAChD,qBAAe;AACf,UAAI,eAAe,gBAAgB,GAAG;AACpC,uBAAe,SAAS,QAAQ,CAAC;AAAA,MACnC,OAAO;AACL,4BAAoB,KAAK,cAAc;AAAA,MACzC;AAAA,IACF,CAAC;AACD,SAAK,mBAAmB;AAAA,EAC1B;AACF;;;ACjCO,IAAM,SAAS,IAAYC,iBAAS,WAAW;;;ACc/C,IAAM,QAAN,MAA0B;AAAA,EA4J/B,YAAY,YAST;AA1BH;AAAA,SAAO,gBAAwB,CAAC;AAMhC,SAAO,UAAmB;AAC1B,SAAO,eAAe,IAAI,aAAa,IAAI;AAC3C,SAAO,eAAe,IAAI,aAAa,IAAI;AAmBzC,SAAK,eAAe,WAAW;AAC/B,SAAK,UAAU,WAAW;AAC1B,SAAK,YAAY,WAAW;AAC5B,SAAK,WAAW,WAAW;AAC3B,SAAK,YAAY,WAAW;AAC5B,SAAK,YAAY,WAAW;AAC5B,SAAK,OAAO,WAAW;AACvB,SAAK,YAAY,WAAW;AAG5B,SAAK,WAAW,IAAI,QAAQ,CAAC,YAAY;AACvC,WAAK,kBAAkB;AAAA,IACzB,CAAC;AAAA,EACH;AAAA,EAlLA,OAAc,YACZ,mBACS;AACT,YAAQ,MAAM;AAAA,MACZ,KAAK,CAAC;AACJ,eAAO;AAAA,MACT,KAAK,6BAA6B;AAChC,eAAO;AAAA,MACT,KAAK,OAAO,sBAAsB;AAChC,cAAM,eAAe;AACrB,eAAO,aAAa;AAAA,MACtB;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAAA,EAgBA,OAAc,cACZ,SACA,mBACS;AACT,UAAM,cAAc,MAAK,YAAY,OAAO;AAC5C,QAAI,SAAS;AACb,eAAW,UAAU,mBAAmB;AACtC,UAAI,gBAAgB,kBAAkB,MAAM,GAAG;AAC7C,iBAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EA0GA,IAAW,OAAO;AAChB,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EA8BO,QAAQ,GAAuB;AACpC,QAAI,KAAK,UAAU;AACjB,aAAO,KAAK,gBAAgB,CAAC;AAAA,IAC/B,OAAO;AACL,aAAO,KAAK,kBAAkB,CAAC;AAAA,IACjC;AAAA,EACF;AAAA,EAEO,kBAAkB,GAAuB;AAC9C,WAAO,MAAK,QAAW,MAAM,EAAE,EAAK,CAAC;AAAA,EACvC;AAAA,EAEO,gBAAgB,GAAuB;AAC5C,WAAO,KAAK,aAAa,QAAQ,CAAC;AAAA,EACpC;AACF;AApMO,IAAM,OAAN;AAAM,KAiBG,oBAAmC,SAAU,GAAG;AAC5D,QAAM,OAAe,gBAAa,MAAM;AACxC,OAAK,QAAQ;AACb,SAAO,KAAK;AACd;AArBW,KAuBG,SAAS,CAAC,YAAgC;AACtD,MAAI,mBAAmB,SAAQ,OAAO,QAAQ,iBAAiB,YAAY;AACzE,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AA7BW,KA6CG,UAAU,OACtB,SACA,eACG;AACH,QAAM,YAAY,MAAK,YAAY,OAAO;AAC1C,QAAM,OAAe,gBAAa,MAAM;AAGxC,aAAW,QAAQ,UAAU,eAAe;AAC1C,UAAM,KAAK;AAAA,EACb;AAEA,MAAI,CAAC,UAAU,cAAc,UAAU,WAAW;AAChD,cAAU,aAAa,MAAM,UAAU,UAAU;AAAA,EACnD;AAEA,MAAI,UAAU,WAAW;AACvB,UAAcC,iBAAW,SAAS,UAAU,SAAS;AAAA,EACvD;AAEA,YAAU,UAAU;AAEpB,OAAK,QAAQ,KAAK,YAAY;AAC5B,cAAU,UAAU;AAGpB,cAAU,gBAAgB;AAG1B,cAAU,WAAW,IAAI,QAAQ,CAAC,YAAY;AAC5C,gBAAU,kBAAkB;AAAA,IAC9B,CAAC;AAAA,EACH,CAAC;AAED,QAAM,UAAU;AAAA,IACd,GAAG,EAAE,GAAG,QAAW,mBAAmB,CAAC,EAAE;AAAA,IACzC,GAAG;AAAA,EACL;AACA,QAAM,IAAI,QAAQ;AAClB,QAAM,oBAA+B,QAAQ;AAE7C,oBAAkB,KAAK,SAAS;AAEhC,QAAM,gBAAwB,gBAAa,MAAM;AACjD,gBAAc,QACX,KAAK,MAAM;AACV,QAAI,UAAU,WAAW,CAAC,MAAK,cAAc,UAAU,SAAS,iBAAiB,GAAG;AAClF,aAAO,MAAK,QAAQ,UAAU,SAAS,EAAE,GAAG,kBAAkB,CAAC;AAAA,IACjE,OAAO;AACL,YAAM,QAAgB,gBAAa,MAAM;AACzC,YAAM,QAAQ,CAAC;AACf,aAAO,MAAM;AAAA,IACf;AAAA,EACF,CAAC,EACA,KAAK,OAAOC,OAAM;AACjB,QAAI;AACF,aAAO,MAAM,UAAU,aAAaA,IAAG,UAAU,UAAU;AAAA,IAC7D,SAAS,GAAP;AACA,cAAQ,IAAI,CAAC;AAAA,IACf;AAAA,EACF,CAAC,EACA,KAAK,CAACA,OAAM;AACX,QAAI,UAAU,aAAa,CAAC,MAAK,cAAc,UAAU,WAAW,iBAAiB,GAAG;AACtF,aAAO,MAAK,QAAQ,UAAU,WAAW,EAAE,GAAGA,IAAG,kBAAqC,CAAC;AAAA,IACzF,OAAO;AACL,YAAM,QAAgB,gBAAa,MAAM;AACzC,YAAM,QAAQA,EAAC;AACf,aAAO,MAAM;AAAA,IACf;AAAA,EACF,CAAC,EACA,KAAK,CAACA,OAAM;AACX,SAAK,QAAQA,EAAC;AAAA,EAChB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,YAAQ,IAAI,GAAG;AAAA,EACjB,CAAC;AACH,gBAAc,QAAQ;AACtB,SAAO,MAAM,KAAK;AACpB;;;ACpIK,IAAM,YAAN,cAAwB,KAAK;AAAA,EAElC,YAAY,YAMT;AACD,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,QACD,MAAM;AAAA,QACN,KAAK;AAAA,MACP;AAAA,MACA,GAAG;AAAA,MACH,GAAG;AAAA,QACD,cAAc,CAAC,MAAW;AAExB,gBAAM,OAAe,gBAAa,MAAM;AACxC,cAAI,cAAc;AAClB,gBAAM,eAAe,CAACC,OAAW;AAC/B,gBAAI,OAAO,KAAK,UAAU,WAAW,MAAM,aAAa;AACtD,sBAAQ,IAAI,KAAK,OAAO,mBAAmB,KAAK,UAAU,WAAW,EAAE,IAAI;AAC3E,mBAAK,UAAU,WAAW,EAAE,QAAQA,EAAC,EAAE,KAAK,CAACA,OAAM;AACjD,uBAAO,IAAI,QAAQ,KAAK,UAAU,WAAW,EAAE,IAAI;AACnD;AACA,6BAAaA,EAAC;AAAA,cAChB,CAAC;AAAA,YACH,OAAO;AACL,sBAAQ,IAAI,gBAAgB,KAAK,OAAO,0BAA0B;AAClE,mBAAK,QAAQA,EAAC;AAAA,YAChB;AAAA,UACF;AACA,uBAAa,CAAC;AACd,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,UAAM,OAAO;AACb,SAAK,YAAY,WAAW;AAAA,EAC9B;AAAA,EACA,QAAQ,SAAe;AACrB,SAAK,UAAU,KAAK,OAAO;AAAA,EAC7B;AAAA,EACA,WAAW,SAAe;AAAA,EAE1B;AAAA,EACA,YAAY;AAAA,EAEZ;AACF;;;ACtDO,IAAM,eAAN,cAA2B,KAAK;AAAA,EAErC,YAAY,YAAmC;AAC7C,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,MACH,GAAG;AAAA,QACD,cAAc,MAAM;AAClB,gBAAM,OAAe,gBAAa,MAAM;AACxC,gBAAM,eAA+B,CAAC;AACtC,eAAK,UAAU,QAAQ,SAAU,SAAS;AACxC,yBAAa,KAAK,QAAQ,QAAQ,CAAC;AAAA,UACrC,CAAC;AACD,kBAAQ,IAAI,YAAY,EAAE,KAAK,KAAK,OAAO;AAC3C,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,UAAM,OAAO;AACb,SAAK,YAAY,WAAW;AAAA,EAC9B;AACF;;;ACvBA;AAAA;AAAA;AAAA;AAwBO,IAAe,iCAAf,MAA8C;AAWrD;;;ACrBO,IAAM,cAAN,MAAkB;AAAA,EAQvB,YAAY,UAA0C,CAAC,GAAG;AAP1D,SAAO,WAAmBC,WAAU,IAAI;AACxC,SAAO,UAAU,IAAYC,iBAAI,UAAgB;AACjD,SAAQ,iBAAiB,IAAYA,iBAAU,YAAY;AAC3D,SAAO,UAA0C;AAAA,MAC/C,wBAAwB;AAAA,IAC1B;AAGE,SAAK,UAAU,OAAO,OAAO,KAAK,SAAS,OAAO;AAAA,EACpD;AAAA,EAEO,cAAc,UAAwB;AAC3C,WAAO,KAAK,QAAQ,SAAS,CAAC,SAAS,KAAK,SAAS,QAAQ;AAAA,EAC/D;AAAA,EAEO,QAAQ,MAAkB;AAC/B,QAAI,CAAC,KAAK,MAAM;AACd,YAAM,IAAI,MAAM,kDAAkD;AAAA,IACpE;AACA,SAAK,QAAQ,IAAI,IAAI;AAAA,EACvB;AAAA,EAEO,mBAAmB,MAAY,YAAoB;AACxD,SAAK,QAAQ,IAAI;AACjB,SAAK,mBAAmB,KAAK,MAAM,UAAU;AAAA,EAC/C;AAAA,EAEA,MAAa,kBAAkB,UAAgC;AAC7D,UAAM,gBAAgB,KAAK,cAAc,QAAQ;AACjD,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI,MAAM,yBAAyB,iBAAiB;AAAA,IAC5D;AACA,WAAO,cAAc,QAAQ;AAAA,EAC/B;AAAA,EAEA,MAAa,YAAY,MAAY;AACnC,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEO,mBAAmB,UAAkB,YAAoB;AAC9D,UAAM,iBAAiB,KAAK,cAAc,QAAQ;AAClD,QAAI,CAAC,gBAAgB;AACnB,YAAM,IAAI,MAAM,yBAAyB,iBAAiB;AAAA,IAC5D;AACA,SAAK,qBAAqB,gBAAgB,UAAU;AAAA,EACtD;AAAA,EAEQ,qBAAqB,MAAY,YAAoB;AAC3D,UAAM,UAAU,KAAK,eAAe;AAAA,MAClC;AAAA,MACA,OAAO,gBAAwB;AAC7B,aAAK,aAAa,IAAI;AACtB,YAAI,KAAK,QAAQ,wBAAwB;AACvC,gBAAM,qBAAqB,MAAM,KAAK,+BAA+B,MAAM,WAAW;AACtF,cAAI,CAAC,mBAAmB,eAAe;AACrC,oBAAQ,IAAI,+CAA+C;AAC3D;AAAA,UACF,OAAO;AACL,oBAAQ,IAAI,sDAAsD;AAAA,UACpE;AAAA,QACF;AACA,cAAM,KAAK,QAAQ;AAAA,MACrB;AAAA,IACF;AACA,SAAK,UAAU;AAAA,EACjB;AAAA,EAEQ,aAAa,MAAY;AAC/B,YAAQ,IAAI,wCAAwC,KAAK,QAAQ;AACjE,UAAM,cAAc,KAAK,WACrB,qBAAqB,KAAK,6BAC1B;AACJ,YAAQ,IAAI,UAAU,KAAK,aAAa,aAAa;AAAA,EACvD;AAAA,EAEA,MAAc,+BAA+B,MAAY,aAA6D;AACpH,YAAQ,IAAI,2DAA2D;AACvE,WAAO,KAAK,QAAQ,uBAAuB,2BAA2B;AAAA,MACpE,aAAa,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,uBAAuB;AAAA,MACvB,mBAAmB;AAAA,MACnB,sBAAsB,KAAK;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,aAAa,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EAEO,qBAAqB,UAAkB;AAC5C,UAAM,OAAO,KAAK,cAAc,QAAQ;AACxC,QAAI,QAAQ,KAAK,SAAS;AACxB,WAAK,eAAe,cAAc,KAAK,OAAO;AAC9C,WAAK,UAAU;AAAA,IACjB;AACA,QAAI,KAAK,eAAe,SAAS,SAAS;AACxC,WAAK,eAAe,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,MAAa,eAAe,MAAY;AACtC,UAAM,KAAK,qBAAqB,KAAK,IAAI;AAAA,EAC3C;AAAA,EAEO,uBAAuB,UAAiC;AAC7D,UAAM,OAAO,KAAK,cAAc,QAAQ;AACxC,WAAO,QAAQ,KAAK,UAAU,KAAK,QAAQ,iBAAiB;AAAA,EAC9D;AAAA,EAEA,MAAa,QAAQ;AACnB,QAAI,KAAK,QAAQ,wBAAwB;AACvC,YAAM,KAAK,QAAQ,uBAAuB,MAAM;AAAA,IAClD;AACA,SAAK,eAAe,MAAM;AAAA,EAC5B;AAAA,EAEA,MAAa,OAAO;AAClB,SAAK,eAAe,KAAK;AACzB,QAAI,KAAK,QAAQ,wBAAwB;AACvC,YAAM,KAAK,QAAQ,uBAAuB,KAAK;AAAA,IACjD;AAAA,EACF;AACF;;;ACjIO,IAAM,WAAN,cAAuB,KAAK;AAAA,EAEjC,YAAY,YAA4D;AACtE,UAAM;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,cAAc,YAAY;AACxB,YAAI,CAAC,KAAK,cAAc;AACtB,eAAK,eAAe;AACpB,gBAAM,WAAW,aAAa;AAAA,QAChC;AAAA,MACF;AAAA,IACF,CAAC;AAVH,wBAAwB;AAAA,EAWxB;AACF;;;AChBO,IAAM,aAAN,MAAiB;AAAA,EAMtB,cAAc;AALd,SAAO,mBAA2B;AAClC,SAAO,SAAgC;AACvC,SAAO,eAA4C,IAAYC,iBAAI,UAAgB;AACnF,SAAO,aAAqB,CAAC;AAG3B,SAAK,aAAa,aAAa,UAAU,OAAO,aAAa;AAC3D,WAAK,eAAe;AAAA,IACtB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,QAAQ,SAAe;AAC5B,SAAK,WAAW,KAAK,OAAO;AAC5B,SAAK,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,mBAAmB,qBAA6B;AACrD,SAAK,mBAAmB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,QAAQ;AACnB,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,iBAAiB;AAC5B,QACE,KAAK,aAAa,SAAS,EAAE,SAAS,KAAK,oBAC3C,KAAK,WAAW,aAChB,KAAK,WAAW,SAAS,GACzB;AACA,YAAM,UAAU,KAAK,WAAW,MAAM;AACtC,WAAK,aAAa,IAAI,OAAO;AAC7B,YAAM,QAAQ,QAAQ;AACtB,WAAK,aAAa,OAAO,OAAO;AAChC,WAAK,eAAe;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAO;AAClB,SAAK,SAAS;AAAA,EAChB;AACF;;;AC1DO,IAAM,gBAAN,cAAyC,KAAK;AAAA,EAInD,YAAY,YAIT;AACD,UAAM;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,cAAc,OAAO,MAAS;AAC5B,aAAK,kBAAkB,KAAK,CAAC;AAAA,MAC/B;AAAA,IACF,CAAC;AAZH,SAAQ,oBAAoB,IAAYC,iBAAQ,iBAAoB;AAalE,SAAK,eAAe,WAAW;AAC/B,SAAK,kBAAkB,WACpB,KAAaA,iBAAQ,KAAK,IAAI,aAAa,WAAW,oBAAoB,CAAC,EAC3E,UAAU,CAAC,MAAM;AAChB,WAAK,aAAa,CAAC;AAAA,IACrB,CAAC;AAAA,EACL;AACF;",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/dayjs.min.js", "../node_modules/.pnpm/dayjs@1.11.9/node_modules/dayjs/plugin/isToday.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js", "../node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/ts/index.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartdelay@3.0.5/node_modules/@push.rocks/smartdelay/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.deferred.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.0.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.cumulativedeferred.ts", "../node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/ts/index.ts", "../node_modules/.pnpm/matcher@5.0.0/node_modules/matcher/index.js", "../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.plugins.rxjs.ts", "../node_modules/.pnpm/tslib@2.6.1/node_modules/tslib/tslib.es6.mjs", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isFunction.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/createErrorClass.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/arrRemove.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subscription.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/config.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/noop.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/NotificationFactories.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/errorContext.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subscriber.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/symbol/observable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/identity.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/pipe.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Observable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/lift.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Subject.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/ReplaySubject.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/Action.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/Scheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduler/async.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/args.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isArrayLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isPromise.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/symbol/iterator.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/innerFrom.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/executeSchedule.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/observeOn.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/subscribeOn.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/from.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/isDate.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/map.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeInternals.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeMap.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/mergeAll.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/concatAll.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/concat.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/fromEvent.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/observable/timer.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/filter.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/debounce.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/debounceTime.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/startWith.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/takeUntil.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/throttle.ts", "../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/src/internal/operators/throttleTime.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observablemap.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.6/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observableintake.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/index.ts", "../node_modules/.pnpm/croner@5.7.0/node_modules/croner/dist/croner.min.mjs", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.plugins.ts", "../node_modules/.pnpm/parse-ms@3.0.0/node_modules/parse-ms/index.js", "../node_modules/.pnpm/pretty-ms@8.0.0/node_modules/pretty-ms/index.js", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronjob.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.units.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronmanager.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.extendeddate.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.hrtmeasurement.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.interval.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timestamp.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.0.5/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timer.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.plugins.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.asyncexecutionstack.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.fastmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.objectmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.interestmap.interest.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.interestmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.limitedarray.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.looptracker.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.stringmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.timedaggregator.ts", "../node_modules/.pnpm/@push.rocks+lik@6.0.5/node_modules/@push.rocks/lik/ts/lik.tree.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.consolelog.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.logrouter.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.smartlog.ts", "../node_modules/.pnpm/@push.rocks+smartlog@3.0.3/node_modules/@push.rocks/smartlog/ts/smartlog.classes.loggroup.ts", "../node_modules/.pnpm/@push.rocks+smartunique@3.0.6/node_modules/@push.rocks/smartunique/ts/index.ts", "../node_modules/.pnpm/nanoid@4.0.2/node_modules/nanoid/index.browser.js", "../node_modules/.pnpm/nanoid@4.0.2/node_modules/nanoid/url-alphabet/index.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/index.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/regex.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/validate.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v1.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/parse.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v35.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/md5.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v3.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/sha1.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v5.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/nil.js", "../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/version.js", "../ts/taskbuffer.classes.bufferrunner.ts", "../ts/taskbuffer.classes.cyclecounter.ts", "../ts/taskbuffer.logging.ts", "../ts/taskbuffer.classes.task.ts", "../ts/taskbuffer.classes.taskchain.ts", "../ts/taskbuffer.classes.taskparallel.ts", "../ts/taskbuffer.classes.distributedcoordinator.ts", "../ts/taskbuffer.classes.taskmanager.ts", "../ts/taskbuffer.classes.taskonce.ts", "../ts/taskbuffer.classes.taskrunner.ts", "../ts/taskbuffer.classes.taskdebounced.ts"],
|
|
4
|
+
"sourcesContent": ["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof b},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,f=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=O.p(f),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return O.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return O.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return O.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return O.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return O.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return O.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return O.s(e.$s,2,\"0\");case\"SSS\":return O.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=O.p(d),m=w(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return O.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:O.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),_=b.prototype;return w.prototype=_,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,b,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));", "!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));", "'use strict';\n\nmodule.exports = class SymbolTreeNode {\n constructor() {\n this.parent = null;\n this.previousSibling = null;\n this.nextSibling = null;\n\n this.firstChild = null;\n this.lastChild = null;\n\n /** This value is incremented anytime a children is added or removed */\n this.childrenVersion = 0;\n /** The last child object which has a cached index */\n this.childIndexCachedUpTo = null;\n\n /** This value represents the cached node index, as long as\n * cachedIndexVersion matches with the childrenVersion of the parent */\n this.cachedIndex = -1;\n this.cachedIndexVersion = NaN; // NaN is never equal to anything\n }\n\n get isAttached() {\n return Boolean(this.parent || this.previousSibling || this.nextSibling);\n }\n\n get hasChildren() {\n return Boolean(this.firstChild);\n }\n\n childrenChanged() {\n /* jshint -W016 */\n // integer wrap around\n this.childrenVersion = (this.childrenVersion + 1) & 0xFFFFFFFF;\n this.childIndexCachedUpTo = null;\n }\n\n getCachedIndex(parentNode) {\n // (assumes parentNode is actually the parent)\n if (this.cachedIndexVersion !== parentNode.childrenVersion) {\n this.cachedIndexVersion = NaN;\n // cachedIndex is no longer valid\n return -1;\n }\n\n return this.cachedIndex; // -1 if not cached\n }\n\n setCachedIndex(parentNode, index) {\n // (assumes parentNode is actually the parent)\n this.cachedIndexVersion = parentNode.childrenVersion;\n this.cachedIndex = index;\n }\n};\n", "'use strict';\n\n/* eslint-disable sort-keys */\nmodule.exports = Object.freeze({\n // same as DOM DOCUMENT_POSITION_\n DISCONNECTED: 1,\n PRECEDING: 2,\n FOLLOWING: 4,\n CONTAINS: 8,\n CONTAINED_BY: 16,\n});\n", "'use strict';\n\nconst TREE = Symbol();\nconst ROOT = Symbol();\nconst NEXT = Symbol();\nconst ITERATE_FUNC = Symbol();\n\nclass TreeIterator {\n constructor(tree, root, firstResult, iterateFunction) {\n this[TREE] = tree;\n this[ROOT] = root;\n this[NEXT] = firstResult;\n this[ITERATE_FUNC] = iterateFunction;\n }\n\n next() {\n const tree = this[TREE];\n const iterateFunc = this[ITERATE_FUNC];\n const root = this[ROOT];\n\n if (!this[NEXT]) {\n return {\n done: true,\n value: root,\n };\n }\n\n const value = this[NEXT];\n\n if (iterateFunc === 1) {\n this[NEXT] = tree._node(value).previousSibling;\n }\n else if (iterateFunc === 2) {\n this[NEXT] = tree._node(value).nextSibling;\n }\n else if (iterateFunc === 3) {\n this[NEXT] = tree._node(value).parent;\n }\n else if (iterateFunc === 4) {\n this[NEXT] = tree.preceding(value, {root: root});\n }\n else /* if (iterateFunc === 5)*/ {\n this[NEXT] = tree.following(value, {root: root});\n }\n\n return {\n done: false,\n value: value,\n };\n }\n}\n\nObject.defineProperty(TreeIterator.prototype, Symbol.iterator, {\n value: function() {\n return this;\n },\n writable: false,\n});\n\nTreeIterator.PREV = 1;\nTreeIterator.NEXT = 2;\nTreeIterator.PARENT = 3;\nTreeIterator.PRECEDING = 4;\nTreeIterator.FOLLOWING = 5;\n\nObject.freeze(TreeIterator);\nObject.freeze(TreeIterator.prototype);\n\nmodule.exports = TreeIterator;\n", "'use strict';\n\n/**\n * @module symbol-tree\n * @author Joris van der Wel <joris@jorisvanderwel.com>\n */\n\nconst SymbolTreeNode = require('./SymbolTreeNode');\nconst TreePosition = require('./TreePosition');\nconst TreeIterator = require('./TreeIterator');\n\nfunction returnTrue() {\n return true;\n}\n\nfunction reverseArrayIndex(array, reverseIndex) {\n return array[array.length - 1 - reverseIndex]; // no need to check `index >= 0`\n}\n\nclass SymbolTree {\n\n /**\n * @constructor\n * @alias module:symbol-tree\n * @param {string} [description='SymbolTree data'] Description used for the Symbol\n */\n constructor(description) {\n this.symbol = Symbol(description || 'SymbolTree data');\n }\n\n /**\n * You can use this function to (optionally) initialize an object right after its creation,\n * to take advantage of V8's fast properties. Also useful if you would like to\n * freeze your object.\n *\n * `O(1)`\n *\n * @method\n * @alias module:symbol-tree#initialize\n * @param {Object} object\n * @return {Object} object\n */\n initialize(object) {\n this._node(object);\n\n return object;\n }\n\n _node(object) {\n if (!object) {\n return null;\n }\n\n const node = object[this.symbol];\n\n if (node) {\n return node;\n }\n\n return (object[this.symbol] = new SymbolTreeNode());\n }\n\n /**\n * Returns `true` if the object has any children. Otherwise it returns `false`.\n *\n * * `O(1)`\n *\n * @method hasChildren\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Boolean}\n */\n hasChildren(object) {\n return this._node(object).hasChildren;\n }\n\n /**\n * Returns the first child of the given object.\n *\n * * `O(1)`\n *\n * @method firstChild\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n firstChild(object) {\n return this._node(object).firstChild;\n }\n\n /**\n * Returns the last child of the given object.\n *\n * * `O(1)`\n *\n * @method lastChild\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n lastChild(object) {\n return this._node(object).lastChild;\n }\n\n /**\n * Returns the previous sibling of the given object.\n *\n * * `O(1)`\n *\n * @method previousSibling\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n previousSibling(object) {\n return this._node(object).previousSibling;\n }\n\n /**\n * Returns the next sibling of the given object.\n *\n * * `O(1)`\n *\n * @method nextSibling\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n nextSibling(object) {\n return this._node(object).nextSibling;\n }\n\n /**\n * Return the parent of the given object.\n *\n * * `O(1)`\n *\n * @method parent\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n parent(object) {\n return this._node(object).parent;\n }\n\n /**\n * Find the inclusive descendant that is last in tree order of the given object.\n *\n * * `O(n)` (worst case) where `n` is the depth of the subtree of `object`\n *\n * @method lastInclusiveDescendant\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object}\n */\n lastInclusiveDescendant(object) {\n let lastChild;\n let current = object;\n\n while ((lastChild = this._node(current).lastChild)) {\n current = lastChild;\n }\n\n return current;\n }\n\n /**\n * Find the preceding object (A) of the given object (B).\n * An object A is preceding an object B if A and B are in the same tree\n * and A comes before B in tree order.\n *\n * * `O(n)` (worst case)\n * * `O(1)` (amortized when walking the entire tree)\n *\n * @method preceding\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @param {Object} [options]\n * @param {Object} [options.root] If set, `root` must be an inclusive ancestor\n * of the return value (or else null is returned). This check _assumes_\n * that `root` is also an inclusive ancestor of the given `object`\n * @return {?Object}\n */\n preceding(object, options) {\n const treeRoot = options && options.root;\n\n if (object === treeRoot) {\n return null;\n }\n\n const previousSibling = this._node(object).previousSibling;\n\n if (previousSibling) {\n return this.lastInclusiveDescendant(previousSibling);\n }\n\n // if there is no previous sibling return the parent (might be null)\n return this._node(object).parent;\n }\n\n /**\n * Find the following object (A) of the given object (B).\n * An object A is following an object B if A and B are in the same tree\n * and A comes after B in tree order.\n *\n * * `O(n)` (worst case) where `n` is the amount of objects in the entire tree\n * * `O(1)` (amortized when walking the entire tree)\n *\n * @method following\n * @memberOf module:symbol-tree#\n * @param {!Object} object\n * @param {Object} [options]\n * @param {Object} [options.root] If set, `root` must be an inclusive ancestor\n * of the return value (or else null is returned). This check _assumes_\n * that `root` is also an inclusive ancestor of the given `object`\n * @param {Boolean} [options.skipChildren=false] If set, ignore the children of `object`\n * @return {?Object}\n */\n following(object, options) {\n const treeRoot = options && options.root;\n const skipChildren = options && options.skipChildren;\n\n const firstChild = !skipChildren && this._node(object).firstChild;\n\n if (firstChild) {\n return firstChild;\n }\n\n let current = object;\n\n do {\n if (current === treeRoot) {\n return null;\n }\n\n const nextSibling = this._node(current).nextSibling;\n\n if (nextSibling) {\n return nextSibling;\n }\n\n current = this._node(current).parent;\n } while (current);\n\n return null;\n }\n\n /**\n * Append all children of the given object to an array.\n *\n * * `O(n)` where `n` is the amount of children of the given `parent`\n *\n * @method childrenToArray\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n childrenToArray(parent, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n const parentNode = this._node(parent);\n let object = parentNode.firstChild;\n let index = 0;\n\n while (object) {\n const node = this._node(object);\n node.setCachedIndex(parentNode, index);\n\n if (filter.call(thisArg, object)) {\n array.push(object);\n }\n\n object = node.nextSibling;\n ++index;\n }\n\n return array;\n }\n\n /**\n * Append all inclusive ancestors of the given object to an array.\n *\n * * `O(n)` where `n` is the amount of ancestors of the given `object`\n *\n * @method ancestorsToArray\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n ancestorsToArray(object, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n let ancestor = object;\n\n while (ancestor) {\n if (filter.call(thisArg, ancestor)) {\n array.push(ancestor);\n }\n ancestor = this._node(ancestor).parent;\n }\n\n return array;\n }\n\n /**\n * Append all descendants of the given object to an array (in tree order).\n *\n * * `O(n)` where `n` is the amount of objects in the sub-tree of the given `object`\n *\n * @method treeToArray\n * @memberOf module:symbol-tree#\n * @param {Object} root\n * @param {Object} [options]\n * @param {Object[]} [options.array=[]]\n * @param {Function} [options.filter] Function to test each object before it is added to the array.\n * Invoked with arguments (object). Should return `true` if an object\n * is to be included.\n * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.\n * @return {Object[]}\n */\n treeToArray(root, options) {\n const array = (options && options.array) || [];\n const filter = (options && options.filter) || returnTrue;\n const thisArg = (options && options.thisArg) || undefined;\n\n let object = root;\n\n while (object) {\n if (filter.call(thisArg, object)) {\n array.push(object);\n }\n object = this.following(object, {root: root});\n }\n\n return array;\n }\n\n /**\n * Iterate over all children of the given object\n *\n * * `O(1)` for a single iteration\n *\n * @method childrenIterator\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @param {Object} [options]\n * @param {Boolean} [options.reverse=false]\n * @return {Object} An iterable iterator (ES6)\n */\n childrenIterator(parent, options) {\n const reverse = options && options.reverse;\n const parentNode = this._node(parent);\n\n return new TreeIterator(\n this,\n parent,\n reverse ? parentNode.lastChild : parentNode.firstChild,\n reverse ? TreeIterator.PREV : TreeIterator.NEXT\n );\n }\n\n /**\n * Iterate over all the previous siblings of the given object. (in reverse tree order)\n *\n * * `O(1)` for a single iteration\n *\n * @method previousSiblingsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n previousSiblingsIterator(object) {\n return new TreeIterator(\n this,\n object,\n this._node(object).previousSibling,\n TreeIterator.PREV\n );\n }\n\n /**\n * Iterate over all the next siblings of the given object. (in tree order)\n *\n * * `O(1)` for a single iteration\n *\n * @method nextSiblingsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n nextSiblingsIterator(object) {\n return new TreeIterator(\n this,\n object,\n this._node(object).nextSibling,\n TreeIterator.NEXT\n );\n }\n\n /**\n * Iterate over all inclusive ancestors of the given object\n *\n * * `O(1)` for a single iteration\n *\n * @method ancestorsIterator\n * @memberOf module:symbol-tree#\n * @param {Object} object\n * @return {Object} An iterable iterator (ES6)\n */\n ancestorsIterator(object) {\n return new TreeIterator(\n this,\n object,\n object,\n TreeIterator.PARENT\n );\n }\n\n /**\n * Iterate over all descendants of the given object (in tree order).\n *\n * Where `n` is the amount of objects in the sub-tree of the given `root`:\n *\n * * `O(n)` (worst case for a single iteration)\n * * `O(n)` (amortized, when completing the iterator)\n *\n * @method treeIterator\n * @memberOf module:symbol-tree#\n * @param {Object} root\n * @param {Object} options\n * @param {Boolean} [options.reverse=false]\n * @return {Object} An iterable iterator (ES6)\n */\n treeIterator(root, options) {\n const reverse = options && options.reverse;\n\n return new TreeIterator(\n this,\n root,\n reverse ? this.lastInclusiveDescendant(root) : root,\n reverse ? TreeIterator.PRECEDING : TreeIterator.FOLLOWING\n );\n }\n\n /**\n * Find the index of the given object (the number of preceding siblings).\n *\n * * `O(n)` where `n` is the amount of preceding siblings\n * * `O(1)` (amortized, if the tree is not modified)\n *\n * @method index\n * @memberOf module:symbol-tree#\n * @param {Object} child\n * @return {Number} The number of preceding siblings, or -1 if the object has no parent\n */\n index(child) {\n const childNode = this._node(child);\n const parentNode = this._node(childNode.parent);\n\n if (!parentNode) {\n // In principal, you could also find out the number of preceding siblings\n // for objects that do not have a parent. This method limits itself only to\n // objects that have a parent because that lets us optimize more.\n return -1;\n }\n\n let currentIndex = childNode.getCachedIndex(parentNode);\n\n if (currentIndex >= 0) {\n return currentIndex;\n }\n\n currentIndex = 0;\n let object = parentNode.firstChild;\n\n if (parentNode.childIndexCachedUpTo) {\n const cachedUpToNode = this._node(parentNode.childIndexCachedUpTo);\n object = cachedUpToNode.nextSibling;\n currentIndex = cachedUpToNode.getCachedIndex(parentNode) + 1;\n }\n\n while (object) {\n const node = this._node(object);\n node.setCachedIndex(parentNode, currentIndex);\n\n if (object === child) {\n break;\n }\n\n ++currentIndex;\n object = node.nextSibling;\n }\n\n parentNode.childIndexCachedUpTo = child;\n\n return currentIndex;\n }\n\n /**\n * Calculate the number of children.\n *\n * * `O(n)` where `n` is the amount of children\n * * `O(1)` (amortized, if the tree is not modified)\n *\n * @method childrenCount\n * @memberOf module:symbol-tree#\n * @param {Object} parent\n * @return {Number}\n */\n childrenCount(parent) {\n const parentNode = this._node(parent);\n\n if (!parentNode.lastChild) {\n return 0;\n }\n\n return this.index(parentNode.lastChild) + 1;\n }\n\n /**\n * Compare the position of an object relative to another object. A bit set is returned:\n *\n * <ul>\n * <li>DISCONNECTED : 1</li>\n * <li>PRECEDING : 2</li>\n * <li>FOLLOWING : 4</li>\n * <li>CONTAINS : 8</li>\n * <li>CONTAINED_BY : 16</li>\n * </ul>\n *\n * The semantics are the same as compareDocumentPosition in DOM, with the exception that\n * DISCONNECTED never occurs with any other bit.\n *\n * where `n` and `m` are the amount of ancestors of `left` and `right`;\n * where `o` is the amount of children of the lowest common ancestor of `left` and `right`:\n *\n * * `O(n + m + o)` (worst case)\n * * `O(n + m)` (amortized, if the tree is not modified)\n *\n * @method compareTreePosition\n * @memberOf module:symbol-tree#\n * @param {Object} left\n * @param {Object} right\n * @return {Number}\n */\n compareTreePosition(left, right) {\n // In DOM terms:\n // left = reference / context object\n // right = other\n\n if (left === right) {\n return 0;\n }\n\n /* jshint -W016 */\n\n const leftAncestors = []; { // inclusive\n let leftAncestor = left;\n\n while (leftAncestor) {\n if (leftAncestor === right) {\n return TreePosition.CONTAINS | TreePosition.PRECEDING;\n // other is ancestor of reference\n }\n\n leftAncestors.push(leftAncestor);\n leftAncestor = this.parent(leftAncestor);\n }\n }\n\n\n const rightAncestors = []; {\n let rightAncestor = right;\n\n while (rightAncestor) {\n if (rightAncestor === left) {\n return TreePosition.CONTAINED_BY | TreePosition.FOLLOWING;\n }\n\n rightAncestors.push(rightAncestor);\n rightAncestor = this.parent(rightAncestor);\n }\n }\n\n\n const root = reverseArrayIndex(leftAncestors, 0);\n\n if (!root || root !== reverseArrayIndex(rightAncestors, 0)) {\n // note: unlike DOM, preceding / following is not set here\n return TreePosition.DISCONNECTED;\n }\n\n // find the lowest common ancestor\n let commonAncestorIndex = 0;\n const ancestorsMinLength = Math.min(leftAncestors.length, rightAncestors.length);\n\n for (let i = 0; i < ancestorsMinLength; ++i) {\n const leftAncestor = reverseArrayIndex(leftAncestors, i);\n const rightAncestor = reverseArrayIndex(rightAncestors, i);\n\n if (leftAncestor !== rightAncestor) {\n break;\n }\n\n commonAncestorIndex = i;\n }\n\n // indexes within the common ancestor\n const leftIndex = this.index(reverseArrayIndex(leftAncestors, commonAncestorIndex + 1));\n const rightIndex = this.index(reverseArrayIndex(rightAncestors, commonAncestorIndex + 1));\n\n return rightIndex < leftIndex\n ? TreePosition.PRECEDING\n : TreePosition.FOLLOWING;\n }\n\n /**\n * Remove the object from this tree.\n * Has no effect if already removed.\n *\n * * `O(1)`\n *\n * @method remove\n * @memberOf module:symbol-tree#\n * @param {Object} removeObject\n * @return {Object} removeObject\n */\n remove(removeObject) {\n const removeNode = this._node(removeObject);\n const parentNode = this._node(removeNode.parent);\n const prevNode = this._node(removeNode.previousSibling);\n const nextNode = this._node(removeNode.nextSibling);\n\n if (parentNode) {\n if (parentNode.firstChild === removeObject) {\n parentNode.firstChild = removeNode.nextSibling;\n }\n\n if (parentNode.lastChild === removeObject) {\n parentNode.lastChild = removeNode.previousSibling;\n }\n }\n\n if (prevNode) {\n prevNode.nextSibling = removeNode.nextSibling;\n }\n\n if (nextNode) {\n nextNode.previousSibling = removeNode.previousSibling;\n }\n\n removeNode.parent = null;\n removeNode.previousSibling = null;\n removeNode.nextSibling = null;\n removeNode.cachedIndex = -1;\n removeNode.cachedIndexVersion = NaN;\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return removeObject;\n }\n\n /**\n * Insert the given object before the reference object.\n * `newObject` is now the previous sibling of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method insertBefore\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n insertBefore(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const prevNode = this._node(referenceNode.previousSibling);\n const newNode = this._node(newObject);\n const parentNode = this._node(referenceNode.parent);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n newNode.parent = referenceNode.parent;\n newNode.previousSibling = referenceNode.previousSibling;\n newNode.nextSibling = referenceObject;\n referenceNode.previousSibling = newObject;\n\n if (prevNode) {\n prevNode.nextSibling = newObject;\n }\n\n if (parentNode && parentNode.firstChild === referenceObject) {\n parentNode.firstChild = newObject;\n }\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object after the reference object.\n * `newObject` is now the next sibling of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method insertAfter\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n insertAfter(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const nextNode = this._node(referenceNode.nextSibling);\n const newNode = this._node(newObject);\n const parentNode = this._node(referenceNode.parent);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n newNode.parent = referenceNode.parent;\n newNode.previousSibling = referenceObject;\n newNode.nextSibling = referenceNode.nextSibling;\n referenceNode.nextSibling = newObject;\n\n if (nextNode) {\n nextNode.previousSibling = newObject;\n }\n\n if (parentNode && parentNode.lastChild === referenceObject) {\n parentNode.lastChild = newObject;\n }\n\n if (parentNode) {\n parentNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object as the first child of the given reference object.\n * `newObject` is now the first child of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method prependChild\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n prependChild(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const newNode = this._node(newObject);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n if (referenceNode.hasChildren) {\n this.insertBefore(referenceNode.firstChild, newObject);\n }\n else {\n newNode.parent = referenceObject;\n referenceNode.firstChild = newObject;\n referenceNode.lastChild = newObject;\n referenceNode.childrenChanged();\n }\n\n return newObject;\n }\n\n /**\n * Insert the given object as the last child of the given reference object.\n * `newObject` is now the last child of `referenceObject`.\n *\n * * `O(1)`\n *\n * @method appendChild\n * @memberOf module:symbol-tree#\n * @param {Object} referenceObject\n * @param {Object} newObject\n * @throws {Error} If the newObject is already present in this SymbolTree\n * @return {Object} newObject\n */\n appendChild(referenceObject, newObject) {\n const referenceNode = this._node(referenceObject);\n const newNode = this._node(newObject);\n\n if (newNode.isAttached) {\n throw Error('Given object is already present in this SymbolTree, remove it first');\n }\n\n if (referenceNode.hasChildren) {\n this.insertAfter(referenceNode.lastChild, newObject);\n }\n else {\n newNode.parent = referenceObject;\n referenceNode.firstChild = newObject;\n referenceNode.lastChild = newObject;\n referenceNode.childrenChanged();\n }\n\n return newObject;\n }\n}\n\nmodule.exports = SymbolTree;\nSymbolTree.TreePosition = TreePosition;\n", null, null, null, null, null, null, null, "import escapeStringRegexp from 'escape-string-regexp';\n\nconst regexpCache = new Map();\n\nconst sanitizeArray = (input, inputName) => {\n\tif (!Array.isArray(input)) {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\t\tinput = [input];\n\t\t\t\tbreak;\n\t\t\tcase 'undefined':\n\t\t\t\tinput = [];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Expected '${inputName}' to be a string or an array, but got a type of '${typeof input}'`);\n\t\t}\n\t}\n\n\treturn input.filter(string => {\n\t\tif (typeof string !== 'string') {\n\t\t\tif (typeof string === 'undefined') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow new TypeError(`Expected '${inputName}' to be an array of strings, but found a type of '${typeof string}' in the array`);\n\t\t}\n\n\t\treturn true;\n\t});\n};\n\nconst makeRegexp = (pattern, options) => {\n\toptions = {\n\t\tcaseSensitive: false,\n\t\t...options,\n\t};\n\n\tconst cacheKey = pattern + JSON.stringify(options);\n\n\tif (regexpCache.has(cacheKey)) {\n\t\treturn regexpCache.get(cacheKey);\n\t}\n\n\tconst negated = pattern[0] === '!';\n\n\tif (negated) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tpattern = escapeStringRegexp(pattern).replace(/\\\\\\*/g, '[\\\\s\\\\S]*');\n\n\tconst regexp = new RegExp(`^${pattern}$`, options.caseSensitive ? '' : 'i');\n\tregexp.negated = negated;\n\tregexpCache.set(cacheKey, regexp);\n\n\treturn regexp;\n};\n\nconst baseMatcher = (inputs, patterns, options, firstMatchOnly) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn [];\n\t}\n\n\tpatterns = patterns.map(pattern => makeRegexp(pattern, options));\n\n\tconst {allPatterns} = options || {};\n\tconst result = [];\n\n\tfor (const input of inputs) {\n\t\t// String is included only if it matches at least one non-negated pattern supplied.\n\t\t// Note: the `allPatterns` option requires every non-negated pattern to be matched once.\n\t\t// Matching a negated pattern excludes the string.\n\t\tlet matches;\n\t\tconst didFit = [...patterns].fill(false);\n\n\t\tfor (const [index, pattern] of patterns.entries()) {\n\t\t\tif (pattern.test(input)) {\n\t\t\t\tdidFit[index] = true;\n\t\t\t\tmatches = !pattern.negated;\n\n\t\t\t\tif (!matches) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t!(\n\t\t\t\tmatches === false\n\t\t\t\t|| (matches === undefined && patterns.some(pattern => !pattern.negated))\n\t\t\t\t|| (allPatterns && didFit.some((yes, index) => !yes && !patterns[index].negated))\n\t\t\t)\n\t\t) {\n\t\t\tresult.push(input);\n\n\t\t\tif (firstMatchOnly) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n};\n\nexport function matcher(inputs, patterns, options) {\n\treturn baseMatcher(inputs, patterns, options, false);\n}\n\nexport function isMatch(inputs, patterns, options) {\n\treturn baseMatcher(inputs, patterns, options, true).length > 0;\n}\n", "export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it\u2019s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns\u2019 stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n", null, null, "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass<T>(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove<T>(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude<TeardownLogic, void>[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude<TeardownLogic, void>): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification<any>, subscriber: Subscriber<any>) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification<T>(value: T) {\n return createNotification('N', value, undefined) as NextNotification<T>;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport class Subscriber<T> extends Subscription implements Observer<T> {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T> {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber<any> | Observer<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber<any> | Observer<any>) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind<Fn extends (...args: any[]) => any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver<T> implements Observer<T> {\n constructor(private partialObserver: Partial<Observer<T>>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber<T> extends Subscriber<T> {\n constructor(\n observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial<Observer<T>>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification<any>, subscriber: Subscriber<any>) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly<Observer<any>> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `<T>(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity<T>(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport function pipe<T, A, B, C, D>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>\n): UnaryFunction<T, D>;\nexport function pipe<T, A, B, C, D, E>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>\n): UnaryFunction<T, E>;\nexport function pipe<T, A, B, C, D, E, F>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>\n): UnaryFunction<T, F>;\nexport function pipe<T, A, B, C, D, E, F, G>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>\n): UnaryFunction<T, G>;\nexport function pipe<T, A, B, C, D, E, F, G, H>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>\n): UnaryFunction<T, H>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>,\n fn9: UnaryFunction<H, I>\n): UnaryFunction<T, I>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n fn1: UnaryFunction<T, A>,\n fn2: UnaryFunction<A, B>,\n fn3: UnaryFunction<B, C>,\n fn4: UnaryFunction<C, D>,\n fn5: UnaryFunction<D, E>,\n fn6: UnaryFunction<E, F>,\n fn7: UnaryFunction<F, G>,\n fn8: UnaryFunction<G, H>,\n fn9: UnaryFunction<H, I>,\n ...fns: UnaryFunction<any, any>[]\n): UnaryFunction<T, unknown>;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {\n if (fns.length === 0) {\n return identity as UnaryFunction<any, any>;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport class Observable<T> implements Subscribable<T> {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable<any> | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator<any, T> | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {\n return new Observable<T>(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift<R>(operator?: Operator<T, R>): Observable<R> {\n const observable = new Observable<R>();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber<T>): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise<void>;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise<void>;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor<void>((resolve, reject) => {\n const subscriber = new SafeSubscriber<T>({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise<void>;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<any>): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n pipe<A, B, C, D, E, F>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>\n ): Observable<F>;\n pipe<A, B, C, D, E, F, G>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>\n ): Observable<G>;\n pipe<A, B, C, D, E, F, G, H>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>\n ): Observable<H>;\n pipe<A, B, C, D, E, F, G, H, I>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>,\n op9: OperatorFunction<H, I>\n ): Observable<I>;\n pipe<A, B, C, D, E, F, G, H, I>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>,\n op6: OperatorFunction<E, F>,\n op7: OperatorFunction<F, G>,\n op8: OperatorFunction<G, H>,\n op9: OperatorFunction<H, I>,\n ...operations: OperatorFunction<any, any>[]\n ): Observable<unknown>;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise<T | undefined>;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise<T | undefined>;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise<T | undefined>;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise<T | undefined> {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise<T | undefined>;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver<T>(value: any): value is Observer<T> {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber<T>(value: any): value is Subscriber<T> {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate<T, R>(\n init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber<T>(\n destination: Subscriber<any>,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber<T> {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber<T> extends Subscriber<T> {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber<any>,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber<T>, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber<T>, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber<T>) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject<T> extends Observable<T> implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer<T>[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer<T>[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {\n return new AnonymousSubject<T>(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift<R>(operator: Operator<T, R>): Observable<R> {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber<any>) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber<any>) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable<T> {\n const observable: any = new Observable<T>();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject<T>\n */\nexport class AnonymousSubject<T> extends Subject<T> {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer<T>,\n source?: Observable<T>\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject<T> extends Subject<T> {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber<T>): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport class Action<T> extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction<T> extends Action<T> {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction<T>, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor<T>(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array<AsyncAction<any>> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction<any>): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last<T>(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike<any> {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable<any> {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable<T>(obj: any): obj is AsyncIterable<T> {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable<any> {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator<T>(readableStream: ReadableStreamLike<T>): AsyncGenerator<T> {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike<T>(obj: any): obj is ReadableStreamLike<T> {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an <iframe>.\n return isFunction(obj?.getReader);\n}\n", "import { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { ObservableInput, ObservedValueOf, ReadableStreamLike } from '../types';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { Subscriber } from '../Subscriber';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\nexport function innerFrom<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\nexport function innerFrom<T>(input: ObservableInput<T>): Observable<T> {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n\n throw createInvalidObservableTypeError(input);\n}\n\n/**\n * Creates an RxJS Observable from an object that implements `Symbol.observable`.\n * @param obj An object that properly implements `Symbol.observable`.\n */\nexport function fromInteropObservable<T>(obj: any) {\n return new Observable((subscriber: Subscriber<T>) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\n\n/**\n * Synchronously emits the values of an array like and completes.\n * This is exported because there are creation functions and operators that need to\n * make direct use of the same logic, and there's no reason to make them run through\n * `from` conditionals because we *know* they're dealing with an array.\n * @param array The array to emit values from\n */\nexport function fromArrayLike<T>(array: ArrayLike<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n // Loop over the array and emit each value. Note two things here:\n // 1. We're making sure that the subscriber is not closed on each loop.\n // This is so we don't continue looping over a very large array after\n // something like a `take`, `takeWhile`, or other synchronous unsubscription\n // has already unsubscribed.\n // 2. In this form, reentrant code can alter that array we're looping over.\n // This is a known issue, but considered an edge case. The alternative would\n // be to copy the array before executing the loop, but this has\n // performance implications.\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\n\nexport function fromPromise<T>(promise: PromiseLike<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n promise\n .then(\n (value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n },\n (err: any) => subscriber.error(err)\n )\n .then(null, reportUnhandledError);\n });\n}\n\nexport function fromIterable<T>(iterable: Iterable<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\n\nexport function fromAsyncIterable<T>(asyncIterable: AsyncIterable<T>) {\n return new Observable((subscriber: Subscriber<T>) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\n\nexport function fromReadableStreamLike<T>(readableStream: ReadableStreamLike<T>) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\n\nasync function process<T>(asyncIterable: AsyncIterable<T>, subscriber: Subscriber<T>) {\n for await (const value of asyncIterable) {\n subscriber.next(value);\n // A side-effect may have closed our subscriber,\n // check before the next iteration.\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n}\n", "import { Subscription } from '../Subscription';\nimport { SchedulerAction, SchedulerLike } from '../types';\n\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay: number,\n repeat: true\n): void;\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay?: number,\n repeat?: false\n): Subscription;\n\nexport function executeSchedule(\n parentSubscription: Subscription,\n scheduler: SchedulerLike,\n work: () => void,\n delay = 0,\n repeat = false\n): Subscription | void {\n const scheduleSubscription = scheduler.schedule(function (this: SchedulerAction<any>) {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n } else {\n this.unsubscribe();\n }\n }, delay);\n\n parentSubscription.add(scheduleSubscription);\n\n if (!repeat) {\n // Because user-land scheduler implementations are unlikely to properly reuse\n // Actions for repeat scheduling, we can't trust that the returned subscription\n // will control repeat subscription scenarios. So we're trying to avoid using them\n // incorrectly within this library.\n return scheduleSubscription;\n }\n}\n", "/** @prettier */\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n *\n * Ensure values in subscribe are called just before browser repaint\n *\n * ```ts\n * import { interval, observeOn, animationFrameScheduler } from 'rxjs';\n *\n * const someDiv = document.createElement('div');\n * someDiv.style.cssText = 'width: 200px;background: #09c';\n * document.body.appendChild(someDiv);\n * const intervals = interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n * intervals.pipe(\n * observeOn(animationFrameScheduler) // ...but we will observe on animationFrame\n * ) // scheduler to ensure smooth animation.\n * .subscribe(val => {\n * someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param delay Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return A function that returns an Observable that emits the same\n * notifications as the source Observable, but with provided scheduler.\n */\nexport function observeOn<T>(scheduler: SchedulerLike, delay = 0): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay),\n () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay),\n (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)\n )\n );\n });\n}\n", "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * \n *\n * ## Example\n *\n * Given the following code:\n *\n * ```ts\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3);\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 1\n * // 2\n * // 3\n * // 4\n * // 5\n * // 6\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n *\n * If we instead use the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emitted by Observable `a`:\n *\n * ```ts\n * import { of, subscribeOn, asyncScheduler, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler));\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 4\n * // 5\n * // 6\n * // 1\n * // 2\n * // 3\n * ```\n *\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param scheduler The {@link SchedulerLike} to perform subscription actions on.\n * @param delay A delay to pass to the scheduler to delay subscriptions\n * @return A function that returns an Observable modified so that its\n * subscriptions happen on the specified {@link SchedulerLike}.\n */\nexport function subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { InteropObservable, SchedulerLike } from '../types';\n\nexport function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { SchedulerLike } from '../types';\n\nexport function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\nexport function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {\n return new Observable<T>((subscriber) => {\n // The current array index.\n let i = 0;\n // Start iterating over the array like on a schedule.\n return scheduler.schedule(function () {\n if (i === input.length) {\n // If we have hit the end of the array like in the\n // previous job, we can complete.\n subscriber.complete();\n } else {\n // Otherwise let's next the value at the current index,\n // then increment our index.\n subscriber.next(input[i++]);\n // If the last emission didn't cause us to close the subscriber\n // (via take or some side effect), reschedule the job and we'll\n // make another pass.\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\n\n/**\n * Used in {@link scheduled} to create an observable from an Iterable.\n * @param input The iterable to create an observable from\n * @param scheduler The scheduler to use\n */\nexport function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {\n return new Observable<T>((subscriber) => {\n let iterator: Iterator<T, T>;\n\n // Schedule the initial creation of the iterator from\n // the iterable. This is so the code in the iterable is\n // not called until the scheduled job fires.\n executeSchedule(subscriber, scheduler, () => {\n // Create the iterator.\n iterator = (input as any)[Symbol_iterator]();\n\n executeSchedule(\n subscriber,\n scheduler,\n () => {\n let value: T;\n let done: boolean | undefined;\n try {\n // Pull the value out of the iterator\n ({ value, done } = iterator.next());\n } catch (err) {\n // We got an error while pulling from the iterator\n subscriber.error(err);\n return;\n }\n\n if (done) {\n // If it is \"done\" we just complete. This mimics the\n // behavior of JavaScript's `for..of` consumption of\n // iterables, which will not emit the value from an iterator\n // result of `{ done: true: value: 'here' }`.\n subscriber.complete();\n } else {\n // The iterable is not done, emit the value.\n subscriber.next(value);\n }\n },\n 0,\n true\n );\n });\n\n // During finalization, if we see this iterator has a `return` method,\n // then we know it is a Generator, and not just an Iterator. So we call\n // the `return()` function. This will ensure that any `finally { }` blocks\n // inside of the generator we can hit will be hit properly.\n return () => isFunction(iterator?.return) && iterator.return();\n });\n}\n", "import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\n\nexport function scheduleAsyncIterable<T>(input: AsyncIterable<T>, scheduler: SchedulerLike) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable<T>((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(\n subscriber,\n scheduler,\n () => {\n iterator.next().then((result) => {\n if (result.done) {\n // This will remove the subscriptions from\n // the parent subscription.\n subscriber.complete();\n } else {\n subscriber.next(result.value);\n }\n });\n },\n 0,\n true\n );\n });\n });\n}\n", "import { SchedulerLike, ReadableStreamLike } from '../types';\nimport { Observable } from '../Observable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\n\nexport function scheduleReadableStreamLike<T>(input: ReadableStreamLike<T>, scheduler: SchedulerLike): Observable<T> {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n", "import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see {@link from}\n * @see {@link of}\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\n\nexport function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike | undefined): Observable<ObservedValueOf<O>>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * \n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable\" target=\"_blank\">iterable</a>\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from, take } from 'rxjs';\n *\n * function* generateDoubles(seed) {\n * let i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * With `asyncScheduler`\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // 'start'\n * // 'end'\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable<T>}\n */\nexport function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n", "/**\n * Checks to see if a value is not only a `Date` object,\n * but a *valid* `Date` object that can be converted to a\n * number. For example, `new Date('blah')` is indeed an\n * `instanceof Date`, however it cannot be converted to a\n * number.\n */\nexport function isValidDate(value: any): value is Date {\n return value instanceof Date && !isNaN(value as any);\n}\n", "import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * \n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n *\n * Map every click to the `clientX` position of that click\n *\n * ```ts\n * import { fromEvent, map } from 'rxjs';\n *\n * const clicks = fromEvent<PointerEvent>(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n *\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return A function that returns an Observable that emits the values from the\n * source Observable transformed by the given `project` function.\n */\nexport function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {\n return operate((source, subscriber) => {\n // The index of the value from the source. Used with projection.\n let index = 0;\n // Subscribe to the source, all errors and completions are sent along\n // to the consumer.\n source.subscribe(\n createOperatorSubscriber(subscriber, (value: T) => {\n // Call the projection function with the appropriate this context,\n // and send the resulting value to the consumer.\n subscriber.next(project.call(thisArg, value, index++));\n })\n );\n });\n}\n", "import { OperatorFunction } from \"../types\";\nimport { map } from \"../operators/map\";\n\nconst { isArray } = Array;\n\nfunction callOrApply<T, R>(fn: ((...values: T[]) => R), args: T|T[]): R {\n return isArray(args) ? fn(...args) : fn(args);\n}\n\n/**\n * Used in several -- mostly deprecated -- situations where we need to \n * apply a list of arguments or a single argument to a result selector.\n */\nexport function mapOneOrManyArgs<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> {\n return map(args => callOrApply(fn, args))\n}", "import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subscriber } from '../Subscriber';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * A process embodying the general \"merge\" strategy. This is used in\n * `mergeMap` and `mergeScan` because the logic is otherwise nearly identical.\n * @param source The original source observable\n * @param subscriber The consumer subscriber\n * @param project The projection function to get our inner sources\n * @param concurrent The number of concurrent inner subscriptions\n * @param onBeforeNext Additional logic to apply before nexting to our consumer\n * @param expand If `true` this will perform an \"expand\" strategy, which differs only\n * in that it recurses, and the inner subscription must be schedule-able.\n * @param innerSubScheduler A scheduler to use to schedule inner subscriptions,\n * this is to support the expand strategy, mostly, and should be deprecated\n */\nexport function mergeInternals<T, R>(\n source: Observable<T>,\n subscriber: Subscriber<R>,\n project: (value: T, index: number) => ObservableInput<R>,\n concurrent: number,\n onBeforeNext?: (innerValue: R) => void,\n expand?: boolean,\n innerSubScheduler?: SchedulerLike,\n additionalFinalizer?: () => void\n) {\n // Buffered values, in the event of going over our concurrency limit\n const buffer: T[] = [];\n // The number of active inner subscriptions.\n let active = 0;\n // An index to pass to our accumulator function\n let index = 0;\n // Whether or not the outer source has completed.\n let isComplete = false;\n\n /**\n * Checks to see if we can complete our result or not.\n */\n const checkComplete = () => {\n // If the outer has completed, and nothing is left in the buffer,\n // and we don't have any active inner subscriptions, then we can\n // Emit the state and complete.\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n\n // If we're under our concurrency limit, just start the inner subscription, otherwise buffer and wait.\n const outerNext = (value: T) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n\n const doInnerSub = (value: T) => {\n // If we're expanding, we need to emit the outer values and the inner values\n // as the inners will \"become outers\" in a way as they are recursively fed\n // back to the projection mechanism.\n expand && subscriber.next(value as any);\n\n // Increment the number of active subscriptions so we can track it\n // against our concurrency limit later.\n active++;\n\n // A flag used to show that the inner observable completed.\n // This is checked during finalization to see if we should\n // move to the next item in the buffer, if there is on.\n let innerComplete = false;\n\n // Start our inner subscription.\n innerFrom(project(value, index++)).subscribe(\n createOperatorSubscriber(\n subscriber,\n (innerValue) => {\n // `mergeScan` has additional handling here. For example\n // taking the inner value and updating state.\n onBeforeNext?.(innerValue);\n\n if (expand) {\n // If we're expanding, then just recurse back to our outer\n // handler. It will emit the value first thing.\n outerNext(innerValue as any);\n } else {\n // Otherwise, emit the inner value.\n subscriber.next(innerValue);\n }\n },\n () => {\n // Flag that we have completed, so we know to check the buffer\n // during finalization.\n innerComplete = true;\n },\n // Errors are passed to the destination.\n undefined,\n () => {\n // During finalization, if the inner completed (it wasn't errored or\n // cancelled), then we want to try the next item in the buffer if\n // there is one.\n if (innerComplete) {\n // We have to wrap this in a try/catch because it happens during\n // finalization, possibly asynchronously, and we want to pass\n // any errors that happen (like in a projection function) to\n // the outer Subscriber.\n try {\n // INNER SOURCE COMPLETE\n // Decrement the active count to ensure that the next time\n // we try to call `doInnerSub`, the number is accurate.\n active--;\n // If we have more values in the buffer, try to process those\n // Note that this call will increment `active` ahead of the\n // next conditional, if there were any more inner subscriptions\n // to start.\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift()!;\n // Particularly for `expand`, we need to check to see if a scheduler was provided\n // for when we want to start our inner subscription. Otherwise, we just start\n // are next inner subscription.\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n } else {\n doInnerSub(bufferedValue);\n }\n }\n // Check to see if we can complete, and complete if so.\n checkComplete();\n } catch (err) {\n subscriber.error(err);\n }\n }\n }\n )\n );\n };\n\n // Subscribe to our source observable.\n source.subscribe(\n createOperatorSubscriber(subscriber, outerNext, () => {\n // Outer completed, make a note of it, and check to see if we can complete everything.\n isComplete = true;\n checkComplete();\n })\n );\n\n // Additional finalization (for when the destination is torn down).\n // Other finalization is added implicitly via subscription above.\n return () => {\n additionalFinalizer?.();\n };\n}\n", "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector: undefined,\n concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,\n concurrent?: number\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * \n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n *\n * Map and flatten each letter to an Observable ticking every 1 second\n *\n * ```ts\n * import { of, mergeMap, interval, map } from 'rxjs';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n * mergeMap(x => interval(1000).pipe(map(i => x + i)))\n * );\n *\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a, b, c every second with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Infinity] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and merging\n * the results of the Observables obtained from this transformation.\n */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Infinity\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n if (isFunction(resultSelector)) {\n // DEPRECATED PATH\n return mergeMap((a, i) => map((b: any, ii: number) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n", "import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * \n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n *\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n *\n * ```ts\n * import { fromEvent, map, interval, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map(() => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n *\n * ```ts\n * import { fromEvent, map, interval, take, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(() => interval(1000).pipe(take(10)))\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concatAll}\n * @see {@link exhaustAll}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Infinity] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits values coming from\n * all the inner Observables emitted by the source Observable.\n */\nexport function mergeAll<O extends ObservableInput<any>>(concurrent: number = Infinity): OperatorFunction<O, ObservedValueOf<O>> {\n return mergeMap(identity, concurrent);\n}\n", "import { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * \n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, map, interval, take, concatAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(() => interval(1000).pipe(take(4)))\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaustAll}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return A function that returns an Observable emitting values from all the\n * inner Observables concatenated.\n */\nexport function concatAll<O extends ObservableInput<any>>(): OperatorFunction<O, ObservedValueOf<O>> {\n return mergeAll(1);\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInputTuple, SchedulerLike } from '../types';\nimport { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\nexport function concat<T extends readonly unknown[]>(...inputs: [...ObservableInputTuple<T>]): Observable<T[number]>;\nexport function concat<T extends readonly unknown[]>(\n ...inputsAndScheduler: [...ObservableInputTuple<T>, SchedulerLike]\n): Observable<T[number]>;\n\n/**\n * Creates an output Observable which sequentially emits all values from the first given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * \n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n *\n * Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n *\n * ```ts\n * import { interval, take, range, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * Concatenate 3 Observables\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * Concatenate the same Observable to repeat it\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('...and it is done!')\n * });\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // '...and it is done!' also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param args Input Observables to concatenate.\n */\nexport function concat(...args: any[]): Observable<unknown> {\n return concatAll()(from(args, popScheduler(args)));\n}\n", "import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\n\n// These constants are used to create handler registry functions using array mapping below.\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'] as const;\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'] as const;\nconst jqueryMethods = ['on', 'off'] as const;\n\nexport interface NodeStyleEventEmitter {\n addListener(eventName: string | symbol, handler: NodeEventHandler): this;\n removeListener(eventName: string | symbol, handler: NodeEventHandler): this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n addListener(eventName: string, handler: NodeEventHandler): void | {};\n removeListener(eventName: string, handler: NodeEventHandler): void | {};\n}\n\n// Use handler types like those in @types/jquery. See:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/847731ba1d7fa6db6b911c0e43aa0afe596e7723/types/jquery/misc.d.ts#L6395\nexport interface JQueryStyleEventEmitter<TContext, T> {\n on(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void;\n off(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void;\n}\n\nexport interface EventListenerObject<E> {\n handleEvent(evt: E): void;\n}\n\nexport interface HasEventTargetAddRemove<E> {\n addEventListener(\n type: string,\n listener: ((evt: E) => void) | EventListenerObject<E> | null,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: ((evt: E) => void) | EventListenerObject<E> | null,\n options?: EventListenerOptions | boolean\n ): void;\n}\n\nexport interface EventListenerOptions {\n capture?: boolean;\n passive?: boolean;\n once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n}\n\nexport function fromEvent<T>(target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>, eventName: string): Observable<T>;\nexport function fromEvent<T, R>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n resultSelector: (event: T) => R\n): Observable<R>;\nexport function fromEvent<T>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n options: EventListenerOptions\n): Observable<T>;\nexport function fromEvent<T, R>(\n target: HasEventTargetAddRemove<T> | ArrayLike<HasEventTargetAddRemove<T>>,\n eventName: string,\n options: EventListenerOptions,\n resultSelector: (event: T) => R\n): Observable<R>;\n\nexport function fromEvent(target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>, eventName: string): Observable<unknown>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function fromEvent<T>(target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>, eventName: string): Observable<T>;\nexport function fromEvent<R>(\n target: NodeStyleEventEmitter | ArrayLike<NodeStyleEventEmitter>,\n eventName: string,\n resultSelector: (...args: any[]) => R\n): Observable<R>;\n\nexport function fromEvent(\n target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>,\n eventName: string\n): Observable<unknown>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function fromEvent<T>(target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>, eventName: string): Observable<T>;\nexport function fromEvent<R>(\n target: NodeCompatibleEventEmitter | ArrayLike<NodeCompatibleEventEmitter>,\n eventName: string,\n resultSelector: (...args: any[]) => R\n): Observable<R>;\n\nexport function fromEvent<T>(\n target: JQueryStyleEventEmitter<any, T> | ArrayLike<JQueryStyleEventEmitter<any, T>>,\n eventName: string\n): Observable<T>;\nexport function fromEvent<T, R>(\n target: JQueryStyleEventEmitter<any, T> | ArrayLike<JQueryStyleEventEmitter<any, T>>,\n eventName: string,\n resultSelector: (value: T, ...args: any[]) => R\n): Observable<R>;\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * <span class=\"informal\">Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.</span>\n *\n * \n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n *\n * Emit clicks happening on the DOM document\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * Use `addEventListener` with capture option\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * // note optional configuration parameter which will be passed to addEventListener\n * const clicksInDocument = fromEvent(document, 'click', { capture: true });\n * const clicksInDiv = fromEvent(div, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget<T>} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable<T>}\n */\nexport function fromEvent<T>(\n target: any,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: (...args: any[]) => T\n): Observable<T> {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent<T>(target, eventName, options as EventListenerOptions).pipe(mapOneOrManyArgs(resultSelector));\n }\n\n // Figure out our add and remove methods. In order to do this,\n // we are going to analyze the target in a preferred order, if\n // the target matches a given signature, we take the two \"add\" and \"remove\"\n // method names and apply them to a map to create opposite versions of the\n // same function. This is because they all operate in duplicate pairs,\n // `addListener(name, handler)`, `removeListener(name, handler)`, for example.\n // The call only differs by method name, as to whether or not you're adding or removing.\n const [add, remove] =\n // If it is an EventTarget, we need to use a slightly different method than the other two patterns.\n isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler: any) => target[methodName](eventName, handler, options as EventListenerOptions))\n : // In all other cases, the call pattern is identical with the exception of the method names.\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n\n // If add is falsy, it's because we didn't match a pattern above.\n // Check to see if it is an ArrayLike, because if it is, we want to\n // try to apply fromEvent to all of it's items. We do this check last,\n // because there are may be some types that are both ArrayLike *and* implement\n // event registry points, and we'd rather delegate to that when possible.\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget: any) => fromEvent(subTarget, eventName, options as EventListenerOptions))(\n innerFrom(target)\n ) as Observable<T>;\n }\n }\n\n // If add is falsy and we made it here, it's because we didn't\n // match any valid target objects above.\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n\n return new Observable<T>((subscriber) => {\n // The handler we are going to register. Forwards the event object, by itself, or\n // an array of arguments to the event handler, if there is more than one argument,\n // to the consumer.\n const handler = (...args: any[]) => subscriber.next(1 < args.length ? args : args[0]);\n // Do the work of adding the handler to the target.\n add(handler);\n // When we finalize, we want to remove the handler and free up memory.\n return () => remove!(handler);\n });\n}\n\n/**\n * Used to create `add` and `remove` functions to register and unregister event handlers\n * from a target in the most common handler pattern, where there are only two arguments.\n * (e.g. `on(name, fn)`, `off(name, fn)`, `addListener(name, fn)`, or `removeListener(name, fn)`)\n * @param target The target we're calling methods on\n * @param eventName The event name for the event we're creating register or unregister functions for\n */\nfunction toCommonHandlerRegistry(target: any, eventName: string) {\n return (methodName: string) => (handler: any) => target[methodName](eventName, handler);\n}\n\n/**\n * Checks to see if the target implements the required node-style EventEmitter methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isNodeStyleEventEmitter(target: any): target is NodeStyleEventEmitter {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\n\n/**\n * Checks to see if the target implements the required jQuery-style EventEmitter methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isJQueryStyleEventEmitter(target: any): target is JQueryStyleEventEmitter<any, any> {\n return isFunction(target.on) && isFunction(target.off);\n}\n\n/**\n * Checks to see if the target implements the required EventTarget methods\n * for adding and removing event handlers.\n * @param target the object to check\n */\nfunction isEventTarget(target: any): target is HasEventTargetAddRemove<any> {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\n\n/**\n * Creates an observable that will wait for a specified time period, or exact date, before\n * emitting the number 0.\n *\n * <span class=\"informal\">Used to emit a notification after a delay.</span>\n *\n * This observable is useful for creating delays in code, or racing against other values\n * for ad-hoc timeouts.\n *\n * The `delay` is specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Examples\n *\n * Wait 3 seconds and start another observable\n *\n * You might want to use `timer` to delay subscription to an\n * observable by a set amount of time. Here we use a timer with\n * {@link concatMapTo} or {@link concatMap} in order to wait\n * a few seconds and start a subscription to a source.\n *\n * ```ts\n * import { of, timer, concatMap } from 'rxjs';\n *\n * // This could be any observable\n * const source = of(1, 2, 3);\n *\n * timer(3000)\n * .pipe(concatMap(() => source))\n * .subscribe(console.log);\n * ```\n *\n * Take all values until the start of the next minute\n *\n * Using a `Date` as the trigger for the first emission, you can\n * do things like wait until midnight to fire an event, or in this case,\n * wait until a new minute starts (chosen so the example wouldn't take\n * too long to run) in order to stop watching a stream. Leveraging\n * {@link takeUntil}.\n *\n * ```ts\n * import { interval, takeUntil, timer } from 'rxjs';\n *\n * // Build a Date object that marks the\n * // next minute.\n * const currentDate = new Date();\n * const startOfNextMinute = new Date(\n * currentDate.getFullYear(),\n * currentDate.getMonth(),\n * currentDate.getDate(),\n * currentDate.getHours(),\n * currentDate.getMinutes() + 1\n * );\n *\n * // This could be any observable stream\n * const source = interval(1000);\n *\n * const result = source.pipe(\n * takeUntil(timer(startOfNextMinute))\n * );\n *\n * result.subscribe(console.log);\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `dueTime`.\n *\n * @param due If a `number`, the amount of time in milliseconds to wait before emitting.\n * If a `Date`, the exact time at which to emit.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>;\n\n/**\n * Creates an observable that starts an interval after a specified delay, emitting incrementing numbers -- starting at `0` --\n * on each interval after words.\n *\n * The `delay` and `intervalDuration` are specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Example\n *\n * ### Start an interval that starts right away\n *\n * Since {@link interval} waits for the passed delay before starting,\n * sometimes that's not ideal. You may want to start an interval immediately.\n * `timer` works well for this. Here we have both side-by-side so you can\n * see them in comparison.\n *\n * Note that this observable will never complete.\n *\n * ```ts\n * import { timer, interval } from 'rxjs';\n *\n * timer(0, 1000).subscribe(n => console.log('timer', n));\n * interval(1000).subscribe(n => console.log('interval', n));\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `startDue`.\n * @param startDue If a `number`, is the time to wait before starting the interval.\n * If a `Date`, is the exact time at which to start the interval.\n * @param intervalDuration The delay between each value emitted in the interval. Passing a\n * negative number here will result in immediate completion after the first value is emitted, as though\n * no `intervalDuration` was passed at all.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable<number>;\n\n/**\n * @deprecated The signature allowing `undefined` to be passed for `intervalDuration` will be removed in v8. Use the `timer(dueTime, scheduler?)` signature instead.\n */\nexport function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>;\n\nexport function timer(\n dueTime: number | Date = 0,\n intervalOrScheduler?: number | SchedulerLike,\n scheduler: SchedulerLike = asyncScheduler\n): Observable<number> {\n // Since negative intervalDuration is treated as though no\n // interval was specified at all, we start with a negative number.\n let intervalDuration = -1;\n\n if (intervalOrScheduler != null) {\n // If we have a second argument, and it's a scheduler,\n // override the scheduler we had defaulted. Otherwise,\n // it must be an interval.\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n } else {\n // Note that this *could* be negative, in which case\n // it's like not passing an intervalDuration at all.\n intervalDuration = intervalOrScheduler;\n }\n }\n\n return new Observable((subscriber) => {\n // If a valid date is passed, calculate how long to wait before\n // executing the first value... otherwise, if it's a number just schedule\n // that many milliseconds (or scheduler-specified unit size) in the future.\n let due = isValidDate(dueTime) ? +dueTime - scheduler!.now() : dueTime;\n\n if (due < 0) {\n // Ensure we don't schedule in the future.\n due = 0;\n }\n\n // The incrementing value we emit.\n let n = 0;\n\n // Start the timer.\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n // Emit the next value and increment.\n subscriber.next(n++);\n\n if (0 <= intervalDuration) {\n // If we have a interval after the initial timer,\n // reschedule with the period.\n this.schedule(undefined, intervalDuration);\n } else {\n // We didn't have an interval. So just complete.\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n", "import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, S extends T, A>(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction<T, S>;\nexport function filter<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;\nexport function filter<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, A>(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction<T>;\nexport function filter<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * \n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n *\n * Emit only click events whose target was a DIV element\n *\n * ```ts\n * import { fromEvent, filter } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param thisArg An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return A function that returns an Observable that emits items from the\n * source Observable that satisfy the specified `predicate`.\n */\nexport function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n // An index passed to our predicate function on each call.\n let index = 0;\n\n // Subscribe to the source, all errors and completions are\n // forwarded to the consumer.\n source.subscribe(\n // Call the predicate with the appropriate `this` context,\n // if the predicate returns `true`, then send the value\n // to the consumer.\n createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value))\n );\n });\n}\n", "import { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\n\n/**\n * Emits a notification from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.</span>\n *\n * \n *\n * `debounce` delays notifications emitted by the source Observable, but drops previous\n * pending delayed emissions if a new notification arrives on the source Observable.\n * This operator keeps track of the most recent notification from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The notification is emitted only when the duration\n * Observable emits a next notification, and if no other notification was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * notification appears before the duration Observable emits, the previous notification will\n * not be emitted and a new duration is scheduled from `durationSelector` is scheduled.\n * If the completing event happens during the scheduled duration the last cached notification\n * is emitted before the completion event is forwarded to the output observable.\n * If the error event happens during the scheduled duration or after it only the error event is\n * forwarded to the output observable. The cache notification is not emitted in this case.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * ## Example\n *\n * Emit the most recent click after a burst of clicks\n *\n * ```ts\n * import { fromEvent, scan, debounce, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * scan(i => ++i, 1),\n * debounce(i => interval(200 * i))\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link throttle}\n * @see {@link throttleTime}\n *\n * @param durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n */\nexport function debounce<T>(durationSelector: (value: T) => ObservableInput<any>): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue: T | null = null;\n // The subscriber/subscription for the current debounce, if there is one.\n let durationSubscriber: Subscriber<any> | null = null;\n\n const emit = () => {\n // Unsubscribe any current debounce subscription we have,\n // we only cared about the first notification from it, and we\n // want to clean that subscription up as soon as possible.\n durationSubscriber?.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n // We have a value! Free up memory first, then emit the value.\n hasValue = false;\n const value = lastValue!;\n lastValue = null;\n subscriber.next(value);\n }\n };\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value: T) => {\n // Cancel any pending debounce duration. We don't\n // need to null it out here yet tho, because we're just going\n // to create another one in a few lines.\n durationSubscriber?.unsubscribe();\n hasValue = true;\n lastValue = value;\n // Capture our duration subscriber, so we can unsubscribe it when we're notified\n // and we're going to emit the value.\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n // Subscribe to the duration.\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n },\n () => {\n // Source completed.\n // Emit any pending debounced values then complete\n emit();\n subscriber.complete();\n },\n // Pass all errors through to consumer\n undefined,\n () => {\n // Finalization.\n lastValue = durationSubscriber = null;\n }\n )\n );\n });\n}\n", "import { asyncScheduler } from '../scheduler/async';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits a notification from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link delay}, but passes only the most\n * recent notification from each burst of emissions.</span>\n *\n * \n *\n * `debounceTime` delays notifications emitted by the source Observable, but drops\n * previous pending delayed emissions if a new notification arrives on the source\n * Observable. This operator keeps track of the most recent notification from the\n * source Observable, and emits that only when `dueTime` has passed\n * without any other notification appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous notification will be dropped\n * and will not be emitted and a new `dueTime` is scheduled.\n * If the completing event happens during `dueTime` the last cached notification\n * is emitted before the completion event is forwarded to the output observable.\n * If the error event happens during `dueTime` or after it only the error event is\n * forwarded to the output observable. The cache notification is not emitted in this case.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * notification to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link SchedulerLike} for\n * managing timers.\n *\n * ## Example\n *\n * Emit the most recent click after a burst of clicks\n *\n * ```ts\n * import { fromEvent, debounceTime } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounceTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link throttle}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the timeout for each value.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by the specified `dueTime`, and may drop some values\n * if they occur too frequently.\n */\nexport function debounceTime<T>(dueTime: number, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n let activeTask: Subscription | null = null;\n let lastValue: T | null = null;\n let lastTime: number | null = null;\n\n const emit = () => {\n if (activeTask) {\n // We have a value! Free up memory first, then emit the value.\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue!;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle(this: SchedulerAction<unknown>) {\n // This is called `dueTime` after the first value\n // but we might have received new values during this window!\n\n const targetTime = lastTime! + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n // On that case, re-schedule to the new target\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n\n emit();\n }\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n (value: T) => {\n lastValue = value;\n lastTime = scheduler.now();\n\n // Only set up a task if it's not already up\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n },\n () => {\n // Source completed.\n // Emit any pending debounced values then complete\n emit();\n subscriber.complete();\n },\n // Pass all errors through to consumer.\n undefined,\n () => {\n // Finalization.\n lastValue = activeTask = null;\n }\n )\n );\n });\n}\n", "import { concat } from '../observable/concat';\nimport { OperatorFunction, SchedulerLike, ValueFromArray } from '../types';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\n\n// Devs are more likely to pass null or undefined than they are a scheduler\n// without accompanying values. To make things easier for (naughty) devs who\n// use the `strictNullChecks: false` TypeScript compiler option, these\n// overloads with explicit null and undefined values are included.\n\nexport function startWith<T>(value: null): OperatorFunction<T, T | null>;\nexport function startWith<T>(value: undefined): OperatorFunction<T, T | undefined>;\n\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function startWith<T, A extends readonly unknown[] = T[]>(\n ...valuesAndScheduler: [...A, SchedulerLike]\n): OperatorFunction<T, T | ValueFromArray<A>>;\nexport function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>>;\n\n/**\n * Returns an observable that, at the moment of subscription, will synchronously emit all\n * values provided to this operator, then subscribe to the source and mirror all of its emissions\n * to subscribers.\n *\n * This is a useful way to know when subscription has occurred on an existing observable.\n *\n * <span class=\"informal\">First emits its arguments in order, and then any\n * emissions from the source.</span>\n *\n * \n *\n * ## Examples\n *\n * Emit a value when a timer starts.\n *\n * ```ts\n * import { timer, map, startWith } from 'rxjs';\n *\n * timer(1000)\n * .pipe(\n * map(() => 'timer emit'),\n * startWith('timer start')\n * )\n * .subscribe(x => console.log(x));\n *\n * // results:\n * // 'timer start'\n * // 'timer emit'\n * ```\n *\n * @param values Items you want the modified Observable to emit first.\n * @return A function that returns an Observable that synchronously emits\n * provided values before subscribing to the source Observable.\n *\n * @see {@link endWith}\n * @see {@link finalize}\n * @see {@link concat}\n */\nexport function startWith<T, D>(...values: D[]): OperatorFunction<T, T | D> {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n // Here we can't pass `undefined` as a scheduler, because if we did, the\n // code inside of `concat` would be confused by the `undefined`, and treat it\n // like an invalid observable. So we have to split it two different ways.\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n", "import { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\n\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * <span class=\"informal\">Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.</span>\n *\n * \n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value, the output Observable stops mirroring the source Observable\n * and completes. If the `notifier` doesn't emit any value and completes\n * then `takeUntil` will pass all values.\n *\n * ## Example\n *\n * Tick every second until the first click happens\n *\n * ```ts\n * import { interval, fromEvent, takeUntil } from 'rxjs';\n *\n * const source = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = source.pipe(takeUntil(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return A function that returns an Observable that emits the values from the\n * source Observable until `notifier` emits its first value.\n */\nexport function takeUntil<T>(notifier: ObservableInput<any>): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n", "import { Subscription } from '../Subscription';\n\nimport { MonoTypeOperatorFunction, ObservableInput } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\n\n/**\n * An object interface used by {@link throttle} or {@link throttleTime} that ensure\n * configuration options of these operators.\n *\n * @see {@link throttle}\n * @see {@link throttleTime}\n */\nexport interface ThrottleConfig {\n /**\n * If `true`, the resulting Observable will emit the first value from the source\n * Observable at the **start** of the \"throttling\" process (when starting an\n * internal timer that prevents other emissions from the source to pass through).\n * If `false`, it will not emit the first value from the source Observable at the\n * start of the \"throttling\" process.\n *\n * If not provided, defaults to: `true`.\n */\n leading?: boolean;\n /**\n * If `true`, the resulting Observable will emit the last value from the source\n * Observable at the **end** of the \"throttling\" process (when ending an internal\n * timer that prevents other emissions from the source to pass through).\n * If `false`, it will not emit the last value from the source Observable at the\n * end of the \"throttling\" process.\n *\n * If not provided, defaults to: `false`.\n */\n trailing?: boolean;\n}\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * \n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n *\n * ```ts\n * import { fromEvent, throttle, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(() => interval(1000)));\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param durationSelector A function that receives a value from the source\n * Observable, for computing the silencing duration for each source value,\n * returned as an `ObservableInput`.\n * @param config A configuration object to define `leading` and `trailing`\n * behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return A function that returns an Observable that performs the throttle\n * operation to limit the rate of emissions from the source.\n */\nexport function throttle<T>(durationSelector: (value: T) => ObservableInput<any>, config?: ThrottleConfig): MonoTypeOperatorFunction<T> {\n return operate((source, subscriber) => {\n const { leading = true, trailing = false } = config ?? {};\n let hasValue = false;\n let sendValue: T | null = null;\n let throttled: Subscription | null = null;\n let isComplete = false;\n\n const endThrottling = () => {\n throttled?.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n\n const startThrottle = (value: T) =>\n (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n\n const send = () => {\n if (hasValue) {\n // Ensure we clear out our value and hasValue flag\n // before we emit, otherwise reentrant code can cause\n // issues here.\n hasValue = false;\n const value = sendValue!;\n sendValue = null;\n // Emit the value.\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n\n source.subscribe(\n createOperatorSubscriber(\n subscriber,\n // Regarding the presence of throttled.closed in the following\n // conditions, if a synchronous duration selector is specified - weird,\n // but legal - an already-closed subscription will be assigned to\n // throttled, so the subscription's closed property needs to be checked,\n // too.\n (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n },\n () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }\n )\n );\n });\n}\n", "import { asyncScheduler } from '../scheduler/async';\nimport { throttle, ThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { timer } from '../observable/timer';\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * <span class=\"informal\">Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.</span>\n *\n * \n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link SchedulerLike} for managing timers.\n *\n * ## Examples\n *\n * ### Limit click rate\n *\n * Emit clicks at a rate of at most one click per second\n *\n * ```ts\n * import { fromEvent, throttleTime } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param scheduler The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling. Defaults to {@link asyncScheduler}.\n * @param config A configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return A function that returns an Observable that performs the throttle\n * operation to limit the rate of emissions from the source.\n */\nexport function throttleTime<T>(\n duration: number,\n scheduler: SchedulerLike = asyncScheduler,\n config?: ThrottleConfig\n): MonoTypeOperatorFunction<T> {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n", null, null, null, "function minitz(y,m,d,h,i,s,tz,throwOnInvalid){return minitz.fromTZ(minitz.tp(y,m,d,h,i,s,tz),throwOnInvalid)}minitz.fromTZISO=(localTimeStr,tz,throwOnInvalid)=>{return minitz.fromTZ(parseISOLocal(localTimeStr,tz),throwOnInvalid)};minitz.fromTZ=function(tp,throwOnInvalid){const inDate=new Date(Date.UTC(tp.y,tp.m-1,tp.d,tp.h,tp.i,tp.s)),offset=getTimezoneOffset(tp.tz,inDate),dateGuess=new Date(inDate.getTime()-offset),dateOffsGuess=getTimezoneOffset(tp.tz,dateGuess);if(dateOffsGuess-offset===0){return dateGuess}else{const dateGuess2=new Date(inDate.getTime()-dateOffsGuess),dateOffsGuess2=getTimezoneOffset(tp.tz,dateGuess2);if(dateOffsGuess2-dateOffsGuess===0){return dateGuess2}else if(!throwOnInvalid&&dateOffsGuess2-dateOffsGuess>0){return dateGuess2}else if(!throwOnInvalid){return dateGuess}else{throw new Error(\"Invalid date passed to fromTZ()\")}}};minitz.toTZ=function(d,tzStr){const td=new Date(d.toLocaleString(\"sv-SE\",{timeZone:tzStr}));return{y:td.getFullYear(),m:td.getMonth()+1,d:td.getDate(),h:td.getHours(),i:td.getMinutes(),s:td.getSeconds(),tz:tzStr}};minitz.tp=(y,m,d,h,i,s,tz)=>{return{y:y,m:m,d:d,h:h,i:i,s:s,tz:tz}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString(\"en\",{timeZone:timeZone,timeStyle:\"long\"}).split(\" \").slice(-1)[0];const dateString=date.toLocaleString(\"en-US\").replace(/[\\u202f]/,\" \");return Date.parse(`${dateString} GMT`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dtStr,tz){const pd=new Date(Date.parse(dtStr));if(isNaN(pd)){throw new Error(\"minitz: Invalid ISO8601 passed to parser.\")}const stringEnd=dtStr.substring(9);if(dtStr.includes(\"Z\")||stringEnd.includes(\"-\")||stringEnd.includes(\"+\")){return minitz.tp(pd.getUTCFullYear(),pd.getUTCMonth()+1,pd.getUTCDate(),pd.getUTCHours(),pd.getUTCMinutes(),pd.getUTCSeconds(),\"Etc/UTC\")}else{return minitz.tp(pd.getFullYear(),pd.getMonth()+1,pd.getDate(),pd.getHours(),pd.getMinutes(),pd.getSeconds(),tz)}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}delete options.name;options.legacyMode=options.legacyMode===void 0?true:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.utcOffset=options.utcOffset===void 0?void 0:parseInt(options.utcOffset,10);options.unref=options.unref===void 0?false:options.unref;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error(\"CronOptions: Supplied value for interval is not a number\")}else if(options.interval<0){throw new Error(\"CronOptions: Supplied value for interval can not be negative\")}}if(options.utcOffset!==void 0){if(isNaN(options.utcOffset)){throw new Error(\"CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.\")}else if(options.utcOffset<-870||options.utcOffset>870){throw new Error(\"CronOptions: utcOffset out of bounds.\")}if(options.utcOffset!==void 0&&options.timezone){throw new Error(\"CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.\")}}if(options.unref!==true&&options.unref!==false){throw new Error(\"CronOptions: Unref should be either true, false or undefined(false).\")}return options}const DaysOfMonth=[31,28,31,30,31,30,31,31,30,31,30,31];const RecursionSteps=[[\"month\",\"year\",0],[\"day\",\"month\",-1],[\"hour\",\"day\",0],[\"minute\",\"hour\",0],[\"second\",\"minute\",0]];function CronDate(d,tz){this.tz=tz;if(d&&d instanceof Date){if(!isNaN(d)){this.fromDate(d)}else{throw new TypeError(\"CronDate: Invalid date passed to CronDate constructor\")}}else if(d===void 0){this.fromDate(new Date)}else if(d&&typeof d===\"string\"){this.fromString(d)}else if(d instanceof CronDate){this.fromCronDate(d)}else{throw new TypeError(\"CronDate: Invalid type (\"+typeof d+\") passed to CronDate constructor\")}}CronDate.prototype.fromDate=function(inDate){if(this.tz!==void 0){if(typeof this.tz===\"number\"){this.ms=inDate.getUTCMilliseconds();this.second=inDate.getUTCSeconds();this.minute=inDate.getUTCMinutes()+this.tz;this.hour=inDate.getUTCHours();this.day=inDate.getUTCDate();this.month=inDate.getUTCMonth();this.year=inDate.getUTCFullYear();this.apply()}else{const d=minitz.toTZ(inDate,this.tz);this.ms=inDate.getMilliseconds();this.second=d.s;this.minute=d.i;this.hour=d.h;this.day=d.d;this.month=d.m-1;this.year=d.y}}else{this.ms=inDate.getMilliseconds();this.second=inDate.getSeconds();this.minute=inDate.getMinutes();this.hour=inDate.getHours();this.day=inDate.getDate();this.month=inDate.getMonth();this.year=inDate.getFullYear()}};CronDate.prototype.fromCronDate=function(d){this.tz=d.tz;this.year=d.year;this.month=d.month;this.day=d.day;this.hour=d.hour;this.minute=d.minute;this.second=d.second;this.ms=d.ms};CronDate.prototype.apply=function(){if(this.month>11||this.day>DaysOfMonth[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){const d=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));this.ms=d.getUTCMilliseconds();this.second=d.getUTCSeconds();this.minute=d.getUTCMinutes();this.hour=d.getUTCHours();this.day=d.getUTCDate();this.month=d.getUTCMonth();this.year=d.getUTCFullYear();return true}else{return false}};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.tz))};CronDate.prototype.findNext=function(options,target,pattern,offset){const originalTarget=this[target];let lastDayOfMonth;if(pattern.lastDayOfMonth){if(this.month!==1){lastDayOfMonth=DaysOfMonth[this.month]}else{lastDayOfMonth=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate()}}const fDomWeekDay=!pattern.starDOW&&target==\"day\"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():undefined;for(let i=this[target]+offset;i<pattern[target].length;i++){let match=pattern[target][i];if(target===\"day\"&&pattern.lastDayOfMonth&&i-offset==lastDayOfMonth){match=true}if(target===\"day\"&&!pattern.starDOW){const dowMatch=pattern.dow[(fDomWeekDay+(i-offset-1))%7];if(options.legacyMode&&!pattern.starDOM){match=match||dowMatch}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return originalTarget!==this[target]?2:1}}return 3};CronDate.prototype.recurse=function(pattern,options,doing){const res=this.findNext(options,RecursionSteps[doing][0],pattern,RecursionSteps[doing][2]);if(res>1){let resetLevel=doing+1;while(resetLevel<RecursionSteps.length){this[RecursionSteps[resetLevel][0]]=-RecursionSteps[resetLevel][2];resetLevel++}if(res===3){this[RecursionSteps[doing][1]]++;this[RecursionSteps[doing][0]]=-RecursionSteps[doing][2];this.apply();return this.recurse(pattern,options,0)}else if(this.apply()){return this.recurse(pattern,options,doing-1)}}doing+=1;if(doing>=RecursionSteps.length){return this}else if(this.year>=3e3){return null}else{return this.recurse(pattern,options,doing)}};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.second+=options.interval}else{this.second+=1}this.ms=0;this.apply();return this.recurse(pattern,options,0)};CronDate.prototype.getDate=function(internal){if(internal||this.tz===void 0&&this.utcOffset===void 0){return new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms)}else{if(typeof this.tz===\"number\"){return new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms))}else{return minitz(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz)}}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.second=Array(60).fill(0);this.minute=Array(60).fill(0);this.hour=Array(24).fill(0);this.day=Array(31).fill(0);this.month=Array(12).fill(0);this.dow=Array(8).fill(0);this.lastDayOfMonth=false;this.starDOM=false;this.starDOW=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern===\"string\"||this.pattern.constructor===String)){throw new TypeError(\"CronPattern: Pattern has to be of type string.\")}if(this.pattern.indexOf(\"@\")>=0)this.pattern=this.handleNicknames(this.pattern).trim();const parts=this.pattern.replace(/\\s+/g,\" \").split(\" \");if(parts.length<5||parts.length>6){throw new TypeError(\"CronPattern: invalid configuration format ('\"+this.pattern+\"'), exacly five or six space separated parts required.\")}if(parts.length===5){parts.unshift(\"0\")}if(parts[3].indexOf(\"L\")>=0){parts[3]=parts[3].replace(\"L\",\"\");this.lastDayOfMonth=true}if(parts[3]==\"*\"){this.starDOM=true}if(parts[4].length>=3)parts[4]=this.replaceAlphaMonths(parts[4]);if(parts[5].length>=3)parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5]==\"*\"){this.starDOW=true}if(this.pattern.indexOf(\"?\")>=0){const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace(\"?\",initDate.getSeconds());parts[1]=parts[1].replace(\"?\",initDate.getMinutes());parts[2]=parts[2].replace(\"?\",initDate.getHours());if(!this.starDOM)parts[3]=parts[3].replace(\"?\",initDate.getDate());parts[4]=parts[4].replace(\"?\",initDate.getMonth()+1);if(!this.starDOW)parts[5]=parts[5].replace(\"?\",initDate.getDay())}this.throwAtIllegalCharacters(parts);this.partToArray(\"second\",parts[0],0);this.partToArray(\"minute\",parts[1],0);this.partToArray(\"hour\",parts[2],0);this.partToArray(\"day\",parts[3],-1);this.partToArray(\"month\",parts[4],-1);this.partToArray(\"dow\",parts[5],0);if(this.dow[7]){this.dow[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf===\"*\")return arr.fill(1);const split=conf.split(\",\");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf(\"-\")!==-1&&conf.indexOf(\"/\")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf(\"-\")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf(\"/\")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==\"\"){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError(\"CronPattern: configuration entry \"+i+\" (\"+parts[i]+\") contains illegal characters.\")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError(\"CronPattern: \"+type+\" is not a number: '\"+conf+\"'\")}if(i<0||i>=this[type].length){throw new TypeError(\"CronPattern: \"+type+\" value out of range: '\"+conf+\"'\")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\\d+)-(\\d+)\\/(\\d+)$/);if(matches===null)throw new TypeError(\"CronPattern: Syntax error, illegal range with stepping: '\"+conf+\"'\");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\");if(isNaN(upper))throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\");if(isNaN(steps))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(steps===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(steps>this[type].length)throw new TypeError(\"CronPattern: Syntax error, steps cannot be greater than maximum value of part (\"+this[type].length+\")\");if(lower<0||upper>=this[type].length)throw new TypeError(\"CronPattern: Value out of range: '\"+conf+\"'\");if(lower>upper)throw new TypeError(\"CronPattern: From value is larger than to value: '\"+conf+\"'\");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split(\"-\");if(split.length!==2){throw new TypeError(\"CronPattern: Syntax error, illegal range: '\"+conf+\"'\")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\")}else if(isNaN(upper)){throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\")}if(lower<0||upper>=this[type].length){throw new TypeError(\"CronPattern: Value out of range: '\"+conf+\"'\")}if(lower>upper){throw new TypeError(\"CronPattern: From value is larger than to value: '\"+conf+\"'\")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split(\"/\");if(split.length!==2){throw new TypeError(\"CronPattern: Syntax error, illegal stepping: '\"+conf+\"'\")}let start=0;if(split[0]!==\"*\"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(steps===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(steps>this[type].length)throw new TypeError(\"CronPattern: Syntax error, max steps for part is (\"+this[type].length+\")\");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,\"-7\").replace(/sun/gi,\"0\").replace(/mon/gi,\"1\").replace(/tue/gi,\"2\").replace(/wed/gi,\"3\").replace(/thu/gi,\"4\").replace(/fri/gi,\"5\").replace(/sat/gi,\"6\")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,\"1\").replace(/feb/gi,\"2\").replace(/mar/gi,\"3\").replace(/apr/gi,\"4\").replace(/may/gi,\"5\").replace(/jun/gi,\"6\").replace(/jul/gi,\"7\").replace(/aug/gi,\"8\").replace(/sep/gi,\"9\").replace(/oct/gi,\"10\").replace(/nov/gi,\"11\").replace(/dec/gi,\"12\")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern===\"@yearly\"||cleanPattern===\"@annually\"){return\"0 0 1 1 *\"}else if(cleanPattern===\"@monthly\"){return\"0 0 1 * *\"}else if(cleanPattern===\"@weekly\"){return\"0 0 * * 0\"}else if(cleanPattern===\"@daily\"){return\"0 0 * * *\"}else if(cleanPattern===\"@hourly\"){return\"0 * * * *\"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;const scheduledJobs=[];function isFn(v){return Object.prototype.toString.call(v)===\"[object Function]\"||\"function\"===typeof v||v instanceof Function}function unref(timer){if(typeof Deno!==\"undefined\"&&typeof Deno.unrefTimer!==\"undefined\"){Deno.unrefTimer(timer)}else if(timer&&typeof timer.unref!==\"undefined\"){timer.unref()}}function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1===\"function\"){func=fnOrOptions1}else if(typeof fnOrOptions1===\"object\"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error(\"Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).\")}if(typeof fnOrOptions2===\"function\"){func=fnOrOptions2}else if(typeof fnOrOptions2===\"object\"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error(\"Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).\")}this.name=options?options.name:void 0;this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;this.blocking=false;this.previousrun=void 0;this.runstarted=void 0;if(pattern&&(pattern instanceof Date||typeof pattern===\"string\"&&pattern.indexOf(\":\")>0)){this.once=new CronDate(pattern,this.options.timezone||this.options.utcOffset)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}if(this.name){const existing=scheduledJobs.find(j=>j.name===this.name);if(existing){throw new Error(\"Cron: Tried to initialize new named job '\"+this.name+\"', but name already taken.\")}else{scheduledJobs.push(this)}}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){if(n>this.options.maxRuns){n=this.options.maxRuns}const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.busy=function(){return this.blocking};Cron.prototype.started=function(){return this.runstarted?this.runstarted.getDate():null};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev);prev=new CronDate(prev,this.options.timezone||this.options.utcOffset);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error(\"Cron: It is not allowed to schedule two functions using the same Croner instance.\")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null||target===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>this._checkTrigger(target),waitMs);if(this.currentTimeout&&this.options.unref){unref(this.currentTimeout)}return this};Cron.prototype._trigger=async function(initiationDate){this.blocking=true;this.runstarted=new CronDate(initiationDate,this.options.timezone||this.options.utcOffset);if(this.options.catch){try{await this.fn(this,this.options.context)}catch(_e){if(isFn(this.options.catch)){(inst=>inst.options.catch(_e,inst))(this)}}finally{this.blocking=false}}else{await this.fn(this,this.options.context);this.blocking=false}};Cron.prototype._checkTrigger=function(target){const now=new Date,shouldRun=!this.options.paused&&now.getTime()>=target,isBlocked=this.blocking&&this.options.protect;if(shouldRun&&!isBlocked){this.options.maxRuns--;this._trigger();this.previousrun=new CronDate(void 0,this.options.timezone||this.options.utcOffset);this.schedule()}else{if(shouldRun&&isBlocked&&isFn(this.options.protect)){(async inst=>inst.options.protect(inst))(this)}this.schedule(undefined,now)}};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone||this.options.utcOffset);if(this.options.startAt&&prev&&prev.getTime()<this.options.startAt.getTime()){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone||this.options.utcOffset).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){return null}else{return nextRun}};Cron.Cron=Cron;Cron.scheduledJobs=scheduledJobs;export{Cron,Cron as default,scheduledJobs};", null, "export default function parseMilliseconds(milliseconds) {\n\tif (typeof milliseconds !== 'number') {\n\t\tthrow new TypeError('Expected a number');\n\t}\n\n\tconst roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n\n\treturn {\n\t\tdays: roundTowardsZero(milliseconds / 86400000),\n\t\thours: roundTowardsZero(milliseconds / 3600000) % 24,\n\t\tminutes: roundTowardsZero(milliseconds / 60000) % 60,\n\t\tseconds: roundTowardsZero(milliseconds / 1000) % 60,\n\t\tmilliseconds: roundTowardsZero(milliseconds) % 1000,\n\t\tmicroseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n\t\tnanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n\t};\n}\n", "import parseMilliseconds from 'parse-ms';\n\nconst pluralize = (word, count) => count === 1 ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\n\nexport default function prettyMilliseconds(milliseconds, options = {}) {\n\tif (!Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number');\n\t}\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tconst result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif ((result.length === 0 || !options.colonNotation) && value === 0 && !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString = (valueString || value || '0').toString();\n\t\tlet prefix;\n\t\tlet suffix;\n\t\tif (options.colonNotation) {\n\t\t\tprefix = result.length > 0 ? ':' : '';\n\t\t\tsuffix = '';\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tprefix = '';\n\t\t\tsuffix = options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(prefix + valueString + suffix);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\n\tadd(Math.trunc(parsed.days / 365), 'year', 'y');\n\tadd(parsed.days % 365, 'day', 'd');\n\tadd(parsed.hours, 'hour', 'h');\n\tadd(parsed.minutes, 'minute', 'm');\n\n\tif (\n\t\toptions.separateMilliseconds\n\t\t|| options.formatSubMilliseconds\n\t\t|| (!options.colonNotation && milliseconds < 1000)\n\t) {\n\t\tadd(parsed.seconds, 'second', 's');\n\t\tif (options.formatSubMilliseconds) {\n\t\t\tadd(parsed.milliseconds, 'millisecond', 'ms');\n\t\t\tadd(parsed.microseconds, 'microsecond', '\u00B5s');\n\t\t\tadd(parsed.nanoseconds, 'nanosecond', 'ns');\n\t\t} else {\n\t\t\tconst millisecondsAndBelow\n\t\t\t\t= parsed.milliseconds\n\t\t\t\t+ (parsed.microseconds / 1000)\n\t\t\t\t+ (parsed.nanoseconds / 1e6);\n\n\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t: 0;\n\n\t\t\tconst roundedMiliseconds = millisecondsAndBelow >= 1\n\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t: roundedMiliseconds;\n\n\t\t\tadd(\n\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t'millisecond',\n\t\t\t\t'ms',\n\t\t\t\tmillisecondsString,\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst seconds = (milliseconds / 1000) % 60;\n\t\tconst secondsDecimalDigits\n\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t: 1;\n\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t? secondsFixed\n\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t}\n\n\tif (result.length === 0) {\n\t\treturn '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tif (options.compact) {\n\t\treturn result[0];\n\t}\n\n\tif (typeof options.unitCount === 'number') {\n\t\tconst separator = options.colonNotation ? '' : ' ';\n\t\treturn result.slice(0, Math.max(options.unitCount, 1)).join(separator);\n\t}\n\n\treturn options.colonNotation ? result.join('') : result.join(' ');\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "export { default as v1 } from './v1.js';\nexport { default as v3 } from './v3.js';\nexport { default as v4 } from './v4.js';\nexport { default as v5 } from './v5.js';\nexport { default as NIL } from './nil.js';\nexport { default as version } from './version.js';\nexport { default as validate } from './validate.js';\nexport { default as stringify } from './stringify.js';\nexport { default as parse } from './parse.js';", "// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || unsafeStringify(b);\n}\n\nexport default v1;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;", "import v35 from './v35.js';\nimport md5 from './md5.js';\nconst v3 = v35('v3', 0x30, md5);\nexport default v3;", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;", "// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;", "import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;", "export default '00000000-0000-0000-0000-000000000000';", "import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nexport default version;", "import { Task } from './taskbuffer.classes.task.js';\n\nexport class BufferRunner {\n public task: Task;\n // initialize by default\n public bufferCounter: number = 0;\n\n constructor(taskArg: Task<any>) {\n this.task = taskArg;\n }\n\n public trigger(x: any): Promise<any> {\n if (!(this.bufferCounter >= this.task.bufferMax)) {\n this.bufferCounter++;\n }\n const returnPromise: Promise<any> = this.task.cycleCounter.getPromiseForCycle(\n this.bufferCounter\n );\n if (!this.task.running) {\n this._run(x);\n }\n return returnPromise;\n }\n\n private async _run(x: any) {\n this.task.running = true;\n while (this.bufferCounter > 0) {\n const result = await Task.runTask(this.task, { x: x });\n this.bufferCounter--;\n this.task.cycleCounter.informOfCycle(result);\n }\n this.task.running = false;\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport interface ICycleObject {\n cycleCounter: number;\n deferred: plugins.smartpromise.Deferred<any>;\n}\n\nexport class CycleCounter {\n public task: Task;\n public cycleObjectArray: ICycleObject[] = [];\n constructor(taskArg: Task<any>) {\n this.task = taskArg;\n }\n public getPromiseForCycle(cycleCountArg: number) {\n const done = plugins.smartpromise.defer();\n const cycleObject: ICycleObject = {\n cycleCounter: cycleCountArg,\n deferred: done,\n };\n this.cycleObjectArray.push(cycleObject);\n return done.promise;\n }\n public informOfCycle(x: any) {\n const newCycleObjectArray: ICycleObject[] = [];\n this.cycleObjectArray.forEach((cycleObjectArg) => {\n cycleObjectArg.cycleCounter--;\n if (cycleObjectArg.cycleCounter <= 0) {\n cycleObjectArg.deferred.resolve(x);\n } else {\n newCycleObjectArray.push(cycleObjectArg);\n }\n });\n this.cycleObjectArray = newCycleObjectArray;\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nexport const logger = new plugins.smartlog.ConsoleLog();\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { BufferRunner } from './taskbuffer.classes.bufferrunner.js';\nimport { CycleCounter } from './taskbuffer.classes.cyclecounter.js';\n\nimport { logger } from './taskbuffer.logging.js';\n\nexport interface ITaskFunction<T = undefined> {\n (x?: any, setupValue?: T): PromiseLike<any>;\n}\n\nexport interface ITaskSetupFunction<T = undefined> {\n (): Promise<T>;\n}\n\nexport type TPreOrAfterTaskFunction = () => Task<any>;\n\nexport class Task<T = undefined> {\n public static extractTask<T = undefined>(\n preOrAfterTaskArg: Task<T> | TPreOrAfterTaskFunction\n ): Task<T> {\n switch (true) {\n case !preOrAfterTaskArg:\n return null;\n case preOrAfterTaskArg instanceof Task:\n return preOrAfterTaskArg as Task<T>;\n case typeof preOrAfterTaskArg === 'function':\n const taskFunction = preOrAfterTaskArg as TPreOrAfterTaskFunction;\n return taskFunction();\n default:\n return null;\n }\n }\n\n public static emptyTaskFunction: ITaskFunction = function (x) {\n const done = plugins.smartpromise.defer();\n done.resolve();\n return done.promise;\n };\n\n public static isTask = (taskArg: Task<any>): boolean => {\n if (taskArg instanceof Task && typeof taskArg.taskFunction === 'function') {\n return true;\n } else {\n return false;\n }\n };\n\n public static isTaskTouched<T = undefined>(\n taskArg: Task<T> | TPreOrAfterTaskFunction,\n touchedTasksArray: Task<T>[]\n ): boolean {\n const taskToCheck = Task.extractTask(taskArg);\n let result = false;\n for (const keyArg in touchedTasksArray) {\n if (taskToCheck === touchedTasksArray[keyArg]) {\n result = true;\n }\n }\n return result;\n }\n\n public static runTask = async <T>(\n taskArg: Task<T> | TPreOrAfterTaskFunction,\n optionsArg: { x?: any; touchedTasksArray?: Task<T>[] }\n ) => {\n const taskToRun = Task.extractTask(taskArg);\n const done = plugins.smartpromise.defer();\n\n // Wait for all blocking tasks to finish\n for (const task of taskToRun.blockingTasks) {\n await task.finished;\n }\n\n if (!taskToRun.setupValue && taskToRun.taskSetup) {\n taskToRun.setupValue = await taskToRun.taskSetup();\n }\n\n if (taskToRun.execDelay) {\n await plugins.smartdelay.delayFor(taskToRun.execDelay);\n }\n\n taskToRun.running = true;\n\n done.promise.then(async () => {\n taskToRun.running = false;\n\n // When the task has finished running, resolve the finished promise\n taskToRun.resolveFinished();\n\n // Create a new finished promise for the next run\n taskToRun.finished = new Promise((resolve) => {\n taskToRun.resolveFinished = resolve;\n });\n });\n\n const options = {\n ...{ x: undefined, touchedTasksArray: [] },\n ...optionsArg,\n };\n const x = options.x;\n const touchedTasksArray: Task<T>[] = options.touchedTasksArray;\n\n touchedTasksArray.push(taskToRun);\n\n const localDeferred = plugins.smartpromise.defer();\n localDeferred.promise\n .then(() => {\n if (taskToRun.preTask && !Task.isTaskTouched(taskToRun.preTask, touchedTasksArray)) {\n return Task.runTask(taskToRun.preTask, { x, touchedTasksArray });\n } else {\n const done2 = plugins.smartpromise.defer();\n done2.resolve(x);\n return done2.promise;\n }\n })\n .then(async (x) => {\n try {\n return await taskToRun.taskFunction(x, taskToRun.setupValue);\n } catch (e) {\n console.log(e);\n }\n })\n .then((x) => {\n if (taskToRun.afterTask && !Task.isTaskTouched(taskToRun.afterTask, touchedTasksArray)) {\n return Task.runTask(taskToRun.afterTask, { x: x, touchedTasksArray: touchedTasksArray });\n } else {\n const done2 = plugins.smartpromise.defer();\n done2.resolve(x);\n return done2.promise;\n }\n })\n .then((x) => {\n done.resolve(x);\n })\n .catch((err) => {\n console.log(err);\n });\n localDeferred.resolve();\n return await done.promise;\n };\n\n public name: string;\n public version: string;\n public taskFunction: ITaskFunction<T>;\n public buffered: boolean;\n public cronJob: plugins.smarttime.CronJob;\n\n public bufferMax: number;\n public execDelay: number;\n public timeout: number;\n\n public preTask: Task<T> | TPreOrAfterTaskFunction;\n public afterTask: Task<T> | TPreOrAfterTaskFunction;\n\n // Add a list to store the blocking tasks\n public blockingTasks: Task[] = [];\n\n // Add a promise that will resolve when the task has finished\n private finished: Promise<void>;\n private resolveFinished: () => void;\n\n public running: boolean = false;\n public bufferRunner = new BufferRunner(this);\n public cycleCounter = new CycleCounter(this);\n\n public get idle() {\n return !this.running;\n }\n\n public taskSetup: ITaskSetupFunction<T>;\n public setupValue: T;\n\n constructor(optionsArg: {\n taskFunction: ITaskFunction<T>;\n preTask?: Task<T> | TPreOrAfterTaskFunction;\n afterTask?: Task<T> | TPreOrAfterTaskFunction;\n buffered?: boolean;\n bufferMax?: number;\n execDelay?: number;\n name?: string;\n taskSetup?: ITaskSetupFunction<T>;\n }) {\n this.taskFunction = optionsArg.taskFunction;\n this.preTask = optionsArg.preTask;\n this.afterTask = optionsArg.afterTask;\n this.buffered = optionsArg.buffered;\n this.bufferMax = optionsArg.bufferMax;\n this.execDelay = optionsArg.execDelay;\n this.name = optionsArg.name;\n this.taskSetup = optionsArg.taskSetup;\n\n // Create the finished promise\n this.finished = new Promise((resolve) => {\n this.resolveFinished = resolve;\n });\n }\n\n public trigger(x?: any): Promise<any> {\n if (this.buffered) {\n return this.triggerBuffered(x);\n } else {\n return this.triggerUnBuffered(x);\n }\n }\n\n public triggerUnBuffered(x?: any): Promise<any> {\n return Task.runTask<T>(this, { x: x });\n }\n\n public triggerBuffered(x?: any): Promise<any> {\n return this.bufferRunner.trigger(x);\n }\n}\n", "// TaskChain chains tasks\n// and extends Task\n\nimport * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\nimport { logger } from './taskbuffer.logging.js';\n\nexport class Taskchain extends Task {\n taskArray: Task[];\n constructor(optionsArg: {\n taskArray: Task[];\n name?: string;\n log?: boolean;\n buffered?: boolean;\n bufferMax?: number;\n }) {\n const options = {\n ...{\n name: 'unnamed Taskchain',\n log: false,\n },\n ...optionsArg,\n ...{\n taskFunction: (x: any) => {\n // this is the function that gets executed when TaskChain is triggered\n const done = plugins.smartpromise.defer(); // this is the starting Deferred object\n let taskCounter = 0; // counter for iterating async over the taskArray\n const iterateTasks = (x: any) => {\n if (typeof this.taskArray[taskCounter] !== 'undefined') {\n console.log(this.name + ' running: Task' + this.taskArray[taskCounter].name);\n this.taskArray[taskCounter].trigger(x).then((x) => {\n logger.log('info', this.taskArray[taskCounter].name);\n taskCounter++;\n iterateTasks(x);\n });\n } else {\n console.log('Taskchain \"' + this.name + '\" completed successfully');\n done.resolve(x);\n }\n };\n iterateTasks(x);\n return done.promise;\n },\n },\n };\n super(options);\n this.taskArray = optionsArg.taskArray;\n }\n addTask(taskArg: Task) {\n this.taskArray.push(taskArg);\n }\n removeTask(taskArg: Task) {\n // TODO:\n }\n shiftTask() {\n // TODO:\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport class Taskparallel extends Task {\n public taskArray: Task[];\n constructor(optionsArg: { taskArray: Task[] }) {\n const options = {\n ...optionsArg,\n ...{\n taskFunction: () => {\n const done = plugins.smartpromise.defer();\n const promiseArray: Promise<any>[] = []; // stores promises of all tasks, since they run in parallel\n this.taskArray.forEach(function (taskArg) {\n promiseArray.push(taskArg.trigger());\n });\n Promise.all(promiseArray).then(done.resolve);\n return done.promise;\n },\n },\n };\n super(options);\n this.taskArray = optionsArg.taskArray;\n }\n}\n", "import { Task } from './taskbuffer.classes.task.js';\nimport * as plugins from './taskbuffer.plugins.js';\n\n/**\n * Contains all data for the final coordinator to make an informed decision.\n */\nexport interface IDistributedTaskRequest {\n submitterId: string;\n requestResponseId: string;\n taskName: string;\n taskVersion: string;\n taskExecutionTime: number;\n taskExecutionTimeout: number;\n taskExecutionParallel: number;\n status: 'requesting' | 'gotRejected' | 'failed' | 'succeeded';\n}\n\nexport interface IDistributedTaskRequestResult {\n submitterId: string;\n requestResponseId: string;\n considered: boolean;\n rank: number;\n reason: string;\n shouldTrigger: boolean;\n}\n\nexport abstract class AbstractDistributedCoordinator {\n public abstract fireDistributedTaskRequest(\n infoBasis: IDistributedTaskRequest\n ): Promise<IDistributedTaskRequestResult>;\n\n public abstract updateDistributedTaskRequest(\n infoBasis: IDistributedTaskRequest\n ): Promise<void>;\n\n public abstract start(): Promise<void>;\n public abstract stop(): Promise<void>;\n}\n", "import * as plugins from './taskbuffer.plugins.js';\nimport { Task } from './taskbuffer.classes.task.js';\nimport { AbstractDistributedCoordinator, type IDistributedTaskRequestResult } from './taskbuffer.classes.distributedcoordinator.js';\n\nexport interface ICronJob {\n cronString: string;\n taskName: string;\n job: any;\n}\n\nexport interface ITaskManagerConstructorOptions {\n distributedCoordinator?: AbstractDistributedCoordinator;\n}\n\nexport class TaskManager {\n public randomId = plugins.smartunique.shortId();\n public taskMap = new plugins.lik.ObjectMap<Task>();\n private cronJobManager = new plugins.smarttime.CronManager();\n public options: ITaskManagerConstructorOptions = {\n distributedCoordinator: null,\n };\n\n constructor(options: ITaskManagerConstructorOptions = {}) {\n this.options = Object.assign(this.options, options);\n }\n\n public getTaskByName(taskName: string): Task {\n return this.taskMap.findSync((task) => task.name === taskName);\n }\n\n public addTask(task: Task): void {\n if (!task.name) {\n throw new Error('Task must have a name to be added to taskManager');\n }\n this.taskMap.add(task);\n }\n\n public addAndScheduleTask(task: Task, cronString: string) {\n this.addTask(task);\n this.scheduleTaskByName(task.name, cronString);\n }\n\n public async triggerTaskByName(taskName: string): Promise<any> {\n const taskToTrigger = this.getTaskByName(taskName);\n if (!taskToTrigger) {\n throw new Error(`No task with the name ${taskName} found.`);\n }\n return taskToTrigger.trigger();\n }\n\n public async triggerTask(task: Task) {\n return task.trigger();\n }\n\n public scheduleTaskByName(taskName: string, cronString: string) {\n const taskToSchedule = this.getTaskByName(taskName);\n if (!taskToSchedule) {\n throw new Error(`No task with the name ${taskName} found.`);\n }\n this.handleTaskScheduling(taskToSchedule, cronString);\n }\n\n private handleTaskScheduling(task: Task, cronString: string) {\n const cronJob = this.cronJobManager.addCronjob(\n cronString,\n async (triggerTime: number) => {\n this.logTaskState(task);\n if (this.options.distributedCoordinator) {\n const announcementResult = await this.performDistributedConsultation(task, triggerTime);\n if (!announcementResult.shouldTrigger) {\n console.log('Distributed coordinator result: NOT EXECUTING');\n return;\n } else {\n console.log('Distributed coordinator result: CHOSEN AND EXECUTING');\n }\n }\n await task.trigger();\n }\n );\n task.cronJob = cronJob;\n }\n\n private logTaskState(task: Task) {\n console.log(`Taskbuffer schedule triggered task >>${task.name}<<`);\n const bufferState = task.buffered\n ? `buffered with max ${task.bufferMax} buffered calls`\n : `unbuffered`;\n console.log(`Task >>${task.name}<< is ${bufferState}`);\n }\n\n private async performDistributedConsultation(task: Task, triggerTime: number): Promise<IDistributedTaskRequestResult> {\n console.log('Found a distributed coordinator, performing consultation.');\n\n return this.options.distributedCoordinator.fireDistributedTaskRequest({\n submitterId: this.randomId,\n requestResponseId: plugins.smartunique.shortId(),\n status: 'requesting',\n taskExecutionParallel: 1,\n taskExecutionTime: triggerTime,\n taskExecutionTimeout: task.timeout,\n taskName: task.name,\n taskVersion: task.version,\n });\n }\n\n public descheduleTaskByName(taskName: string) {\n const task = this.getTaskByName(taskName);\n if (task && task.cronJob) {\n this.cronJobManager.removeCronjob(task.cronJob);\n task.cronJob = null;\n }\n if (this.cronJobManager.cronjobs.isEmpty) {\n this.cronJobManager.stop();\n }\n }\n\n public async descheduleTask(task: Task) {\n await this.descheduleTaskByName(task.name);\n }\n\n public getScheduleForTaskName(taskName: string): string | null {\n const task = this.getTaskByName(taskName);\n return task && task.cronJob ? task.cronJob.cronExpression : null;\n }\n\n public async start() {\n if (this.options.distributedCoordinator) {\n await this.options.distributedCoordinator.start();\n }\n this.cronJobManager.start();\n }\n\n public async stop() {\n this.cronJobManager.stop();\n if (this.options.distributedCoordinator) {\n await this.options.distributedCoordinator.stop();\n }\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task, type ITaskFunction } from './taskbuffer.classes.task.js';\n\n/**\n * TaskOnce is run exactly once, no matter how often it is triggered\n */\nexport class TaskOnce extends Task {\n hasTriggered: boolean = false;\n constructor(optionsArg: { name?: string; taskFunction: ITaskFunction }) {\n super({\n name: optionsArg.name,\n taskFunction: async () => {\n if (!this.hasTriggered) {\n this.hasTriggered = true;\n await optionsArg.taskFunction();\n }\n },\n });\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task } from './taskbuffer.classes.task.js';\n\nexport class TaskRunner {\n public maxParrallelJobs: number = 1;\n public status: 'stopped' | 'running' = 'stopped';\n public runningTasks: plugins.lik.ObjectMap<Task> = new plugins.lik.ObjectMap<Task>();\n public qeuedTasks: Task[] = [];\n\n constructor() {\n this.runningTasks.eventSubject.subscribe(async (eventArg) => {\n this.checkExecution();\n });\n }\n\n /**\n * adds a task to the qeue\n */\n public addTask(taskArg: Task) {\n this.qeuedTasks.push(taskArg);\n this.checkExecution();\n }\n\n /**\n * set amount of parallel tasks\n * be careful, you might loose dependability of tasks\n */\n public setMaxParallelJobs(maxParrallelJobsArg: number) {\n this.maxParrallelJobs = maxParrallelJobsArg;\n }\n\n /**\n * starts the task queue\n */\n public async start() {\n this.status = 'running';\n }\n\n /**\n * checks wether execution is on point\n */\n public async checkExecution() {\n if (\n this.runningTasks.getArray().length < this.maxParrallelJobs &&\n this.status === 'running' &&\n this.qeuedTasks.length > 0\n ) {\n const nextJob = this.qeuedTasks.shift();\n this.runningTasks.add(nextJob);\n await nextJob.trigger();\n this.runningTasks.remove(nextJob);\n this.checkExecution();\n }\n }\n\n /**\n * stops the task queue\n */\n public async stop() {\n this.status = 'stopped';\n }\n}\n", "import * as plugins from './taskbuffer.plugins.js';\n\nimport { Task, type ITaskFunction } from './taskbuffer.classes.task.js';\n\nexport class TaskDebounced<T = unknown> extends Task {\n private _debouncedTaskFunction: ITaskFunction;\n private _observableIntake = new plugins.smartrx.ObservableIntake<T>();\n\n constructor(optionsArg: {\n name: string;\n taskFunction: ITaskFunction;\n debounceTimeInMillis: number;\n }) {\n super({\n name: optionsArg.name,\n taskFunction: async (x: T) => {\n this._observableIntake.push(x);\n },\n });\n this.taskFunction = optionsArg.taskFunction;\n this._observableIntake.observable\n .pipe(plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis))\n .subscribe((x) => {\n this.taskFunction(x);\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["f", "t", "e", "n", "r", "i", "s", "u", "a", "M", "m", "l", "$", "y", "v", "g", "D", "o", "d", "c", "h", "e", "o", "filter", "uni", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "d", "b", "f", "from", "f", "v", "Subscription", "Subscriber", "ConsumerObserver", "SafeSubscriber", "Observable", "observable", "OperatorSubscriber", "err", "Subject", "observable", "AnonymousSubject", "ReplaySubject", "last", "Action", "AsyncAction", "Scheduler", "AsyncScheduler", "iterator", "iterator", "map", "map", "map", "config", "config", "map", "dist_ts_exports", "timer", "dayjs", "isToday", "dist_ts_exports", "dayjs", "units", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "symbolTree", "dist_ts_exports", "process", "dist_ts_exports", "uni", "version", "uni", "dist_ts_exports", "dist_ts_exports", "x", "x", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports"]
|
|
7
7
|
}
|